aboutsummaryrefslogtreecommitdiff
path: root/SrcShared/Palm/Platform/Incs/Core/System/Chars.h
blob: ada116bd68b6912b33e52d106362aa06ae7fe2e1 (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
/******************************************************************************
 *
 * Copyright (c) 1994-1999 Palm Computing, Inc. or its subsidiaries.
 * All rights reserved.
 *
 * File: Chars.h
 *
 * 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.
 *
 *****************************************************************************/

#ifndef __CHARS_H__
#define __CHARS_H__

// 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.

#define	chrNull							0x0000
#define	chrStartOfHeading				0x0001
#define	chrStartOfText					0x0002
#define	chrEndOfText					0x0003
#define	chrEndOfTransmission			0x0004
#define	chrEnquiry						0x0005
#define	chrAcknowledge					0x0006
#define	chrBell							0x0007
#define	chrBackspace					0x0008
#define	chrHorizontalTabulation		0x0009
#define	chrLineFeed						0x000A
#define	chrVerticalTabulation		0x000B
#define	chrFormFeed						0x000C
#define	chrCarriageReturn				0x000D
#define	chrShiftOut						0x000E
#define	chrShiftIn						0x000F
#define	chrDataLinkEscape				0x0010
#define	chrDeviceControlOne			0x0011
#define	chrDeviceControlTwo			0x0012
#define	chrDeviceControlThree		0x0013
#define	chrDeviceControlFour			0x0014
#define	chrNegativeAcknowledge		0x0015
#define	chrSynchronousIdle			0x0016
#define	chrEndOfTransmissionBlock	0x0017
#define	chrCancel						0x0018
#define	chrEndOfMedium					0x0019
#define	chrSubstitute					0x001A
#define	chrEscape						0x001B
#define	chrFileSeparator				0x001C
#define	chrGroupSeparator				0x001D
#define	chrRecordSeparator			0x001E
#define	chrUnitSeparator				0x001F
#define	chrSpace							0x0020
#define	chrExclamationMark			0x0021
#define	chrQuotationMark				0x0022
#define	chrNumberSign					0x0023
#define	chrDollarSign					0x0024
#define	chrPercentSign					0x0025
#define	chrAmpersand					0x0026
#define	chrApostrophe					0x0027
#define	chrLeftParenthesis			0x0028
#define	chrRightParenthesis			0x0029
#define	chrAsterisk						0x002A
#define	chrPlusSign						0x002B
#define	chrComma							0x002C
#define	chrHyphenMinus					0x002D
#define	chrFullStop						0x002E
#define	chrSolidus						0x002F
#define	chrDigitZero					0x0030
#define	chrDigitOne						0x0031
#define	chrDigitTwo						0x0032
#define	chrDigitThree					0x0033
#define	chrDigitFour					0x0034
#define	chrDigitFive					0x0035
#define	chrDigitSix						0x0036
#define	chrDigitSeven					0x0037
#define	chrDigitEight					0x0038
#define	chrDigitNine					0x0039
#define	chrColon							0x003A
#define	chrSemicolon					0x003B
#define	chrLessThanSign				0x003C
#define	chrEqualsSign					0x003D
#define	chrGreaterThanSign			0x003E
#define	chrQuestionMark				0x003F
#define	chrCommercialAt				0x0040
#define	chrCapital_A					0x0041
#define	chrCapital_B					0x0042
#define	chrCapital_C					0x0043
#define	chrCapital_D					0x0044
#define	chrCapital_E					0x0045
#define	chrCapital_F					0x0046
#define	chrCapital_G					0x0047
#define	chrCapital_H					0x0048
#define	chrCapital_I					0x0049
#define	chrCapital_J					0x004A
#define	chrCapital_K					0x004B
#define	chrCapital_L					0x004C
#define	chrCapital_M					0x004D
#define	chrCapital_N					0x004E
#define	chrCapital_O					0x004F
#define	chrCapital_P					0x0050
#define	chrCapital_Q					0x0051
#define	chrCapital_R					0x0052
#define	chrCapital_S					0x0053
#define	chrCapital_T					0x0054
#define	chrCapital_U					0x0055
#define	chrCapital_V					0x0056
#define	chrCapital_W					0x0057
#define	chrCapital_X					0x0058
#define	chrCapital_Y					0x0059
#define	chrCapital_Z					0x005A
#define	chrLeftSquareBracket			0x005B
// #define	chrReverseSolidus			0x005C (not in Japanese fonts)
#define	chrRightSquareBracket		0x005D
#define	chrCircumflexAccent			0x005E
#define	chrLowLine						0x005F
#define	chrGraveAccent					0x0060
#define	chrSmall_A						0x0061
#define	chrSmall_B						0x0062
#define	chrSmall_C						0x0063
#define	chrSmall_D						0x0064
#define	chrSmall_E						0x0065
#define	chrSmall_F						0x0066
#define	chrSmall_G						0x0067
#define	chrSmall_H						0x0068
#define	chrSmall_I						0x0069
#define	chrSmall_J						0x006A
#define	chrSmall_K						0x006B
#define	chrSmall_L						0x006C
#define	chrSmall_M						0x006D
#define	chrSmall_N						0x006E
#define	chrSmall_O						0x006F
#define	chrSmall_P						0x0070
#define	chrSmall_Q						0x0071
#define	chrSmall_R						0x0072
#define	chrSmall_S						0x0073
#define	chrSmall_T						0x0074
#define	chrSmall_U						0x0075
#define	chrSmall_V						0x0076
#define	chrSmall_W						0x0077
#define	chrSmall_X						0x0078
#define	chrSmall_Y						0x0079
#define	chrSmall_Z						0x007A
#define	chrLeftCurlyBracket			0x007B
#define	chrVerticalLine				0x007C
#define	chrRightCurlyBracket			0x007D
#define	chrTilde							0x007E
#define	chrDelete						0x007F


// Special meanings given to characters by the PalmOS
#define	vchrPageUp					chrVerticalTabulation		// 0x000B
#define	vchrPageDown				chrFormFeed						// 0x000C
#define	chrOtaSecure				chrDeviceControlFour			// 0x0014
#define	chrOta						chrNegativeAcknowledge		// 0x0015
#define	chrCommandStroke			chrSynchronousIdle			// 0x0016
#define	chrShortcutStroke			chrEndOfTransmissionBlock	// 0x0017
#define	chrEllipsis					chrCancel						// 0x0018
#define	chrNumericSpace			chrEndOfMedium					// 0x0019
#define	chrLeftArrow				chrFileSeparator				// 0x001C
#define	chrRightArrow				chrGroupSeparator				// 0x001D
#define	chrUpArrow					chrRecordSeparator			// 0x001E
#define	chrDownArrow				chrUnitSeparator				// 0x001F


//  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.
#define	vchrLowBattery				0x0101		// Display low battery dialog
#define	vchrEnterDebugger			0x0102		// Enter Debugger
#define	vchrNextField				0x0103		// Go to next field in form
#define	vchrStartConsole			0x0104		// Startup console task
#define	vchrMenu						0x0105		// Ctl-A
#define	vchrCommand					0x0106		// Ctl-C
#define	vchrConfirm					0x0107		// Ctl-D
#define	vchrLaunch					0x0108		// Ctl-E
#define	vchrKeyboard				0x0109		// Ctl-F popup the keyboard in appropriate mode
#define	vchrFind						0x010A
#define	vchrCalc						0x010B
#define	vchrPrevField				0x010C
#define	vchrAlarm					0x010D		// sent before displaying an alarm
#define	vchrRonamatic				0x010E		// stroke from graffiti area to top half of screen
#define	vchrGraffitiReference	0x010F		// popup the Graffiti reference
#define	vchrKeyboardAlpha			0x0110		// popup the keyboard in alpha mode
#define	vchrKeyboardNumeric		0x0111		// popup the keyboard in number mode
#define	vchrLock						0x0112		// switch to the Security app and lock the device
#define	vchrBacklight				0x0113		// toggle state of backlight
#define	vchrAutoOff					0x0114		// power off due to inactivity timer
// Added for PalmOS 3.0
#define	vchrExgTest					0x0115		// put exchange Manager into test mode (&.t)
#define	vchrSendData				0x0116		// Send data if possible
#define	vchrIrReceive				0x0117		// Initiate an Ir receive manually (&.i)
// Added for PalmOS 3.1
#define	vchrTsm1						0x0118		// Text Services silk-screen button
#define	vchrTsm2						0x0119		// Text Services silk-screen button
#define	vchrTsm3						0x011A		// Text Services silk-screen button
#define	vchrTsm4						0x011B		// Text Services silk-screen button	
// Added for PalmOS 3.2
#define	vchrRadioCoverageOK		0x011C		// Radio coverage check successful
#define	vchrRadioCoverageFail	0x011D		// Radio coverage check failure
#define	vchrPowerOff				0x011E		// Posted after autoOffChr or hardPowerChr
															// to put system to sleep with SysSleep.
// Added for PalmOS 3.5
#define	vchrResumeSleep			0x011F		// Posted by NotifyMgr clients after they
															// have deferred a sleep request in order 
															// to resume it.
#define	vchrLateWakeup				0x0120		// Posted by the system after waking up
															// to broadcast a late wakeup notification.
															// FOR SYSTEM USE ONLY
#define	vchrTsmMode					0x0121		// Posted by TSM to trigger mode change.
#define	vchrBrightness				0x0122		// Activates brightness adjust dialog
#define	vchrContrast				0x0123		// Activates contrast adjust dialog
#define  vchrExgIntData				0x01FF		// Exchange Manager wakeup event

// The application launching buttons generate the following
// key codes and will also set the commandKeyMask bit in the 
// modifiers field
#define	vchrHardKeyMin				0x0200
#define	vchrHardKeyMax				0x02FF			// 256 hard keys

#define	vchrHard1					0x0204
#define	vchrHard2					0x0205
#define	vchrHard3					0x0206
#define	vchrHard4					0x0207
#define	vchrHardPower				0x0208
#define	vchrHardCradle				0x0209			// Button on cradle pressed
#define	vchrHardCradle2			0x020A			// Button on cradle pressed and hwrDockInGeneric1
																// input on dock asserted (low).
#define	vchrHardContrast			0x020B			// Sumo's Contrast button
#define	vchrHardAntenna			0x020C			// Eleven's Antenna switch
#define	vchrHardBrightness		0x020D			// Hypothetical Brightness 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
#define	vchrThumperMin				0x0300
#define	vchrThumperMax				0x03FF			// 256 command keys

//		Motorola
#define	vchrCessnaMin				0x14CD
#define	vchrCessnaMax				0x14CD			//   1 command key

//		TRG
#define	vchrCFlashMin				0x1500
#define	vchrCFlashMax				0x150F			//   16 command keys

//		Symbol
#define	vchrSPTMin					0x15A0
#define	vchrSPTMax					0x15AF			//  16 command keys

//		Handspring
#define	vchrSlinkyMin				0x1600
#define	vchrSlinkyMax				0x16FF			// 256 command keys



// Old names for some of the characters.
#define	nullChr						chrNull							// 0x0000
#define	backspaceChr				chrBackspace					// 0x0008
#define	tabChr						chrHorizontalTabulation		// 0x0009
#define	linefeedChr					chrLineFeed						// 0x000A
#define	pageUpChr					vchrPageUp						// 0x000B
#define	chrPageUp					vchrPageUp						// 0x000B
#define	pageDownChr					vchrPageDown					// 0x000C
#define	chrPageDown					vchrPageDown					// 0x000C
#define	crChr							chrCarriageReturn				// 0x000D
#define	returnChr					chrCarriageReturn				// 0x000D
#define	otaSecureChr				chrOtaSecure					// 0x0014
#define	otaChr						chrOta							// 0x0015

#define	escapeChr					chrEscape						// 0x001B
#define	leftArrowChr				chrLeftArrow					// 0x001C
#define	rightArrowChr				chrRightArrow					// 0x001D
#define	upArrowChr					chrUpArrow						// 0x001E
#define	downArrowChr				chrDownArrow					// 0x001F
#define	spaceChr						chrSpace							// 0x0020
#define	quoteChr						chrQuotationMark				// 0x0022 '"'
#define	commaChr						chrComma							// 0x002C ','
#define	periodChr					chrFullStop						// 0x002E '.'
#define	colonChr						chrColon							// 0x003A ':'
#define	lowBatteryChr				vchrLowBattery					// 0x0101
#define	enterDebuggerChr			vchrEnterDebugger				// 0x0102
#define	nextFieldChr				vchrNextField					// 0x0103
#define	startConsoleChr			vchrStartConsole				// 0x0104
#define	menuChr						vchrMenu							// 0x0105
#define	commandChr					vchrCommand						// 0x0106
#define	confirmChr					vchrConfirm						// 0x0107
#define	launchChr					vchrLaunch						// 0x0108
#define	keyboardChr					vchrKeyboard					// 0x0109
#define	findChr						vchrFind							// 0x010A
#define	calcChr						vchrCalc							// 0x010B
#define	prevFieldChr				vchrPrevField					// 0x010C
#define	alarmChr						vchrAlarm						// 0x010D
#define	ronamaticChr				vchrRonamatic					// 0x010E
#define	graffitiReferenceChr		vchrGraffitiReference		// 0x010F
#define	keyboardAlphaChr			vchrKeyboardAlpha				// 0x0110
#define	keyboardNumericChr		vchrKeyboardNumeric			// 0x0111
#define	lockChr						vchrLock							// 0x0112
#define	backlightChr				vchrBacklight					// 0x0113
#define	autoOffChr					vchrAutoOff						// 0x0114
#define	exgTestChr					vchrExgTest						// 0x0115
#define	sendDataChr					vchrSendData					// 0x0116
#define	irReceiveChr				vchrIrReceive					// 0x0117
#define	radioCoverageOKChr		vchrRadioCoverageOK			// 0x011C
#define	radioCoverageFailChr		vchrRadioCoverageFail		// 0x011D
#define	powerOffChr					vchrPowerOff					// 0x011E
#define	resumeSleepChr				vchrResumeSleep				// 0x011F
#define	lateWakeupChr				vchrLateWakeup					// 0x0120
#define	brightnessChr				vchrBrightness					// 0x0121
#define	contrastChr					vchrContrast					// 0x0122
#define	hardKeyMin					vchrHardKeyMin					// 0x0200
#define	hardKeyMax					vchrHardKeyMax					// 0x02FF
#define	hard1Chr						vchrHard1						// 0x0204
#define	hard2Chr						vchrHard2						// 0x0205
#define	hard3Chr						vchrHard3						// 0x0206
#define	hard4Chr						vchrHard4						// 0x0207
#define	hardPowerChr				vchrHardPower					// 0x0208
#define	hardCradleChr				vchrHardCradle					// 0x0209
#define	hardCradle2Chr				vchrHardCradle2				// 0x020A
#define	hardContrastChr			vchrHardContrast				// 0x020B
#define	hardAntennaChr				vchrHardAntenna				// 0x020C
#define	hardBrightnessChr			vchrHardBrightness			// 0x020D

// 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
enum symbolChars {
	symbolLeftArrow = 3,
	symbolRightArrow,
	symbolUpArrow,
	symbolDownArrow,
	symbolSmallDownArrow,
	symbolSmallUpArrow,
	symbolMemo = 9,
	symbolHelp,
	symbolNote,
	symbolNoteSelected,
	symbolCapsLock,
	symbolNumLock,
	symbolShiftUpper,
	symbolShiftPunc,
	symbolShiftExt,
	symbolShiftNone,
	symbolNoTime,
	symbolAlarm,
	symbolRepeat,
	symbolCheckMark,
	// 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,
	symbolClubChr,
	symbolHeartChr,
	symbolSpadeChr
	};

// Character in the 7 point symbol font.  Resource ID 9005
enum symbol7Chars {
	symbol7ScrollUp = 1,
	symbol7ScrollDown,
	symbol7ScrollUpDisabled,
	symbol7ScrollDownDisabled
	};

//	Characters in the 11 point symbol font.  Resource ID 9004
enum symbol11Chars {
	symbolCheckboxOff = 0,
	symbolCheckboxOn,
	symbol11LeftArrow,
	symbol11RightArrow,
	symbol11LeftArrowDisabled,		// New for Palm OS v3.2
	symbol11RightArrowDisabled		// New for Palm OS v3.2
	};


#endif // __CHARS_H__