home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / DC-POS24.LZX / pOS / IncPOS.lzx / Device / Keymap.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-03-18  |  2.2 KB  |  94 lines

  1. #ifndef __INC_POS_DEVICE_KEYMAP_H
  2. #define __INC_POS_DEVICE_KEYMAP_H
  3. /*******************************************************************
  4.  Includes Release 24
  5.  (C) Copyright 1995-1997 proDAD
  6.      All Rights Reserved
  7.  
  8.  $AUT Holger Burkarth
  9.  $DAT >>Keymap.h<<   19 Nov 1996    11:22:05 - (C) ProDAD
  10. *******************************************************************/
  11. #ifndef __INC_POS_PEXEC_LIST_H
  12. #include <pExec/List.h>
  13. #endif
  14.  
  15.  
  16. /*----------------------------------
  17. -----------------------------------*/
  18. struct pOS_KeyMap
  19. {
  20.   UBYTE *km_LoKeyMapTypes;  /* (enum pOS_KeyMapTypes) */
  21.   ULONG *km_LoKeyMap;
  22.   UBYTE *km_LoCapsable;
  23.   UBYTE *km_LoRepeatable;
  24.  
  25.   UBYTE *km_HiKeyMapTypes;  /* (enum pOS_KeyMapTypes) */
  26.   ULONG *km_HiKeyMap;
  27.   UBYTE *km_HiCapsable;
  28.   UBYTE *km_HiRepeatable;
  29.  
  30.   UWORD  km_Reserved;
  31.   SWORD  km_LoMapOffset;    /* normal =0x00 */
  32.   SWORD  km_HiMapOffset;    /* normal =0x40 */
  33.   UWORD  km_LoMapLen;       /* normal =0x40 */
  34.   UWORD  km_HiMapLen;       /* normal =0x28 */
  35. };
  36.  
  37.  
  38.  
  39. /*----------------------------------
  40. -----------------------------------*/
  41. struct pOS_KeyMapStrHeader
  42. {
  43.   UBYTE  kmsh_StrLen;    /* Len of string */
  44.   SBYTE  kmsh_Offset;    /* Offset to string */
  45. };
  46.  
  47. /*----------------------------------
  48. -----------------------------------*/
  49. struct pOS_KeyMapDeadHeader
  50. {
  51.   UBYTE  kmdh_Type;      /* 0 | DPF_MOD | DPF_DEAD  */
  52.   union {
  53.     UBYTE  kmdh_Char;    /* Type==0  */
  54.     SBYTE  kmdh_ModData; /* Type==DPF_MOD  */
  55.   } kmdh_U;
  56. };
  57.  
  58.  
  59.  
  60. /*----------------------------------
  61. -----------------------------------*/
  62. struct pOS_KeyMapNode
  63. {
  64.   struct pOS_ExNode kn_Node;    /* ln_Name => name of keymap */
  65.   struct pOS_KeyMap kn_KeyMap;
  66. };
  67.  
  68.  
  69.  
  70. enum pOS_KeyMapTypes
  71. {
  72.   KC_NOQUAL=      0x00,
  73.   KC_VANILLA=     0x07,  /* note that SHIFT+ALT+CTRL is VANILLA */
  74.  
  75.   KCF_SHIFT=      0x01,
  76.   KCF_ALT=        0x02,
  77.   KCF_CONTROL=    0x04,
  78.   KCF_DOWNUP=     0x08,
  79.  
  80.   KCF_DEAD=       0x20,  /*   use dead prefix bytes */
  81.   KCF_STRING=     0x40,
  82.   KCF_NOP=        0x80,
  83.  
  84.  
  85. /* Dead Prefix Bytes */
  86.   DPF_MOD=        0x01,
  87.   DPF_DEAD=       0x08,
  88.  
  89.   DP_2DINDEXMASK= 0x0f,  /* mask for index for 1st of two dead keys */
  90.   DP_2DFACSHIFT=  0x04,  /* shift for factor for 1st of two dead keys */
  91. };
  92.  
  93. #endif
  94.