552fd4d9ce490ed25b21bb9ff347a0989a6e5c8e
[tpg/acess2.git] / Usermode / Applications / axwin2_src / WM / wm.h
1 /*
2  * Acess2 Window Manager (AxWin2)
3  */
4 #ifndef _WM_H_
5 #define _WM_H_
6
7 #include <axwin2/axwin.h>
8
9 typedef struct sAxWin_Element   tElement;
10
11 struct sAxWin_Element
12 {
13          int    Type;
14         
15         tElement        *Parent;
16         tElement        *FirstChild;
17         tElement        *LastChild;
18         tElement        *NextSibling;
19         
20         short   PaddingL, PaddingR;
21         short   PaddingT, PaddingB;
22         short   GapSize;
23         
24         short   FixedWith;      // Fixed Long Size attribute (height)
25         short   FixedCross;     // Fixed Cross Size attribute (width)
26         
27         char    *Text;
28         
29         // -- Attributes maitained by the element code
30         // Not touched by the user
31         short   MinWith;        // Minimum long size
32         short   MinCross;       // Minimum cross size
33         void    *Data;
34         
35         uint32_t        Flags;
36         
37         // -- Render Cache
38         short   CachedX, CachedY;
39         short   CachedW, CachedH;
40         
41         char    DebugName[];
42 };
43
44 typedef struct sTab
45 {
46          int    Type;   // Should be zero, allows a tab to be the parent of an element
47         
48         tElement        *Parent;
49         tElement        *FirstChild;
50         tElement        *LastChild;
51         struct sTab     *NextTab;
52         
53         char    *Name;
54         
55         tElement        *RootElement;
56 }       tTab;
57
58 typedef struct sApplication
59 {
60         pid_t   PID;
61         
62          int    nTabs;
63         tTab    *Tabs;
64         
65         char    Name[];
66 }       tApplication;
67
68 #endif

UCC git Repository :: git.ucc.asn.au