home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 8 / FreshFishVol8-CD2.bin / bbs / dev / oberon-a-1.4ß.lha / Oberon-A / examples / GuiEnvironment / GuideExample.mod < prev    next >
Text File  |  1994-09-05  |  4KB  |  115 lines

  1. (****************************************************************************
  2.  
  3. $RCSfile: GuideExample.mod $
  4.  
  5. $Revision: 1.1 $
  6.     $Date: 1994/07/19 20:21:29 $
  7.  
  8.     GUIEnvironment example: Menu help function
  9.  
  10.     Oberon-A Oberon-2 Compiler V4.5ß (Release 1.3)
  11.  
  12.   Copyright © 1994, Carsten Ziegeler
  13.                     Augustin-Wibbelt-Str.7, 33106 Paderborn, Germany
  14.  
  15. ****************************************************************************)
  16. MODULE GuideExample;
  17.  
  18. (* This example open's a window with a menu. If the user presses the
  19.    help key over a menu item, the AmigaGuide is called with the
  20.    belonging help text ! *)
  21.  
  22. (* GuideExample uses the following catalog strings 101.. : menus
  23.                                                     50.. : misc (NotifyExample)
  24.                                                    200   : END       *)
  25.  
  26. (* $P- Allow non-portable code *)
  27.  
  28. IMPORT SYS := SYSTEM, GUI := GUIEnv, I := Intuition, GS := GUIEnvSupport,
  29.        GT := GadTools;
  30.  
  31. CONST ver = "$VER: GuideExample 1.1 (19.07.94)\n";
  32.  
  33. VAR W : I.WindowPtr;
  34.     G : GUI.GUIInfoPtr;
  35.  
  36.  
  37.   (* The menu functions: *)
  38.  
  39.   PROCEDURE MenuAbout() : BOOLEAN;
  40.   BEGIN
  41.     IF GUI.base.GUIRequest(G, GUI.base.GetCatStr(G, 51,
  42.                            SYS.ADR("GUIEnvironment example for version 37.0\n© 1994 C. Ziegeler")),
  43.                            GUI.gerOKKind, NIL) = 0 THEN END;
  44.     RETURN TRUE;
  45.   END MenuAbout;
  46.  
  47.   PROCEDURE MenuQuit() : BOOLEAN;
  48.   BEGIN
  49.     RETURN GUI.base.GUIRequest(G, GUI.base.GetCatStr(G, 52, SYS.ADR("Really quit example ?")),
  50.                                GUI.gerDoItKind,
  51.                                GUI.gerGadgets, GUI.base.GetCatStr(G, 53, SYS.ADR("YES|NO")), NIL) # GUI.gerYes;
  52.   END MenuQuit;
  53.  
  54.   PROCEDURE MenuGUIEnv() : BOOLEAN;
  55.   BEGIN
  56.     IF GUI.base.GUIRequest(G, SYS.ADR("GUIEnvironment !"), GUI.gerOKKind, NIL) = 0 THEN END;
  57.     RETURN TRUE;
  58.   END MenuGUIEnv;
  59.  
  60.   PROCEDURE MenuAmiga() : BOOLEAN;
  61.   BEGIN
  62.     IF GUI.base.GUIRequest(G, SYS.ADR("Amiga !"), GUI.gerOKKind, NIL) = 0 THEN END;
  63.     RETURN TRUE;
  64.   END MenuAmiga;
  65.  
  66. BEGIN
  67.  
  68.   W := GUI.base.OpenGUIWindow(100, 70, 300, 100, SYS.ADR("GUIEnvironment : GuideExample"),
  69.                               {I.idcmpCloseWindow, I.idcmpMenuPick,
  70.                                I.idcmpMenuHelp},
  71.                               {I.wflgCloseGadget, I.wflgActivate}, NIL,
  72.                               I.waMenuHelp, 1, NIL);
  73.   IF W # NIL THEN
  74.     (* create GUIInfo *)
  75.  
  76.     G := GUI.base.CreateGUIInfo(W,
  77.                           GUI.guiCatalogFile, SYS.ADR("GUIEnvExamples.catalog"),
  78.                           GUI.guiMenuCatalogOffset, 101,
  79.                           GUI.guiMenuGuide, SYS.ADR("GUIEnvExamples.guide"), NIL);
  80.     IF G # NIL THEN
  81.  
  82.       GUI.base.CreateGUIMenuEntry(G, GT.nmTitle, SYS.ADR("Project"), NIL);
  83.       GUI.base.CreateGUIMenuEntry(G, GT.nmItem, SYS.ADR("About"),
  84.                                   GUI.gemFunction, SYS.ADR(MenuAbout),
  85.                                   GUI.gemShortCut, SYS.ADR("A\o"), NIL);
  86.       GUI.base.CreateGUIMenuEntry(G, GT.nmItem, SYS.ADR("Quit"),
  87.                                   GUI.gemFunction, SYS.ADR(MenuQuit),
  88.                                   GUI.gemShortCut, SYS.ADR("Q\o"), NIL);
  89.       GUI.base.CreateGUIMenuEntry(G, GT.nmTitle, SYS.ADR("Help"), NIL);
  90.       GUI.base.CreateGUIMenuEntry(G, GT.nmItem, SYS.ADR("GUIEnv"),
  91.                                   GUI.gemFunction, SYS.ADR(MenuGUIEnv),
  92.                                   GUI.gemShortCut, SYS.ADR("G\o"), NIL);
  93.       GUI.base.CreateGUIMenuEntry(G, GT.nmItem, SYS.ADR("Amiga"),
  94.                                   GUI.gemFunction, SYS.ADR(MenuAmiga),
  95.                                   GUI.gemShortCut, SYS.ADR("A\o"), NIL);
  96.  
  97.       IF GUI.base.DrawGUI(G, NIL) = GUI.geDone THEN
  98.         LOOP (* Input-Loop *)
  99.           GUI.base.WaitGUIMsg(G);
  100.           IF    I.idcmpCloseWindow IN G^.msgClass THEN
  101.             EXIT;
  102.           ELSIF I.idcmpMenuPick    IN G^.msgClass THEN
  103.             EXIT;
  104.           END;
  105.         END;
  106.       END;
  107.     END;
  108.   END;
  109.  
  110.   IF W # NIL THEN
  111.     GUI.base.CloseGUIWindow(W);
  112.     W := NIL;
  113.   END;
  114. END GuideExample.
  115.