/* gadtools support lib */ #include "startup.h" static struct VisualInfo *vi; static struct Gadget *glist,*lastg,*gads[32]; static int gid; struct TextAttr textattr={"topaz.font",8,0,0}; #define top80 textattr void gt_init(void) { struct Screen *scr; scr=LockPubScreen(0); vi=GetVisualInfo(scr,TAG_DONE); UnlockPubScreen(0,scr); } void gt_exit(void) { if(vi) FreeVisualInfo(vi); } struct Gadget *gt_newlist(void) { glist=0;gid=1; lastg=CreateContext(&glist); return(lastg); } void gt_endlist(void) { AddGList(w,glist,-1,-1,0); RefreshGList(glist,w,0,-1); GT_RefreshWindow(w,0); } void gt_remlist(struct Gadget *list) { FreeGadgets(list); } struct Gadget * __stdargs gt_createg(int x,int y,int xs,int ys,long type,char *label,int flags,...) { struct NewGadget ng; ng.ng_LeftEdge=x; ng.ng_TopEdge=y; ng.ng_Width=xs; ng.ng_Height=ys; ng.ng_GadgetText=label; ng.ng_GadgetID=gid++; ng.ng_TextAttr=&top80; ng.ng_Flags=flags; ng.ng_VisualInfo=vi; ng.ng_UserData=(APTR)0xaffe; return(lastg=gads[gid-2]=CreateGadgetA(type,lastg,&ng,((long)(&flags))+4)); } void gt_setg(struct Gadget *g,...) { GT_SetGadgetAttrsA(g,w,0,((long)(&g))+4); } void gt_drawbox(int x,int y,int size,int height,int typ) { DrawBevelBox(rp,x,y,size,height,(typ)?TAG_IGNORE:GTBB_Recessed,0,GT_VisualInfo,vi,TAG_DONE); } /*struct Menu *gt_createmenus(struct NewMenu *nm) { struct Menu *m; m=CreateMenus(nm,GTMN_FrontPen,0,TAG_DONE); if(m) { if(LayoutMenus(m,vi,GTMN_TextAttr,&top80,TAG_DONE)) return(m); FreeMenus(m); } return(0); }*/ int doreq(char *hail,char *txt,char *gads,...) { struct EasyStruct es; es.es_StructSize=sizeof(struct EasyStruct); es.es_Flags=0; es.es_Title=hail; es.es_TextFormat=txt; es.es_GadgetFormat=gads; return(EasyRequestArgs(w,&es,0,((long)&gads)+4)); } void text(int x,int y,char *txt) { Move(rp,x,y); Text(rp,txt,strlen(txt)); } void textf(int x,int y,char *txt,...) { char p[128]; _dofmt(txt,((long)&txt)+4,p); Move(rp,x,y); Text(rp,&p[0],strlen(&p[0])); } struct Gadget *gt_findid(short id) { if(!id) return(0); return(gads[id-1]); } char *gt_findstring(short id) { struct StringInfo *si=gt_findid(id)->SpecialInfo; return(si->Buffer); } long gt_findint(short id) { struct StringInfo *si=gt_findid(id)->SpecialInfo; return(si->LongInt); } int gt_findstate(short id) { return(gt_findid(id)->Flags&SELECTED); }