/*
	C2
	--
	Startup-Code definitions

	(C) 1991 Oliver Wagner, All Rights Reserved
*/

int entry(int);
void cleanup(void);
void setpr_windowptr(struct Window*);

void bibi(int,int);
char *allocmem(int,int);
#define allocobj(x) (struct x*)allocmem(sizeof(struct x),MEMF_CLEAR|MEMF_PUBLIC)
void freemem(char*);
#define freemem(x) freemem((char*)x)

extern struct Window *w;
extern struct Screen *scr;
extern struct RastPort *rp;

/* gadtools support */
void gt_init(void);
void gt_exit(void);
struct Gadget *gt_newlist(void);
void gt_endlist(void);
void gt_remlist(struct Gadget*);
struct Gadget * __stdargs gt_createg(int,int,int,int,long,char*,int,...);
void gt_setg(struct Gadget*,...);
void gt_drawbox(int,int,int,int,int);
struct Menu *gt_createmenus(struct NewMenu *);
struct Gadget *gt_findid(short);
char *gt_findstring(short);
long gt_findint(short);
int gt_findstate(short);

/* intuition support */
int doreq(char*,char*,char*,...);

/* gfx support */
#define setapen(x) SetAPen(rp,(x))
#define setbpen(x) SetBPen(rp,(x))
#define setdrmd(x) SetDrMd(rp,(x))
#define setrp(x,y,z) SetAPen(rp,(x));SetBPen(rp,(y));SetDrMd(rp,(z))
void text(int,int,char*);
void textf(int,int,char*,...);

/* internal */
void __regargs __asm _dofmt(register __a0 char*,register __a1 APTR,register __a2 char*);

void sprintf(char*,char*,...);
