home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Misc / OB3.2D3.DMS / in.adf / Interfaces / KeyMap.mod < prev    next >
Encoding:
Text File  |  1992-11-02  |  2.3 KB  |  67 lines

  1. (*-------------------------------------------------------------------------*)
  2. (*                                                                         *)
  3. (*  Amiga Oberon Interface Module:                    Date: 02-Nov-92      *)
  4. (*                                                                         *)
  5. (*   © 1992 by Fridtjof Siebert                                            *)
  6. (*                                                                         *)
  7. (*-------------------------------------------------------------------------*)
  8.  
  9. MODULE KeyMap;                                         (* $Implementation- *)
  10.  
  11. IMPORT e  * := Exec,
  12.        ie * := InputEvent;
  13.  
  14. TYPE
  15.  
  16.   KeyMapPtr * = UNTRACED POINTER TO KeyMap;
  17.   KeyMap * = STRUCT
  18.     loKeyMapTypes * : UNTRACED POINTER TO ARRAY 64 OF SHORTSET;
  19.     loKeyMap      * : UNTRACED POINTER TO ARRAY 64 OF LONGINT;   (* or: ... OF ARRAY 4 OF CHAR; *)
  20.     loCapsable    * : UNTRACED POINTER TO ARRAY  8 OF SHORTSET;
  21.     loRepeatable  * : UNTRACED POINTER TO ARRAY  8 OF SHORTSET;
  22.     hiKeyMapTypes * : UNTRACED POINTER TO ARRAY 64 OF SHORTSET;
  23.     hiKeyMap      * : UNTRACED POINTER TO ARRAY 64 OF LONGINT;   (* or: ... OF ARRAY 4 OF CHAR; *)
  24.     hiCapsable    * : UNTRACED POINTER TO ARRAY  8 OF SHORTSET;
  25.     hiRepeatable  * : UNTRACED POINTER TO ARRAY  8 OF SHORTSET;
  26.   END;
  27.  
  28.   KeyMapNodePtr * = UNTRACED POINTER TO KeyMapNode;
  29.   KeyMapNode * = STRUCT (node * : e.Node) (* including name of keymap *)
  30.     keyMap * : KeyMap;
  31.   END;
  32.  
  33.  
  34. (* the structure of keymap.resource *)
  35.   KeyMapResourcePtr * = UNTRACED POINTER TO KeyMapResource;
  36.   KeyMapResource * = STRUCT (node * : e.Node)
  37.     list * : e.List;        (* a list of KeyMapNodes *)
  38.   END;
  39.  
  40. CONST
  41.  
  42. (* Key Map Types *)
  43.   shift   * = 0;
  44.   alt     * = 1;
  45.   control * = 2;
  46.   downup  * = 3;
  47.  
  48.   dead    * = 5;          (* may be dead or modified by dead key: *)
  49.                           (*   use dead prefix bytes              *)
  50.   string  * = 6;
  51.  
  52.   nop     * = 7;
  53.  
  54.   noQual  * = SHORTSET{};
  55.   vanilla * = -SHORTSET{shift,alt,control};   (* note that SHIFT+ALT+CTRL is VANILLA *)
  56.  
  57. (* Dead Prefix Bytes *)
  58.   dpbMod          * = 0;
  59.   dpbDead         * = 3;
  60.  
  61.   dp2dIndexMask   * = 00FH;   (* mask for index for 1st of two dead keys *)
  62.   dp2dFacShift    * = 4;      (* shift for factor for 1st of two dead keys *)
  63.  
  64.  
  65. END KeyMap.
  66.  
  67.