home *** CD-ROM | disk | FTP | other *** search
- { Programm: ToggleSelect-Gadget
- ~~~~~~~~~
- Sprache: MaxonPASCAL 3 / KickPASCAL 2.12 & OS 2.0-Includes
- ~~~~~~~~
-
- Sinn: Toggleselect-Gadget über Gadtools: Generic_Kind
- ~~~~
- ©: FREEWARE, für Rout. wenn Autor in nicht komerziellem
- ~~ Programm gegrüßt wird und selbiges kostenlos zugesand
- bekommt.
-
- Autor: PackMAN
- ~~~~~~ c/o Falk Zühlsdorff
- Lindenberg 66
- D-98693 Ilmenau / Thüringen
-
- Kommentar: Version für MAXON
- ~~~~~~~~~~ ab OS 2.0 }
-
- Program TSG;
-
- USES INTUITION,GRAPHICS,GADTOOLS;
-
- VAR Win : p_Window;
- NWTags : array[1..14] of TagItem; STATIC;
- RP : p_RastPort;
- PScr : p_Screen;
- drawinfo : p_drawinfo;
- txattr : TextAttr; STATIC;
- font : p_textfont;
- myfont,gfx : long; STATIC;
- vi : PTR;
- title : string;STATIC;
- msg : p_IntuiMessage;
- ng : NewGadget;STATIC;
- G,PGad,Glist,Akt : p_Gadget;
- Tag : TagItem;STATIC;
- ex : boolean;STATIC;
-
- {------------------------------------------------------------------------}
-
- PROCEDURE GRand(ziel:p_window;x,y,b,h:cardinal);
-
- TYPE type1=array[0..5] of cardinal;
- type2=array[0..5] of cardinal;
- type3=array[0..3] of cardinal;
-
- VAR F1:type1;STATIC;
- F2:type2;STATIC;
- F3:type3;STATIC;
- Bor1,Bor2,Bor3:BORDER;STATIC;
-
- BEGIN
- F1:=type1(b-1,0,0,0,0,h); {Gadgetumrandungen}
- F2:=type2(b,0,b,h,1,h);
- F3:=type3(b-1,1,b-1,h-1);
- Bor1:=BORDER(0,0,2,0,0,3,^F1,^Bor2);
- Bor2:=BORDER(0,0,1,0,0,3,^F2,^Bor3);
- Bor3:=BORDER(0,0,1,0,0,2,^F3,NIL);
- DRAWBORDER(ziel^.RPort,^Bor1,x,y);
- END;
- {-----------------------------------------------------------------------}
- PROCEDURE Pick;
- BEGIN
- IF (g^.flags and GFLG_SELECTED)<>0
- THEN SetAPen(RP,3)
- ELSE SetAPen(RP,0);
- move(RP,60,40);
- gfx:=_Text(RP,'X',1);
- END;
-
- BEGIN
- PScr:=NIL;
- PScr:=lockpubscreen(NIL);
- IF PScr<>NIL
- THEN
- BEGIN
- drawinfo:=getscreendrawinfo(PScr);
- IF drawinfo<>NIL
- THEN
- BEGIN
- font:=drawinfo^.dri_font;
- vi:=GetVisualInfoA(PScr,nil);
- Freescreendrawinfo(PScr,drawinfo);
- UnlockPubScreen(NIL,PScr);
- PGad:=NIL;
- GList:=NIL;
- PGad:=CreateContext(^GList);
- IF PGad<>NIL
- THEN
- BEGIN
- txattr:=TextAttr('topaz.font',8,0,0); {simple for test}
- Font:=OpenFont(^txattr);
-
- Tag.ti_tag:=Tag_End;
-
- ng:=NewGadget(50,30,28,14,NIL,^Txattr,0,0,vi,NIL);
- g:=CreateGadgetA(GENERIC_KIND,pgad,^ng,^Tag);
- g^.GadgetType :=GTYP_BOOLGADGET;
- g^.Activation :=GACT_TOGGLESELECT+GACT_IMMEDIATE;
- g^.Flags :=GFLG_GADGHNONE+GFLG_SELECTED;
-
- title:='ToggleSelect-Gad V0.2 © by PackMAN 03.07.94';
- NWTags[1] :=TagItem(wa_left,0);
- NWTags[2] :=TagItem(wa_top,0);
- NWTags[3] :=TagItem(wa_width,400);
- NWTags[4] :=TagItem(wa_height,100);
- NWTags[5] :=TagItem(wa_activate,ord(true));
- NWTags[6] :=TagItem(wa_smartrefresh,ord(true));
- NWTags[7] :=TagItem(wa_rmbtrap,ord(true));
- NWTags[8] :=TagItem(wa_title,long(^title));
- NWTags[9] :=TagItem(wa_flags,WFLG_CLOSEGADGET);
- NWTags[10]:=TagItem(wa_idcmp,IDCMP_RAWKEY+
- IDCMP_CLOSEWINDOW+
- IDCMP_GADGETDOWN);
- NWTags[11]:=TagItem(wa_gadgets,long(GList));
- NWTags[12].ti_tag:=tag_done;
-
- Win:=openwindowtaglist(nil,^NWTags[1]);
- IF Win<>NIL
- THEN
- BEGIN
- RP:=Win^.RPort;
- myfont:=setfont(RP,font);
- GRand(Win,50,30,28,14);
- Pick;
- move(RP,100,40);
- gfx:=_Text(RP,'Pick up !',9);
- SetAPen(RP,2);
- move(RP,40,70);
- gfx:=_Text(RP,'Arbeitet über Gadtools: GENERIC_KIND.',37);
- ex:=false;
- REPEAT
- Msg:=Wait_Port(Win^.UserPort);
- Msg:=GT_GetIMsg(Win^.Userport);
- GT_ReplyIMsg(Msg);
- CASE Msg^.class OF
- IDCMP_CLOSEWINDOW : ex:=true;
- IDCMP_GADGETDOWN:
- BEGIN
- Akt:=Msg^.IAddress;
- IF Akt^.GadgetID=0 THEN Pick;
- END;
- ELSE;END;
- UNTIL ex;
- CloseWindow(Win);
- END;
- FreeGadgets(Glist);
- FreeVisualInfo(vi);
- CloseLib(Gadtoolsbase);
- CloseLib(Intuitionbase);
- CloseLib(GfxBase);
- END;
- END;
- END;
- END.
-
-
-
-
-
-
-