diff options
Diffstat (limited to 'include/prefab.h')
| -rw-r--r-- | include/prefab.h | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/include/prefab.h b/include/prefab.h new file mode 100644 index 00000000..e5186b5d --- /dev/null +++ b/include/prefab.h @@ -0,0 +1,103 @@ +#pragma src "/usr/inferno/libprefab" + +typedef struct PElement PElement; +typedef struct PCompound PCompound; +typedef struct Memimage Memimage; + +enum +{ + Dirty, + Clean +}; + +enum Elementtype /* same as in prefab.m */ +{ + EIcon, + EText, + ETitle, + EHorizontal, + EVertical, + ESeparator, + NEtypes +}; + +enum Adjust /* same as in prefab.m */ +{ + /* first arg: size of elements */ + Adjpack = 10, /* leave alone, pack tightly */ + Adjequal = 11, /* make equal */ + Adjfill = 12, /* make equal, filling available space */ + + /* second arg: position of element within space */ + Adjleft = 20, + Adjup = 20, + Adjcenter = 21, + Adjright = 22, + Adjdown = 22 +}; + +enum +{ + Maxchars = 128 /* maximum # chars in a word */ +}; + +struct PElement +{ + Prefab_Element e; + Point drawpt; + Prefab_Compound*highlight; + List* first; + List* last; + List* vfirst; + List* vlast; + int nkids; + int newline; + int pkind; /* for error check against e.kind */ +}; + +struct PCompound +{ + Prefab_Compound c; + Display* display; +}; + +extern Type* TLayout; +extern Type* TElement; +extern Type* TCompound; + +PCompound* iconbox(Prefab_Environ*, Draw_Point, String*, Draw_Image*, Draw_Image*); +PCompound* textbox(Prefab_Environ*, Draw_Rect, String*, String*); +PCompound* layoutbox(Prefab_Environ*, Draw_Rect, String*, List*); +PCompound* box(Prefab_Environ*, Draw_Point, Prefab_Element*, Prefab_Element*); + +PElement* separatorelement(Prefab_Environ*, Draw_Rect, Draw_Image*, Draw_Image*); +PElement* iconelement(Prefab_Environ*, Draw_Rect, Draw_Image*, Draw_Image*); +PElement* textelement(Prefab_Environ*, String*, Draw_Rect, enum Elementtype); +PElement* layoutelement(Prefab_Environ*, List*, Draw_Rect, enum Elementtype); +PElement* elistelement(Prefab_Environ*, Prefab_Element*, enum Elementtype); +PElement* appendelist(Prefab_Element*, Prefab_Element*); + +void drawcompound(Prefab_Compound*); +void redrawcompound(Image*, Rectangle, Prefab_Compound*); +void refreshcompound(Image*, Rectangle, void*); +void drawelement(Prefab_Element*, Image*, Rectangle, int, int); +void translateelement(Prefab_Element*, Point); +void adjustelement(Prefab_Element*, int, int); +void highlightelement(Prefab_Element*, Image*, Prefab_Compound*, int); +void clipelement(Prefab_Element*, Rectangle); +void scrollelement(Prefab_Element*, Point, int*); +int showelement(Prefab_Element*, Prefab_Element*); +void edge(Prefab_Environ*, Image*, Draw_Rect, Draw_Rect); +int fitrect(Rectangle*, Rectangle); +Draw_Rect edgerect(Prefab_Environ*, Draw_Point, Draw_Rect*); +List* prefabwrap(void*); +List* listoflayout(Prefab_Style*, String*, int); + +extern PElement* lookupelement(Prefab_Element*); +extern PCompound* lookupcompound(Prefab_Compound*); +extern PElement* checkelement(Prefab_Element*); +extern PCompound* checkcompound(Prefab_Compound*); +extern int badenviron(Prefab_Environ*, int); +extern PElement* mkelement(Prefab_Environ*, enum Elementtype); +extern Point iconsize(Image*); +extern void localrefreshcompound(Memimage*, Rectangle, void*); |
