home *** CD-ROM | disk | FTP | other *** search
/ MACD 4 / MACD4.iso / cdity / cxsupport.lha / CxSupport / CxSupport.dok next >
Encoding:
Text File  |  1992-09-07  |  7.4 KB  |  128 lines

  1.  
  2.                         CxSupport Modul für Amiga Oberon
  3.                        ----------------------------------
  4.  
  5. Dieses Modul vereinfacht die Handhabung mit der Commodities.library um HotKeys und
  6. CustomFunctions zu erstellen.
  7.  
  8. Es beinhaltet folgende importierbare Objekte:
  9.  
  10. TYPE
  11.   CustomProcType = PROCEDURE(co: c.CxObjPtr; cxm: c.CxMsgPtr);
  12.  
  13. VAR
  14.   ExChSig : SHORTINT;
  15.  
  16. PROCEDURE InitBroker (name, title, descr: ARRAY OF CHAR; showHide: BOOLEAN): SHORTINT;
  17.  * ------------------------------- Action ------------------------------- *
  18.  * - Dies muß die erste Prozedur sein die man Auruft, vorher läuft nix! - *
  19.  * ------------------------------- Inputs ------------------------------- *
  20.  * name, title, descr : Der Name, Title & Beschreibung deines Programms   *
  21.  * ShowHide           : Hast du ein Fenster zum Einstellen der Parameter? *
  22.  * ------------------------------- Output ------------------------------- *
  23.  * Das Signal auf das du warten mußt, um GetID() aufzurufen und die, den  *
  24.  * HotKeys und Custom-Funktionen entsprechenden Aktionen durchzuführen.   *
  25.  * ---------------------------------------------------------------------- *
  26.  
  27. PROCEDURE RemBroker;
  28.  * ------------------------------- Action ------------------------------- *
  29.  * -- Entferne den Broker und damit alle HotKeys und Custom-Funktionen -- *
  30.  * -- Diese Prozedur wird automatisch am Ende des Progs aufgerufen.    -- *
  31.  * ---------------------------------------------------------------------- *
  32.  
  33. PROCEDURE Activate (on: BOOLEAN);
  34.  * ------------------------------- Action ------------------------------- *
  35.  * -- Aktiviere oder disaktiviere dein Broker.                         -- *
  36.  * ------------------------------- Inputs ------------------------------- *
  37.  * on: TRUE zum aktivieren und FALSE zum disaktivieren                    *
  38.  * ---------------------------------------------------------------------- *
  39.  
  40. PROCEDURE HotKeyID (descr: ARRAY OF CHAR; ID: INTEGER);
  41.  * ------------------------------- Action ------------------------------- *
  42.  * -- Einen neuen Hotkey erstellen.                                    -- *
  43.  * ------------------------------- Inputs ------------------------------- *
  44.  * descr: Die Beschreibung des Hotkeys (siehe RKM Libraries)              *
  45.  * ID   : Diese Nummer wird bei GetID() zurückgeliefert, wenn dieser      *
  46.  *        Hotkey gedrückt wurde.                                          *
  47.  * ---------------------------------------------------------------------- *
  48.  
  49. PROCEDURE HotKeySig (descr: ARRAY OF CHAR; sig: SHORTINT);
  50.  * ------------------------------- Action ------------------------------- *
  51.  * -- Wie HotKeyID(), nur das hier ein Signal verwendet wird.          -- *
  52.  * ------------------------------- Inputs ------------------------------- *
  53.  * descr: Die Beschreibung des Hotkeys (siehe RKM Libraries)              *
  54.  * sig  : Das Signal für Exec.Wait() um den Hotkey zu identifizieren.     *
  55.  *        WARNUNG: Man muß das Signal selber Allozieren und Freigeben!!   *
  56.  * ---------------------------------------------------------------------- *
  57.  
  58. PROCEDURE CxFuncID (func: CustomProc; ID: INTEGER);
  59.  * ------------------------------- Action ------------------------------- *
  60.  * -- Eine Custom-Funktion erstellen.                                   - *
  61.  * -- Damit kann man praktisch eine asynchrone Prozedure erstellen, sie - *
  62.  * -- wird immer dann aufgerufen, wenn ein neues Event eintrifft.       - *
  63.  * -- WARNUNG: Es dürfen in ihr keine Dos und Intuition Funktionen aufge- *
  64.  * --          rufen werden,da sie als Teil des input.devices(!) läuft! - *
  65.  * --          Sie sollte außerdem 'short and sweet' sein.              - *
  66.  * -- Außerdem müssen folgende Optionen bei der Prozedur gesetzt werden:- *
  67.  * -- (* $StackChk- $SaveAllRegs+ $ClearVars- $DeallocPars- *)          - *
  68.  * -- Und es darf nicht mit dem SmallData (-d) kompiliert/gelinkt werden, *
  69.  * -- wenn Custom-Funktionen benutzt werden (bei Hotkeys darf man das!) - *
  70.  * -- Allerdings kann mit SMALL (-s) gelinkt werden!!                   - *
  71.  * ------------------------------- Inputs ------------------------------- *
  72.  * func : Diese Prozedur wird bei jedem Event aufgerufen.                 *
  73.  * ID   : Die Nummer die du von GetID() bekommst, wenn dich deine Proz.   *
  74.  *        mittels 'InformBroker (co,cxm)' benachrichtigt.                 *
  75.  *        c0, cxm sind die Parameter von 'func'.                          *
  76.  * ---------------------------------------------------------------------- *
  77.  
  78. PROCEDURE CxFunc (func: CustomProc);
  79.  * ------------------------------- Action ------------------------------- *
  80.  * -- Wie CxFunID(), nur daß hier keine ID übergeben wird              -- *
  81.  * -- Falls du dein Hauptprogramm trotzdem mal benachrichtigen willst, -- *
  82.  * -- dann benutze 'Exec.Signal(OberonLib.Me,LONGSET{signal})'.        -- *
  83.  * ------------------------------- Inputs ------------------------------- *
  84.  * func : Diese Prozedur wird bei jedem Event aufgerufen.                 *
  85.  * ---------------------------------------------------------------------- *
  86.  
  87. PROCEDURE HotFunc (descr: ARRAY OF CHAR; func: CustomProc);
  88.  * ------------------------------- Action ------------------------------- *
  89.  * -- Eine 'heiße' Funktion erstellen.                                 -- *
  90.  * -- D.h., daß  diese Funktion wird aufgerufen, wenn der Hotkey 'descr'  *
  91.  * -- gedrückt wird. Benutze Exec.Signal() um dein Programm zu infomieren *
  92.  * ------------------------------- Inputs ------------------------------- *
  93.  * descr: Die Beschreibung des Hotkeys (siehe RKM Libraries)              *
  94.  * ---------------------------------------------------------------------- *
  95.  
  96. PROCEDURE GetID (): INTEGER;
  97.  * ------------------------------- Action ------------------------------- *
  98.  * -- Diese Prozedur muß aufgerufen werden, nachdem das Signal, das bei - *
  99.  * -- InitBroker() zurückgegeben wird, eintrifft.                       - *
  100.  * ------------------------------- Output ------------------------------- *
  101.  * Die ID des Hotkeys oder die der Custom-Funkion                         *
  102.  * ---------------------------------------------------------------------- *
  103.  
  104. PROCEDURE HandleExCh (VAR show, hide, kill: BOOLEAN);
  105.  * ------------------------------- Action ------------------------------- *
  106.  * - Diese Prozedure muß aufgerufen werden,wenn das 'ExChSig' eintrifft.- *
  107.  * -------------------------- Inputs/Outputs ---------------------------- *
  108.  * show,hide,kill : Diese Kommandos entsprechen denen, die das Programm.  *
  109.  *                  ExChange dir schicken kann.                           *
  110.  *                  (Dis-)Aktiviert wird automatisch!                     *
  111.  * ---------------------------------------------------------------------- *
  112.  
  113. PROCEDURE InformBroker (co: c.CxObjPtr; cxm: c.CxMsgPtr);
  114.  * ------------------------------- Action ------------------------------- *
  115.  * -- Diese Proz. kann man innerhalb einer Custom-Funktion aufrufen, um - *
  116.  * -- das HauptProgramm zu informieren.Dies funktioniert nur bei Custom - *
  117.  * -- Funktionen, die mit CxFuncID() initialisiert wurden!              - *
  118.  * -- Dazu wird erst das Signal von InitBroker() in den 'WaitSignals'   - *
  119.  * -- gesetzt, danach kann man sich die ID mit GetID() holen.           - *
  120.  * ---------------------------------------------------------------------- *
  121.  
  122. Auch  diese Prozedur kann in die ZOC-Library-Modul-Sammlung übernommen werden.
  123.  
  124. Falls  ihr  Bugs  findet oder Verbesserungs/Erweiterungs-Vorschläge habt, dann
  125. schickt mir eine Mail oder schreibt mir per Post (Adressen sind im SourceCode).
  126.  
  127. Viel Spaß damit!
  128.