X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin3_src%2FWM%2Finclude%2Frenderer_widget.h;h=fd0fa42159d0f0a7475372727bf790a9c0378b38;hb=6a99a6d70179161964d47de9a825fd61e8445b86;hp=35b767d2a3adaadeb34fe84347e21e6841a097ea;hpb=f42e912b8bc615c2009b795ce12d4c54cef4ee8b;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 35b767d2..fd0fa421 100644 --- a/Usermode/Applications/axwin3_src/WM/include/renderer_widget.h +++ b/Usermode/Applications/axwin3_src/WM/include/renderer_widget.h @@ -13,5 +13,58 @@ #include +// === 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