Listing 2. Hello World
#include "./resid.h"
#include <Common.h>
#include <System/SysAll.h>
#include <UI/UIAll.h>
static Word StartApplication(void);
static void EventLoop(void);
static Boolean MainFrmHandler(EventPtr p);
DWord PilotMain(Word cmd, Ptr cmdPBP, Word launchflags)
{
Word error;
if (cmd == sysAppLaunchCmdNormalLaunch)
{
error = StartApplication();
if (error) return error;
EventLoop();
}
return 0;
}
static Word StartApplication(void)
{
FrmGotoForm(MainFormId);
return 0;
}
void EventLoop(void)
{
short err;
int formID;
FormPtr form;
EventType event;
do
{
EvtGetEvent(&event, 200);
if (SysHandleEvent(&event)) continue;
if (MenuHandleEvent((void *)0,&event, &err)) \
continue;
if (event.eType == frmLoadEvent)
{
formID = event.data.frmLoad.formID;
form = FrmInitForm(formID);
FrmSetActiveForm(form);
switch (formID)
{
case MainFormId:
FrmSetEventHandler(form, &MainFrmHandler);
break;
}
}
FrmDispatchEvent(&event);
} while(event.eType != appStopEvent);
}
static Boolean MainFrmHandler(EventPtr event)
{
int handled = 0;
FormPtr form;
int i;
switch (event->eType)
{
case frmOpenEvent:
form = FrmGetActiveForm();
FrmDrawForm(form);
handled = 1;
WinDrawChars((char *) "Hello World",11,100,50);
break;
case menuEvent:
FrmAlert(alertID_about);
handled = 1;
break;
}
return handled;
}
Copyright © 1994 - 2019 Linux Journal. All rights reserved.