home *** CD-ROM | disk | FTP | other *** search
/ Global Amiga Experience / globalamigaexperience.iso / compressed / development / clusterdemo.dms / clusterdemo.adf / Modules.lha / modules / txt / GfxInput.def < prev    next >
Text File  |  1994-05-25  |  8KB  |  152 lines

  1. |##########|
  2. |#MAGIC   #|CLABLMGI
  3. |#PROJECT #|""
  4. |#PATHS   #|"StdProject"
  5. |#FLAGS   #|xx---x--x---xxx-----------------
  6. |#USERSW  #|--------------------------------
  7. |#USERMASK#|--------------------------------
  8. |#SWITCHES#|xx---xxxxx------
  9. |##########|
  10. DEFINITION MODULE GfxInput;
  11.  
  12. FROM GfxScreen IMPORT Screen;
  13.  
  14. TYPE
  15.  
  16. (*----------------------------------------------------------------------------*
  17.  * UserActions : mögliche Eingaben des Benutzers                              *
  18.  *   - userKey   : Tastendruck                                                *
  19.  *   - userMouse : Mausknopfdruck                                             *
  20.  * UserAct     : Menge der Möglichen Eingaben                                 *
  21.  *                                                                            *
  22.  * KeyTypes    : Qualifizierung von Tasten                                    *
  23.  *   - S...      : zusammen mit Shift                                         *
  24.  *   - A...      : zusammen mit Alt                                           *
  25.  *   - C...      : zusammen mit Control                                       *
  26.  *   - M...      : zusammen mit Amiga                                         *
  27.  *----------------------------------------------------------------------------*)
  28.  
  29.  
  30.   UserActions  = (userKey,userMouse);
  31.   UserAct      = SET OF UserActions;
  32.   KeyTypes     = (KeyReturn,KeyBackspace,KeyDelete,KeyTab,KeyHelp,KeyEsc,
  33.                   KeyCsrUp,KeyCsrDown,KeyCsrLeft,KeyCsrRight,
  34.                   KeyF1,KeyF2,KeyF3,KeyF4,KeyF5,
  35.                   KeyF6,KeyF7,KeyF8,KeyF9,KeyF10,
  36.                   SKeyReturn,SKeyBackspace,SKeyDelete,SKeyTab,SKeyHelp,SKeyEsc,
  37.                   SKeyCsrUp,SKeyCsrDown,SKeyCsrLeft,SKeyCsrRight,
  38.                   SKeyF1,SKeyF2,SKeyF3,SKeyF4,SKeyF5,
  39.                   SKeyF6,SKeyF7,SKeyF8,SKeyF9,SKeyF10,
  40.                   AKeyReturn,AKeyBackspace,AKeyDelete,AKeyTab,AKeyHelp,AKeyEsc,
  41.                   AKeyCsrUp,AKeyCsrDown,AKeyCsrLeft,AKeyCsrRight,
  42.                   AKeyF1,AKeyF2,AKeyF3,AKeyF4,AKeyF5,
  43.                   AKeyF6,AKeyF7,AKeyF8,AKeyF9,AKeyF10,
  44.                   CKeyReturn,CKeyBackspace,CKeyDelete,CKeyTab,CKeyHelp,CKeyEsc,
  45.                   CKeyCsrUp,CKeyCsrDown,CKeyCsrLeft,CKeyCsrRight,
  46.                   CKeyF1,CKeyF2,CKeyF3,CKeyF4,CKeyF5,
  47.                   CKeyF6,CKeyF7,CKeyF8,CKeyF9,CKeyF10,
  48.                   MKeyReturn,MKeyBackspace,MKeyDelete,MKeyTab,MKeyHelp,MKeyEsc,
  49.                   MKeyCsrUp,MKeyCsrDown,MKeyCsrLeft,MKeyCsrRight,
  50.                   MKeyF1,MKeyF2,MKeyF3,MKeyF4,MKeyF5,
  51.                   MKeyF6,MKeyF7,MKeyF8,MKeyF9,MKeyF10,
  52.                   NoKey,NormalKey);
  53.  
  54.  
  55. (*----------------------------------------------------------------------------*
  56.  * AUFGABE     : Wartet, bis eine der angegebenen Eingaben getätigt wurde     *
  57.  * PARAMETER   : s     <= Screen, von der die Eingabe erwartet wird           *
  58.  *               act   <= Eingaben, auf die gewartet werden soll              *
  59.  * BEMERKUNGEN : Ist die Eingabe bereits geschehe, kehrt das Programm sofort  *
  60.  *               zurück. Die Eingabe wird nicht gelöscht.                     *
  61.  *----------------------------------------------------------------------------*)
  62.  
  63. PROCEDURE WaitUser(s : Screen;act : UserAct);
  64.  
  65. (*----------------------------------------------------------------------------*
  66.  * AUFGABE     : Prüft, ob eine der angegebenen Eingaben getätigt wurde       *
  67.  * PARAMETER   : s     <= Screen, dessen Eingaben geprüft werden soll         *
  68.  *               act   <= Mögliche Aktionen                                   *
  69.  * BEMERKUNGEN : --                                                           *
  70.  *----------------------------------------------------------------------------*)
  71.  
  72. PROCEDURE CheckUser(s : Screen;act : UserAct):BOOLEAN;
  73.  
  74. (*----------------------------------------------------------------------------*
  75.  * AUFGABE     : Stellt fest, von welcher Art die letzte Eingabe war          *
  76.  * PARAMETER   : s     <= Screen, dessen Eingaben geprüft werden sollen       *
  77.  *                     => Eine der getätigten Eingaben                        *
  78.  * BEMERKUNGEN : Liegen mehrere Eingaben an, wird nur eine zurückgeliefert    *
  79.  *----------------------------------------------------------------------------*)
  80.  
  81. PROCEDURE LastAction(s : Screen):UserActions;
  82.  
  83.  
  84. (*----------------------------------------------------------------------------*
  85.  * AUFGABE     : Liest einen Tastendruck von der Tastatur ein                 *
  86.  * PARAMETER   : s     <= Screen, auf dem die Taste gedrückt wird             *
  87.  *               c     => ASCII-Code der Taste                                *
  88.  * BEMERKUNGEN : Wartet, bis eine Taste gedrückt, falls vorher noch keine     *
  89.  *               gedrückt war.                                                *
  90.  *----------------------------------------------------------------------------*)
  91.  
  92. PROCEDURE GetKey(s : Screen;VAR c : CHAR);
  93.  
  94. (*----------------------------------------------------------------------------*
  95.  * AUFGABE     : Liest einen Tastendruck von der Tastatur ein                 *
  96.  * PARAMETER   : s     <= Screen, auf dem die Taste gedrückt wird             *
  97.  *               type  => Art der Taste die gerückt wurde                     *
  98.  *               code  => ASCII-Code der Taste, falls vorhanden               *
  99.  * BEMERKUNGEN : Wartet, bis eine Taste gedrückt wird, falls vorher noch      *
  100.  *               keine gedrückt war                                           *
  101.  *----------------------------------------------------------------------------*)
  102.  
  103. PROCEDURE GetExtKey(s : Screen;VAR type : KeyTypes;
  104.                                VAR code : CHAR);
  105.  
  106.  
  107. (*----------------------------------------------------------------------------*
  108.  * AUFGABE     : Liest die aktuelle Position der Maus ein                     *
  109.  * PARAMETER   : s     <= Screen, bei der die Mausposition abgefragt werden   *
  110.  *                        soll                                                *
  111.  *               x,y   => aktuelle Mauskoordinaten                            *
  112.  * BEMERKUNGEN : --                                                           *
  113.  *----------------------------------------------------------------------------*)
  114.  
  115. PROCEDURE GetMousePos(s : Screen;VAR x,y : INTEGER);
  116.  
  117. (*----------------------------------------------------------------------------*
  118.  * AUFGABE     : Stellt fest, ob der linke Mausknopf gerade gedrückt ist      *
  119.  * PARAMETER   : s     <= Screen, die überprüft werden soll                   *
  120.  *                     => TRUE, falls gedrückt                                *
  121.  * BEMERKUNGEN : --                                                           *
  122.  *----------------------------------------------------------------------------*)
  123.  
  124. PROCEDURE MousePressed(s : Screen):BOOLEAN;
  125.  
  126. (*----------------------------------------------------------------------------*
  127.  * AUFGABE     : Holt die Position des letzten Mausklicks                     *
  128.  * PARAMETER   : s     <= Screen, auf der der Klick stattfand                 *
  129.  *               x,y   => Position des Klicks                                 *
  130.  * BEMERKUNGEN : Hat noch kein Klick stattgefunden, wartet die Routine, bis   *
  131.  *               geklickt wird.                                               *
  132.  *----------------------------------------------------------------------------*)
  133.  
  134. PROCEDURE MouseClick(s : Screen;VAR x,y : INTEGER);
  135.  
  136. (*----------------------------------------------------------------------------*
  137.  * AUFGABE     : Stellt fest, ob der letzte Klick ein Doppelklick war         *
  138.  * PARAMETER   : s     <= Screen, auf der der Klick stattfand                 *
  139.  *                     => TRUE, falls es ein Doppelklick war                  *
  140.  * BEMERKUNGEN : --                                                           *
  141.  *----------------------------------------------------------------------------*)
  142.  
  143. PROCEDURE WasDouble(s : Screen):BOOLEAN;
  144.  
  145.  
  146. GROUP
  147.   All  =  UserActions,UserAct,KeyTypes,WaitUser,CheckUser,LastAction,GetKey,
  148.           GetExtKey,GetMousePos,MousePressed,MouseClick,WasDouble;
  149.  
  150. END GfxInput.
  151.  
  152.