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 sWindow tWindow;
19 typedef struct sApplication tApplication;
23 enum eElementTypes Type;
29 tElement *NextSibling;
32 tApplication *Owner; //!< Owning application
33 uint16_t ApplicationID; //!< Index into sApplication::EleIndex
35 // User modifiable attributes
36 short PaddingL, PaddingR;
37 short PaddingT, PaddingB;
42 short FixedWith; //!< Fixed lengthways Size attribute (height)
43 short FixedCross; //!< Fixed Cross Size attribute (width)
47 // -- Attributes maitained by the element code
48 // Not touched by the user
49 short MinWith; //!< Minimum long size
50 short MinCross; //!< Minimum cross size
51 void *Data; //!< Per-type data
54 short CachedX, CachedY;
55 short CachedW, CachedH;
65 tWindow *OrderNext; // Render order
75 void *Ident; //!< Client Identifier
77 char *Name; //!< Application name
79 int MaxElementIndex; //!< Number of entries in \a EleIndex
80 tElement **EleIndex; //!< Array of pointers to elements owned by this application
82 tElement MetaElement; //!< Windows child off this
88 extern void WM_UpdateMinDims(tElement *Element);
89 extern void WM_UpdateDimensions(tElement *Element, int Pass);
90 extern void WM_UpdatePosition(tElement *Element);
91 extern void WM_RenderWidget(tElement *Element);
92 extern void WM_Update(void);