home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 2 / FFMCD02.bin / new / amigalibdisks / disk938 / angie / angiegui.mod < prev    next >
Text File  |  1993-12-21  |  16KB  |  442 lines

  1. MODULE AngieGUI;
  2.  
  3. (*
  4.  *  Source generated with OG 38.02 (18.6.93) by Stefan Kurtz - Original Version by Thomas Igracki
  5.  *  OG is based on GenOberon V1.0 by Kai Bolay & Jan van den Baard
  6.  *  GenOberon is based on internal GenOberon by Kai Bolay
  7.  *  internal GenOberon is based on GenC by Jan van den Baard
  8.  *
  9.  *  GUI Designed by : fSchwarz
  10.  * 
  11.  *  Source heavily modified, optimized & adapted for V39 Intuition 'best look'
  12.  *  & V39 interface modules by fSchwarz
  13.  *)
  14.  
  15. IMPORT
  16.   e: Exec, I: Intuition, gt: GadTools, g: Graphics, u: Utility, y: SYSTEM,
  17.   b: BlackMagic, ie: InputEvent, st: Strings;
  18.  
  19. CONST
  20.   AngieHotKeys * = "E\000XYBPKSHNALCITDUOWR"; 
  21.   GDdefinition                      * = 0;
  22.   GDhotkeys                         * = 1;
  23.   GDpri                             * = 2;
  24.   GDdelay                           * = 3;
  25.   GDstable                          * = 4;
  26.   GDpop                             * = 5;
  27.   GDkeyact                          * = 6;
  28.   GDincwintaskpri                   * = 7;
  29.   GDhuntalways                      * = 8;
  30.   GDhuntwintofront                  * = 9;
  31.   GDtype                            * = 10;
  32.   GDshufflebdrop                    * = 11;
  33.   GDscrsteps                        * = 12;
  34.   GDwinsteps                        * = 13;
  35.   GDhuntdefpub                      * = 14;
  36.   GDadd                             * = 15;
  37.   GDdel                             * = 16;
  38.   GDup                              * = 17;
  39.   GDdown                            * = 18;
  40.   GDshufflepat                      * = 19;
  41.   GDattrs                           * = 20;
  42.  
  43.  
  44. (* menuLabels *)
  45.   MNsave                          * = 4000H;
  46.   MNabout                         * = 4001H;
  47.   MNhide                          * = 4002H;
  48.   MNquit                          * = 4003H;
  49.  
  50. CONST
  51.   AngieCNT = 21;
  52.   AngieLeft = 5;
  53.   AngieTop = 12;
  54.   AngieWidth = 631;
  55.   AngieHeight = 174;
  56. VAR
  57.   Scr-: I.ScreenPtr;
  58.   VisualInfo-: e.APTR;
  59.   AngieWnd-: I.WindowPtr;
  60.   AngieGList-: I.GadgetPtr;
  61.   AngieGadgets*: ARRAY AngieCNT OF I.GadgetPtr;
  62.   AngieMenus-: I.MenuPtr;
  63.   AngieZoom-: ARRAY 4 OF INTEGER;
  64.   Font-: g.TextAttrPtr;
  65.   Attr-: g.TextAttr;
  66.   FontX, FontY: INTEGER;
  67.   OffX, OffY: INTEGER;
  68.  
  69. TYPE
  70.   attrs0LArray = ARRAY     9 OF e.STRPTR;
  71. CONST
  72.   attrs0Labels = attrs0LArray (
  73.     y.ADR ("--------,--------,--------"),
  74.     y.ADR ("WinFront,--------,--------"),
  75.     y.ADR ("--------,NoScrAct,--------"),
  76.     y.ADR ("WinFront,NoScrAct,--------"),
  77.     y.ADR ("--------,--------,Repeatbl"),
  78.     y.ADR ("WinFront,--------,Repeatbl"),
  79.     y.ADR ("--------,NoScrAct,Repeatbl"),
  80.     y.ADR ("WinFront,NoScrAct,Repeatbl"),
  81.     NIL);
  82.  
  83. VAR
  84.   hotkeys0List*: e.MinList;
  85. TYPE
  86.   AngieMArray = ARRAY     8 OF gt.NewMenu;
  87. CONST
  88.   AngieNewMenu = AngieMArray (
  89.     gt.title, y.ADR ("Project"), NIL, {}, y.VAL (LONGSET, 0), -1,
  90.     gt.item, y.ADR ("Save Settings"), y.ADR ("S"), {}, y.VAL (LONGSET, 0), MNsave,
  91.     gt.item, gt.barLabel, NIL, {}, LONGSET {}, -1,
  92.     gt.item, y.ADR ("About..."), y.ADR ("?"), {}, y.VAL (LONGSET, 0), MNabout,
  93.     gt.item, gt.barLabel, NIL, {}, LONGSET {}, -1,
  94.     gt.item, y.ADR ("Hide"), y.ADR ("H"), {}, y.VAL (LONGSET, 0), MNhide,
  95.     gt.item, y.ADR ("Quit"), y.ADR ("Q"), {}, y.VAL (LONGSET, 0), MNquit,
  96.     gt.end, NIL, NIL, {}, LONGSET {}, -1);
  97.  
  98. TYPE
  99.   AngieGTypesArray = ARRAY AngieCNT OF INTEGER;
  100. CONST
  101.   AngieGTypes = AngieGTypesArray (
  102.     gt.stringKind,
  103.     gt.listViewKind,
  104.     gt.sliderKind,
  105.     gt.sliderKind,
  106.     gt.sliderKind,
  107.     gt.checkBoxKind,
  108.     gt.checkBoxKind,
  109.     gt.checkBoxKind,
  110.     gt.checkBoxKind,
  111.     gt.checkBoxKind,
  112.     gt.stringKind,
  113.     gt.checkBoxKind,
  114.     gt.sliderKind,
  115.     gt.sliderKind,
  116.     gt.checkBoxKind,
  117.     gt.buttonKind,
  118.     gt.buttonKind,
  119.     gt.buttonKind,
  120.     gt.buttonKind,
  121.     gt.stringKind,
  122.     gt.cycleKind
  123.   );
  124.  
  125.  
  126. CONST
  127.   rawCrsrUp   * = 04CH;
  128.   rawCrsrDown * = 04DH;  
  129.  
  130. VAR
  131.   hotnames *: UNTRACED POINTER TO ARRAY MAX (INTEGER)-1 OF b.LStrPtr;
  132.  
  133. PROCEDURE EdHookProc (hook: u.HookPtr; sgworkobj: e.APTR; msg: e.APTR): LONGINT;
  134. VAR
  135.   sgwork: I.SGWorkPtr;
  136.   cmd   : UNTRACED POINTER TO LONGINT;
  137.   i,l   : INTEGER;
  138.   wstr  : b.LStrPtr;
  139. (* $StackChk-  !!executed in Intuition context!! *)
  140. BEGIN
  141.   sgwork := sgworkobj; cmd := msg;
  142.   wstr := sgwork.workBuffer;
  143.   IF cmd^ # I.sghKey THEN RETURN e.false; END;
  144.   IF sgwork.iEvent.class # ie.rawkey THEN RETURN e.false; END;
  145.   CASE sgwork.iEvent.code OF
  146.   rawCrsrUp, rawCrsrDown:
  147.     IF sgwork.gadget = AngieGadgets[GDtype] THEN
  148.       IF hotnames # NIL THEN
  149.         l := 0;
  150.         WHILE (hotnames[l] # NIL) DO INC (l); END;
  151.         IF l > 0 THEN      
  152.           i := 0;
  153.           WHILE (hotnames[i] # NIL) & (u.Stricmp (wstr^, hotnames[i]^) # 0) DO
  154.             INC (i);
  155.           END;
  156.           IF hotnames [i] = NIL THEN DEC (i); END;
  157.           CASE sgwork.iEvent.code OF
  158.           rawCrsrDown:
  159.             INC (i, 1); IF i >= l THEN i := 0; END; |
  160.           rawCrsrUp:    
  161.             DEC (i, 1); IF i < 0 THEN i := l-1; END;
  162.           ELSE END;
  163.           IF i = l-1 THEN
  164.             COPY ("", wstr^);
  165.           ELSE  
  166.             COPY (hotnames[i]^, wstr^);
  167.           END;  
  168.           sgwork.numChars := SHORT (st.Length (wstr^));
  169.           IF sgwork.bufferPos > sgwork.numChars THEN 
  170.             sgwork.bufferPos := sgwork.numChars; 
  171.           END;
  172.           sgwork.actions := LONGSET {I.sgaUse, I.sgaRedisplay};
  173.           sgwork.code := sgwork.iEvent.code;
  174.           RETURN e.true;
  175.         END;  
  176.       END;
  177.     ELSIF sgwork.gadget = AngieGadgets[GDdefinition] THEN  
  178.       sgwork.actions := LONGSET{I.sgaEnd};    
  179.       sgwork.code := sgwork.iEvent.code;
  180.       RETURN e.true;
  181.     END;  
  182.   ELSE END;
  183.   IF sgwork.code = 27 (* ESC *) THEN
  184.     sgwork.actions := LONGSET{I.sgaEnd};
  185.     RETURN e.true;
  186.   END;  
  187.   RETURN e.false;
  188. END EdHookProc;  
  189. (* $StackChk= *)
  190.  
  191. TYPE
  192.   AngieNGadArray = ARRAY AngieCNT OF gt.NewGadget;
  193. CONST
  194.   AngieNGad = AngieNGadArray (
  195.     8, 92, 314, 14, NIL, NIL, GDdefinition, LONGSET {} ,NIL, NIL,
  196.     8, 15, 314, 80, y.ADR ("_Edit hotkeys"), NIL, GDhotkeys, LONGSET {gt.placeTextAbove} ,NIL, NIL,
  197.     441, 160, 137, 11, y.ADR ("C_X priority"), NIL, GDpri, LONGSET {gt.placeTextLeft} ,NIL, NIL,
  198.     441, 118, 137, 11, y.ADR ("Snoop dela_y"), NIL, GDdelay, LONGSET {gt.placeTextLeft} ,NIL, NIL,
  199.     441, 104, 137, 11, y.ADR ("Sta_ble time"), NIL, GDstable, LONGSET {gt.placeTextLeft} ,NIL, NIL,
  200.     337, 90, 26, 11, y.ADR ("_Pop GUI on startup"), NIL, GDpop, LONGSET {gt.placeTextRight} ,NIL, NIL,
  201.     337, 48, 26, 11, y.ADR ("_Key screen activation"), NIL, GDkeyact, LONGSET {gt.placeTextRight} ,NIL, NIL,
  202.     337, 62, 26, 11, y.ADR ("Rai_se Active WinTask's Pri"), NIL, GDincwintaskpri, LONGSET {gt.placeTextRight} ,NIL, NIL,
  203.     337, 6, 26, 11, y.ADR ("_Hunt always"), NIL, GDhuntalways, LONGSET {gt.placeTextRight} ,NIL, NIL,
  204.     337, 20, 26, 11, y.ADR ("Hu_nt on wintofront hotkeys"), NIL, GDhuntwintofront, LONGSET {gt.placeTextRight} ,NIL, NIL,
  205.     64, 97, 258, 14, y.ADR ("_Action"), NIL, GDtype, LONGSET {gt.placeTextLeft} ,NIL, NIL,
  206.     337, 76, 26, 11, y.ADR ("Shuff_le backdrop windows"), NIL, GDshufflebdrop, LONGSET {gt.placeTextRight} ,NIL, NIL,
  207.     441, 132, 137, 11, y.ADR ("S_creen steps"), NIL, GDscrsteps, LONGSET {gt.placeTextLeft} ,NIL, NIL,
  208.     441, 146, 137, 11, y.ADR ("W_indow steps"), NIL, GDwinsteps, LONGSET {gt.placeTextLeft} ,NIL, NIL,
  209.     337, 34, 26, 11, y.ADR ("Hun_t: set default public screen"), NIL, GDhuntdefpub, LONGSET {gt.placeTextRight} ,NIL, NIL,
  210.     8, 127, 77, 13, y.ADR ("A_DD"), NIL, GDadd, LONGSET {gt.placeTextIn} ,NIL, NIL,
  211.     87, 127, 77, 13, y.ADR ("(DEL)"), NIL, GDdel, LONGSET {gt.placeTextIn} ,NIL, NIL,
  212.     166, 127, 77, 13, y.ADR ("_UP"), NIL, GDup, LONGSET {gt.placeTextIn} ,NIL, NIL,
  213.     245, 127, 77, 13, y.ADR ("D_OWN"), NIL, GDdown, LONGSET {gt.placeTextIn} ,NIL, NIL,
  214.     8, 157, 314, 14, y.ADR ("_Window shuffle pattern"), NIL, GDshufflepat, LONGSET {gt.placeTextAbove} ,NIL, NIL,
  215.     56, 112, 266, 13, y.ADR ("Att_rs"), NIL, GDattrs, LONGSET {gt.placeTextLeft} ,NIL, NIL
  216.   );
  217.  
  218. TYPE
  219.   AngieGTagsArray = ARRAY   175 OF u.Tag;
  220. CONST
  221.   AngieGTags = AngieGTagsArray (
  222.     gt.stMaxChars, 255, gt.stEditHook, NIL, u.done,
  223.     gt.lvShowSelected, 1, gt.underscore, 95, u.done,
  224.     gt.slMin, -128, gt.slMax, 127, gt.slLevel, 127, gt.