More work on the GUI. Still useless tho
[tpg/acess2.git] / Usermode / Applications / axwin2_src / WM / wm.h
index e7b6bee..38dc1ac 100644 (file)
@@ -4,18 +4,35 @@
 
 typedef struct sElement
 {
+        int    Type;
+       
+       struct sElement *Parent;
+       struct sElement *FirstChild;
+       struct sElement *LastChild;
        struct sElement *NextSibling;
        
+       
        short   CachedX;
        short   CachedY;
        short   CachedW;
        short   CachedH;
        
-       struct sElement *FirstChild;
+       short   Size;   // Size attribute
+       
+       char    *Text;
+       void    *Data;
+       
+       uint32_t        Flags;
 }      tElement;
 
 typedef struct sTab
 {
+        int    Type;   // Should be zero, allows a tab to be the parent of an element
+       
+       struct sElement *Parent;
+       struct sElement *FirstChild;
+       struct sElement *LastChild;
+       
        char    *Name;
        
        tElement        *RootElement;
@@ -31,4 +48,39 @@ typedef struct sApplication
        char    Name[];
 }      tApplication;
 
+// === CONSTANTS ===
+enum eElementFlags
+{
+       ELEFLAG_VISIBLE     = 0x001,    ELEFLAG_INVISIBLE   = 0x000,
+       ELEFLAG_VERTICAL    = 0x002,    ELEFLAG_HORIZONTAL  = 0x000,
+       ELEFLAG_WRAP        = 0x004,    ELEFLAG_NOWRAP      = 0x000,
+};
+/**
+ */
+enum eElementTypes
+{
+       ELETYPE_NONE,
+       
+       ELETYPE_BOX,    //!< Content box
+       ELETYPE_TABBAR, //!< Tab Bar
+       ELETYPE_TOOLBAR,        //!< Tool Bar
+       
+       ELETYPE_BUTTON, //!< Push Button
+       ELETYPE_TEXT,   //!< Text
+       
+       ELETYPE_SPACER, //!< Visual Spacer
+       ELETYPE_GAP,    //!< Alignment Gap
+       
+       NUM_ELETYPES
+};
+
+// === FUNCTIONS ===
+/**
+ * \brief Create a new element as a child of \a Parent
+ */
+extern tElement        *WM_CreateElement(tElement *Parent, int Type, int Flags);
+extern void    WM_SetFlags(tElement *Element, int Flags);
+extern void    WM_SetSize(tElement *Element, int Size);
+extern void    WM_SetText(tElement *Element, char *Text);
+
 #endif

UCC git Repository :: git.ucc.asn.au