Merge branch 'master' of git://git.ucc.asn.au/tpg/acess2
[tpg/acess2.git] / Usermode / Applications / axwin3_src / WM / include / renderer_widget.h
index 7187c87..fd0fa42 100644 (file)
@@ -9,40 +9,62 @@
 #define _RENDERER_WIDGET_H_
 
 #include <wm_renderer.h>
+#include <axwin3/widget.h>
 
-enum
-{
-       MSG_WIDGET_CREATE,
-       MSG_WIDGET_DELETE,
-       MSG_WIDGET_SETTEXT
-};
+#include <widget_messages.h>
+
+// === TYPES ===
+typedef struct sWidgetWin      tWidgetWin;
+typedef struct sAxWin_Element  tElement;
 
-enum eElementTypes
+// === STRUCTURES ===
+struct sAxWin_Element
 {
-       ELETYPE_NONE,
+       enum eElementTypes      Type;
 
-       ELETYPE_WINDOW, //!< Window root element
+       tWindow         *Window;
+       uint32_t        ID;     //!< Application provided ID number
+       tElement        *ListNext;      //!< Next element in bucket
        
-       ELETYPE_BOX,    //!< Content box (invisible in itself)
-       ELETYPE_TABBAR, //!< Tab Bar
-       ELETYPE_TOOLBAR,        //!< Tool Bar
+       // Element Tree
+       tElement        *Parent;
+       tElement        *FirstChild;
+       tElement        *LastChild;
+       tElement        *NextSibling;
        
-       ELETYPE_BUTTON, //!< Push Button
+       // User modifiable attributes   
+       short   PaddingL, PaddingR;
+       short   PaddingT, PaddingB;
+       short   GapSize;
        
-       ELETYPE_TEXT,   //!< Text
-       ELETYPE_IMAGE,  //!< Image
+       uint32_t        Flags;
        
-       ELETYPE_SPACER, //!< Visual Spacer (horizontal / vertical rule)
+       short   FixedWith;      //!< Fixed lengthways Size attribute (height)
+       short   FixedCross;     //!< Fixed Cross Size attribute (width)
        
-       MAX_ELETYPES    = 0x100
-};
+       tColour BackgroundColour;
 
-typedef struct
+       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
 {
-       uint32_t        Parent;
-       uint32_t        NewID;
-       char    DebugName[];
-} tWidgetMsg_Create;
+       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