GPS4Palm

Source Code Documentation


AboutForm.c

Go to the documentation of this file.
00001 /*****************************************************************************
00002  *
00003  * $RCSfile: AboutForm_8c-source.html,v $
00004  *
00005  * GPS4Palm About Form
00006  *
00007  *
00008  * This program is Copyright (C) 12/2002 Matthias Prinke
00009  * <matthias.prinke@surfeu.de> and covered by GNU's GPL.
00010  * In particular, this program is free software and comes WITHOUT
00011  * ANY WARRANTY.
00012  *
00013  * $Author: mp $
00014  *
00015  * $Date: 2007-10-08 20:40:32 $
00016  *
00017  * $Revision: 1.6.2.1 $
00018  *
00019  * $Log: AboutForm_8c-source.html,v $
00019  * Revision 1.6.2.1  2007-10-08 20:40:32  mp
00019  * updated for gps4palm V0.9.5 beta
00019  *
00020  * Revision 1.3  2005-03-25 13:36:06  mp
00021  * fixed file header
00022  *
00023  * Revision 1.2  2004/12/10 19:52:07  mp
00024  * replaced DmGet1Resource by DmGetResource
00025  *
00026  * Revision 1.1  2004/11/24 21:17:55  mp
00027  * initial version
00028  *
00029  *
00030  ****************************************************************************/
00031 
00032 #define DO_NOT_ALLOW_ACCESS_TO_INTERNALS_OF_STRUCTS
00033 #include <BuildDefines.h>
00034 #ifdef DEBUG_BUILD
00035 #define ERROR_CHECK_LEVEL ERROR_CHECK_FULL
00036 #endif
00037 #include <PalmOS.h>
00038 #include "ResourceDefines.h"
00039 #include "Utils.h"
00040 #include "AboutForm.h"
00041 #include "common.h"
00042 
00043 /* Global Variables */
00044 extern PrefsType        gPrefs;                 /* application preferences */
00045 
00046 
00047 /****************************************************************************/
00048 /**
00049  * \brief       Route Form event handler
00050  *
00051  * \param       eventP          pointer to event structure
00052  *
00053  * \return      Status flag: event handled
00054  ****************************************************************************/
00055 Boolean AboutFormHandleEvent(EventPtr eventP)
00056 {
00057   Boolean       handled = false;
00058   FormPtr       frmP;
00059   MemHandle     msgH; 
00060   MemPtr        msgP;
00061 
00062   switch (eventP->eType) {
00063     case frmOpenEvent:
00064       frmP = FrmGetActiveForm();
00065       
00066       /* get message string from resource */
00067       msgH = DmGetResource(strRsc, AboutString);
00068       if (msgH != NULL) {
00069         /* string handle valid, lock it */
00070         msgP = MemHandleLock(msgH);
00071         
00072         /* display message string in field */
00073         SetFieldText(AboutField, msgP, false, true);
00074         UpdateScrollbar(FrmGetActiveForm(), AboutField, AboutScrollBar);
00075         
00076         /* unlock string handle */
00077         MemHandleUnlock(msgH);
00078         
00079         /* release string resource */
00080         DmReleaseResource(msgH);
00081       }
00082       FrmDrawForm(frmP);
00083       handled = true;
00084       break;
00085 
00086     case keyDownEvent:
00087      {
00088         WChar   c = eventP->data.keyDown.chr;
00089 
00090         // check for virtual char. On 2-byte system (like Japanese),
00091         // we could have a real character that maps to 
00092         // vchrPageUp or vchrPageDown
00093         //if (TxtGlueCharIsVirtual(eventP->data.keyDown.modifiers, c)) {
00094           if (c == vchrPageUp) {
00095             PageScroll(FrmGetActiveForm(), AboutField,
00096               AboutScrollBar, winUp);
00097             handled = true;
00098           } else if (c == vchrPageDown) {
00099             PageScroll(FrmGetActiveForm(), AboutField,
00100               AboutScrollBar, winDown);
00101             handled = true;
00102           }
00103         //}
00104       }
00105       break;
00106   
00107     case sclRepeatEvent:
00108       ScrollLines(FrmGetActiveForm(), AboutField, AboutScrollBar,
00109         eventP->data.sclRepeat.newValue - 
00110         eventP->data.sclRepeat.value, false);
00111       break;
00112       
00113     case ctlSelectEvent:
00114       switch (eventP->data.ctlSelect.controlID) {
00115         case AboutOKButton:
00116           FrmGotoForm(gPrefs.form);
00117           handled = true;
00118           break;
00119       }
00120 
00121     case frmCloseEvent:
00122       /* Deallocate Fields' Text Memory */
00123       SetFieldText(AboutField, NULL, false, true);
00124       FldEraseField(GetObjectFromActiveForm(AboutField));
00125       handled = false;
00126       break;
00127   
00128     default:
00129       break;
00130   }
00131 
00132   return (handled);
00133 }

Created: Mon, 08 Oct 2007 22:33:16 +0200
Copyright ©2004 M. Prinke