home *** CD-ROM | disk | FTP | other *** search
- { MAXONPascal3-Anpassung / Test: Falk Zühlsdorff (PackMAN) 1994 }
-
- PROGRAM GadgetDemo;
- USES INTUITION;
-
- TYPE
- BorDatTyp = Array[1..10] of integer; { Typ für Borderdata }
- ImgDatTyp = Array[1..12] of Long; { Typ für Imagedata }
- VAR
- Win: ^Window;
- Msg: ^IntuiMessage;
- Gad1, Gad2, Gad3, Gad4, Gad5: Gadget;
- Tex1, Tex2, Tex3, Tex4, Tex5: IntuiText;
- Bor1, Bor2, Bor5: Border;
- BDt1, BDt2, BDt5: BorDatTyp;
- Img1, Img2, Img3, Img4 : Image;
- IDt1, IDt2, IDt3, IDt4 : ^ImgDatTyp;
- AktGad: ^Gadget;
- Ende: Boolean;
- AddG: Word;
-
- PROCEDURE Ausgabe(t: Str);
- { gibt den Text "t" im Window aus }
- VAR it: IntuiText;
- BEGIN
- it:=IntuiText(1,0,1,0,0,Nil,t,Nil);
- PrintIText(Win^.RPort, ^it, 5, 12)
- END;
-
- BEGIN
- Win:=Open_Window(0, 0, 320, 120, 1, _CLOSEWINDOW+GADGETUP+GADGETDOWN,
- WINDOWSIZING+WINDOWDRAG+WINDOWDEPTH+WINDOWCLOSE+ACTIVATE,
- 'GadgetDemo', Nil, 300, 100, 640, 256);
- Gad1:=Gadget(Nil, { erste Gadget-Struktur: }
- 10,25, { Position }
- 80,12, { Größe }
- GADGHCOMP, { Gadget wird invertiert }
- TOGGLESELECT+GADGIMMEDIATE, { Activation Flags }
- BOOLGADGET, { Typ }
- ^Bor1, { Zeiger auf Borderstruktur }
- Nil, { kein Select-Border }
- ^Tex1, { Zeiger auf Text }
- 0, Nil, 1, 0);{ Nummer 1 }
- Tex1:=IntuiText(1, 0, 0, 16, 3, Nil, 'Toggle', Nil);
- Bor1:=Border(0, 0, 3, 0, 0, 5, ^BDt1, Nil);
- BDt1:=BorDatTyp(-3,-2, 83,-2, 83,14, -3,14, -3,-2);
-
- Gad2:=Gadget(Nil, { zweite Gadget-Struktur: }
- 10,48, { Position }
- 80,12, { Größe }
- GADGHBOX, { Gadget wird umrandet }
- RELVERIFY, { Activation Flags }
- BOOLGADGET, { Typ }
- ^Bor2, { Zeiger auf Borderstruktur }
- Nil, { kein Select-Border }
- ^Tex2, { Zeiger auf Text }
- 0, Nil, 2, 0); { Nummer 2 }
- Tex2:=IntuiText(1, 0, 0, 8, 3, Nil, 'Nummer 2', Nil);
- Bor2:=Border(0, 0, 1, 0, 0, 5, ^BDt2, Nil);
- BDt2:=BorDatTyp(-3,-3, 83,-3, 83,14, -3,14, -3,-3);
-
- Gad3:=Gadget(Nil, { dritte Gadget-Struktur: }
- 200,25, { Position }
- 32,12, { Größe }
- GADGHIMAGE+GADGIMAGE, { Gadget hat Bild }
- RELVERIFY+TOGGLESELECT, { Activation Flags }
- BOOLGADGET, { Typ }
- ^Img1, { Zeiger auf Imagestruktur }
- ^Img2, { Select-Image }
- ^Tex3, { Zeiger auf Text }
- 0, Nil, 3, 0); { Nummer 3 }
- Tex3:=IntuiText(1, 0, 0, -100, 3, Nil, 'Mit Bild:', Nil);
- IDt1:=Ptr(Alloc_Mem(SizeOf(ImgDatTyp),2));
- IDt1^:=ImgDatTyp(%00000000000000000000000111000000,
- %00000000000000000000111111111000,
- %00000000000000000111111111111111,
- %00000000000000000000001111100000,
- %00000000000000000000001111100000,
- %11111110000000000000001111100000,
- %11111111110000000000011111100000,
- %00000011111000000001111111000000,
- %00000001111111111111111100000000,
- %00000000011111111111100000000000,
- %00000000000000000000000000000000,
- %00000000000000000000000000000000);
- IDt2:=Ptr(Alloc_Mem(SizeOf(ImgDatTyp),2));
- IDt2^:=ImgDatTyp(%00000000000000000000000000000000,
- %00000000000000000000000000000000,
- %00000000011111111111100000000000,
- %00000001111111111111111100000000,
- %00000011111000000001111111000000,
- %11111111110000000000011111100000,
- %11111110000000000000001111100000,
- %00000000000000000000001111100000,
- %00000000000000000111111111111111,
- %00000000000000000000111111111000,
- %00000000000000000000001111100000,
- %00000000000000000000000111000000);
- Img1:=Image(0,0,32,12,1,IDt1,1,3,Nil);
- Img2:=Image(0,0,32,12,1,IDt2,1,3,Nil);
-
- Gad4:=Gadget(Nil, { dritte Gadget-Struktur: }
- -40,20, { Position }
- 32,12, { Größe }
- GADGHIMAGE+GADGIMAGE+GRELRIGHT,{ relativ zu rechtem Rand }
- RELVERIFY+TOGGLESELECT, { Activation Flags }
- BOOLGADGET, { Typ }
- ^Img4, { Zeiger auf Image }
- ^Img3, { Select-Image }
- ^Tex4, { Zeiger auf Text }
- 0, Nil, 4, 0); { Nummer 4 }
- Tex4:=IntuiText(3, 0, 0, -4, 3, Nil, ' *4* ', Nil);
- IDt3:=Ptr(Alloc_Mem(SizeOf(ImgDatTyp),2));
- IDt3^:=ImgDatTyp(%11100000000000000000000000000111,
- %00111100000000000000000000111100,
- %00000111000000000000000111100000,
- %00000001111000000000011100000000,
- %00000000001110000011110000000000,
- %00000000000011111110000000000000,
- %00000000000001111110000000000000,
- %00000000000111000011110000000000,
- %00000000111100000000011100000000,
- %00000111100000000000000111100000,
- %00111100000000000000000000111100,
- %11100000000000000000000000000111);
- Img3:=Image(0,0,32,12,0,IDt3,1,0,Nil);
- IDt4:=Ptr(Alloc_Mem(SizeOf(ImgDatTyp),2));
- IDt4^:=ImgDatTyp(%00000011111111111111111111000000,
- %00001111100000000000000111110000,
- %00111100000000000000000000111100,
- %01110000000000000000000000001110,
- %11100000000000000000000000000111,
- %11100000000000000000000000000111,
- %11100000000000000000000000000111,
- %11100000000000000000000000000111,
- %01110000000000000000000000001110,
- %00111100000000000000000000111100,
- %00001111100000000000000111110000,
- %00000011111111111111111110000000);
- Img4:=Image(0,0,32,12,0,IDt4,1,0,Nil);
-
- Gad5:=Gadget(Nil, { erste Gadget-Struktur: }
- 250,80, { Position }
- -272, -92, { Größe }
- GADGHCOMP+GRELWIDTH+GRELHEIGHT,
- RIGHTBORDER+BOTTOMBORDER+RELVERIFY,
- BOOLGADGET, { Typ }
- ^Bor5, { Zeiger auf Borderstruktur }
- Nil, { kein Select-Border }
- ^Tex5, { Zeiger auf Text }
- 0, Nil, 5, 0); { Nummer 5 }
- Tex5:=IntuiText(1, 0, 0, 3, 3, Nil, 'Gadget#5', Nil);
- Bor5:=Border(0, 0, 3, 0, 0, 5, ^BDt5, Nil);
- BDt5:=BorDatTyp(-3,-2, 280,-2, 280,90, -3,90, -3,-2);
-
- AddG:=AddGadget(Win, ^Gad1, 0);
- AddG:=AddGadget(Win, ^Gad2, 1);
- AddG:=AddGadget(Win, ^Gad3, 2);
- AddG:=AddGadget(Win, ^Gad4, 3);
- AddG:=AddGadget(Win, ^Gad5, 4);
-
- RefreshGadgets(Win^.FirstGadget, Win, Nil);
-
- ENDe:=False;
- REPEAT
- Msg:=Wait_Port(Win^.UserPort);
- Msg:=Get_Msg(Win^.UserPort);
- Case Msg^.Class Of
- _CLOSEWINDOW: ENDe:=True;
- GADGETUP,GADGETDOWN:
- BEGIN
- AktGad:=Msg^.IAddress;
- Case AktGad^.GadgetID Of
- 1: IF (Gad1.Flags and SELECTED)<>0 THEN
- Ausgabe('Gadget 1 an. ')
- ELSE
- Ausgabe('Gadget 1 aus. ');
- 2: Ausgabe('Gadget 2 angewählt.');
- 3: IF (Gad3.Flags and SELECTED)<>0 THEN
- Ausgabe('Pfeil nach unten ')
- ELSE
- Ausgabe('Pfeil nach oben ');
- 4: IF (Gad4.Flags and SELECTED)=0 THEN
- Ausgabe('Eingekreist. ')
- ELSE
- Ausgabe('Durchgestrichen. ');
- 5: Ausgabe('Unten rechts. ');
- Otherwise;
- END { inneres CASE }
- END;
- Otherwise;
- END; { of CASE }
- Reply_Msg(Msg);
- UNTIL Ende;
-
- Close_Window(Win);
- CloseLib(IntuitionBase);
- Free_Mem(Long(IDt1),SizeOf(ImgDatTyp));
- Free_Mem(Long(IDt2),SizeOf(ImgDatTyp));
- Free_Mem(Long(IDt3),SizeOf(ImgDatTyp));
- END.
-