home *** CD-ROM | disk | FTP | other *** search
- { Programm: Menu
- ~~~~~~~~~
- Version: 0.01
- ~~~~~~~~
- Sprache: MaxonPASCAL3 (KickPascal 2.12 / OS2-Includes
- ~~~~~~~~
- Sinn: Console-Window mit Menu (ohne Gadtools) läuft ab OS1.3
- ~~~~~
- Copyright: FREEWARE, wenn der Autor in .dok / Infofenster eines
- ~~~~~~~~~ nichtkomerziellen Progr. erwähnt wird.
-
- Autor: PackMAN
- ~~~~~~ c/o Falk Zühlsdorff
- Lindenberg 66
- D-98693 Ilmenau / Thüringen
-
- Kommentar: Version für MAXON
- ~~~~~~~~~~
- nicht fontsensitiv }
-
- PROGRAM Menu;
-
- USES INTUITION,GRAPHICS;
- TYPE p_Menu = ^Menu;
- TYPE Menu = RECORD {etwas seltsam: ich kann }
- NextMenu : p_Menu; {in VAR nicht Menu1:Menu; }
- LeftEdge : Integer; {angeben, obwohl dieses }
- TopEdge : Integer; {Record so in der Intuition }
- Width : Integer; {angegeben ist... }
- Height : Integer;
- Flags : Word; {Will aber nicht lange nach-}
- MenuName : Str; {grasen... }
- FirstItem : p_MenuItem;
- JazzX : Integer;
- JazzY : Integer;
- BeatX : Integer;
- BeatY : Integer;
- END;
- VAR MenuTx : array[1..4] OF IntuiText;
- MenuI : array[1..4] OF MenuItem;
- Menu1,Menu2 : Menu;
- Win : p_window;
- Msg : p_IntuiMessage;
- ex : boolean;
- Con : Ptr;
- Setit : boolean;
-
- PROCEDURE menuhandle(Nr:word); {Ab MaxonPascal3 als Makros}
- VAR menue,item,help:word; {dabei,... endlich... }
- BEGIN
- Menue:=Nr AND %11111;
- help :=Nr AND %11111100000;
- item :=help SHR 5;
- CASE menue OF
- 0: CASE item OF
- 0: WriteCON(Con,'Menu 1.1 angewählt'\n'');
- 1: WriteCON(Con,'Menu 1.2 angewählt'\n'');
- ELSE;END;
- 1: CASE item OF
- 0: WriteCON(Con,'Menu 2.1 angewählt'\n'');
- 1: WriteCON(Con,'Menu 2.2 angewählt'\n'');
- ELSE;END;
- ELSE;END;
- END;
-
- BEGIN
- MenuTx[1]:=IntuiText(3,2,COMPLEMENT,0,0,NIL,'Menu1.1',NIL);
- MenuTx[2]:=IntuiText(3,2,COMPLEMENT,0,0,NIL,'Menu1.2',NIL);
- MenuTx[3]:=IntuiText(3,2,COMPLEMENT,0,0,NIL,'Menu2.1',NIL);
- MenuTx[4]:=IntuiText(3,2,COMPLEMENT,0,0,NIL,'Menu2.2',NIL);
-
- MenuI[1] :=MenuItem(^MenuI[2],0,0,56,8,ITEMTEXT+HIGHCOMP+ITEMENABLED,0,
- ^MenuTx[1],NIL,Chr(0),NIL,MENUNULL);
- MenuI[2] :=MenuItem(NIL,0,8,56,8,ITEMTEXT+HIGHCOMP+ITEMENABLED,0,
- ^MenuTx[2],NIL,Chr(0),NIL,MENUNULL);
- MenuI[3] :=MenuItem(^MenuI[4],0,0,56,8,ITEMTEXT+HIGHCOMP+ITEMENABLED,0,
- ^MenuTx[3],NIL,Chr(0),NIL,MENUNULL);
- MenuI[4] :=MenuItem(NIL,0,8,56,8,ITEMTEXT+HIGHCOMP+ITEMENABLED,0,
- ^MenuTx[4],NIL,Chr(0),NIL,MENUNULL);
-
- Menu1 :=Menu(^Menu2,0,0,47,0,MENUENABLED,'Menu1',^MenuI[1],0,0,0,0);
- Menu2 :=Menu(NIL,56,0,47,0,MENUENABLED,'Menu2',^MenuI[3],0,0,0,0);
-
- Win:=Open_Window(0,100,640,128,1,_CLOSEWINDOW+MENUPICK,WINDOWCLOSE+ACTIVATE,
- 'Menütest V0.01 © & P by PackMAN for Erico Modras 04.07.94',
- NIL,0,0,0,0);
-
- Con:=OpenConsole(Win);
- SetStdIO(con);
-
- Setit:=SetMenuStrip(Win,^Menu1);
- WriteCON(Con,''\n\n'Einfache MenuDemo, ab OS2 Gadttools nutzen !!!'\n\n'');
- WriteCON(Con, 'Menu anwählen oder CLOSEGADGET anklicken...'\n\n'');
- ex:=false;
-
- REPEAT
- Msg:=Wait_Port(Win^.UserPort);
- Msg:=Get_Msg(Win^.UserPort);
- Reply_Msg(Msg);
- CASE Msg^.class OF
- _CloseWindow: ex:=true;
- MENUPICK : Menuhandle(Msg^.code);
- ELSE;END;
- UNTIL ex;
-
- ClearMenuStrip(Win);
- CloseConsole(Con);
- Close_Window(Win);
- CloseLib(IntuitionBase);
- CloseLib(GFXBase);
- END.
-
-
-
-
-
-
-