home *** CD-ROM | disk | FTP | other *** search
-
- CxSupport Modul für Amiga Oberon
- ----------------------------------
-
- Dieses Modul vereinfacht die Handhabung mit der Commodities.library um HotKeys und
- CustomFunctions zu erstellen.
-
- Es beinhaltet folgende importierbare Objekte:
-
- TYPE
- CustomProcType = PROCEDURE(co: c.CxObjPtr; cxm: c.CxMsgPtr);
-
- VAR
- ExChSig : SHORTINT;
-
- PROCEDURE InitBroker (name, title, descr: ARRAY OF CHAR; showHide: BOOLEAN): SHORTINT;
- * ------------------------------- Action ------------------------------- *
- * - Dies muß die erste Prozedur sein die man Auruft, vorher läuft nix! - *
- * ------------------------------- Inputs ------------------------------- *
- * name, title, descr : Der Name, Title & Beschreibung deines Programms *
- * ShowHide : Hast du ein Fenster zum Einstellen der Parameter? *
- * ------------------------------- Output ------------------------------- *
- * Das Signal auf das du warten mußt, um GetID() aufzurufen und die, den *
- * HotKeys und Custom-Funktionen entsprechenden Aktionen durchzuführen. *
- * ---------------------------------------------------------------------- *
-
- PROCEDURE RemBroker;
- * ------------------------------- Action ------------------------------- *
- * -- Entferne den Broker und damit alle HotKeys und Custom-Funktionen -- *
- * -- Diese Prozedur wird automatisch am Ende des Progs aufgerufen. -- *
- * ---------------------------------------------------------------------- *
-
- PROCEDURE Activate (on: BOOLEAN);
- * ------------------------------- Action ------------------------------- *
- * -- Aktiviere oder disaktiviere dein Broker. -- *
- * ------------------------------- Inputs ------------------------------- *
- * on: TRUE zum aktivieren und FALSE zum disaktivieren *
- * ---------------------------------------------------------------------- *
-
- PROCEDURE HotKeyID (descr: ARRAY OF CHAR; ID: INTEGER);
- * ------------------------------- Action ------------------------------- *
- * -- Einen neuen Hotkey erstellen. -- *
- * ------------------------------- Inputs ------------------------------- *
- * descr: Die Beschreibung des Hotkeys (siehe RKM Libraries) *
- * ID : Diese Nummer wird bei GetID() zurückgeliefert, wenn dieser *
- * Hotkey gedrückt wurde. *
- * ---------------------------------------------------------------------- *
-
- PROCEDURE HotKeySig (descr: ARRAY OF CHAR; sig: SHORTINT);
- * ------------------------------- Action ------------------------------- *
- * -- Wie HotKeyID(), nur das hier ein Signal verwendet wird. -- *
- * ------------------------------- Inputs ------------------------------- *
- * descr: Die Beschreibung des Hotkeys (siehe RKM Libraries) *
- * sig : Das Signal für Exec.Wait() um den Hotkey zu identifizieren. *
- * WARNUNG: Man muß das Signal selber Allozieren und Freigeben!! *
- * ---------------------------------------------------------------------- *
-
- PROCEDURE CxFuncID (func: CustomProc; ID: INTEGER);
- * ------------------------------- Action ------------------------------- *
- * -- Eine Custom-Funktion erstellen. - *
- * -- Damit kann man praktisch eine asynchrone Prozedure erstellen, sie - *
- * -- wird immer dann aufgerufen, wenn ein neues Event eintrifft. - *
- * -- WARNUNG: Es dürfen in ihr keine Dos und Intuition Funktionen aufge- *
- * -- rufen werden,da sie als Teil des input.devices(!) läuft! - *
- * -- Sie sollte außerdem 'short and sweet' sein. - *
- * -- Außerdem müssen folgende Optionen bei der Prozedur gesetzt werden:- *
- * -- (* $StackChk- $SaveAllRegs+ $ClearVars- $DeallocPars- *) - *
- * -- Und es darf nicht mit dem SmallData (-d) kompiliert/gelinkt werden, *
- * -- wenn Custom-Funktionen benutzt werden (bei Hotkeys darf man das!) - *
- * -- Allerdings kann mit SMALL (-s) gelinkt werden!! - *
- * ------------------------------- Inputs ------------------------------- *
- * func : Diese Prozedur wird bei jedem Event aufgerufen. *
- * ID : Die Nummer die du von GetID() bekommst, wenn dich deine Proz. *
- * mittels 'InformBroker (co,cxm)' benachrichtigt. *
- * c0, cxm sind die Parameter von 'func'. *
- * ---------------------------------------------------------------------- *
-
- PROCEDURE CxFunc (func: CustomProc);
- * ------------------------------- Action ------------------------------- *
- * -- Wie CxFunID(), nur daß hier keine ID übergeben wird -- *
- * -- Falls du dein Hauptprogramm trotzdem mal benachrichtigen willst, -- *
- * -- dann benutze 'Exec.Signal(OberonLib.Me,LONGSET{signal})'. -- *
- * ------------------------------- Inputs ------------------------------- *
- * func : Diese Prozedur wird bei jedem Event aufgerufen. *
- * ---------------------------------------------------------------------- *
-
- PROCEDURE HotFunc (descr: ARRAY OF CHAR; func: CustomProc);
- * ------------------------------- Action ------------------------------- *
- * -- Eine 'heiße' Funktion erstellen. -- *
- * -- D.h., daß diese Funktion wird aufgerufen, wenn der Hotkey 'descr' *
- * -- gedrückt wird. Benutze Exec.Signal() um dein Programm zu infomieren *
- * ------------------------------- Inputs ------------------------------- *
- * descr: Die Beschreibung des Hotkeys (siehe RKM Libraries) *
- * ---------------------------------------------------------------------- *
-
- PROCEDURE GetID (): INTEGER;
- * ------------------------------- Action ------------------------------- *
- * -- Diese Prozedur muß aufgerufen werden, nachdem das Signal, das bei - *
- * -- InitBroker() zurückgegeben wird, eintrifft. - *
- * ------------------------------- Output ------------------------------- *
- * Die ID des Hotkeys oder die der Custom-Funkion *
- * ---------------------------------------------------------------------- *
-
- PROCEDURE HandleExCh (VAR show, hide, kill: BOOLEAN);
- * ------------------------------- Action ------------------------------- *
- * - Diese Prozedure muß aufgerufen werden,wenn das 'ExChSig' eintrifft.- *
- * -------------------------- Inputs/Outputs ---------------------------- *
- * show,hide,kill : Diese Kommandos entsprechen denen, die das Programm. *
- * ExChange dir schicken kann. *
- * (Dis-)Aktiviert wird automatisch! *
- * ---------------------------------------------------------------------- *
-
- PROCEDURE InformBroker (co: c.CxObjPtr; cxm: c.CxMsgPtr);
- * ------------------------------- Action ------------------------------- *
- * -- Diese Proz. kann man innerhalb einer Custom-Funktion aufrufen, um - *
- * -- das HauptProgramm zu informieren.Dies funktioniert nur bei Custom - *
- * -- Funktionen, die mit CxFuncID() initialisiert wurden! - *
- * -- Dazu wird erst das Signal von InitBroker() in den 'WaitSignals' - *
- * -- gesetzt, danach kann man sich die ID mit GetID() holen. - *
- * ---------------------------------------------------------------------- *
-
- Auch diese Prozedur kann in die ZOC-Library-Modul-Sammlung übernommen werden.
-
- Falls ihr Bugs findet oder Verbesserungs/Erweiterungs-Vorschläge habt, dann
- schickt mir eine Mail oder schreibt mir per Post (Adressen sind im SourceCode).
-
- Viel Spaß damit!
-