X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin3_src%2FWM%2Finclude%2Frenderer_widget.h;h=fd0fa42159d0f0a7475372727bf790a9c0378b38;hb=507f19941f45bca7c1de783a394f56b15f10be4d;hp=fd79acf5d0f73db54b7ce88db610ea375e63e3cb;hpb=d4f7058c6c83d0088efa6872a6746ecb0748c018;p=tpg%2Facess2.git diff --git a/Usermode/Applications/axwin3_src/WM/include/renderer_widget.h b/Usermode/Applications/axwin3_src/WM/include/renderer_widget.h index fd79acf5..fd0fa421 100644 --- a/Usermode/Applications/axwin3_src/WM/include/renderer_widget.h +++ b/Usermode/Applications/axwin3_src/WM/include/renderer_widget.h @@ -11,20 +11,60 @@ #include #include -enum +#include + +// === TYPES === +typedef struct sWidgetWin tWidgetWin; +typedef struct sAxWin_Element tElement; + +// === STRUCTURES === +struct sAxWin_Element { - MSG_WIDGET_CREATE, - MSG_WIDGET_DELETE, - MSG_WIDGET_SETTEXT -}; + 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; -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