ref: 7c6a945996a1d5510ff1412320ac7d07a0f82851
dir: /guifs.h/
enum { Pbackground, Pmax, }; enum { Gnone, Gcontainer, Gmax, }; typedef struct Colour Colour; typedef union PropVal PropVal; typedef struct PropSpec PropSpec; typedef struct Prop Prop; typedef struct GuiSpec GuiSpec; typedef struct GuiElement GuiElement; struct Colour { Image *image; ulong code; }; union PropVal { Colour *colour; }; struct PropSpec { char *name; PropVal (*def)(void); char *(*print)(PropVal); char *(*parse)(char *, PropVal *); }; struct Prop { int tag; PropVal val; Qid qid; }; struct GuiSpec { char *name; void (*draw)(GuiElement *); void (*layout)(GuiElement *, Rectangle); int nprops; int proptags[]; }; struct GuiElement { int type; int id; Qid qid; Qid qclone; Qid qevent; Qid qtype; Qid qprops; int nchildren; GuiElement **children; GuiElement *parent; int nprops; Prop *props; Rectangle rect; }; extern GuiElement *root; extern PropSpec propspecs[Pmax]; extern GuiSpec guispecs[Gmax]; void *emalloc(ulong); Colour *mkcolour(ulong); void initgraphics(void); void layout(GuiElement *, Rectangle); void updategui(int); void drawnone(GuiElement *); void drawcontainer(GuiElement *); void layoutnone(GuiElement *, Rectangle); void layoutcontainer(GuiElement *, Rectangle); PropVal getprop(GuiElement *, int); void setprop(GuiElement *, int, PropVal);