summaryrefslogtreecommitdiff
path: root/fpcsrc/packages/palmunits/src/chars.pp
blob: aba603c025cfad3cfad823ff67184bcb9a7c25a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
(******************************************************************************
 *
 * Copyright (c) 1994-2000 Palm, Inc. or its subsidiaries.
 * All rights reserved.
 *
 * File: Chars.h
 *
 * Release: Palm OS SDK 4.0 (63220)
 *
 * Description:
 *        This file defines the characters in fonts.
 *
 * History:
 *    November 3, 1994  Created by Roger Flores
 *    11/03/94 rsf   Created by Roger Flores.
 *    04/21/99 JFS   Added list of virtual command key ranges reserved
 *                   for use by licensees.
 *    09/13/99 kwk   Added vchrTsmMode.
 *    10/28/99 kwk   Defined vchrPageUp and vchrPageDown.
 *  2001-02-10 jwm   Added symbol11Help and corrected values of *ArrowDisabled
 *
 *****************************************************************************)

unit chars;

interface

uses palmos;

// Standard Unicode 2.0 names for the ascii characters. These exist in
// all of the text fonts, no matter what character encoding is being
// used by PalmOS.

const
  chrNull = $0000;
  chrStartOfHeading = $0001;
  chrStartOfText = $0002;
  chrEndOfText = $0003;
  chrEndOfTransmission = $0004;
  chrEnquiry = $0005;
  chrAcknowledge = $0006;
  chrBell = $0007;
  chrBackspace = $0008;
  chrHorizontalTabulation = $0009;
  chrLineFeed = $000A;
  chrVerticalTabulation = $000B;
  chrFormFeed = $000C;
  chrCarriageReturn = $000D;
  chrShiftOut = $000E;
  chrShiftIn = $000F;
  chrDataLinkEscape = $0010;
  chrDeviceControlOne = $0011;
  chrDeviceControlTwo = $0012;
  chrDeviceControlThree = $0013;
  chrDeviceControlFour = $0014;
  chrNegativeAcknowledge = $0015;
  chrSynchronousIdle = $0016;
  chrEndOfTransmissionBlock = $0017;
  chrCancel = $0018;
  chrEndOfMedium = $0019;
  chrSubstitute = $001A;
  chrEscape = $001B;
  chrFileSeparator = $001C;
  chrGroupSeparator = $001D;
  chrRecordSeparator = $001E;
  chrUnitSeparator = $001F;
  chrSpace = $0020;
  chrExclamationMark = $0021;
  chrQuotationMark = $0022;
  chrNumberSign = $0023;
  chrDollarSign = $0024;
  chrPercentSign = $0025;
  chrAmpersand = $0026;
  chrApostrophe = $0027;
  chrLeftParenthesis = $0028;
  chrRightParenthesis = $0029;
  chrAsterisk = $002A;
  chrPlusSign = $002B;
  chrComma = $002C;
  chrHyphenMinus = $002D;
  chrFullStop = $002E;
  chrSolidus = $002F;
  chrDigitZero = $0030;
  chrDigitOne = $0031;
  chrDigitTwo = $0032;
  chrDigitThree = $0033;
  chrDigitFour = $0034;
  chrDigitFive = $0035;
  chrDigitSix = $0036;
  chrDigitSeven = $0037;
  chrDigitEight = $0038;
  chrDigitNine = $0039;
  chrColon = $003A;
  chrSemicolon = $003B;
  chrLessThanSign = $003C;
  chrEqualsSign = $003D;
  chrGreaterThanSign = $003E;
  chrQuestionMark = $003F;
  chrCommercialAt = $0040;
  chrCapital_A = $0041;
  chrCapital_B = $0042;
  chrCapital_C = $0043;
  chrCapital_D = $0044;
  chrCapital_E = $0045;
  chrCapital_F = $0046;
  chrCapital_G = $0047;
  chrCapital_H = $0048;
  chrCapital_I = $0049;
  chrCapital_J = $004A;
  chrCapital_K = $004B;
  chrCapital_L = $004C;
  chrCapital_M = $004D;
  chrCapital_N = $004E;
  chrCapital_O = $004F;
  chrCapital_P = $0050;
  chrCapital_Q = $0051;
  chrCapital_R = $0052;
  chrCapital_S = $0053;
  chrCapital_T = $0054;
  chrCapital_U = $0055;
  chrCapital_V = $0056;
  chrCapital_W = $0057;
  chrCapital_X = $0058;
  chrCapital_Y = $0059;
  chrCapital_Z = $005A;
  chrLeftSquareBracket = $005B;
//   chrReverseSolidus $005C (not in Japanese fonts)
  chrRightSquareBracket = $005D;
  chrCircumflexAccent = $005E;
  chrLowLine = $005F;
  chrGraveAccent = $0060;
  chrSmall_A = $0061;
  chrSmall_B = $0062;
  chrSmall_C = $0063;
  chrSmall_D = $0064;
  chrSmall_E = $0065;
  chrSmall_F = $0066;
  chrSmall_G = $0067;
  chrSmall_H = $0068;
  chrSmall_I = $0069;
  chrSmall_J = $006A;
  chrSmall_K = $006B;
  chrSmall_L = $006C;
  chrSmall_M = $006D;
  chrSmall_N = $006E;
  chrSmall_O = $006F;
  chrSmall_P = $0070;
  chrSmall_Q = $0071;
  chrSmall_R = $0072;
  chrSmall_S = $0073;
  chrSmall_T = $0074;
  chrSmall_U = $0075;
  chrSmall_V = $0076;
  chrSmall_W = $0077;
  chrSmall_X = $0078;
  chrSmall_Y = $0079;
  chrSmall_Z = $007A;
  chrLeftCurlyBracket = $007B;
  chrVerticalLine = $007C;
  chrRightCurlyBracket = $007D;
  chrTilde = $007E;
  chrDelete = $007F;

// Special meanings given to characters by the PalmOS
  chrTab = chrHorizontalTabulation;              // $0009
  vchrPageUp = chrVerticalTabulation;            // $000B
  vchrPageDown = chrFormFeed;                    // $000C
  chrOtaSecure = chrDeviceControlFour;           // $0014
  chrOta = chrNegativeAcknowledge;               // $0015
  chrCommandStroke = chrSynchronousIdle;         // $0016
  chrShortcutStroke = chrEndOfTransmissionBlock; // $0017
  chrEllipsis = chrCancel;                       // $0018
  chrNumericSpace = chrEndOfMedium;              // $0019
  chrCardIcon = chrSubstitute;                   // $001A   Card Icon glyph, added in PalmOS 4.0
  chrLeftArrow = chrFileSeparator;               // $001C
  chrRightArrow = chrGroupSeparator;             // $001D
  chrUpArrow = chrRecordSeparator;               // $001E
  chrDownArrow = chrUnitSeparator;               // $001F

// The following are key codes used for virtual events, like
// low battery warnings, etc. These keyboard events MUST
// have the commandKeyMask bit set in the modifiers in order
// to be recognized.
  vchrLowBattery = $0101;                        // Display low battery dialog
  vchrEnterDebugger = $0102;                     // Enter Debugger
  vchrNextField = $0103;                         // Go to next field in form
  vchrStartConsole = $0104;                      // Startup console task
  vchrMenu = $0105;                              // Ctl-A
  vchrCommand = $0106;                           // Ctl-C
  vchrConfirm = $0107;                           // Ctl-D
  vchrLaunch = $0108;                            // Ctl-E
  vchrKeyboard = $0109;                          // Ctl-F popup the keyboard in appropriate mode
  vchrFind = $010A;
  vchrCalc = $010B;
  vchrPrevField = $010C;
  vchrAlarm = $010D;                             // sent before displaying an alarm
  vchrRonamatic = $010E;                         // stroke from graffiti area to top half of screen
  vchrGraffitiReference = $010F;                 // popup the Graffiti reference
  vchrKeyboardAlpha = $0110;                     // popup the keyboard in alpha mode
  vchrKeyboardNumeric = $0111;                   // popup the keyboard in number mode
  vchrLock = $0112;                              // switch to the Security app and lock the device
  vchrBacklight = $0113;                         // toggle state of backlight
  vchrAutoOff = $0114;                           // power off due to inactivity timer
// Added for PalmOS 3.0
  vchrExgTest = $0115;                           // put exchange Manager into test mode (&.t)
  vchrSendData = $0116;                          // Send data if possible
  vchrIrReceive = $0117;                         // Initiate an Ir receive manually (&.i)
// Added for PalmOS 3.1
  vchrTsm1 = $0118;                              // Text Services silk-screen button
  vchrTsm2 = $0119;                              // Text Services silk-screen button
  vchrTsm3 = $011A;                              // Text Services silk-screen button
  vchrTsm4 = $011B;                              // Text Services silk-screen button
// Added for PalmOS 3.2
  vchrRadioCoverageOK = $011C;                   // Radio coverage check successful
  vchrRadioCoverageFail = $011D;                 // Radio coverage check failure
  vchrPowerOff = $011E;                          // Posted after autoOffChr or hardPowerChr
 // to put system to sleep with SysSleep.
// Added for PalmOS 3.5
  vchrResumeSleep = $011F;                       // Posted by NotifyMgr clients after they
 // have deferred a sleep request in order
 // to resume it.
  vchrLateWakeup = $0120;                        // Posted by the system after waking up
 // to broadcast a late wakeup notification.
 // FOR SYSTEM USE ONLY
  vchrTsmMode = $0121;                           // Posted by TSM to trigger mode change.
  vchrBrightness = $0122;                        // Activates brightness adjust dialog
  vchrContrast = $0123;                          // Activates contrast adjust dialog

  vchrExpCardInserted = $0124;                   // ExpansionMgr card inserted & removed.
  vchrExpCardRemoved = $0125;                    // NOTE: these keys will never show up in an
                                                 // app's event loop (they are caught inside
                                                 // EvtGetEvent()), and will probably be
                                                 // deprecated soon (see comments in ExpansionMgr.c).

  vchrExgIntData = $01FF;                        // Exchange Manager wakeup event

// Added for PalmOS 4.0          NOTE: 0x1FF is used above - not in numeric order!
  vchrAttnStateChanged = $0126;                 // Posted by AttentionMgr API to open or update dialog
  vchrAttnUnsnooze = $0127;                     // Posted when AttentionMgr snooze timer expires
  vchrAttnIndicatorTapped = $0128;              // Posted when AttentionIndicator is tapped
  vchrAttnAllowClose = $0129;                   // Posted when AttnAllowClose is called
  vchrAttnReopen = $012A;                       // Posted when AttnReopen is called
  vchrCardCloseMenu = $012B;                    // Posted when a card is inserted
  vchrIrGotData = $012C;                        // Posted when IR Receive initiated
                                                // and copying of an app is imminent

// The application launching buttons generate the following
// key codes and will also set the commandKeyMask bit in the
// modifiers field
  vchrHardKeyMin = $0200;
  vchrHardKeyMax = $02FF;                        // 256 hard keys

  vchrHard1 = $0204;
  vchrHard2 = $0205;
  vchrHard3 = $0206;
  vchrHard4 = $0207;
  vchrHardPower = $0208;
  vchrHardCradle = $0209;                        // Button on cradle pressed
  vchrHardCradle2 = $020A;                       // Button on cradle pressed and hwrDockInGeneric1
 // input on dock asserted (low).
  vchrHardContrast = $020B;                      // Sumo's Contrast button
  vchrHardAntenna = $020C;                       // Eleven's Antenna switch
  vchrHardBrightness = $020D;                    // Hypothetical Brightness button
  vchrPageUpWhenOff = $020E;                     // The m100 device's page-up clock button
  vchrHardEarbud = $020F;                        // Hypothetical Earbud button

// The following keycode RANGES are reserved for use by licensees.
// All have the commandKeyMask bit set in the event's modifiers field.
// Note that ranges include the Min and Max values themselves (i.e. key
// codes >= min and <= max are assigned to the following licensees).
//
// Qualcomm
  vchrThumperMin = $0300;
  vchrThumperMax = $03FF;                        // 256 command keys

// Motorola
  vchrCessnaMin = $14CD;
  vchrCessnaMax = $14CD;                         // 1 command key

// TRG
  vchrCFlashMin = $1500;
  vchrCFlashMax = $150F;                         // 16 command keys

// Symbol
  vchrSPTMin = $15A0;
  vchrSPTMax = $15AF;                            // 16 command keys

// Handspring
  vchrSlinkyMin = $1600;
  vchrSlinkyMax = $16FF;                         // 256 command keys

// Palm
  vchrPalmMin = $1700;                           // 256 command keys
  vchrPalmMax = $17ff;

// Old names for some of the characters.
  nullChr = chrNull;                             // $0000
  backspaceChr = chrBackspace;                   // $0008
  tabChr = chrHorizontalTabulation;              // $0009
  linefeedChr = chrLineFeed;                     // $000A
  pageUpChr = vchrPageUp;                        // $000B
  chrPageUp = vchrPageUp;                        // $000B
  pageDownChr = vchrPageDown;                    // $000C
  chrPageDown = vchrPageDown;                    // $000C
  crChr = chrCarriageReturn;                     // $000D
  returnChr = chrCarriageReturn;                 // $000D
  otaSecureChr = chrOtaSecure;                   // $0014
  otaChr = chrOta;                               // $0015

  escapeChr = chrEscape;                         // $001B
  leftArrowChr = chrLeftArrow;                   // $001C
  rightArrowChr = chrRightArrow;                 // $001D
  upArrowChr = chrUpArrow;                       // $001E
  downArrowChr = chrDownArrow;                   // $001F
  spaceChr = chrSpace;                           // $0020
  quoteChr = chrQuotationMark;                   // $0022 '"'
  commaChr = chrComma;                           // $002C ','
  periodChr = chrFullStop;                       // $002E '.'
  colonChr = chrColon;                           // $003A ':'
  lowBatteryChr = vchrLowBattery;                // $0101
  enterDebuggerChr = vchrEnterDebugger;          // $0102
  nextFieldChr = vchrNextField;                  // $0103
  startConsoleChr = vchrStartConsole;            // $0104
  menuChr = vchrMenu;                            // $0105
  commandChr = vchrCommand;                      // $0106
  confirmChr = vchrConfirm;                      // $0107
  launchChr = vchrLaunch;                        // $0108
  keyboardChr = vchrKeyboard;                    // $0109
  findChr = vchrFind;                            // $010A
  calcChr = vchrCalc;                            // $010B
  prevFieldChr = vchrPrevField;                  // $010C
  alarmChr = vchrAlarm;                          // $010D
  ronamaticChr = vchrRonamatic;                  // $010E
  graffitiReferenceChr = vchrGraffitiReference;  // $010F
  keyboardAlphaChr = vchrKeyboardAlpha;          // $0110
  keyboardNumericChr = vchrKeyboardNumeric;      // $0111
  lockChr = vchrLock;                            // $0112
  backlightChr = vchrBacklight;                  // $0113
  autoOffChr = vchrAutoOff;                      // $0114
  exgTestChr = vchrExgTest;                      // $0115
  sendDataChr = vchrSendData;                    // $0116
  irReceiveChr = vchrIrReceive;                  // $0117
  radioCoverageOKChr = vchrRadioCoverageOK;      // $011C
  radioCoverageFailChr = vchrRadioCoverageFail;  // $011D
  powerOffChr = vchrPowerOff;                    // $011E
  resumeSleepChr = vchrResumeSleep;              // $011F
  lateWakeupChr = vchrLateWakeup;                // $0120
  brightnessChr = vchrBrightness;                // $0121
  contrastChr = vchrContrast;                    // $0122
  hardKeyMin = vchrHardKeyMin;                   // $0200
  hardKeyMax = vchrHardKeyMax;                   // $02FF
  hard1Chr = vchrHard1;                          // $0204
  hard2Chr = vchrHard2;                          // $0205
  hard3Chr = vchrHard3;                          // $0206
  hard4Chr = vchrHard4;                          // $0207
  hardPowerChr = vchrHardPower;                  // $0208
  hardCradleChr = vchrHardCradle;                // $0209
  hardCradle2Chr = vchrHardCradle2;              // $020A
  hardContrastChr = vchrHardContrast;            // $020B
  hardAntennaChr = vchrHardAntenna;              // $020C
  hardBrightnessChr = vchrHardBrightness;        // $020D
  hardEarbudChr = vchrHardEarbud;                // 0x020F

// Macros to determine correct character code to use for drawing numeric space
// and horizontal ellipsis.

(*
#define ChrNumericSpace(chP)
 do {
  UInt32 attribute;
  if ((FtrGet(sysFtrCreator, sysFtrNumROMVersion, &attribute) == 0)
  && (attribute >= sysMakeROMVersion(3, 1, 0, 0, 0))) {
   *(chP) = chrNumericSpace;
  } else {
   *(chP) = 0x80;
  }
 } while (0)

#define ChrHorizEllipsis(chP)
 do {
  UInt32 attribute;
  if ((FtrGet(sysFtrCreator, sysFtrNumROMVersion, &attribute) == 0)
  && (attribute >= sysMakeROMVersion(3, 1, 0, 0, 0))) {
   *(chP) = chrEllipsis;
  } else {
   *(chP) = 0x85;
  }
 } while (0)
*)

// Characters in the 9 point symbol font.  Resource ID 9003
type
  symbolChars = Enum;

const
  symbolLeftArrow = 3;
  symbolRightArrow = Succ(symbolLeftArrow);
  symbolUpArrow = Succ(symbolRightArrow);
  symbolDownArrow = Succ(symbolUpArrow);
  symbolSmallDownArrow = Succ(symbolDownArrow);
  symbolSmallUpArrow = Succ(symbolSmallDownArrow);
  symbolMemo = 9;
  symbolHelp = Succ(symbolMemo);
  symbolNote = Succ(symbolHelp);
  symbolNoteSelected = Succ(symbolNote);
  symbolCapsLock = Succ(symbolNoteSelected);
  symbolNumLock = Succ(symbolCapsLock);
  symbolShiftUpper = Succ(symbolNumLock);
  symbolShiftPunc = Succ(symbolShiftUpper);
  symbolShiftExt = Succ(symbolShiftPunc);
  symbolShiftNone = Succ(symbolShiftExt);
  symbolNoTime = Succ(symbolShiftNone);
  symbolAlarm = Succ(symbolNoTime);
  symbolRepeat = Succ(symbolAlarm);
  symbolCheckMark = Succ(symbolRepeat);
  // These next four characters were moved from the 0x8D..0x90
  // range in the main fonts to the 9pt Symbol font in PalmOS 3.1
  symbolDiamondChr = Succ(symbolCheckMark);
  symbolClubChr = Succ(symbolDiamondChr);
  symbolHeartChr = Succ(symbolClubChr);
  symbolSpadeCh = Succ(symbolHeartChr);

// Character in the 7 point symbol font.  Resource ID 9005
type
  symbol7Chars = Enum;

const
  symbol7ScrollUp = 1;
  symbol7ScrollDown = Succ(symbol7ScrollUp);
  symbol7ScrollUpDisabled = Succ(symbol7ScrollDown);
  symbol7ScrollDownDisabled = Succ(symbol7ScrollUpDisabled);

// Characters in the 11 point symbol font.  Resource ID 9004
type
  symbol11Chars = Enum;

const
  symbolCheckboxOff = 0;
  symbolCheckboxOn = Succ(symbolCheckboxOff);
  symbol11LeftArrow = Succ(symbolCheckboxOn);
  symbol11RightArrow = Succ(symbol11LeftArrow);
  symbol11Help = Succ(symbol11RightArrow);
  symbol11LeftArrowDisabled = Succ(symbol11Help); // New for Palm OS v3.2
  symbol11RightArrowDisabled = Succ(symbol11LeftArrowDisabled);  // New for Palm OS v3.2

implementation

end.