5 typedef struct sElement
9 struct sElement *Parent;
10 struct sElement *FirstChild;
11 struct sElement *LastChild;
12 struct sElement *NextSibling;
14 short PaddingL, PaddingR;
15 short PaddingT, PaddingB;
18 short FixedWith; // Fixed Long Size attribute (height)
19 short FixedCross; // Fixed Cross Size attribute (width)
23 // -- Attributes maitained by the element code
24 // Not touched by the user
25 short MinWith; // Minimum long size
26 short MinCross; // Minimum cross size
32 short CachedX, CachedY;
33 short CachedW, CachedH;
40 int Type; // Should be zero, allows a tab to be the parent of an element
42 struct sElement *Parent;
43 struct sElement *FirstChild;
44 struct sElement *LastChild;
48 tElement *RootElement;
51 typedef struct sApplication
67 * If set, the element will be ignored in calculating sizes and
70 ELEFLAG_NORENDER = 0x001,
72 * \brief Element visibility
74 * If set, the element is not drawn.
76 ELEFLAG_INVISIBLE = 0x002,
79 * \brief Position an element absulutely
81 ELEFLAG_ABSOLUTEPOS = 0x004,
84 * \brief Fixed size element
86 ELEFLAG_FIXEDSIZE = 0x008,
89 * \brief Element "orientation"
91 ELEFLAG_VERTICAL = 0x010,// ELEFLAG_HORIZONTAL = 0x000,
93 * \brief Action for text that overflows
95 ELEFLAG_WRAP = 0x020,// ELEFLAG_NOWRAP = 0x000,
97 * \brief Cross size action
99 * If this flag is set, the element will only be as large (across
100 * its parent) as is needed to encase the contents of the element.
101 * Otherwise, the element will expand to fill all avaliable space.
103 ELEFLAG_NOEXPAND = 0x040,
106 * \brief With (length) size action
107 * If this flag is set, the element will only be as large as
110 ELEFLAG_NOSTRETCH = 0x080,
113 * \brief Center alignment
115 ELEFLAG_ALIGN_CENTER= 0x100,
117 * \brief Right/Bottom alignment
119 ELEFLAG_ALIGN_END = 0x200
128 ELETYPE_BOX, //!< Content box
129 ELETYPE_TABBAR, //!< Tab Bar
130 ELETYPE_TOOLBAR, //!< Tool Bar
132 ELETYPE_BUTTON, //!< Push Button
133 ELETYPE_TEXT, //!< Text
134 ELETYPE_IMAGE, //!< Image
136 ELETYPE_SPACER, //!< Visual Spacer
143 * \brief Create a new element as a child of \a Parent
145 extern tElement *WM_CreateElement(tElement *Parent, int Type, int Flags, const char *DebugName);
146 extern void WM_SetFlags(tElement *Element, int Flags);
147 extern void WM_SetSize(tElement *Element, int Size);
148 extern void WM_SetText(tElement *Element, const char *Text);