a96061e293c16edc2ab486dd0ac65c5195bd162d
[tpg/acess2.git] / Usermode / Applications / axwin3_src / WM / include / wm.h
1 /*
2  * Acess2 Window Manager v3 (axwin3)
3  * - By John Hodge (thePowersGang)
4  *
5  * include/wm.h
6  * - Window management functions
7  */
8 #ifndef _WM_H_
9 #define _WM_H_
10
11 #include <image.h>
12
13 // === CONSTANTS ===
14 /**
15  * \brief Window Flags
16  * \{
17  */
18 //! Render the window
19 #define WINFLAG_SHOW            0x00000001
20 //! Window contents are valid
21 #define WINFLAG_CLEAN           0x00000002
22 //! All child windows are un-changed
23 #define WINFLAG_CHILDCLEAN      0x00000004
24
25 #define WINFLAG_RENDER_MASK     0x00FFFF00
26 #define WINFLAG_USR_MASK        0xFF000000
27 /**
28  * \}
29  */
30
31 // === TYPES ===
32 typedef struct sWindow  tWindow;
33 typedef struct sWMRenderer      tWMRenderer;
34 typedef uint32_t        tColour;
35
36 // === FUNCTIONS ===
37 // --- Management
38 extern tWindow  *WM_CreateWindow(tWindow *Parent, int Flags, const char *Renderer);
39 extern void     WM_Invalidate(tWindow *Window);
40 extern void     WM_ShowWindow(tWindow *Window, int bShow);
41 extern int      WM_ResizeWindow(tWindow *Window, int W, int H);
42 extern int      WM_MoveWindow(tWindow *Window, int X, int Y);
43 extern int      WM_SendMessage(tWindow *Window, int MessageID, int Length, void *Data);
44 // --- Rendering
45 extern void     WM_Render_FillRect(tWindow *Window, int X, int Y, int W, int H, tColour Colour);
46 extern void     WM_Render_DrawRect(tWindow *Window, int X, int Y, int W, int H, tColour Colour);
47 extern void     WM_Render_DrawText(tWindow *Window, int X, int Y, int W, int H, void *Font, tColour Colour, const char *Text);
48 extern void     WM_Render_DrawImage(tWindow *Window, int X, int Y, int W, int H, tImage *Image);
49
50 #endif
51

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