home *** CD-ROM | disk | FTP | other *** search
- { Programm: ListView
- ~~~~~~~~
- Sinn: arbeiten mit Listviewgadgets... diesmal mit "MinList"
- ~~~~~
- Sprache: MaxonPASCAL 3 / KickPascal 2.12 & OS 2.0-Includes
- ~~~~~~~~
-
- Copyright: FREEWARE, bei Routinenverwendung wird der Autor
- ~~~~~~~~~~ im Infofile / Dok erwähnt und erhält das fertige
- nichtkomerzielle Programm zugesendet.
-
- Autor: PackMAN
- ~~~~~~ c/o Falk Zühlsdorff
- Lindenberg 66
- D-98693 Ilmenau/Thüringen
-
- Kommentar: Version für MAXON
- ~~~~~~~~~~ ab OS 2.0 }
-
- Program LV;
-
- USES INTUITION,GRAPHICS,GADTOOLS,EXECIO;
- TYPE Txtype = array[0..19] OF string[35];
- 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 : long; STATIC;
- vi : PTR;
- title : string;STATIC;
-
- msg : p_IntuiMessage;
- ng : NewGadget;STATIC;
- G,PGad,Glist : p_Gadget;
- LVTags : array[0..3] of TagItem;STATIC;
-
- ex : boolean;STATIC;
-
- nodelist : array[0..19] of p_node;
-
- i : byte;
- mylist : minlist;
- Tx : Txtype;STATIC;
-
- 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);
- Tx:=Txtype(' Bsp. für ein Listviewgadget in',
- ' MaxonPASCAL 3 / KickPASCAL 2.12',
- '',
- ' V0.27 mit "MinList"',
- '',
- ' © & P by',
- '',
- ' PackMAN',
- ' (Falk Zühlsdorff)',
- '',
- ' es geht auch mit ',
- '',
- ' ARRAY of LONG',
- '',
- ' Greetings fly to:',
- '',
- ' dopW, Janosh, Diesel',
- ' Rascal,Røgersøft...',
- '',
- '');
- FOR i:=0 TO 19 DO
- nodelist[i]:=AllocMem(sizeof(Node),MEMF_CLEAR);
-
- {ohne SpeicherAlloc Reise nach Indien}
-
- nodelist[0]^.ln_succ:=^nodelist[1]^.ln_succ;
- nodelist[0]^.ln_pred:=^mylist.mlh_head;
- nodelist[0]^.ln_type:=0;
- nodelist[0]^.ln_pri:=0;
- nodelist[0]^.ln_name:=^Tx[0];
-
- FOR i:=1 TO 18 DO
- BEGIN
- nodelist[i]^.ln_succ:=^nodelist[i+1]^.ln_succ;
- nodelist[i]^.ln_pred:=^nodelist[i-1]^.ln_succ;
- nodelist[i]^.ln_type:=0;
- nodelist[i]^.ln_pri:=0;
- nodelist[i]^.ln_name:=^Tx[i];
- END;
-
- nodelist[19]^.ln_succ:=^mylist.mlh_tail;
- nodelist[19]^.ln_pred:=^nodelist[18]^.ln_succ;
- nodelist[19]^.ln_type:=0;
- nodelist[19]^.ln_pri:=0;
- nodelist[19]^.ln_name:=^Tx[19];
-
- mylist.mlh_head:=nodelist[0];
- mylist.mlh_tail:=NIL;
- mylist.mlh_tailpred:=nodelist[2];
-
- LVTags[0]:=TagItem(GTLV_Top,0);
- LVTags[1]:=TagItem(GTLV_ReadOnly,ord(true));
- LVTags[2]:=TagItem(GTLV_Labels,long(^mylist));{ <-- vergl. }
- LVTags[3].ti_tag:=Tag_End; { V0.26 }
-
- ng:=NewGadget(60,32,280,50,NIL,^Txattr,0,0,vi,NIL);
- g:=CreateGadgetA(LISTVIEW_KIND,pgad,^ng,^LVtags[0]);
-
- title:='ListView 0.27 © & P 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+
- {Fehler mit LISTVIEWIDCMP } IDCMP_GADGETUP+
- {Möglichkeiten: a) --> } IDCMP_GADGETDOWN+
- { b) LIST- } IDCMP_INTUITICKS+
- {VIEWIDCMP+IDCMP_MOUSEMOVE+} IDCMP_MOUSEBUTTONS+
- {IDCMP_MOUSEBUTTONS} IDCMP_MOUSEMOVE);
-
- 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);
- GT_RefreshWindow(Win,NIL);
- 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_RAWKEY : ex:=true;
- ELSE;END;
- UNTIL ex;
- CloseWindow(Win);
- END;
- FreeGadgets(Glist);
- FreeVisualInfo(vi);
- CloseLib(Gadtoolsbase);
- CloseLib(Intuitionbase);
- CloseLib(GfxBase);
- END;
- END;
- END;
- END.
-
-
-
-
-