Usermode/AxWin3 - Splitting widget types out into separate files
[tpg/acess2.git] / Usermode / Applications / axwin3_src / WM / renderers / widget / widget_decorator.c
1 /*
2  * Acess2 Window Manager v3
3  * - By John Hodge (thePowersGang)
4  * 
5  * renderer_widget_decorator.c
6  * - Widget Decorator
7  */
8 #include <common.h>
9 #include <wm.h>
10 #include <renderer_widget.h>
11
12 #define BORDER_EVERYTHING       1
13
14 #include "./colours.h"
15
16 // === CODE ===
17 void Widget_Decorator_RenderWidget(tWindow *Window, tElement *Element)
18 {
19 //      _SysDebug("Widget_Decorator_RenderWidget: (Element={Type:%i,(%i,%i) %ix%i})",
20 //              Element->Type,
21 //              Element->CachedX, Element->CachedY,
22 //              Element->CachedW, Element->CachedH
23 //              );
24         
25         #if BORDER_EVERYTHING
26         WM_Render_DrawRect(
27                 Window,
28                 Element->CachedX, Element->CachedY,
29                 Element->CachedW, Element->CachedH,
30                 0
31                 );
32         #endif
33         
34         switch(Element->Type)
35         {
36         case ELETYPE_NONE:
37         case ELETYPE_BOX:       break;  // Box is a meta-element
38         
39         case ELETYPE_TABBAR:    // Tab Bar
40                 WM_Render_DrawRect(
41                         Window,
42                         Element->CachedX, Element->CachedY,
43                         Element->CachedW, Element->CachedH,
44                         BOX_BORDER
45                         );
46                 WM_Render_FillRect(
47                         Window,
48                         Element->CachedX+1, Element->CachedY+1,
49                         Element->CachedW-2, Element->CachedH-2,
50                         BOX_BGCOLOUR
51                         );
52                 // Enumerate Items.
53                 break;
54         case ELETYPE_TOOLBAR:   // Tool Bar
55                 WM_Render_DrawRect(
56                         Window,
57                         Element->CachedX, Element->CachedY,
58                         Element->CachedW, Element->CachedH,
59                         BOX_BORDER
60                         );
61                 WM_Render_FillRect(
62                         Window,
63                         Element->CachedX+1, Element->CachedY+1,
64                         Element->CachedW-2, Element->CachedH-2,
65                         BOX_BGCOLOUR
66                         );
67                 break;
68         
69         case ELETYPE_SPACER:    // Spacer (subtle line)
70                 WM_Render_FillRect(
71                         Window,
72                         Element->CachedX+3, Element->CachedY+3,
73                         Element->CachedW-6, Element->CachedH-6,
74                         BOX_BORDER
75                         );
76                 break;
77         
78         case ELETYPE_BUTTON:    // Button
79                 break;
80
81         // Text input field / Text Box
82         case ELETYPE_TEXTINPUT:
83         case ELETYPE_TEXTBOX:
84                 break;
85         
86         case ELETYPE_TEXT:
87                 break;
88         
89         case ELETYPE_IMAGE:
90                 break;
91                 
92         default:
93                 _SysDebug(" ERROR: Unknown type %i", Element->Type);
94                 break;
95         }
96 }

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