2 * Acess2 Window Manager (AxWin2)
7 #include <axwin2/axwin.h>
11 * \brief Number of elements that can be owned by each application
13 // TODO: Fine tune these values
14 #define MAX_ELEMENTS_PER_APP 1024
15 #define DEFAULT_ELEMENTS_PER_APP 128
17 typedef struct sAxWin_Element tElement;
18 typedef struct sMenuItem tMenuItem;
19 typedef struct sWindow tWindow;
20 typedef struct sApplication tApplication;
24 enum eElementTypes Type;
30 tElement *NextSibling;
33 tApplication *Owner; //!< Owning application
34 uint16_t ApplicationID; //!< Index into sApplication::EleIndex
36 // User modifiable attributes
37 short PaddingL, PaddingR;
38 short PaddingT, PaddingB;
43 short FixedWith; //!< Fixed lengthways Size attribute (height)
44 short FixedCross; //!< Fixed Cross Size attribute (width)
48 // -- Attributes maitained by the element code
49 // Not touched by the user
50 short MinWith; //!< Minimum long size
51 short MinCross; //!< Minimum cross size
52 void *Data; //!< Per-type data
55 short CachedX, CachedY;
56 short CachedW, CachedH;
65 int ID; //!< ID number sent to application
68 tMenuItem *FirstChild;
78 tWindow *OrderNext; // Render order
90 void *Ident; //!< Client Identifier
92 char *Name; //!< Application name
94 int MaxElementIndex; //!< Number of entries in \a EleIndex
95 tElement **EleIndex; //!< Array of pointers to elements owned by this application
97 tElement MetaElement; //!< Tabs child off this
103 extern void WM_UpdateMinDims(tElement *Element);
104 extern void WM_UpdateDimensions(tElement *Element, int Pass);
105 extern void WM_UpdatePosition(tElement *Element);
106 extern void WM_RenderWidget(tElement *Element);
107 extern void WM_Update(void);