int nRet;
const AECHAR dlgCaption[]={'D','i','a','l','o','g',' ','D','e','m','o','\0'};
const AECHAR dlgText[] = {'T','h','i','s',' ','a',' ','D','i','a','l','o','g','\0'};
switch (eCode)
{
// App is told it is starting up
case EVT_APP_START:
// Add your code here...
// App is told it is exiting
case EVT_APP_STOP:
// Add your code here...
return(TRUE);
// App is being suspended
case EVT_APP_SUSPEND:
// Add your code here...
// App is being resumed
case EVT_APP_RESUME:
// Add your code here...
// An SMS message has arrived for this app. Message is in the dwParam above as (char *)
// sender simply uses this format "//BREW:ClassId:Message", example //BREW:0x00000001:Hello World
case EVT_APP_MESSAGE:
// Add your code here...
// A key was pressed. Look at the wParam above to see which key was pressed. The key
// codes are in AEEVCodes.h. Example "AVK_1" means that the "1" key was pressed.
case EVT_KEY:
// Add your code here...
switch(eCode)
{
case AVK_SELECT:
ISHELL_EndDialog(pMe->a.m_pIShell);
return TRUE;
}
return FALSE;
case EVT_DIALOG_INIT:
pMe->m_pDialog = (IDialog*)dwParam;
IDIALOG_SetEventHandler(pMe->m_pDialog, (PFNAEEEVENT)dlg_HandleEvent, (void* )pMe);
return(TRUE);
case EVT_DIALOG_START:
case EVT_DIALOG_END:
return TRUE;
case EVT_COMMAND:
return TRUE;
// If nothing fits up to this point then we'll just break out
default:
break;
}
return FALSE;
}
// this function is called when your application is starting up
boolean DialogApp_InitAppData(DialogApp* pMe)
{
// Get the device information for this handset.
// Reference all the data by looking at the pMe->DeviceInfo structure
// Check the API reference guide for all the handy device info you can get
pMe->DeviceInfo.wStructSize = sizeof(pMe->DeviceInfo);
ISHELL_GetDeviceInfo(pMe->a.m_pIShell,&pMe->DeviceInfo);
// Insert your code here for initializing or allocating resources...
// if there have been no failures up to this point then return success
return TRUE;
}
// this function is called when your application is exiting
void DialogApp_FreeAppData(DialogApp* pMe)
{
// insert your code here for freeing any resources you have allocated...
// example to use for releasing each interface:
// if ( pMe->pIMenuCtl != NULL ) // check for NULL first
// {
// IMENUCTL_Release(pMe->pIMenuCtl) // release the interface
// pMe->pIMenuCtl = NULL; // set to NULL so no problems trying to free later
// }
//
/*-------------------------------------------------------------------
Applet structure. All variables in here are reference via "pMe->"
-------------------------------------------------------------------*/
// create an applet structure that's passed around. All variables in
// here will be able to be referenced as static.
typedef struct _DialogApp {
AEEApplet a ; // First element of this structure must be AEEApplet
AEEDeviceInfo DeviceInfo; // always have access to the hardware device information
// add your own variables here...
int m_nScrWidth;
int m_nScrHeight;
int m_nLineHeight; // normal font
int m_nLargeLineHeight; //large font
AEERect m_nClntAreaRect;
IDialog *m_pDialog;
if( ClsId == AEECLSID_DIALOGAPP )
{
// Create the applet and make room for the applet structure
if( AEEApplet_New(sizeof(DialogApp),
ClsId,
pIShell,
po,
(IApplet**)ppObj,
(AEEHANDLER)DialogApp_HandleEvent,
(PFNFREEAPPDATA)DialogApp_FreeAppData) ) // the FreeAppData function is called after sending EVT_APP_STOP to the HandleEvent function
{
//Initialize applet data, this is called before sending EVT_APP_START
// to the HandleEvent function
if(DialogApp_InitAppData((DialogApp*)*ppObj))
{
//Data initialized successfully
return(AEE_SUCCESS);
}
else
{
//Release the applet. This will free the memory allocated for the applet when
// AEEApplet_New was called.
IAPPLET_Release((IApplet*)*ppObj);
return EFAILED;
}