X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin2_src%2FWM%2Fwm.h;h=38dc1ac5f90f011f521fa0a3952a9d016da6707e;hb=fae1f1d96fc1e923aabc87d11ed0dfcf4d17a36b;hp=e7b6bee9d8a0ad517baeb9c68cbafdbcd031e48a;hpb=872dbea3900b09c78092d3cdf035513f400bcfe8;p=tpg%2Facess2.git diff --git a/Usermode/Applications/axwin2_src/WM/wm.h b/Usermode/Applications/axwin2_src/WM/wm.h index e7b6bee9..38dc1ac5 100644 --- a/Usermode/Applications/axwin2_src/WM/wm.h +++ b/Usermode/Applications/axwin2_src/WM/wm.h @@ -4,18 +4,35 @@ typedef struct sElement { + int Type; + + struct sElement *Parent; + struct sElement *FirstChild; + struct sElement *LastChild; struct sElement *NextSibling; + short CachedX; short CachedY; short CachedW; short CachedH; - struct sElement *FirstChild; + short Size; // Size attribute + + char *Text; + void *Data; + + uint32_t Flags; } tElement; typedef struct sTab { + int Type; // Should be zero, allows a tab to be the parent of an element + + struct sElement *Parent; + struct sElement *FirstChild; + struct sElement *LastChild; + char *Name; tElement *RootElement; @@ -31,4 +48,39 @@ typedef struct sApplication char Name[]; } tApplication; +// === CONSTANTS === +enum eElementFlags +{ + ELEFLAG_VISIBLE = 0x001, ELEFLAG_INVISIBLE = 0x000, + ELEFLAG_VERTICAL = 0x002, ELEFLAG_HORIZONTAL = 0x000, + ELEFLAG_WRAP = 0x004, ELEFLAG_NOWRAP = 0x000, +}; +/** + */ +enum eElementTypes +{ + ELETYPE_NONE, + + ELETYPE_BOX, //!< Content box + ELETYPE_TABBAR, //!< Tab Bar + ELETYPE_TOOLBAR, //!< Tool Bar + + ELETYPE_BUTTON, //!< Push Button + ELETYPE_TEXT, //!< Text + + ELETYPE_SPACER, //!< Visual Spacer + ELETYPE_GAP, //!< Alignment Gap + + NUM_ELETYPES +}; + +// === FUNCTIONS === +/** + * \brief Create a new element as a child of \a Parent + */ +extern tElement *WM_CreateElement(tElement *Parent, int Type, int Flags); +extern void WM_SetFlags(tElement *Element, int Flags); +extern void WM_SetSize(tElement *Element, int Size); +extern void WM_SetText(tElement *Element, char *Text); + #endif