; ; *************************************** ; *                                     * ; *       BBGadTools Library            * ; *                                     * ; ***************************************  ; 17/10/93 ;  fixed immediate/relverify constants (they were bloody wrong!) ;  added gtsetsting getsetinteger gtgetsting getgetinteger ;   so no more attatching a dummy Blitz gadget list for users ; 18/10/93 ;  added optional values for scroll,slider,cycle,mx,string&palette ;  added optional listview parameters and flag$1000 for readonly ;  fixed setattr to find correct gadget ; 13/11/93 ;  fixed id bug where d1 parameter was getting trashed in stdsetup ; 19/11/93 ;  fixed attachgtlist to not corrupt a4 ; 24/11/93 ;  added gtshape for gtbutton using an shape image, ;  it seems that it isn' t possible to add text anymore... ;  error checking (gtshape) added ; March 1994 (BUM6) ;  GTGetAttrs (GTList#,id,Tag) ;  GTEnable   GTList#,Id ;  GTDisable  GTList#,Id ;  GTToggle   GTList#,Id [,On|Off]  #_BUTTON=1:#_CHECKBOX=2:#_INTEGER=3:#_LISTVIEW=4:#_MX=5:#_NUMBER=6 #_CYCLE=7:#_PALETTE=8:#_SCROLLER=9:#_SLIDER=11:#_STRING=12:#_TEXT=13  #_LEFT=1:#_RIGHT=2:#_ABOVE=4:#_BELOW=8 #_IN=$10:#_High=$20:#_Disable=$40:#_Immediate=$80 #_BoolValue=$100:#_Scaled=$200:#_Vertical=$400 #_Arrows=$800:#_ReadOnly=$1000:#_Toggle=$2000   .NewGadget     ng_LeftEdge.w   ;0     ng_TopEdge.w    ;2                  ;  gadget position     ng_Width.w      ;4     ng_Height.w     ;6                  ;  gadget size     ng_GadgetText.l ;8                  ;  gadget label     ng_TextAttr.l   ;12                 ;  desired font for gadget label     ng_GadgetID.w   ;16                 ;  gadget ID     ng_Flags.l      ;18                 ;  see below     ng_VisualInfo.l ;22                 ;  Set to retval of GetVisualInfo()     ng_UserData.l   ;26                 ;  gadget UserData    #tag=$80080000 #TAG_MORE=2 #GA_Disabled=$8003000e #GA_Immediate=$80030015 #GA_RelVerify=$80030016 #GTCB_Checked=#tag+4      ; State of checkbox #GTLV_Top=#tag+5          ; Top visible one in listview #GTLV_Labels=#tag+6       ; List to display in listview #GTLV_ReadOnly=#tag+7     ; TRUE if listview is to be #GTLV_ScrollWidth=#tag+8  ; Width of scrollbar #GTMX_Labels=#tag+9       ; NULL-terminated array of labels #GTMX_Active=#tag+10      ; Active one in mx gadget #GTTX_Text=#tag+11        ; Text to display #GTTX_CopyText=#tag+12    ; Copy text label instead of #GTNM_Number=#tag+13      ; Number to display #GTCY_Labels=#tag+14      ; NULL-terminated array of labels #GTCY_Active=#tag+15      ; The active one in the cycle gad #GTPA_Depth=#tag+16       ; Number of bitplanes in palette #GTPA_Color=#tag+17       ; Palette color #GTPA_ColorOffset=#tag+18 ; First color to use in palette #GTPA_IndicatorWidth=#tag+19  ; Width of current-color indicator #GTPA_IndicatorHeight=#tag+20 ; Height of current-color indicator #GTSC_Top=#tag+21         ; Top visible in scroller #GTSC_Total=#tag+22       ; Total in scroller area #GTSC_Visible=#tag+23     ; Number visible in scroller #GTSC_Overlap=#tag+24     ; Unused #GTSL_Min=#tag+38         ; Slider min value #GTSL_Max=#tag+39         ; Slider max value #GTSL_Level=#tag+40       ; Slider level #GTSL_MaxLevelLen=#tag+41 ; Max length of printed level #GTSL_LevelFormat=#tag+42 ; Format string for level #GTSL_LevelPlace=#tag+43  ; Where level should be placed #GTSL_DispFunc=#tag+44    ; Callback for number calculation #GTST_String=#tag+45      ; String gadget's displayed string #GTST_MaxChars=#tag+46    ; Max length of string #GTIN_Number=#tag+47      ; Number in integer gadget #GTIN_MaxChars=#tag+48    ; Max number of digits #GTBB_Recessed=#tag+51     ; Make BevelBox recessed #GT_VisualInfo=#tag+52     ; result of VisualInfo call #GTLV_ShowSelected=#tag+53 ; show selected entry beneath #GTLV_Selected=#tag+54     ; Set ordinal number of selected #GTTX_Border=#tag+57       ; Put a border around #GTNM_Border=#tag+58       ; Put a border around #GTSC_Arrows=#tag+59       ; Specify size of arrows for #GTMN_Menu=#tag+60         ; Pointer to Menu for use by #GTMX_Spacing=#tag+61      ; Added to font height to #GT_Underscore=#tag+64     ;ti_Data points To the symbol #GTCB_Scaled=#tag+68       ;bool #GTMX_Scaled=#tag+69       ;bool  #PGA_Freedom=$80031001  #_CreateGadget=-30     ;(kind,gad,ng,taglist)(d0/a0/a1/a2) #_FreeGadgets=-36      ;(gad)(a0) #_SetGadgetAttrs=-42   ;(gad,win,req,taglist)(a0/a1/a2/a3) #_GetIMsg=-72          ;(iport)(a0) #_ReplyIMsg=-78        ;(imsg)(a1) #_RefreshWindow=-84    ;(win,req)(a0/a1) #_BeginRefresh=-90     ;(win)(a0) #_EndRefresh=-96       ;(win,complete)(a0,d0) #_FilterIMsg=-102      ;(imsg)(a1) #_PostFilterIMsg=-108  ;(imsg)(a1) #_CreateContext=-114   ;(glistptr)(a0) #_DrawBevelBox=-120    ;(rport,left,top,width,height,taglist)(a0,d0/d1/d2/d3/a1) #_GetVisualInfo=-126   ;(screen,taglist)(a0/a1) #_FreeVisualInfo=-132  ;(vi)(a0) ; ;#_GetGadgetAttrs=-42   ;(gad,win,req,taglist)(a0/a1/a2/a3)  ; ;August 28th (BUM 5) ;  !libheader{#mygadtoolslib,init,0,finit,errors}  !dumtoke{"GTList","A GadgTools GadgetList",_toke}  !astatement !args{#word,#word,#word,#word,#word,#word,#string,#long} !libs{#mygadtoolslib,$1380,#intuifontlib,#la0,#screenslib,$1102} !subs{_gtbutton+1,0,0} !name{"GTButton","GTList#,id,x,y,w,h,Text$,flags"}  !astatement !args{#word,#word,#word,#word,#word,#word,#string,#long} !libs{#mygadtoolslib,$1380,#intuifontlib,#la0,#screenslib,$1102} !subs{_gtcheckbox+1,0,0} !name{"GTCheckBox","GTList#,id,x,y,w,h,Text$,flags"}  !astatement !args{#word,#word,#word,#word,#word,#word,#string,#long,#string} !libs{#mygadtoolslib,$1380,#intuifontlib,#la0,#screenslib,$1102} !subs{_gtcycle+1,0,0} !args{#word,#word,#word,#word,#word,#word,#string,#long,#string,#word|#push} !libs{#mygadtoolslib,$1380,#intuifontlib,#la0,#screenslib,$1102} !subs{_gtcycle2+1,0,0} !name{"GTCycle","GTList#,id,x,y,w,h,Text$,flags,Options$[,active]"}  !astatement !args{#word,#word,#word,#word,#word,#word,#string,#long,#long} !libs{#mygadtoolslib,$1380,#intuifontlib,#la0,#screenslib,$1102} !subs{_gtinteger+1,0,0} !name{"GTInteger","GTList#,id,x,y,w,h,Text$,flags,default"}  !astatement ; !args{#word,#word,#word,#word,#word,#word,#string,#long,#array|#push,#word|push} !libs{#mygadtoolslib,$1380,#intuifontlib,#la0,#screenslib,$1102} !subs{_gtlistview1+1,0,0} ; !args{#word,#word,#word,#word,#word,#word,#string,#long,#array|#push,#word|push,#word|push} !libs{#mygadtoolslib,$1380,#intuifontlib,#la0,#screenslib,$1102} !subs{_gtlistview2+1,0,0} ; !args{#word,#word,#word,#word,#word,#word,#string,#long,#array|#push} !libs{#mygadtoolslib,$1380,#intuifontlib,#la0,#screenslib,$1102} !subs{_gtlistview+1,0,0} ; !name{"GTListView","GTList#,id,x,y,w,h,Text$,flags,list()[,selected[,top]]"}  !astatement !args{#word,#word,#word,#word,#word,#word,#string,#long,#string} !libs{#mygadtoolslib,$1380,#intuifontlib,#la0,#screenslib,$1102} !subs{_gtmx+1,0,0} !args{#word,#word,#word,#word,#word,#word,#string,#long,#string,#word|#push} !libs{#mygadtoolslib,$1380,#intuifontlib,#la0,#screenslib,$1102} !subs{_gtmx2+1,0,0} !name{"GTMX","GTList#,id,x,y,w,h,Text$,flags,Options$[,active]"}  !astatement !args{#word,#word,#word,#word,#word,#word,#string,#long,#long} !libs{#mygadtoolslib,$1380,#intuifontlib,#la0,#screenslib,$1102} !subs{_gtnumber+1,0,0} !name{"GTNumber","GTList#,id,x,y,w,h,Text$,flags,value"}  !astatement !args{#word,#word,#word,#word,#word,#word,#string,#long,#long} !libs{#mygadtoolslib,$1380,#intuifontlib,#la0,#screenslib,$1102} !subs{_gtpalette+1,0,0} !args{#word,#word,#word,#word,#word,#word,#string,#long,#long,#word|#push} !libs{#mygadtoolslib,$1380,#intuifontlib,#la0,#screenslib,$1102} !subs{_gtpalette2+1,0,0} !name{"GTPalette","GTList#,id,x,y,w,h,Text$,flags,depth[,Color]"}  !astatement !args{#word,#word,#word,#word,#word,#word,#string,#long,#word,#word} !libs{#mygadtoolslib,$1380,#intuifontlib,#la0,#screenslib,$1102} !subs{_gtscroller+1,0,0} !args{#word,#word,#word,#word,#word,#word,#string,#long,#word,#word,#word|#push} !libs{#mygadtoolslib,$1380,#intuifontlib,#la0,#screenslib,$1102} !subs{_gtscroller2+1,0,0} !name{"GTScroller","GTList#,id,x,y,w,h,Text$,flags,Visible,Total[,Top]"}  !astatement !args{#word,#word,#word,#word,#word,#word,#string,#long,#word,#word} !libs{#mygadtoolslib,$1380,#intuifontlib,#la0,#screenslib,$1102} !subs{_gtslider+1,0,0} !args{#word,#word,#word,#word,#word,#word,#string,#long,#word,#word,#word|#push} !libs{#mygadtoolslib,$1380,#intuifontlib,#la0,#screenslib,$1102} !subs{_gtslider2+1,0,0} !name{"GTSlider","GTList#,id,x,y,w,h,Text$,flags,Min,Max[,Level]"}  !astatement ; !args{#word,#word,#word,#word,#word,#word,#string,#long,#word} !libs{#mygadtoolslib,$1380,#intuifontlib,#la0,#screenslib,$1102} !subs{_gtstring+1,0,0} ; !args{#word,#word,#word,#word,#word,#word,#string,#long,#word,#string|#push} !libs{#mygadtoolslib,$1380,#intuifontlib,#la0,#screenslib,$1102} !subs{_gtstring2+1,0,0} ; !name{"GTString","GTList#,id,x,y,w,h,Text$,flags,MaxChars [,default$]"}  !astatement !args{#word,#word,#word,#word,#word,#word,#string,#long,#string} !libs{#mygadtoolslib,$1380,#intuifontlib,#la0,#screenslib,$1102} !subs{_gttext+1,0,0} !name{"GTText","GTList#,id,x,y,w,h,Text$,flags,Display$"}  !astatement !args{#word,#word} !libs{#mygadtoolslib,$1180,#windowslib,$1081} !subs{_attachgtlist+1,0,0} !name{"AttachGTList","GTList#,Window#"}  !astatement !repargs {0,2,#long|#push,#long|#push} !libs !subs {_gttags+1,0,0} !name {"GTTags","Tag,Value [,Tag,Value...]"}  !afunction {#long} !args {#word,#word} !libs {#mygadtoolslib,$1180} !subs {_gtptr+1,0,0} !name {"GTGadPtr","(GTList#,id)"}  !astatement !args {#word,#long,#long,#long,#long,#long} !libs {#mygadtoolslib,$1080} !subs {_gtbevel+1,0,0} !name {"GTBevelBox","GTList#,x,y,w,h,flags"}  !astatement !args {#word,#word,#array|#push} !libs {#mygadtoolslib,$1180} !subs {_gtchnglist1+1,0,0} !args {#word,#word} !libs {#mygadtoolslib,$1180} !subs {_gtchnglist2+1,0,0} !name {"GTChangeList","GTList#,id [ ,List() ]"}  !astatement !repargs {2,2,#word,#word,#long|#push,#long|#push} !libs {#mygadtoolslib,$1180} !subs {_gtsetattrs+1,0,0} !name {"GTSetAttrs","GTList#,id [,Tag,Value...]"}  !astatement !args {#word,#word,#string} !libs {#mygadtoolslib,$1180} !subs {_gtsetstring+1,0,0} !name {"GTSetString","GTList#,id,string$"}  !astatement !args {#word,#word,#long} !libs {#mygadtoolslib,$1180} !subs {_gtsetint+1,0,0} !name {"GTSetInteger","GTList#,id,value"}  !afunction {#string} !args {#word,#word} !libs {#mygadtoolslib,$1180} !subs {_gtgetstring+1,0,0} !name {"GTGetString","GTList#,id"}  !afunction {#long} !args {#word,#word} !libs {#mygadtoolslib,$1180} !subs {_gtgetint+1,0,0} !name {"GTGetInteger","GTList#,id"}  !astatement !args{#word,#word,#word,#word,#long,#word} !libs{#mygadtoolslib,$1380,#intuifontlib,#la0,#screenslib,$1102,#shapeslib,#ia6|#pd5} !subs{_gtshape+1,sgchk,0} ; !args{#word,#word,#word,#word,#long,#word,#word} !libs{#mygadtoolslib,$1380,#intuifontlib,#la0,#screenslib,$1102,#shapeslib,#ia6|#pd5,#shapeslib,#ia2|#pd6} !subs{_gtshape2+1,sgchk2,0} ; !name{"GTShape","GTList#,id,x,y,flags,Shape#[,Shape#]"} ; Andre was here :)  !afunction {#long} !args {#word,#word,#long} !libs {#mygadtoolslib,$1180} !subs {_gtgetattrs+1,0,0} !name {"GTGetAttrs","(GTList#,id,Tag)"}  !astatement ; need a Redraw... !args{2,2} !libs{#mygadtoolslib,$1180} !subs{doenable,0,0} !name{"GTEnable","GTList#,Id"}  !astatement ; need a Redraw... !args{2,2} !libs{#mygadtoolslib,$1180} !subs{dodisable,0,0} !name{"GTDisable","GTList#,Id"}  !astatement ; need a Redraw... ; !args{2,2,2} !libs{#mygadtoolslib,$1180} !subs{doselect,0,0} ; !args{2,2}                   ;simon was here !libs{#mygadtoolslib,$1180}  ;andre too... !subs{doselect2,0,0} ; !name{"GTToggle","GTList#,Id [,On|Off]"}  init:!nullsub{_codeinit,0,0}  finit:!nullsub{_codefinit,0,0}  _load:!nullsub{0,0,0}  _save:!nullsub{0,0,0}  _use:!nullsub{0,0,0}  _free:!nullsub{_freecontext,0,0}  !libfin{_toke,_load,_save,_use,_free,5,4} ;don't change!!!(cludged)  ;----------------------------------------------------------------   .gtcontext   mycontext.l        ;0 points to context   visualinfo.l       ;4 our visual info from current screen   current.l          ;8 current gadget   gtwindow.l         ;12 window gadgetlist is attached to     s / .Screen`1(a1):   ._codeinit:   z gtname(pc),a1:#0,d0:~.l 4,a6:y _OpenLibrary(a6)   ~.l d0,gtbase:H failinit   ~.l #_prehandler,d0:~.l #_posthandler,d1   8 :   failinit:  ._codefinit:   ~.l gtbase(pc),d0:H noclose:~.l d0,a1:~.l 4,a6   y _CloseLibrary(a6):[.l gtbase:noclose:  gtname:%.b "gadtools.library",0,0 gtbase:%.l 0  ._prehandler   ~.l d0,a1:~.l gtbase(pc),a6:y _FilterIMsg(a6)   ~.l 4,a6:  ._posthandler   ~.l d0,a1:~.l gtbase(pc),a6:y _PostFilterIMsg(a6)   ~.l 4,a6:  ._attachgtlist   .l a3-a4,-(a7)   ~.l (a0),a0:~.l a0,12(a1)   ~.l (a1),a1:~.l a0,a3:~.l a1,a4   #-1,d0:~.ld0,d1:.l a2,a2:y _AddGList(a6)   ~.l a4,a0:~.l a3,a1:.l a2,a2:#-1,d0   y _RefreshGList(a6):~.l a3,a0:.l a1,a1   ~.l gtbase(pc),a6:y _RefreshWindow(a6)   .l (a7)+,a3-a4:  ._gtbevel   z beveltags(pc),a1:~.l 4(a0),4(a1)  ;get vinfo   ~.l 12(a0),a0:~.l 50(a0),a0          ;get rport   ~.l d1,d0:~.l d2,d1:~.l d3,d2:~.l d4,d3   .l d5:H nashit:~.l #GTBB_Recessed,d5:nashit   ~.l d5,8(a1):~.l gtbase(pc),a6:y _DrawBevelBox(a6):  beveltags:   %.l GT_VisualInfo,0   %.l GTBB_Recessed,0   %.l 0  ._gtptr   ~.l (a1),a0   'loop:~.l (a0),d0:H 'fail:~.l d0,a0:\ 38(a0),d1:P 'loop   'poop:~.l (a0),d2:H 'goop:~.l d2,a0:\ 38(a0),d1:P 'goop   ~.l d2,d0:X 'poop:'goop:   'fail:#0,d0:  ;#_SetGadgetAttrs=-42   ;(gad,win,req,taglist)(a0/a1/a2/a3)  ._gtchnglist2   .l#-1,d2:~.l d2,gatchtags+4:~.l (a1),a0:X gcloop ._gtchnglist1   ~.l -(a2),a2:z -28(a2),a2:~.l a2,gatchtags+4:~.l (a1),d0:.l d0:H gafail:~.l d0,a0   gcloop:~.l (a0),d0:H gafail:~.l d0,a0:\ 38(a0),d1:P gcloop   gdloop:~.l (a0),d0:.l d0:H gdok:~.l d0,a2:\ 38(a2),d1:P gdok:~.l a2,a0:X gdloop:gdok   ~.l 12(a1),a1:.l a2,a2:z gatchtags(pc),a3:~.l gtbase(pc),a6   y _SetGadgetAttrs(a6):gafail:  gatchtags:   %.l GTLV_Labels,0   %.l 0  ._gtsetattrs   ~.l (a1),a0:~.l (a1),d0:.l d0:H fattr   'foop:~.l (a0),d0:.l d0:H fattr:~.l d0,a0:\ 38(a0),d1:P 'foop   'soop:~.l (a0),a3:~.l (a3),d0:.l d0:H 'koop:\ 38(a3),d1:P 'koop:~.l a3,a0:X 'soop   'koop:Y _gttags:~.l 12(a1),a1:.l a2,a2:z usertags(pc),a3   ~.l gtbase(pc),a6:y _SetGadgetAttrs(a6):fattr:  ._gtsetstring   ~.l (a1),a0   'loop:~.l (a0),d0:.l d0:H sattr:~.l d0,a0:\ 38(a0),d1:P 'loop   ~.l #GTST_String,d0:\ #260,16(a0):H m1   ~.l #GTTX_Text,d0:m1:z onetag(pc),a3:.l d0/d2,(a3):   ~.l 12(a1),a1:.l a2,a2   ~.l gtbase(pc),a6:y _SetGadgetAttrs(a6):sattr:  ._gtsetint   ~.l (a1),a0   'loop:~.l (a0),d0:H iattr:~.l d0,a0:\ 38(a0),d1:P 'loop   ~.l #GTIN_Number,d0:\ #260,16(a0):H m2   ~.l #GTNM_Number,d0:m2:z onetag(pc),a3:.l d0/d2,(a3)   ~.l 12(a1),a1:.l a2,a2   ~.l gtbase(pc),a6:y _SetGadgetAttrs(a6):iattr:  onetag:%.l 0,0,0  ._gtgetstring   ~.l (a1),a0   'loop:~.l (a0),d0:H iattr:~.l d0,a0:\ 38(a0),d1:P 'loop   ~.l 34(a0),a0:~.l (a0),a0: #-1,d0   'sloop:@.l #1,d0:~.b (a0)+,(a3)+:P 'sloop    #1,a3:  ._gtgetint   ~.l (a1),a0   'loop:~.l (a0),d0:H iattr:~.l d0,a0:\ 38(a0),d1:P 'loop   ~.l 34(a0),a0:~.l 28(a0),d0:  #_GetGadgetAttrs=-174  ._gtgetattrs   ~.l (a1),a0   'loop:~.l (a0),d0:H gattr:~.l d0,a0:\ 38(a0),d1:P 'loop   ~.l d2,gettag:~.l 12(a1),a1:.l a2,a2:z gettag(pc),a3   ~.l gtbase(pc),a6:y _GetGadgetAttrs(a6)   ~.l value(pc),d0::gattr:#0,d0: gettag:%.l 0,value,0 value:%.l 0 ;----------------------------------------------------------------  ._handlestd   ~ d1,wrkgadget+16:~.l gtbase(pc),a6   ~.l (a0),a0:~.l (a1),a1:.l a0-a1,ufont    ;ufont & uscreen   #0,d0:~.b !s{\WBorLeft},d0:= d0,d2   #0,d0:~.b !s{\WBorTop},d0:= d0,d3   = 142(a1),d3 ;RP\TxHeight   @#1,d3:Y _getcontext:z wrkgadget(pc),a1    d2-d5,(a1):~.l ufont(pc),12(a1)      ;:MOVE d1,16(a1)   ~.l -(a2),d1:~.l -(a2),d0:8 $cf01:~.l d0,8(a1)   ~.l 4(a3),22(a1):  ._handlestd2 ; Andre was here :)   ~ d1,wrkgadget+16:~.l gtbase(pc),a6   ~.l (a0),a0:~.l (a1),a1:.l a0-a1,ufont    ;ufont & uscreen   #0,d0:~.b !s{\WBorLeft},d0:= d0,d2   #0,d0:~.b !s{\WBorTop},d0:= d0,d3   = 142(a1),d3 ;RP\TxHeight   @#1,d3:Y _getcontext:z wrkgadget(pc),a1    d2-d3,(a1):~.l ufont(pc),12(a1)      ;:MOVE d1,16(a1)   ~.w Width,4(a1) : ~.w Height,6(a1) ;  MOVE.l -(a2),d1:MOVE.l d4,d0:ALibJsr $cf01:MOVE.l d0,8(a1) ; might be remove the text !?!   ~.l 4(a3),22(a1):  ._getcontext:   .l (a3):P gotcontext:~.l a3,a0:y _CreateContext(a6)   ~.l d0,(a3):~.l d0,8(a3)   ~.l uscreen(pc),a0:z nulltags(pc),a1:y _GetVisualInfo(a6)   ~.l d0,4(a3):gotcontext:  ._freecontext:   .l (a3):H donefree    ~.l (a3),a0 ; We have to remove the image pointers !?!   'loop:~.l (a0),d0:H 'fail:~.l d0,a0:~.l #0,18(a0):~.l #0,22(a0)  :X 'loop   'fail    ~.l gtbase(pc),a6:~.l 4(a3),a0:y _FreeVisualInfo(a6)   ~.l (a3),a0:y _FreeGadgets(a6):[.l (a3)   donefree:  ;----------------------------------------------------------------  ._gttags   ~.l a0,-(a7):z usertags(pc),a0:X gettags   tagloop:~.l -(a2),d0:~.l -(a2),d1:.l d0-d1,(a0):@#8,a0   gettags:o d7,tagloop:~.l #0,(a0)+:~.l (a7)+,a0:  usertags:&.l 32  ._gtbutton   .l a4-a5,-(a7):Y _handlestd:~.l -(a2),d0:z buttags(pc),a2   ~.l  d0,-(a7)   W #6,d0: d1:v d1:v.l d1:~.l d1,4(a2)   W #7,d0: d1:v d1:v.l d1:~.l d1,12(a2)   B#$3f,d0:~ d0,20(a1)   ~.l usertags(pc),d0:H notg1:#2,d0:notg1:~.l d0,bt1   ~.l #_BUTTON,d0:~.l 8(a3),a0:y _CreateGadget(a6)   ~.l (a7)+,d3:~.l d0,a0   W #13,d3:H 'notog:V #0,14(a0):'notog   ~.l d0,8(a3):.l (a7)+,a4-a5:[.l usertags:  buttags:   %.l GA_Disabled,0   %.l GA_Immediate,0   %.l GT_Underscore,95 bt1:%.l 0,usertags  ._gtcheckbox   .l a4-a5,-(a7):Y _handlestd:~.l -(a2),d0:z boxtags(pc),a2   W #6,d0: d1:v d1:v.l d1:~.l d1,4(a2)   W #8,d0: d1:v d1:v.l d1:~.l d1,12(a2)   W #9,d0: d1:v d1:v.l d1:~.l d1,20(a2)   B#$3f,d0:~ d0,20(a1)   ~.l usertags(pc),d0:H notg2:#2,d0:notg2:~.l d0,bt2   ~.l #_CHECKBOX,d0:~.l 8(a3),a0:y _CreateGadget(a6)   ~.l d0,8(a3):.l (a7)+,a4-a5:[.l usertags:  boxtags:   %.l GA_Disabled,0   %.l GTCB_Checked,0   %.l GTCB_Scaled,0   %.l GT_Underscore,95 bt2:%.l 0,usertags  _gtcycle2   ~ -22(a2),cycletags+22  ._gtcycle   .l a4-a5,-(a7):Y _handlestd:~.l -(a2),d7   Y getoptions:~.l d0,cycletags+12:z cycletags(pc),a2   W #6,d7: d1:v d1:v.l d1:~.l d1,4(a2)   B#$3f,d7:~ d7,20(a1)   ~.l usertags(pc),d0:H notg3:#2,d0:notg3:~.l d0,bt3   ~.l #_CYCLE,d0:~.l 8(a3),a0:y _CreateGadget(a6)   ~.l d0,8(a3):.l (a7)+,a4-a5:[.l usertags:  cycletags:   %.l GA_Disabled,0   %.l GTCY_Labels,0   %.l GTCY_Active,0   %.l GT_Underscore,95 bt3:%.l 0,usertags  _gtmx2   ~ -22(a2),mxtags+30  ._gtmx   .l a4-a5,-(a7):Y _handlestd:~.l -(a2),d7   Y getoptions:~.l d0,mxtags+12:z mxtags(pc),a2   W #6,d7: d1:v d1:v.l d1:~.l d1,4(a2)   W #9,d7: d1:v d1:v.l d1:~.l d1,20(a2)   B#$3f,d7:~ d7,20(a1)   ~.l usertags(pc),d0:H notg6:#2,d0:notg6:~.l d0,bt6   ~.l #_MX,d0:~.l 8(a3),a0:y _CreateGadget(a6)   ~.l d0,8(a3):.l (a7)+,a4-a5:[.l usertags:  mxtags:   %.l GA_Disabled,0   %.l GTMX_Labels,0   %.l GTMX_Scaled,0   %.l GTMX_Active,0   %.l GT_Underscore,95 bt6:%.l 0,usertags  getoptions:   ~.l -(a2),d2:~.l -(a2),a0   ~.l d2,d0:=.l #258,d0:#0,d1:8 $c002   ~.l d0,a2:z 256(a2),a4:~.l a4,(a2)+:o d2,nxt1:X dunt nxt1:~.b (a0)+,d1:\.b#"|",d1:H nxt2      ~.b d1,(a4)+:o d2,nxt1:X dunt nxt2:~.b #0,(a4)+:~.l a4,(a2)+:o d2,nxt1 dunt:~.b #0,(a4):~.l #0,(a2):  ._gttext   .l a4-a5,-(a7):Y _handlestd:~.l -(a2),d7   ~.l -(a2),d1:~.l -(a2),d0:8 $cf01:~.l d0,texttags+4   z texttags(pc),a2:B#$3f,d7:~ d7,20(a1)   ~.l usertags(pc),d0:H notgC:#2,d0:notgC:~.l d0,btC   ~.l #_TEXT,d0:~.l 8(a3),a0:y _CreateGadget(a6)   ~.l d0,8(a3):.l (a7)+,a4-a5:[.l usertags:  texttags:   %.l GTTX_Text,0   %.l GTTX_Border,-1 btC:%.l 0,usertags  ._gtinteger   .l a4-a5,-(a7):Y _handlestd   ~.l -(a2),d0:~.l -(a2),inttags+20:z inttags(pc),a2   W #6,d0: d1:v d1:v.l d1:~.l d1,4(a2)   W #7,d0: d1:v d1:v.l d1:~.l d1,12(a2)   B#$3f,d0:~ d0,20(a1)   ~.l usertags(pc),d0:H notg4:#2,d0:notg4:~.l d0,bt4   ~.l #_INTEGER,d0:~.l 8(a3),a0:y _CreateGadget(a6)   ~.l d0,8(a3):.l (a7)+,a4-a5:[.l usertags:  inttags:   %.l GA_Disabled,0   %.l GA_Immediate,0   %.l GTIN_Number,0   %.l GT_Underscore,95 bt4:%.l 0,usertags  _gtlistview1   ~ -18(a2),listtags+22:~ -18(a2),listtags+30:X _gtlistview  _gtlistview2   ~ -18(a2),listtags+30:~ -22(a2),listtags+22:X _gtlistview  ._gtlistview   .l a4-a5,-(a7):Y _handlestd:~.l -(a2),d0   ~.l -(a2),a2:z -28(a2),a2:~.l a2,listtags+12   z listtags(pc),a2   W #6,d0: d1:v d1:v.l d1:~.l d1,4(a2)   W #12,d0: d1:v d1:v.l d1:~.l d1,44(a2)   B#$3f,d0:~ d0,20(a1)   ~.l usertags(pc),d0:H notg5:#2,d0:notg5:~.l d0,bt5   ~.l #_LISTVIEW,d0:~.l 8(a3),a0:y _CreateGadget(a6)   ~.l d0,8(a3):.l (a7)+,a4-a5:[.l usertags:  listtags:    %.l GA_Disabled,0    %.l GTLV_Labels,0    %.l GTLV_Top,0    %.l GTLV_Selected,-1    %.l GTLV_ShowSelected,0    %.l GTLV_ReadOnly,0    %.l GT_Underscore,95 bt5:%.l 0,usertags  ._gtnumber   .l a4-a5,-(a7):Y _handlestd   ~.l -(a2),d0:~.l -(a2),numbertags+4:z numbertags(pc),a2   B#$3f,d0:~ d0,20(a1)   ~.l usertags(pc),d0:H notg7:#2,d0:notg7:~.l d0,bt7   ~.l #_NUMBER,d0:~.l 8(a3),a0:y _CreateGadget(a6)   ~.l d0,8(a3):.l (a7)+,a4-a5:[.l usertags:  numbertags:   %.l GTNM_Number,0   %.l GTNM_Border,-1 bt7:%.l 0,usertags  _gtpalette2   ~ -18(a2),palettetags+38  ._gtpalette   .l a4-a5,-(a7):Y _handlestd   ~.l -(a2),d0:~.l -(a2),palettetags+12:z palettetags(pc),a2   W #6,d0: d1:v d1:v.l d1:~.l d1,4(a2)   B#$3f,d0:~ d0,20(a1)   ~.l usertags(pc),d0:H notg8:#2,d0:notg8:~.l d0,bt8   ~.l #_PALETTE,d0:~.l 8(a3),a0:y _CreateGadget(a6)   ~.l d0,8(a3):.l (a7)+,a4-a5:[.l usertags:  palettetags:   %.l GA_Disabled,0   %.l GTPA_Depth,0   %.l GTPA_IndicatorWidth,2   %.l GTPA_IndicatorHeight,2   %.l GTPA_Color,0   %.l GT_Underscore,95 bt8:%.l 0,usertags  _gtscroller2   ~ -18(a2),scrollertags+54  ._gtscroller   .l a4-a5,-(a7):Y _handlestd   ~.l -(a2),d0:~ -(a2),scrollertags+30:~ -(a2),scrollertags+38   z scrollertags(pc),a2   W #6,d0: d1:v d1:v.l d1:~.l d1,4(a2)   W #7,d0: d1:v d1:v.l d1:~.l d1,12(a2)   #1,d1:W #10,d0:H notv:#2,d1:notv:~.l d1,20(a2)   #0,d1:W #11,d0:H noarr:#16,d1:noarr:~.l d1,44(a2)   B#$3f,d0:~ d0,20(a1)   ~.l usertags(pc),d0:H notg9:#2,d0:notg9:~.l d0,bt9   ~.l #_SCROLLER,d0:~.l 8(a3),a0:y _CreateGadget(a6)   ~.l d0,8(a3):.l (a7)+,a4-a5:[.l usertags:  scrollertags:   %.l GA_Disabled,0   %.l GA_Immediate,0   %.l PGA_Freedom,0   %.l GTSC_Visible,0   %.l GTSC_Total,0   %.l GTSC_Arrows,16   %.l GTSC_Top,0   %.l GT_Underscore,95   %.l GA_RelVerify,-1 bt9:%.l 0,usertags  _gtslider2   ~ -18(a2),slidertags+46  ._gtslider   .l a4-a5,-(a7):Y _handlestd   ~.l -(a2),d0:~ -(a2),slidertags+30:~ -(a2),slidertags+38   z slidertags(pc),a2   W #6,d0: d1:v d1:v.l d1:~.l d1,4(a2)   W #7,d0: d1:v d1:v.l d1:~.l d1,12(a2)   #1,d1:W #10,d0:H notv2:#2,d1:notv2:~.l d1,20(a2)   B#$3f,d0:~ d0,20(a1)   ~.l usertags(pc),d0:H notgA:#2,d0:notgA:~.l d0,btA   ~.l #_SLIDER,d0:~.l 8(a3),a0:y _CreateGadget(a6)   ~.l d0,8(a3):.l (a7)+,a4-a5:[.l usertags:  slidertags:   %.l GA_Disabled,0   %.l GA_Immediate,1   %.l PGA_Freedom,0   %.l GTSL_Min,0   %.l GTSL_Max,0   %.l GTSL_Level,0   %.l GT_Underscore,95   %.l GA_RelVerify,-1 btA:%.l 0,usertags   ._gtstring2   ~.l -22(a2),stringtags+28  ._gtstring   .l a4-a5,-(a7):Y _handlestd   ~.l -(a2),d0:~ -(a2),stringtags+22:z stringtags(pc),a2   W #6,d0: d1:v d1:v.l d1:~.l d1,4(a2)   W #7,d0: d1:v d1:v.l d1:~.l d1,12(a2)   B#$3f,d0:~ d0,20(a1)   ~.l usertags(pc),d0:H notgB:#2,d0:notgB:~.l d0,btB   ~.l #_STRING,d0:~.l 8(a3),a0:y _CreateGadget(a6)   ~.l d0,8(a3):.l (a7)+,a4-a5:[.l usertags:  stringtags:   %.l GA_Disabled,0   %.l GA_Immediate,0   %.l GTST_MaxChars,0   %.l GTST_String,0   %.l GT_Underscore,95 btB:%.l 0,usertags  ._gtshape2 ; Two images   ~.w  (a2),Width2   ~.w  2(a2),Height2   ~.w  4(a2),Depth2   ~.l  14(a2),ImageData2   =.w #GFLG_GADGHIMAGE,gflags  ._gtshape ; Only one image   ~.w  (a6),Width   ~.w  2(a6),Height   ~.w  4(a6),Depth   ~.l  14(a6),ImageData   =.w #GFLG_GADGIMAGE,gflags    .doshape:    .l a4-a5,-(a7):Y _handlestd2:~.l d4,d0:z shapetags(pc),a2   W #6,d0: d1:v d1:v.l d1:~.l d1,4(a2)   W #7,d0: d1:v d1:v.l d1:~.l d1,12(a2)   B#$3f,d0:~ d0,20(a1)   ~.l usertags(pc),d0:H nots1:#2,d0:nots1:~.l d0,sht1   ~.l #_BUTTON,d0:~.l 8(a3),a0:y _CreateGadget(a6)   ~.l d0,a0:~.l Image(pc),18(a0):~.l Image2(pc),22(a0)   ~.w gflags,12(a0):~.w #GACT_RELVERIFY,14(a0)   ~.w 16(a0),d1:=.w #GTYP_BOOLGADGET,d1: #1,d1:~.w d1,16(a0)   ~.l d0,8(a3):.l (a7)+,a4-a5:[.l usertags:[.w gflags:  shapetags: ; What flags/tags are to use now ?   %.l GA_Disabled,0   %.l GA_Immediate,0   %.l GT_Underscore,95 sht1:%.l 0,usertags  .doenable:Y findgadget:U #0,12(a0):  .dodisable:Y findgadget:V #0,12(a0):  .doselect:;select a gadget! ; Y findgadget: d2:H 'skip:V #7,13(a0): 'skip:U #7,13(a0):  .doselect2:;toggle a gadget! ; Y findgadget:T #7,13(a0):  .findgadget:;gadget list a1, id in d1, return a0, gadget struct ; ~.l a1,a0 'loop:~.l (a0),a0:\ 38(a0),d1:P 'loop: 16(a0):O 'loop   ;--------------------------------------------------------------  gflags: %.w  0  ;Image:  Dcb.b SizeOf .Image,0 Image:  %.l  LeftEdge ; Image one LeftEdge: %.w  0 TopEdge:  %.w  0 Width:  %.w  0 Height: %.w  0 Depth:  %.w  0 ImageData:  %.l  0 PlanePick:  %.b  3 PlaneOnOff: %.b  0 NextImage:  %.l  0  Image2:  %.l  LeftEdge2 ; Image two LeftEdge2: %.w  0 TopEdge2:  %.w  0 Width2:  %.w  0 Height2: %.w  0 Depth2:  %.w  0 ImageData2:  %.l  0 PlanePick2:  %.b  3 PlaneOnOff2: %.b  0 NextImage2:  %.l  0  ufont:%.l 0 uscreen:%.l 0 wrkgadget:(.b / .NewGadget,0  gadgetptr:%.l nullgadget nullgadget:(.b / .Gadget,0  nulltags:%.l 0,0,0,0  ;----------------------------------------------------------------  ;******************** Error Checking ******************;  errors  err1:.l #1,d0: #0 err2:~.l #mess2,d0: #0 err3:~.l #mess3,d0: #0 err4:~.l #mess4,d0: #0  mess2:%.b "Not enough space in PATH string",0 mess3:%.b "Not enough space in NAME string",0 mess4:%.b "Uninitialized Shape",0 '  freqchk:.l d1:H err1:.l d2:H err1 ; ~.l d1,a0:\.l #160,-8(a0):G err2 ~.l d2,a0:\.l #64,-8(a0):G err3 ;   sgchk2: (a2):H err4 ; sgchk: (a6):H err4: 