#ifndef DEVICES_KEYMAP_H #define DEVICES_KEYMAP_H /* ** $Filename: devices/keymap.h $ ** $Release: 2.04 Includes, V37.4 $ ** $Revision: 36.3 $ ** $Date: 90/04/13 $ ** ** key map definitions for keymap.resource, keymap.library, and ** console.device ** ** (C) Copyright 1985-1999 Amiga, Inc. ** All Rights Reserved */ #ifndef EXEC_NODES_H #include "exec/nodes.h" #endif #ifndef EXEC_LISTS_H #include "exec/lists.h" #endif struct KeyMap { UBYTE *km_LoKeyMapTypes; ULONG *km_LoKeyMap; UBYTE *km_LoCapsable; UBYTE *km_LoRepeatable; UBYTE *km_HiKeyMapTypes; ULONG *km_HiKeyMap; UBYTE *km_HiCapsable; UBYTE *km_HiRepeatable; }; struct KeyMapNode { struct Node kn_Node; /* including name of keymap */ struct KeyMap kn_KeyMap; }; /* the structure of keymap.resource */ struct KeyMapResource { struct Node kr_Node; struct List kr_List; /* a list of KeyMapNodes */ }; /* Key Map Types */ #define KC_NOQUAL 0 #define KC_VANILLA 7 /* note that SHIFT+ALT+CTRL is VANILLA */ #define KCB_SHIFT 0 #define KCF_SHIFT 0x01 #define KCB_ALT 1 #define KCF_ALT 0x02 #define KCB_CONTROL 2 #define KCF_CONTROL 0x04 #define KCB_DOWNUP 3 #define KCF_DOWNUP 0x08 #define KCB_DEAD 5 /* may be dead or modified by dead key: */ #define KCF_DEAD 0x20 /* use dead prefix bytes */ #define KCB_STRING 6 #define KCF_STRING 0x40 #define KCB_NOP 7 #define KCF_NOP 0x80 /* Dead Prefix Bytes */ #define DPB_MOD 0 #define DPF_MOD 0x01 #define DPB_DEAD 3 #define DPF_DEAD 0x08 #define DP_2DINDEXMASK 0x0f /* mask for index for 1st of two dead keys */ #define DP_2DFACSHIFT 4 /* shift for factor for 1st of two dead keys */ #endif /* DEVICES_KEYMAP_H */