Usermode - Working on AxWin3 SubWin widget (also API change for SysSpawn)
[tpg/acess2.git] / Usermode / Applications / axwin3_src / WM / include / renderer_widget.h
index 35b767d..fd0fa42 100644 (file)
 
 #include <widget_messages.h>
 
+// === TYPES ===
+typedef struct sWidgetWin      tWidgetWin;
+typedef struct sAxWin_Element  tElement;
+
+// === STRUCTURES ===
+struct sAxWin_Element
+{
+       enum eElementTypes      Type;
+
+       tWindow         *Window;
+       uint32_t        ID;     //!< Application provided ID number
+       tElement        *ListNext;      //!< Next element in bucket
+       
+       // Element Tree
+       tElement        *Parent;
+       tElement        *FirstChild;
+       tElement        *LastChild;
+       tElement        *NextSibling;
+       
+       // User modifiable attributes   
+       short   PaddingL, PaddingR;
+       short   PaddingT, PaddingB;
+       short   GapSize;
+       
+       uint32_t        Flags;
+       
+       short   FixedWith;      //!< Fixed lengthways Size attribute (height)
+       short   FixedCross;     //!< Fixed Cross Size attribute (width)
+       
+       tColour BackgroundColour;
+
+       char    *Text;
+       
+       // -- Attributes maitained by the element code
+       // Not touched by the user
+       short   MinW;   //!< Minimum long size
+       short   MinH;   //!< Minimum cross size
+       void    *Data;  //!< Per-type data
+       
+       // -- Render Cache
+       short   CachedX, CachedY;
+       short   CachedW, CachedH;
+};
+struct sWidgetWin
+{
+       tElement        RootElement;
+
+       tElement        *FocusedElement;
+       
+        int    TableSize;      //!< Number of entries, anything over will wrap
+       tElement        *ElementTable[];        //!< Hash table essentially
+};
+
 #endif
 

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