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 }