X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=Usermode%2FApplications%2Faxwin3_src%2FWM%2Finclude%2Frenderer_widget.h;h=fd0fa42159d0f0a7475372727bf790a9c0378b38;hb=507f19941f45bca7c1de783a394f56b15f10be4d;hp=fbb3e02adbac5a70401003a2c1f74ace44efffb4;hpb=15f5b23f7fb36e99f38afdac4cded701e56984a1;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 fbb3e02a..fd0fa421 100644 --- a/Usermode/Applications/axwin3_src/WM/include/renderer_widget.h +++ b/Usermode/Applications/axwin3_src/WM/include/renderer_widget.h @@ -9,12 +9,61 @@ #define _RENDERER_WIDGET_H_ #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; + + 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