Usermode/AxWin3 - Implemented WM_CreateWindow
[tpg/acess2.git] / Usermode / Applications / axwin3_src / WM / wm.c
1 /*
2  * Acess2 Window Manager v3
3  * - By John Hodge (thePowersGang)
4  *
5  * wm.c
6  * - Window manager core
7  */
8 #include <common.h>
9 #include <wm_renderer.h>
10 #include <stdlib.h>
11 #include <string.h>
12
13 // === GLOBALS ===
14 tWMRenderer     *gpWM_Renderers;
15
16 // === CODE ===
17 void WM_RegisterRenderer(tWMRenderer *Renderer)
18 {
19         // TODO: Catch re-adding the first somehow?
20         if(Renderer->Next)      return;
21         Renderer->Next = gpWM_Renderers;
22         gpWM_Renderers = Renderer;
23 }
24
25 tWindow *WM_CreateWindow(tWindow *Parent, int Flags, const char *RendererName)
26 {
27         tWMRenderer     *renderer;
28         tWindow *ret;
29         
30         // - Get Renderer
31         for( renderer = gpWM_Renderers; renderer; renderer = renderer->Next )
32         {
33                 if(strcmp(RendererName, renderer->Name) == 0)
34                         break;
35         }
36         if(renderer == NULL)
37                 return NULL;
38
39         // - Call create window function
40         ret = renderer->CreateWindow(Flags);
41         
42         // - Fill common fields on that
43         ret->Flags = Flags;
44         
45         // - Return!
46         return ret;
47 }
48
49 tWindow *WM_CreateWindowStruct(size_t ExtraSize)
50 {
51         return calloc( sizeof(tWindow) + ExtraSize, 1 );
52 }
53
54 void WM_Render_FilledRect(tWindow *Window, tColour Colour, int X, int Y, int W, int H)
55 {
56         UNIMPLEMENTED();
57 }
58

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