X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2Finclude%2Faxwin2%2Faxwin.h;h=ad5b76d9c21e8950240e85f30cfd6794a7e4d0d9;hb=43992cf707ec82f8ffd3a1500ad5952640335a6d;hp=9b1479689de7b2c7ceede2e6035ded63a80a1c8a;hpb=93c9e2f871609348b3cfd2cd164057d9d0009f80;p=tpg%2Facess2.git diff --git a/Usermode/include/axwin2/axwin.h b/Usermode/include/axwin2/axwin.h index 9b147968..ad5b76d9 100644 --- a/Usermode/include/axwin2/axwin.h +++ b/Usermode/include/axwin2/axwin.h @@ -28,6 +28,97 @@ extern int AxWin_HandleMessage(tAxWin_Message *Message); // === Window Control === -extern tAxWin_Element *AxWin_CreateElement(int ElementType); +extern tAxWin_Element *AxWin_CreateElement(tAxWin_Element *Parent, int ElementType, int Flags, const char *DebugName); +extern void AxWin_SetFlags(tAxWin_Element *Element, int Flags); +extern void AxWin_SetText(tAxWin_Element *Element, const char *Text); +extern void AxWin_SetSize(tAxWin_Element *Element, int Size); +extern void AxWin_DeleteElement(tAxWin_Element *Element); + +// === CONSTANTS === +enum eElementFlags +{ + /** + * \brief Rendered + * + * If set, the element will be ignored in calculating sizes and + * rendering. + */ + ELEFLAG_NORENDER = 0x001, + /** + * \brief Element visibility + * + * If set, the element is not drawn (but still is used for size calculations) + */ + ELEFLAG_INVISIBLE = 0x002, + + /** + * \brief Position an element absulutely (ignored in size calcs) + */ + ELEFLAG_ABSOLUTEPOS = 0x004, + + /** + * \brief Fixed size element + */ + ELEFLAG_FIXEDSIZE = 0x008, + + /** + * \brief Element "orientation" + * + * Vertical means that the children of this element are stacked, + * otherwise they list horizontally + */ + ELEFLAG_VERTICAL = 0x010,// ELEFLAG_HORIZONTAL = 0x000, + /** + * \brief Action for text that overflows + */ + ELEFLAG_WRAP = 0x020,// ELEFLAG_NOWRAP = 0x000, + /** + * \brief Cross size action + * + * If this flag is set, the element will only be as large (across + * its parent) as is needed to encase the contents of the element. + * Otherwise, the element will expand to fill all avaliable space. + */ + ELEFLAG_NOEXPAND = 0x040, + + /** + * \brief With (length) size action + * If this flag is set, the element will only be as large as + * is required along it's parent + */ + ELEFLAG_NOSTRETCH = 0x080, + + /** + * \brief Center alignment + */ + ELEFLAG_ALIGN_CENTER= 0x100, + /** + * \brief Right/Bottom alignment + * + * If set, the element aligns to the end of avaliable space (instead + * of the beginning) + */ + ELEFLAG_ALIGN_END = 0x200 +}; + +/** + */ +enum eElementTypes +{ + ELETYPE_NONE, + + ELETYPE_BOX, //!< Content box (invisible in itself) + ELETYPE_TABBAR, //!< Tab Bar + ELETYPE_TOOLBAR, //!< Tool Bar + + ELETYPE_BUTTON, //!< Push Button + + ELETYPE_TEXT, //!< Text + ELETYPE_IMAGE, //!< Image + + ELETYPE_SPACER, //!< Visual Spacer (horizontal / vertical rule) + + MAX_ELETYPES = 0x100 +}; #endif