home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Developer CD v1.2
/
amidev_cd_12.iso
/
reference
/
amiga_mail_vol2
/
xi-25
/
appkeymap.h
< prev
next >
Wrap
C/C++ Source or Header
|
1996-01-30
|
2KB
|
73 lines
#define UP_KEY 0x4C /* Raw keys which are the same on all keyboards */
#define DOWN_KEY 0x4D
#define RIGHT_KEY 0x4E
#define LEFT_KEY 0x4F
#define F1_KEY 0x50
#define F2_KEY 0x51
#define F3_KEY 0x52
#define F4_KEY 0x53
#define F5_KEY 0x54
#define F6_KEY 0x55
#define F7_KEY 0x56
#define F8_KEY 0x57
#define F9_KEY 0x58
#define F10_KEY 0x59
#define N0_KEY 0x0F
#define N1_KEY 0x1D
#define N2_KEY 0x1E
#define N3_KEY 0x1F
#define N4_KEY 0x2D
#define N5_KEY 0x2E
#define N6_KEY 0x2F
#define N7_KEY 0x3D
#define N8_KEY 0x3E
#define N9_KEY 0x3F
#define NPERIOD_KEY 0x3C
#define NOPAREN_KEY 0x5A
#define NCPAREN_KEY 0x5B
#define NSLASH_KEY 0x5C
#define NASTER_KEY 0x5D
#define NMINUS_KEY 0x4A
#define NPLUS_KEY 0x5E
#define NENTER_KEY 0x43
/* Sizes of the "Lo" and "Hi" KeyMap tables */
#define LO_MAP_SIZE 64 /* Notice that the Lo and Hi tables are NOT the same */
#define HI_MAP_SIZE 56 /* size! The Lo tables have eight more entries than */
#define LO_TYPE_SIZE 64 /* the Hi tables. The RKM is incorrect in saying */
#define HI_TYPE_SIZE 56 /* that the Lo and Hi tables are the same size. */
#define LO_CAPS_SIZE 8 /* 8 bytes x 8 bits-per-byte = */
#define HI_CAPS_SIZE 7 /* 7 bytes x 8 bits-per-byte = */
#define LO_REPS_SIZE 8 /* 64 bit-wide entries. */
#define HI_REPS_SIZE 7 /* 56 bit-wide entries. */
void AlterAppKeyMap (struct KeyMap *,
struct MyKey *,
UWORD);
struct KeyMap *CreateAppKeyMap (struct KeyMap *);
void DeleteAppKeyMap (struct KeyMap *);
UBYTE FindMaxDeadKey(struct KeyMap *);
struct MyKey /* AlterAppKeyMap() expects an array of MyKey structures. */
/* This structure contains all the information needed to */
/* redefine a key mapping. */
{
UBYTE RawCode;
UBYTE MapType; /* Qualifier flags and key type. */
UBYTE Capsable; /* Is this key Capsable? */
UBYTE Repeatable; /* Is this key Repeatable? */
ULONG Map; /* This field either points to some key data or */
}; /* contains a four-byte table of ANSI values. */
struct KeyMapArrays /* We allocate each Lo and Hi table pair as a single array */
{
ULONG LHKeyMap[LO_MAP_SIZE << 1];
UBYTE LHKeyMapTypes[LO_TYPE_SIZE << 1];
UBYTE LHCapsable[LO_CAPS_SIZE << 1];
UBYTE LHRepeatable[LO_REPS_SIZE << 1];
};