AxWin2 - Huge changes, getting to the working point
[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 #include "common.h"
9
10 typedef struct sAxWin_Element   tElement;
11 typedef struct sTab     tTab;
12 typedef struct sApplication     tApplication;
13
14 struct sAxWin_Element
15 {
16          int    Type;
17         
18         tElement        *Parent;
19         tElement        *FirstChild;
20         tElement        *LastChild;
21         tElement        *NextSibling;
22         
23         short   PaddingL, PaddingR;
24         short   PaddingT, PaddingB;
25         short   GapSize;
26         
27         short   FixedWith;      // Fixed Long Size attribute (height)
28         short   FixedCross;     // Fixed Cross Size attribute (width)
29         
30         char    *Text;
31         
32         // -- Attributes maitained by the element code
33         // Not touched by the user
34         short   MinWith;        // Minimum long size
35         short   MinCross;       // Minimum cross size
36         void    *Data;
37         
38         uint32_t        Flags;
39         
40         // -- Render Cache
41         short   CachedX, CachedY;
42         short   CachedW, CachedH;
43         
44         char    DebugName[];
45 };
46
47 struct sTab
48 {
49          int    Type;   // Should be zero, allows a tab to be the parent of an element
50         
51         tElement        *Parent;
52         tElement        *FirstChild;
53         tElement        *LastChild;
54         tTab    *NextTab;
55         
56         char    *Name;
57         
58         tElement        *RootElement;
59 };
60
61 struct sApplication
62 {
63         tApplication    *Next;  
64
65         void    *Ident;
66         tMessages_Handle_Callback       *SendMessage;
67         
68          int    nTabs;
69         tTab    *Tabs;
70         tTab    *CurrentTab;
71         
72         char    Name[];
73 };
74
75 #endif

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