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 sApplication tApplication;
22 enum eElementTypes Type;
28 tElement *NextSibling;
31 tApplication *Owner; //!< Owning application
32 uint16_t ApplicationID; //!< Index into sApplication::EleIndex
34 // User modifiable attributes
35 short PaddingL, PaddingR;
36 short PaddingT, PaddingB;
41 short FixedWith; //!< Fixed Long Size attribute (height)
42 short FixedCross; //!< Fixed Cross Size attribute (width)
46 // -- Attributes maitained by the element code
47 // Not touched by the user
48 short MinWith; //!< Minimum long size
49 short MinCross; //!< Minimum cross size
50 void *Data; //!< Per-type data
53 short CachedX, CachedY;
54 short CachedW, CachedH;
64 void *Ident; //!< Client Identifier
66 char *Name; //!< Application name
68 int MaxElementIndex; //!< Number of entries in \a EleIndex
69 tElement **EleIndex; //!< Array of pointers to elements owned by this application
71 tElement MetaElement; //!< Windows child off this
77 extern void WM_UpdateMinDims(tElement *Element);
78 extern void WM_UpdateDimensions(tElement *Element, int Pass);
79 extern void WM_UpdatePosition(tElement *Element);
80 extern void WM_RenderWidget(tElement *Element);
81 extern void WM_Update(void);