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 >
Wrap
Text File
|
1994-05-25
|
8KB
|
152 lines
|##########|
|#MAGIC #|CLABLMGI
|#PROJECT #|""
|#PATHS #|"StdProject"
|#FLAGS #|xx---x--x---xxx-----------------
|#USERSW #|--------------------------------
|#USERMASK#|--------------------------------
|#SWITCHES#|xx---xxxxx------
|##########|
DEFINITION MODULE GfxInput;
FROM GfxScreen IMPORT Screen;
TYPE
(*----------------------------------------------------------------------------*
* UserActions : mögliche Eingaben des Benutzers *
* - userKey : Tastendruck *
* - userMouse : Mausknopfdruck *
* UserAct : Menge der Möglichen Eingaben *
* *
* KeyTypes : Qualifizierung von Tasten *
* - S... : zusammen mit Shift *
* - A... : zusammen mit Alt *
* - C... : zusammen mit Control *
* - M... : zusammen mit Amiga *
*----------------------------------------------------------------------------*)
UserActions = (userKey,userMouse);
UserAct = SET OF UserActions;
KeyTypes = (KeyReturn,KeyBackspace,KeyDelete,KeyTab,KeyHelp,KeyEsc,
KeyCsrUp,KeyCsrDown,KeyCsrLeft,KeyCsrRight,
KeyF1,KeyF2,KeyF3,KeyF4,KeyF5,
KeyF6,KeyF7,KeyF8,KeyF9,KeyF10,
SKeyReturn,SKeyBackspace,SKeyDelete,SKeyTab,SKeyHelp,SKeyEsc,
SKeyCsrUp,SKeyCsrDown,SKeyCsrLeft,SKeyCsrRight,
SKeyF1,SKeyF2,SKeyF3,SKeyF4,SKeyF5,
SKeyF6,SKeyF7,SKeyF8,SKeyF9,SKeyF10,
AKeyReturn,AKeyBackspace,AKeyDelete,AKeyTab,AKeyHelp,AKeyEsc,
AKeyCsrUp,AKeyCsrDown,AKeyCsrLeft,AKeyCsrRight,
AKeyF1,AKeyF2,AKeyF3,AKeyF4,AKeyF5,
AKeyF6,AKeyF7,AKeyF8,AKeyF9,AKeyF10,
CKeyReturn,CKeyBackspace,CKeyDelete,CKeyTab,CKeyHelp,CKeyEsc,
CKeyCsrUp,CKeyCsrDown,CKeyCsrLeft,CKeyCsrRight,
CKeyF1,CKeyF2,CKeyF3,CKeyF4,CKeyF5,
CKeyF6,CKeyF7,CKeyF8,CKeyF9,CKeyF10,
MKeyReturn,MKeyBackspace,MKeyDelete,MKeyTab,MKeyHelp,MKeyEsc,
MKeyCsrUp,MKeyCsrDown,MKeyCsrLeft,MKeyCsrRight,
MKeyF1,MKeyF2,MKeyF3,MKeyF4,MKeyF5,
MKeyF6,MKeyF7,MKeyF8,MKeyF9,MKeyF10,
NoKey,NormalKey);
(*----------------------------------------------------------------------------*
* AUFGABE : Wartet, bis eine der angegebenen Eingaben getätigt wurde *
* PARAMETER : s <= Screen, von der die Eingabe erwartet wird *
* act <= Eingaben, auf die gewartet werden soll *
* BEMERKUNGEN : Ist die Eingabe bereits geschehe, kehrt das Programm sofort *
* zurück. Die Eingabe wird nicht gelöscht. *
*----------------------------------------------------------------------------*)
PROCEDURE WaitUser(s : Screen;act : UserAct);
(*----------------------------------------------------------------------------*
* AUFGABE : Prüft, ob eine der angegebenen Eingaben getätigt wurde *
* PARAMETER : s <= Screen, dessen Eingaben geprüft werden soll *
* act <= Mögliche Aktionen *
* BEMERKUNGEN : -- *
*----------------------------------------------------------------------------*)
PROCEDURE CheckUser(s : Screen;act : UserAct):BOOLEAN;
(*----------------------------------------------------------------------------*
* AUFGABE : Stellt fest, von welcher Art die letzte Eingabe war *
* PARAMETER : s <= Screen, dessen Eingaben geprüft werden sollen *
* => Eine der getätigten Eingaben *
* BEMERKUNGEN : Liegen mehrere Eingaben an, wird nur eine zurückgeliefert *
*----------------------------------------------------------------------------*)
PROCEDURE LastAction(s : Screen):UserActions;
(*----------------------------------------------------------------------------*
* AUFGABE : Liest einen Tastendruck von der Tastatur ein *
* PARAMETER : s <= Screen, auf dem die Taste gedrückt wird *
* c => ASCII-Code der Taste *
* BEMERKUNGEN : Wartet, bis eine Taste gedrückt, falls vorher noch keine *
* gedrückt war. *
*----------------------------------------------------------------------------*)
PROCEDURE GetKey(s : Screen;VAR c : CHAR);
(*----------------------------------------------------------------------------*
* AUFGABE : Liest einen Tastendruck von der Tastatur ein *
* PARAMETER : s <= Screen, auf dem die Taste gedrückt wird *
* type => Art der Taste die gerückt wurde *
* code => ASCII-Code der Taste, falls vorhanden *
* BEMERKUNGEN : Wartet, bis eine Taste gedrückt wird, falls vorher noch *
* keine gedrückt war *
*----------------------------------------------------------------------------*)
PROCEDURE GetExtKey(s : Screen;VAR type : KeyTypes;
VAR code : CHAR);
(*----------------------------------------------------------------------------*
* AUFGABE : Liest die aktuelle Position der Maus ein *
* PARAMETER : s <= Screen, bei der die Mausposition abgefragt werden *
* soll *
* x,y => aktuelle Mauskoordinaten *
* BEMERKUNGEN : -- *
*----------------------------------------------------------------------------*)
PROCEDURE GetMousePos(s : Screen;VAR x,y : INTEGER);
(*----------------------------------------------------------------------------*
* AUFGABE : Stellt fest, ob der linke Mausknopf gerade gedrückt ist *
* PARAMETER : s <= Screen, die überprüft werden soll *
* => TRUE, falls gedrückt *
* BEMERKUNGEN : -- *
*----------------------------------------------------------------------------*)
PROCEDURE MousePressed(s : Screen):BOOLEAN;
(*----------------------------------------------------------------------------*
* AUFGABE : Holt die Position des letzten Mausklicks *
* PARAMETER : s <= Screen, auf der der Klick stattfand *
* x,y => Position des Klicks *
* BEMERKUNGEN : Hat noch kein Klick stattgefunden, wartet die Routine, bis *
* geklickt wird. *
*----------------------------------------------------------------------------*)
PROCEDURE MouseClick(s : Screen;VAR x,y : INTEGER);
(*----------------------------------------------------------------------------*
* AUFGABE : Stellt fest, ob der letzte Klick ein Doppelklick war *
* PARAMETER : s <= Screen, auf der der Klick stattfand *
* => TRUE, falls es ein Doppelklick war *
* BEMERKUNGEN : -- *
*----------------------------------------------------------------------------*)
PROCEDURE WasDouble(s : Screen):BOOLEAN;
GROUP
All = UserActions,UserAct,KeyTypes,WaitUser,CheckUser,LastAction,GetKey,
GetExtKey,GetMousePos,MousePressed,MouseClick,WasDouble;
END GfxInput.