home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Pascal / MAXONPASCAL3.DMS / in.adf / DEMOS-OS1.3 / menuOS1.3.p < prev    next >
Encoding:
Text File  |  1994-07-24  |  3.7 KB  |  118 lines

  1. { Programm:  Menu
  2.   ~~~~~~~~~
  3.   Version:   0.01 
  4.   ~~~~~~~~
  5.   Sprache:   MaxonPASCAL3 (KickPascal 2.12 / OS2-Includes
  6.   ~~~~~~~~
  7.   Sinn:      Console-Window mit Menu (ohne Gadtools) läuft ab OS1.3
  8.   ~~~~~
  9.   Copyright: FREEWARE, wenn der Autor in .dok / Infofenster eines
  10.   ~~~~~~~~~            nichtkomerziellen Progr. erwähnt wird.
  11.            
  12.   Autor:     PackMAN
  13.   ~~~~~~     c/o Falk Zühlsdorff
  14.              Lindenberg 66
  15.              D-98693 Ilmenau / Thüringen
  16.  
  17.   Kommentar: Version für MAXON
  18.   ~~~~~~~~~~ 
  19.              nicht fontsensitiv                                       }
  20.  
  21. PROGRAM Menu;
  22.  
  23. USES INTUITION,GRAPHICS;
  24. TYPE p_Menu    = ^Menu;
  25.      TYPE Menu = RECORD                   {etwas seltsam: ich kann    }
  26.                   NextMenu  : p_Menu;     {in VAR nicht Menu1:Menu;   }
  27.                   LeftEdge  : Integer;    {angeben, obwohl dieses     }
  28.                   TopEdge   : Integer;    {Record so in der Intuition }
  29.                   Width     : Integer;    {angegeben ist...           }
  30.                   Height    : Integer;
  31.                   Flags     : Word;       {Will aber nicht lange nach-}
  32.                   MenuName  : Str;        {grasen...                  }
  33.                   FirstItem : p_MenuItem;
  34.                   JazzX     : Integer;
  35.                   JazzY     : Integer;
  36.                   BeatX     : Integer;
  37.                   BeatY     : Integer;
  38.                  END;
  39. VAR MenuTx       : array[1..4] OF IntuiText;
  40.     MenuI        : array[1..4] OF MenuItem;
  41.     Menu1,Menu2  : Menu;
  42.     Win          : p_window;
  43.     Msg          : p_IntuiMessage;
  44.     ex           : boolean;
  45.     Con          : Ptr;
  46.     Setit        : boolean;
  47.  
  48. PROCEDURE menuhandle(Nr:word);        {Ab MaxonPascal3 als Makros}
  49. VAR menue,item,help:word;             {dabei,... endlich...      }
  50. BEGIN
  51.  Menue:=Nr AND %11111;
  52.  help :=Nr AND %11111100000;
  53.  item :=help SHR 5;
  54.  CASE menue OF
  55.   0: CASE item OF
  56.       0: WriteCON(Con,'Menu 1.1 angewählt'\n'');
  57.       1: WriteCON(Con,'Menu 1.2 angewählt'\n'');
  58.      ELSE;END;
  59.   1: CASE item OF
  60.       0: WriteCON(Con,'Menu 2.1 angewählt'\n'');
  61.       1: WriteCON(Con,'Menu 2.2 angewählt'\n'');
  62.      ELSE;END;
  63.  ELSE;END;
  64. END;
  65.  
  66. BEGIN
  67.  MenuTx[1]:=IntuiText(3,2,COMPLEMENT,0,0,NIL,'Menu1.1',NIL);
  68.  MenuTx[2]:=IntuiText(3,2,COMPLEMENT,0,0,NIL,'Menu1.2',NIL);
  69.  MenuTx[3]:=IntuiText(3,2,COMPLEMENT,0,0,NIL,'Menu2.1',NIL);
  70.  MenuTx[4]:=IntuiText(3,2,COMPLEMENT,0,0,NIL,'Menu2.2',NIL);
  71.  
  72.  MenuI[1] :=MenuItem(^MenuI[2],0,0,56,8,ITEMTEXT+HIGHCOMP+ITEMENABLED,0,
  73.                      ^MenuTx[1],NIL,Chr(0),NIL,MENUNULL);
  74.  MenuI[2] :=MenuItem(NIL,0,8,56,8,ITEMTEXT+HIGHCOMP+ITEMENABLED,0,
  75.                      ^MenuTx[2],NIL,Chr(0),NIL,MENUNULL);
  76.  MenuI[3] :=MenuItem(^MenuI[4],0,0,56,8,ITEMTEXT+HIGHCOMP+ITEMENABLED,0,
  77.                      ^MenuTx[3],NIL,Chr(0),NIL,MENUNULL);
  78.  MenuI[4] :=MenuItem(NIL,0,8,56,8,ITEMTEXT+HIGHCOMP+ITEMENABLED,0,
  79.                      ^MenuTx[4],NIL,Chr(0),NIL,MENUNULL);
  80.  
  81.  Menu1    :=Menu(^Menu2,0,0,47,0,MENUENABLED,'Menu1',^MenuI[1],0,0,0,0);
  82.  Menu2    :=Menu(NIL,56,0,47,0,MENUENABLED,'Menu2',^MenuI[3],0,0,0,0);
  83.  
  84.  Win:=Open_Window(0,100,640,128,1,_CLOSEWINDOW+MENUPICK,WINDOWCLOSE+ACTIVATE,
  85.                  'Menütest V0.01 © & P by PackMAN for Erico Modras 04.07.94',
  86.                   NIL,0,0,0,0);
  87.  
  88.  Con:=OpenConsole(Win);
  89.  SetStdIO(con);
  90.  
  91.  Setit:=SetMenuStrip(Win,^Menu1);
  92.  WriteCON(Con,''\n\n'Einfache MenuDemo, ab OS2 Gadttools nutzen !!!'\n\n'');
  93.  WriteCON(Con,      'Menu anwählen oder CLOSEGADGET anklicken...'\n\n'');
  94.  ex:=false;
  95.  
  96.  REPEAT
  97.   Msg:=Wait_Port(Win^.UserPort);
  98.   Msg:=Get_Msg(Win^.UserPort);
  99.   Reply_Msg(Msg);
  100.   CASE Msg^.class OF
  101.    _CloseWindow: ex:=true;
  102.    MENUPICK    : Menuhandle(Msg^.code);
  103.   ELSE;END;
  104.  UNTIL ex;
  105.  
  106.  ClearMenuStrip(Win);
  107.  CloseConsole(Con);
  108.  Close_Window(Win);
  109.  CloseLib(IntuitionBase);
  110.  CloseLib(GFXBase);
  111. END.
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.