home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Misc / MODULAV2GERMAN.DMS / in.adf / Def.zoo / KeyMap.def < prev    next >
Encoding:
Modula Definition  |  1988-11-06  |  1.1 KB  |  57 lines

  1. (* $M- *)
  2. DEFINITION MODULE KeyMap;
  3.  
  4. FROM SYSTEM IMPORT
  5.  ADDRESS,LONGSET;
  6. FROM Exec IMPORT
  7.  Node,List;
  8.  
  9. TYPE  
  10.  KeyMapTypes=(shift,alt,control,downup,kmp4,dead,string,nop);
  11.  KeyMapTypeSet=SET OF KeyMapTypes;
  12.  DeadPrefixBytes=(dpbMod,dpb1,dpb2,dpbDead);
  13.  DeadPrefixByteSet=SET OF DeadPrefixBytes;
  14.  
  15. CONST
  16.  dp2dIndexMask=0FH;
  17.  dp2dFacShift=4;
  18.  maxKeys=64;
  19.  noQual=KeyMapTypeSet{};
  20.  vanilla=KeyMapTypeSet{shift,alt,control};
  21.  
  22. TYPE
  23.  BitTable=
  24.   ARRAY [0..maxKeys DIV (8*SIZE(LONGSET))-1] OF LONGSET;
  25.  BitTablePtr=POINTER TO BitTable;
  26.  KeyInfo=RECORD
  27.   CASE :INTEGER OF
  28.   | 0: ch:ARRAY [0..3] OF CHAR;
  29.   | 1: st:ADDRESS
  30.   END
  31.  END;
  32.  Types=ARRAY [0..maxKeys-1] OF KeyMapTypeSet;
  33.  TypesPtr=POINTER TO Types;
  34.  Info=ARRAY [0..maxKeys-1] OF KeyInfo;
  35.  InfoPtr=POINTER TO Info;
  36.  KeyMap=RECORD
  37.   loKeyMapTypes:TypesPtr;
  38.   loKeyMap:InfoPtr;
  39.   loCapsable:BitTablePtr;
  40.   loRepeatable:BitTablePtr;
  41.   hiKeyMapTypes:TypesPtr;
  42.   hiKeyMap:InfoPtr;
  43.   hiCapsable:BitTablePtr;
  44.   hiRepeatable:BitTablePtr;
  45.  END;
  46.  KeyMapPtr=POINTER TO KeyMap;
  47.  KeyMapNode=RECORD
  48.   node:Node;
  49.   keyMap:KeyMap;
  50.  END;
  51.  KeyMapResource=RECORD
  52.   node:Node;
  53.   list:List;
  54.  END;
  55.  
  56. END KeyMap.
  57.