/* libraries we'll need to open */

struct GfxBase *GfxBase = NULL;
struct IntuitionBase *IntuitionBase = NULL;
struct Library *GadToolsBase = NULL;
struct Library *AslBase = NULL;
struct Library *DiskfontBase = NULL;
struct FontRequester *FontRequester = NULL;
struct FileRequester *FileRequester = NULL;

BOOL   FirstReq = TRUE;
UBYTE  framebuff[256] = {0};

struct Screen *screen = NULL;
struct Window *window = NULL;
struct Gadget *sketchlist = NULL; /* sketchpad gadgets */
struct Gadget *glist = NULL;     /* Gadget list pointer */
struct List list;                /* we need this for the ListView Gadget */
struct List tit_list;
struct Remember *rmem = NULL;    /* Intuition memory allocation for List */
void *vi = NULL;                 /* VisualInfo pointer */
struct TagItem FontTags[]= {
   ASL_FuncFlags, FONF_STYLES | FONF_DOMSGFUNC ,
   TAG_DONE
};

struct Gadget *zt,*zl,*zh,*zw;

struct TextAttr topaz80 = {
   "topaz.font", 8, 0, 0
};

struct TextAttr menucta = {
   "topaz.font", 8, 0, 0
};

char textbuffer[20];    /* for displaying Gadget event information */

char VERSTAG[]="\0$VER: AIB 1.0";

char *titles[] = {
   "AIB Main Menu","WINDOW Menu","GADGET Menu","MENU Menu","PROJECT Menu",
   "ABOUT...","QUIT...","WA_Flags submenu","WA_IDCMP submenu",
   "GADGET PARAMETERS submenu: CREATE","GADGET PARAMETERS submenu: EDIT",NULL
};

char *testlabels[] = {
   "BUTTON_KIND","CHECKBOX_KIND","CYCLE_KIND","INTEGER_KIND","LISTVIEW_KIND",
   "MX_KIND","NUMBER_KIND","PALETTE_KIND","SCROLLER_KIND","SLIDER_KIND",
   "STRING_KIND","TEXT_KIND",NULL
};

char *kind_labels[] = {
   "BUTTON_KIND","CHECKBOX_KIND","CYCLE_KIND","INTEGER_KIND","LISTVIEW_KIND",
   "MX_KIND","NUMBER_KIND","PALETTE_KIND","SCROLLER_KIND","SLIDER_KIND",
   "STRING_KIND","TEXT_KIND",NULL
};
char kinds[] = {
   BUTTON_KIND,CHECKBOX_KIND,CYCLE_KIND,INTEGER_KIND,LISTVIEW_KIND,MX_KIND,
   NUMBER_KIND,PALETTE_KIND,SCROLLER_KIND,SLIDER_KIND,STRING_KIND,TEXT_KIND,NULL
};

/* globals */
struct Gadget *curr_font = NULL;
struct Gadget *font_size = NULL;

/* menu stuff */
struct Gadget *menu_font = NULL;
struct Gadget *menu_size = NULL;
struct Gadget *tl,*il,*sl,*ta,*td,*ts,*ia,*id,*is,*sa,*sd,*ss;
struct Gadget *sstring,*tstring,*istring;
struct Gadget *dis,*bar,*select,*stype,*chec,*tog,*func,*fche,*nfont,*key;
struct Gadget *g1chfont,*g1left,*g1widt,*g1gadg,*g1text,*g1id,*g1flag,*g1user,
	      *g1top,*g1place,*g1high,*g1height,*g1type,*gadisa,*g1nfont,*gtunder;

char MyFont[80]="topaz.font";
char *MFlags[] = {"Normal","Toggle","MX",NULL};
char *LevelPlaces[] = {"LEFT","RIGHT","ABOVE","BELOW",NULL};
char *LabelPlaces[] = {"LEFT","RIGHT","ABOVE","BELOW","IN",NULL};
char *PGALabels[] = {"HORIZ","VERT",NULL};
UWORD MFontSize = 8;
UWORD GFontSize = 8;

struct New_Wind  their;
struct Their_Window theirs ={
	NULL,				/* window pointer */
	CLOSEWINDOW | VANILLAKEY | REFRESHWINDOW |  /* flags */
        SLIDERIDCMP | STRINGIDCMP | BUTTONIDCMP |
        CHECKBOXIDCMP | MXIDCMP | MENUPICK | LISTVIEWIDCMP,

	0,0,0,0,		        /* l,t,w,h */
	"SKETCHPAD",                    /* title */
	170,50,-1,-1,			/* min w,h max w,h */
	170,80,	 			/* inner w,h */
	0,				/* rpt */
	0,0,50,50,			/* zl,zt,zw,zh */
	TRUE,				/* size */
	TRUE,				/* drag */
	TRUE,				/* depth */
	TRUE,				/* close */
	FALSE,				/* back */
	FALSE,				/* report */
	FALSE,				/* nocare */
	FALSE,				/* bord */
	FALSE,				/* act */
	FALSE,				/* rmb */
	TRUE,				/* simple */
	FALSE,				/* smart */
	TRUE,				/* sizer */
	FALSE,				/* sizeb */
	FALSE,				/* auto */
	FALSE,				/* gimme */
	TRUE				/* zoom */
};
	
/* menu structures */

/* assume no "cancel" option */

struct title_box *topt = NULL;

char function_name[256] = "NULL";
char select_type[3] = "";
char name_type[256] = "";

struct NewMenu *their_menu=NULL;
struct Menu *menu=NULL;
struct TextAttr *menuta;
struct TextFont *CustomMenuFont=NULL;
struct title_box *newtop = NULL;

/* gad thingies */
struct maingad *topgad = NULL;
struct maingad *currgad = NULL;