summaryrefslogtreecommitdiff
path: root/include/prefab.h
diff options
context:
space:
mode:
authorCharles.Forsyth <devnull@localhost>2006-12-22 17:07:39 +0000
committerCharles.Forsyth <devnull@localhost>2006-12-22 17:07:39 +0000
commit37da2899f40661e3e9631e497da8dc59b971cbd0 (patch)
treecbc6d4680e347d906f5fa7fca73214418741df72 /include/prefab.h
parent54bc8ff236ac10b3eaa928fd6bcfc0cdb2ba46ae (diff)
20060303a
Diffstat (limited to 'include/prefab.h')
-rw-r--r--include/prefab.h103
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*);