|
|
|
|
|
|
|
/* Main code for PalmHello */
|
|
|
|
|
|
|
|
#include <PalmOS.h>
|
|
|
|
#include <PalmCompatibility.h>
|
|
|
|
#include "callback.h"
|
|
|
|
|
|
|
|
#include "palmhelloRsc.h"
|
|
|
|
|
|
|
|
static Boolean MainFormHandleEvent (EventPtr e)
|
|
|
|
{
|
|
|
|
Boolean handled = false;
|
|
|
|
FormPtr frm;
|
|
|
|
|
|
|
|
CALLBACK_PROLOGUE
|
|
|
|
|
|
|
|
switch (e->eType) {
|
|
|
|
case frmOpenEvent:
|
|
|
|
frm = FrmGetActiveForm();
|
|
|
|
FrmDrawForm(frm);
|
|
|
|
handled = true;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case menuEvent:
|
|
|
|
MenuErasetStatus(NULL);
|
|
|
|
|
|
|
|
switch(e->data.menu.itemID) {
|
|
|
|
}
|
|
|
|
|
|
|
|
handled = true;
|
|
|
|
break;
|
|
|
|
|
|
|
|
case ctlSelectEvent:
|
|
|
|
switch(e->data.ctlSelect.controlID) {
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
CALLBACK_EPILOGUE
|
|
|
|
|
|
|
|
return handled;
|
|
|
|
}
|
|
|
|
|
|
|
|
static Boolean ApplicationHandleEvent(EventPtr e)
|
|
|
|
{
|
|
|
|
FormPtr frm;
|
|
|
|
Word formId;
|
|
|
|
Boolean handled = false;
|
|
|
|
|
|
|
|
if (e->eType == frmLoadEvent) {
|
|
|
|
formId = e->data.frmLoad.formID;
|
|
|
|
frm = FrmInitForm(formId);
|
|
|
|
FrmSetActiveForm(frm);
|
|
|
|
|
|
|
|
switch(formId) {
|
|
|
|
case MainForm:
|
|
|
|
FrmSetEventHandler(frm, MainFormHandleEvent);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
handled = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
return handled;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Get preferences, open (or create) app database */
|
|
|
|
static Word StartApplication(void)
|
|
|
|
{
|
|
|
|
FrmGotoForm(MainForm);
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Save preferences, close forms, close app database */
|
|
|
|
static void StopApplication(void)
|
|
|
|
{
|
|
|
|
FrmSaveAllForms();
|
|
|
|
FrmCloseAllForms();
|
|
|
|
}
|
|
|
|
|
|
|
|
/* The main event loop */
|
|
|
|
static void EventLoop(void)
|
|
|
|
{
|
|
|
|
Word err;
|
|
|
|
EventType e;
|
|
|
|
|
|
|
|
do {
|
|
|
|
EvtGetEvent(&e, evtWaitForever);
|
|
|
|
if (! SysHandleEvent (&e))
|
|
|
|
if (! MenuHandleEvent (NULL, &e, &err))
|
|
|
|
if (! ApplicationHandleEvent (&e))
|
|
|
|
FrmDispatchEvent (&e);
|
|
|
|
} while (e.eType != appStopEvent);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Main entry point; it is unlikely you will need to change this except to
|
|
|
|
handle other launch command codes */
|
|
|
|
DWord PilotMain(Word cmd, Ptr cmdPBP, Word launchFlags)
|
|
|
|
{
|
|
|
|
Word err;
|
|
|
|
|
|
|
|
if (cmd == sysAppLaunchCmdNormalLaunch) {
|
|
|
|
|
|
|
|
err = StartApplication();
|
|
|
|
if (err) return err;
|
|
|
|
|
|
|
|
EventLoop();
|
|
|
|
StopApplication();
|
|
|
|
|
|
|
|
} else {
|
|
|
|
return sysErrParamErr;
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|