Chars.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2005 Palmsource, Inc.
00003  * 
00004  * This software is licensed as described in the file LICENSE, which
00005  * you should have received as part of this distribution. The terms
00006  * are also available at http://www.openbinder.org/license.html.
00007  * 
00008  * This software consists of voluntary contributions made by many
00009  * individuals. For the exact contribution history, see the revision
00010  * history and logs, available at http://www.openbinder.org
00011  */
00012 
00019 #ifndef _CHARS_H_
00020 #define _CHARS_H_
00021 
00022 // Standard Unicode 2.0 names for the ascii characters. These exist in
00023 // all of the text fonts, no matter what character encoding is being
00024 // used by PalmOS.
00025 
00026 #define chrNull                     0x0000
00027 #define chrStartOfHeading           0x0001
00028 #define chrStartOfText              0x0002
00029 #define chrEndOfText                0x0003
00030 #define chrEndOfTransmission        0x0004
00031 #define chrEnquiry                  0x0005
00032 #define chrAcknowledge              0x0006
00033 #define chrBell                     0x0007
00034 #define chrBackspace                0x0008
00035 #define chrHorizontalTabulation     0x0009
00036 #define chrLineFeed                 0x000A
00037 #define chrVerticalTabulation       0x000B
00038 #define chrFormFeed                 0x000C
00039 #define chrCarriageReturn           0x000D
00040 #define chrShiftOut                 0x000E
00041 #define chrShiftIn                  0x000F
00042 #define chrDataLinkEscape           0x0010
00043 #define chrDeviceControlOne         0x0011
00044 #define chrDeviceControlTwo         0x0012
00045 #define chrDeviceControlThree       0x0013
00046 #define chrDeviceControlFour        0x0014
00047 #define chrNegativeAcknowledge      0x0015
00048 #define chrSynchronousIdle          0x0016
00049 #define chrEndOfTransmissionBlock   0x0017
00050 #define chrCancel                   0x0018
00051 #define chrEndOfMedium              0x0019
00052 #define chrSubstitute               0x001A
00053 #define chrEscape                   0x001B
00054 #define chrFileSeparator            0x001C
00055 #define chrGroupSeparator           0x001D
00056 #define chrRecordSeparator          0x001E
00057 #define chrUnitSeparator            0x001F
00058 #define chrSpace                    0x0020
00059 #define chrExclamationMark          0x0021
00060 #define chrQuotationMark            0x0022
00061 #define chrNumberSign               0x0023
00062 #define chrDollarSign               0x0024
00063 #define chrPercentSign              0x0025
00064 #define chrAmpersand                0x0026
00065 #define chrApostrophe               0x0027
00066 #define chrLeftParenthesis          0x0028
00067 #define chrRightParenthesis         0x0029
00068 #define chrAsterisk                 0x002A
00069 #define chrPlusSign                 0x002B
00070 #define chrComma                    0x002C
00071 #define chrHyphenMinus              0x002D
00072 #define chrFullStop                 0x002E
00073 #define chrSolidus                  0x002F
00074 #define chrDigitZero                0x0030
00075 #define chrDigitOne                 0x0031
00076 #define chrDigitTwo                 0x0032
00077 #define chrDigitThree               0x0033
00078 #define chrDigitFour                0x0034
00079 #define chrDigitFive                0x0035
00080 #define chrDigitSix                 0x0036
00081 #define chrDigitSeven               0x0037
00082 #define chrDigitEight               0x0038
00083 #define chrDigitNine                0x0039
00084 #define chrColon                    0x003A
00085 #define chrSemicolon                0x003B
00086 #define chrLessThanSign             0x003C
00087 #define chrEqualsSign               0x003D
00088 #define chrGreaterThanSign          0x003E
00089 #define chrQuestionMark             0x003F
00090 #define chrCommercialAt             0x0040
00091 #define chrCapital_A                0x0041
00092 #define chrCapital_B                0x0042
00093 #define chrCapital_C                0x0043
00094 #define chrCapital_D                0x0044
00095 #define chrCapital_E                0x0045
00096 #define chrCapital_F                0x0046
00097 #define chrCapital_G                0x0047
00098 #define chrCapital_H                0x0048
00099 #define chrCapital_I                0x0049
00100 #define chrCapital_J                0x004A
00101 #define chrCapital_K                0x004B
00102 #define chrCapital_L                0x004C
00103 #define chrCapital_M                0x004D
00104 #define chrCapital_N                0x004E
00105 #define chrCapital_O                0x004F
00106 #define chrCapital_P                0x0050
00107 #define chrCapital_Q                0x0051
00108 #define chrCapital_R                0x0052
00109 #define chrCapital_S                0x0053
00110 #define chrCapital_T                0x0054
00111 #define chrCapital_U                0x0055
00112 #define chrCapital_V                0x0056
00113 #define chrCapital_W                0x0057
00114 #define chrCapital_X                0x0058
00115 #define chrCapital_Y                0x0059
00116 #define chrCapital_Z                0x005A
00117 #define chrLeftSquareBracket        0x005B
00118 // #define  chrReverseSolidus       0x005C (not in Japanese fonts)
00119 #define chrRightSquareBracket       0x005D
00120 #define chrCircumflexAccent         0x005E
00121 #define chrLowLine                  0x005F
00122 #define chrGraveAccent              0x0060
00123 #define chrSmall_A                  0x0061
00124 #define chrSmall_B                  0x0062
00125 #define chrSmall_C                  0x0063
00126 #define chrSmall_D                  0x0064
00127 #define chrSmall_E                  0x0065
00128 #define chrSmall_F                  0x0066
00129 #define chrSmall_G                  0x0067
00130 #define chrSmall_H                  0x0068
00131 #define chrSmall_I                  0x0069
00132 #define chrSmall_J                  0x006A
00133 #define chrSmall_K                  0x006B
00134 #define chrSmall_L                  0x006C
00135 #define chrSmall_M                  0x006D
00136 #define chrSmall_N                  0x006E
00137 #define chrSmall_O                  0x006F
00138 #define chrSmall_P                  0x0070
00139 #define chrSmall_Q                  0x0071
00140 #define chrSmall_R                  0x0072
00141 #define chrSmall_S                  0x0073
00142 #define chrSmall_T                  0x0074
00143 #define chrSmall_U                  0x0075
00144 #define chrSmall_V                  0x0076
00145 #define chrSmall_W                  0x0077
00146 #define chrSmall_X                  0x0078
00147 #define chrSmall_Y                  0x0079
00148 #define chrSmall_Z                  0x007A
00149 #define chrLeftCurlyBracket         0x007B
00150 #define chrVerticalLine             0x007C
00151 #define chrRightCurlyBracket        0x007D
00152 #define chrTilde                    0x007E
00153 #define chrDelete                   0x007F
00154 
00155 
00156 // Special meanings given to characters by the PalmOS
00157 #define chrTab                      chrHorizontalTabulation     // 0x0009
00158 #define vchrPageUp                  chrVerticalTabulation       // 0x000B
00159 #define vchrPageDown                chrFormFeed                 // 0x000C
00160 #define chrOtaSecure                chrDeviceControlFour        // 0x0014
00161 #define chrOta                      chrNegativeAcknowledge      // 0x0015
00162 #define chrCommandStroke            chrSynchronousIdle          // 0x0016
00163 #define chrShortcutStroke           chrEndOfTransmissionBlock   // 0x0017
00164 #define chrEllipsis                 chrCancel                   // 0x0018
00165 #define chrNumericSpace             chrEndOfMedium              // 0x0019
00166 #define chrCardIcon                 chrSubstitute               // 0x001A   Card Icon glyph, added in PalmOS 4.0
00167 #define chrLeftArrow                chrFileSeparator            // 0x001C
00168 #define chrRightArrow               chrGroupSeparator           // 0x001D
00169 #define chrUpArrow                  chrRecordSeparator          // 0x001E
00170 #define chrDownArrow                chrUnitSeparator            // 0x001F
00171 
00172 
00173 //  The following are key codes used for virtual events, like
00174 //   low battery warnings, etc. These keyboard events MUST
00175 //   have the commandKeyMask bit set in the modifiers in order
00176 //   to be recognized.
00177 #define vchrLowBattery              0x0101      // Display low battery dialog
00178 #define vchrEnterDebugger           0x0102      // Enter Debugger
00179 #define vchrNextField               0x0103      // Go to next field in form
00180 #define vchrStartConsole            0x0104      // Startup console task
00181 #define vchrMenu                    0x0105      // Ctl-A
00182 #define vchrCommand                 0x0106      // Ctl-C
00183 #define vchrConfirm                 0x0107      // Ctl-D
00184 #define vchrLaunch                  0x0108      // Ctl-E
00185 #define vchrKeyboard                0x0109      // Ctl-F popup the keyboard in appropriate mode
00186 #define vchrFind                    0x010A
00187 #define vchrCalc                    0x010B
00188 #define vchrPrevField               0x010C
00189 #define vchrAlarm                   0x010D      // sent before displaying an alarm
00190 #define vchrRonamatic               0x010E      // stroke from graffiti area to top half of screen
00191 #define vchrGraffitiReference       0x010F      // popup the Graffiti reference
00192 #define vchrKeyboardAlpha           0x0110      // popup the keyboard in alpha mode
00193 #define vchrKeyboardNumeric         0x0111      // popup the keyboard in number mode
00194 #define vchrLock                    0x0112      // switch to the Security app and lock the device
00195 #define vchrBacklight               0x0113      // toggle state of backlight
00196 #define vchrAutoOff                 0x0114      // power off due to inactivity timer
00197 // Added for PalmOS 3.0
00198 #define vchrExgTest                 0x0115      // put exchange Manager into test mode (&.t)
00199 #define vchrSendData                0x0116      // Send data if possible
00200 #define vchrIrReceive               0x0117      // Initiate an Ir receive manually (&.i)
00201 // Added for PalmOS 3.1
00202 #define vchrTsm1                    0x0118      // Text Services silk-screen button
00203 #define vchrTsm2                    0x0119      // Text Services silk-screen button
00204 #define vchrTsm3                    0x011A      // Text Services silk-screen button
00205 #define vchrTsm4                    0x011B      // Text Services silk-screen button 
00206 // Added for PalmOS 3.2
00207 #define vchrRadioCoverageOK         0x011C      // Radio coverage check successful
00208 #define vchrRadioCoverageFail       0x011D      // Radio coverage check failure
00209 #define vchrPowerOff                0x011E      // Posted after autoOffChr or hardPowerChr
00210                                                             // to put system to sleep with SysSleep.
00211 // Added for PalmOS 3.5
00212 #define vchrResumeSleep             0x011F      // Posted by NotifyMgr clients after they
00213                                                             // have deferred a sleep request in order
00214                                                             // to resume it.
00215 #define vchrLateWakeup              0x0120      // Posted by the system after waking up
00216                                                             // to broadcast a late wakeup notification.
00217                                                             // FOR SYSTEM USE ONLY
00218 #define vchrTsmMode                 0x0121      // Posted by TSM to trigger mode change.
00219 #define vchrBrightness              0x0122      // Activates brightness adjust dialog
00220 #define vchrContrast                0x0123      // Activates contrast adjust dialog
00221 
00222 #define vchrExpCardInserted         0x0124      // ExpansionMgr card inserted & removed.
00223 #define vchrExpCardRemoved          0x0125      // NOTE: these keys will never show up in an
00224                                                             // app's event loop (they are caught inside
00225                                                             // EvtGetEvent()), and will probably be
00226                                                             // deprecated soon (see comments in ExpansionMgr.c).
00227 #define  vchrExgIntData             0x01FF      // Exchange Manager wakeup event
00228 
00229 // Added for PalmOS 4.0             NOTE: 0x1FF is used above - not in numeric order!
00230 #define vchrAttnStateChanged        0x0126      // Posted by AttentionMgr API to open or update dialog
00231 #define vchrAttnUnsnooze            0x0127      // Posted when AttentionMgr snooze timer expires
00232 #define vchrAttnIndicatorTapped     0x0128      // Posted when AttentionIndicator is tapped
00233 #define vchrAttnAllowClose          0x0129      // Posted when AttnAllowClose is called
00234 #define vchrAttnReopen              0x012A      // Posted when AttnReopen is called
00235 #define  vchrCardCloseMenu          0x012B      // Posted when a card is inserted
00236 #define  vchrIrGotData              0x012C      // Posted when IR Receive initiated
00237                                                 // and copying of an app is imminent
00238 
00239 // Added for PalmOS 5.0
00240 #define vchrResetAutoOff            0x012D      // Resets autoOff timer in EvtMgr
00241 
00242 // Added for PalmOS 5.0 R2
00243 // the following vchrJog/Rocker values exist to allow all hardware that has these
00244 // (optional) control clusters to emit the same key codes.
00245 #define vchrThumbWheelUp            0x012E      // optional thumb-wheel up
00246 #define vchrThumbWheelDown          0x012F      // optional thumb-wheel down
00247 #define vchrThumbWheelPush          0x0130      // optional thumb-wheel press/center
00248 #define vchrThumbWheelBack          0x0131      // optional thumb-wheel cluster back
00249 
00250 #define vchrRockerUp                0x0132      // 5-way rocker up
00251 #define vchrRockerDown              0x0133      // 5-way rocker down
00252 #define vchrRockerLeft              0x0134      // 5-way rocker left
00253 #define vchrRockerRight             0x0135      // 5-way rocker right
00254 #define vchrRockerCenter            0x0136      // 5-way rocker center/press
00255 
00256 // 5.x uses 0x0137 for "input area control", but 6.0 and later will never
00257 // send this, and we warned them not to use it.
00258 
00259 // Added for PalmOS 6.0
00260 #define vchrFieldCut                0x0138
00261 #define vchrFieldCopy               0x0139
00262 #define vchrFieldPaste              0x013A
00263 #define vchrFieldUndo               0x013B
00264 #define vchrSlipConfigurationButton 0x013C
00265 #define vchrHardRockerCenter        0x013D
00266 #define vchrIncomingCall            0x013E
00267 
00268 // Added for PalmOS 6.1
00269 #define vchrCancel                  0x013F
00270 
00271 // The application launching buttons generate the following
00272 // key codes and will also set the commandKeyMask bit in the
00273 // modifiers field
00274 #define vchrHardKeyMin              0x0200
00275 #define vchrHardKeyMax              0x02FF      // 256 hard keys
00276 
00277 #define vchrHard1                   0x0204
00278 #define vchrHard2                   0x0205
00279 #define vchrHard3                   0x0206
00280 #define vchrHard4                   0x0207
00281 
00282 #define vchrHardPower               0x0208
00283 #define vchrHardCradle              0x0209      // Button on cradle pressed
00284 #define vchrHardCradle2             0x020A      // Button on cradle pressed and hwrDockInGeneric1
00285                                                     // input on dock asserted (low).
00286 #define vchrHardContrast            0x020B      // Contrast button
00287 #define vchrHardAntenna             0x020C      // Antenna switch
00288 #define vchrHardBrightness          0x020D      // Hypothetical Brightness button
00289 
00290 // Added the following vchrHardXX values for Licensees & Silicon Partners to use:
00291 // (note that values in this range are necessary due to the way TxtCharIsHardKey is defined)
00292 #define vchrHard5                   0x0214      // Alternative vchrHard1 action
00293 #define vchrHard6                   0x0215      // Alternative vchrHard2 action
00294 #define vchrHard7                   0x0216      // Alternative vchrHard3 action
00295 #define vchrHard8                   0x0217      // Alternative vchrHard4 action
00296 #define vchrHard9                   0x0218      // Alternative vchrHardPower or other action
00297 #define vchrHard10                  0x0219      // Alternative vchrHardCradle or other action
00298 
00299 // These are multimedia, internet or otherwise interesting buttons
00300 // that are sometimes found on keyboards or devices.
00301     
00302 #define vchrBack                    0xe050
00303 #define vchrForward                 0xe051
00304 #define vchrStopInternet            0xe052
00305 #define vchrRefresh                 0xe053
00306 #define vchrSearch                  0xe054
00307 #define vchrFavorites               0xe055
00308 #define vchrHomePage                0xe056
00309 
00310 #define vchrMail                    0xe057
00311 
00312 #define vchrMute                    0xe058
00313 #define vchrVolumeUp                0xe059
00314 #define vchrVolumeDown              0xe05a
00315 #define vchrPlay                    0xe05b
00316 #define vchrPauseAudio              0x305c
00317 #define vchrPlayPause               0xe05d
00318 #define vchrStopAudio               0xe05e
00319 #define vchrPrevTrack               0xe05f
00320 #define vchrNextTrack               0xe060
00321 #define vchrFastForward             0xe061
00322 #define vchrRewind                  0xe062
00323 #define vchrEject                   0xe063
00324     
00325 #define vchrMedia                   0xe064
00326 
00327 #define vchrMyComputer              0xe065
00328 #define vchrMyDocuments             0xe066
00329 #define vchrMyMusic                 0xe067
00330 #define vchrMyPictures              0xe068
00331 
00332 #define vchrLogOff                  0xe06a
00333 
00334 // New platform virtual characters for phones.
00335 #define vchrFlipOpen                0xe100
00336 #define vchrFlipClose               0xe101
00337 #define vchrPhoneTalk               0xe102
00338 #define vchrPhoneEnd                0xe103
00339 #define vchrPalmPanel               0xe104
00340 #define vchrCamera                  0xe105
00341 
00342 // Japanese keyboards have some more keys
00343 #define vchrYen                     0xe200
00344 
00345 // The following key character RANGES are reserved for use by licensees.
00346 // All have the commandKeyMask bit set in the event's MODIFIERS field.
00347 // Note that ranges include the Min and Max values themselves (i.e. key
00348 // codes >= min and <= max are assigned to the following licensees).
00349 //
00350 // Virtual key events have the key CHARACTER field of the event record
00351 // set to the vchrXXX value. As a general rule the key CODE field
00352 // of the event is set to zero, however, this field may be used to
00353 // pass along additional information about the virtual key event; for
00354 // example, the source of the event.
00355 //
00356 // Programming example:
00357 //  
00358 //  theErr = EvtEnqueueKey(vchrXXX, 0, commandKeyMask);
00359 //
00360 
00361 //
00362 // NOTE: The Palm range of virtual key character values used in the original
00363 // Tornado, Emerald City, and Stu devices conflicts with the range of values
00364 // assigned to Sony for use with their public jog dial API. As a result, the
00365 // Palm definitions have been moved to the unique value range defined below.
00366 // Only the first two virtual key event values from Sony's range (0x1700 and
00367 // 0x1701) were used in the Palm devices, as a mechanism to launch the Clock
00368 // application. These correspond to Sony's vchrJogUp and vchrJogDown events.
00369 //
00370 
00371 
00372 //      Qualcomm
00373 #define vchrThumperMin              0x0300
00374 #define vchrThumperMax              0x03FF          // 256 command keys
00375 
00376 //      Palm
00377 #define vchrPalmMin                 0x0500          // 256 command keys
00378 #define vchrPalmMax                 0x05FF
00379 
00380 //      Motorola
00381 #define vchrCessnaMin               0x14CD
00382 #define vchrCessnaMax               0x14CD          //   1 command key
00383 
00384 //      TRG
00385 #define vchrCFlashMin               0x1500
00386 #define vchrCFlashMax               0x150F          //   16 command keys
00387 
00388 //      Samsung
00389 #define vchrPhoenixMin              0x1550
00390 #define vchrPhoenixMax              0x156F          //  32 command keys
00391 
00392 //      Symbol
00393 #define vchrSPTMin                  0x15A0
00394 #define vchrSPTMax                  0x15AF          //  16 command keys
00395 
00396 //      Handspring
00397 #define vchrSlinkyMin               0x1600
00398 #define vchrSlinkyMax               0x16FF          // 256 command keys
00399 
00400 //      Sony
00401 #define vchrSonyMin                 0x1700          //  16 command keys
00402 #define vchrSonyMax             0x17FF
00403 
00404 //      Acer
00405 #define vchrAcerMin                 0x1800
00406 #define vchrAcerMax             0x18FF          // 256 command keys
00407 
00408 //      Fossil
00409 #define vchrFossilMin               0x1900          //  16 command keys
00410 #define vchrFossilMax               0x190F
00411 
00412 #define vchrLegendMin               0x1C00          //  16 command keys
00413 #define vchrLegendMax               0x1C0F
00414 
00415 //      AlphaSmart
00416 #define vchrAlphaSmartMin           0x2000          // 256 command keys
00417 #define vchrAlphaSmartMax           0x20FF
00418 
00419 
00420 
00421 //================================================================================
00422 // NOTE: Be sure to check with any Partner Engineering engineer
00423 // or project manager BEFORE defining any new vchrXXX definitions. The list of
00424 // assigned virtual character values is maintained externally. Often ranges of
00425 // values are kept confidential during the early stages of product development
00426 // so what you see here may or may not be a truly complete list.
00427 //================================================================================
00428 
00429 
00430 // Alias names for some of the characters.
00431 #define chrPeriod                   chrFullStop                     // 0x002E
00432 #define chrSlash                    chrSolidus                      // 0x002F
00433 #define chrVerticalBar              chrVerticalLine                 // 0x007C
00434 
00435 // Old names for some of the characters.
00436 #define nullChr                     chrNull                         // 0x0000
00437 #define backspaceChr                chrBackspace                    // 0x0008
00438 #define tabChr                      chrHorizontalTabulation         // 0x0009
00439 #define linefeedChr                 chrLineFeed                     // 0x000A
00440 #define pageUpChr                   vchrPageUp                      // 0x000B
00441 #define chrPageUp                   vchrPageUp                      // 0x000B
00442 #define pageDownChr                 vchrPageDown                    // 0x000C
00443 #define chrPageDown                 vchrPageDown                    // 0x000C
00444 #define crChr                       chrCarriageReturn               // 0x000D
00445 #define returnChr                   chrCarriageReturn               // 0x000D
00446 #define otaSecureChr                chrOtaSecure                    // 0x0014
00447 #define otaChr                      chrOta                          // 0x0015
00448 
00449 #define escapeChr                   chrEscape                       // 0x001B
00450 #define leftArrowChr                chrLeftArrow                    // 0x001C
00451 #define rightArrowChr               chrRightArrow                   // 0x001D
00452 #define upArrowChr                  chrUpArrow                      // 0x001E
00453 #define downArrowChr                chrDownArrow                    // 0x001F
00454 #define spaceChr                    chrSpace                        // 0x0020
00455 #define quoteChr                    chrQuotationMark                // 0x0022 '"'
00456 #define commaChr                    chrComma                        // 0x002C ','
00457 #define periodChr                   chrFullStop                     // 0x002E '.'
00458 #define colonChr                    chrColon                        // 0x003A ':'
00459 #define lowBatteryChr               vchrLowBattery                  // 0x0101
00460 #define enterDebuggerChr            vchrEnterDebugger               // 0x0102
00461 #define nextFieldChr                vchrNextField                   // 0x0103
00462 #define startConsoleChr             vchrStartConsole                // 0x0104
00463 #define menuChr                     vchrMenu                        // 0x0105
00464 #define commandChr                  vchrCommand                     // 0x0106
00465 #define confirmChr                  vchrConfirm                     // 0x0107
00466 #define launchChr                   vchrLaunch                      // 0x0108
00467 #define keyboardChr                 vchrKeyboard                    // 0x0109
00468 #define findChr                     vchrFind                        // 0x010A
00469 #define calcChr                     vchrCalc                        // 0x010B
00470 #define prevFieldChr                vchrPrevField                   // 0x010C
00471 #define alarmChr                    vchrAlarm                       // 0x010D
00472 #define ronamaticChr                vchrRonamatic                   // 0x010E
00473 #define graffitiReferenceChr        vchrGraffitiReference           // 0x010F
00474 #define keyboardAlphaChr            vchrKeyboardAlpha               // 0x0110
00475 #define keyboardNumericChr          vchrKeyboardNumeric             // 0x0111
00476 #define lockChr                     vchrLock                        // 0x0112
00477 #define backlightChr                vchrBacklight                   // 0x0113
00478 #define autoOffChr                  vchrAutoOff                     // 0x0114
00479 #define exgTestChr                  vchrExgTest                     // 0x0115
00480 #define sendDataChr                 vchrSendData                    // 0x0116
00481 #define irReceiveChr                vchrIrReceive                   // 0x0117
00482 #define radioCoverageOKChr          vchrRadioCoverageOK             // 0x011C
00483 #define radioCoverageFailChr        vchrRadioCoverageFail           // 0x011D
00484 #define powerOffChr                 vchrPowerOff                    // 0x011E
00485 #define resumeSleepChr              vchrResumeSleep                 // 0x011F
00486 #define lateWakeupChr               vchrLateWakeup                  // 0x0120
00487 #define brightnessChr               vchrBrightness                  // 0x0121
00488 #define contrastChr                 vchrContrast                    // 0x0122
00489 #define hardKeyMin                  vchrHardKeyMin                  // 0x0200
00490 #define hardKeyMax                  vchrHardKeyMax                  // 0x02FF
00491 #define hard1Chr                    vchrHard1                       // 0x0204
00492 #define hard2Chr                    vchrHard2                       // 0x0205
00493 #define hard3Chr                    vchrHard3                       // 0x0206
00494 #define hard4Chr                    vchrHard4                       // 0x0207
00495 #define hardPowerChr                vchrHardPower                   // 0x0208
00496 #define hardCradleChr               vchrHardCradle                  // 0x0209
00497 #define hardCradle2Chr              vchrHardCradle2                 // 0x020A
00498 #define hardContrastChr             vchrHardContrast                // 0x020B
00499 #define hardAntennaChr              vchrHardAntenna                 // 0x020C
00500 #define hardBrightnessChr           vchrHardBrightness              // 0x020D
00501 
00502 // Macros to determine correct character code to use for drawing numeric space
00503 // and horizontal ellipsis.
00504 
00505 #define ChrNumericSpace(chP)                                                        \
00506     do {                                                                            \
00507         uint32_t attribute;                                                         \
00508         if ((FtrGet(sysFtrCreator, sysFtrNumROMVersion, &attribute) == 0)           \
00509         && (attribute >= sysMakeROMVersion(3, 1, 0, 0, 0))) {                       \
00510             *(chP) = chrNumericSpace;                                               \
00511         } else {                                                                    \
00512             *(chP) = (char)0x80;                                                    \
00513         }                                                                           \
00514     } while (0)
00515 
00516 #define ChrHorizEllipsis(chP)                                                       \
00517     do {                                                                            \
00518         uint32_t attribute;                                                         \
00519         if ((FtrGet(sysFtrCreator, sysFtrNumROMVersion, &attribute) == 0)           \
00520         && (attribute >= sysMakeROMVersion(3, 1, 0, 0, 0))) {                       \
00521             *(chP) = chrEllipsis;                                                   \
00522         } else {                                                                    \
00523             *(chP) = (char)0x85;                                                    \
00524         }                                                                           \
00525     } while (0)
00526 
00527 // Characters in the 9 point symbol font.  Resource ID 9003
00528 enum symbolChars {
00529     symbolLeftArrow = 3,
00530     symbolRightArrow,
00531     symbolUpArrow,
00532     symbolDownArrow,
00533     symbolSmallDownArrow,
00534     symbolSmallUpArrow,
00535     symbolMemo = 9,
00536     symbolHelp,
00537     symbolNote,
00538     symbolNoteSelected,
00539     symbolCapsLock,
00540     symbolNumLock,
00541     symbolShiftUpper,
00542     symbolShiftPunc,
00543     symbolShiftExt,
00544     symbolShiftNone,
00545     symbolNoTime,
00546     symbolAlarm,
00547     symbolRepeat,
00548     symbolCheckMark,
00549     // These next four characters were moved from the 0x8D..0x90
00550     // range in the main fonts to the 9pt Symbol font in PalmOS 3.1
00551     symbolDiamondChr,
00552     symbolClubChr,
00553     symbolHeartChr,
00554     symbolSpadeChr
00555 };
00556 
00557 // Character in the 7 point symbol font.  Resource ID 9005
00558 enum symbol7Chars {
00559     symbol7ScrollUp = 1,
00560     symbol7ScrollDown,
00561     symbol7ScrollUpDisabled,
00562     symbol7ScrollDownDisabled
00563 };
00564 
00565 //  Characters in the 11 point symbol font.  Resource ID 9004
00566 enum symbol11Chars {
00567     symbolCheckboxOff = 0,
00568     symbolCheckboxOn,
00569     symbol11LeftArrow,
00570     symbol11RightArrow,
00571     symbol11Help,
00572     symbol11LeftArrowDisabled,      // New for Palm OS v3.2
00573     symbol11RightArrowDisabled      // New for Palm OS v3.2
00574 };
00575 
00576 
00577 #endif // _CHARS_H_