AxWin2 - Huge changes, getting to the working point
[tpg/acess2.git] / Usermode / Applications / axwin2_src / WM / decorator.c
index 3ab88e8..171b526 100644 (file)
@@ -7,6 +7,8 @@
 #include "common.h"
 #include "wm.h"
 
+#define BORDER_EVERYTHING      1
+
 #define BOX_BGCOLOUR    0xC0C0C0
 #define BOX_BORDER      0xA0A0A0
 #define BUTTON_BGCOLOUR 0xD0D0D0
@@ -22,26 +24,45 @@ void Decorator_RenderWidget(tElement *Element)
                Element->CachedW, Element->CachedH
                );
        
+       #if BORDER_EVERYTHING
+       Video_DrawRect(Element->CachedX, Element->CachedY,
+                       Element->CachedW, Element->CachedH,
+                       0
+                       );
+       #endif
+       
        switch(Element->Type)
        {
        case ELETYPE_NONE:
-       case ELETYPE_BOX:       break;
+       case ELETYPE_BOX:       break;  // Box is a meta-element
        
-       case ELETYPE_TABBAR:    // TODO: Moar
-       case ELETYPE_TOOLBAR:
+       case ELETYPE_TABBAR:    // Tab Bar
                Video_DrawRect(
                        Element->CachedX, Element->CachedY,
                        Element->CachedW, Element->CachedH,
                        BOX_BORDER
                        );
                Video_FillRect(
+                       Element->CachedX+1, Element->CachedY+1,
+                       Element->CachedW-2, Element->CachedH-2,
+                       BOX_BGCOLOUR
+                       );
+               // Enumerate Items.
+               break;
+       case ELETYPE_TOOLBAR:   // Tool Bar
+               Video_DrawRect(
                        Element->CachedX, Element->CachedY,
+                       Element->CachedW, Element->CachedH,
+                       BOX_BORDER
+                       );
+               Video_FillRect(
+                       Element->CachedX+1, Element->CachedY+1,
                        Element->CachedW-2, Element->CachedH-2,
                        BOX_BGCOLOUR
                        );
                break;
        
-       case ELETYPE_SPACER:
+       case ELETYPE_SPACER:    // Spacer (subtle line)
                Video_FillRect(
                        Element->CachedX+3, Element->CachedY+3,
                        Element->CachedW-6, Element->CachedH-6,
@@ -49,11 +70,11 @@ void Decorator_RenderWidget(tElement *Element)
                        );
                break;
        
-       case ELETYPE_BUTTON:
+       case ELETYPE_BUTTON:    // Button
                Video_FillRect(
                        Element->CachedX+1, Element->CachedY+1,
                        Element->CachedW-2, Element->CachedH-2,
-                       BUTTON_BORDER
+                       BUTTON_BGCOLOUR
                        );
                Video_DrawRect(
                        Element->CachedX, Element->CachedY,
@@ -67,10 +88,21 @@ void Decorator_RenderWidget(tElement *Element)
                        Element->CachedX+1, Element->CachedY+1,
                        Element->CachedW-2, Element->CachedH-2,
                        NULL,
-                       10,
                        TEXT_COLOUR,
                        Element->Text
                        );
                break;
+       
+       case ELETYPE_IMAGE:
+               Video_DrawImage(
+                       Element->CachedX, Element->CachedY,
+                       Element->CachedW, Element->CachedH,
+                       Element->Data
+                       );
+               break;
+               
+       default:
+               _SysDebug(" ERROR: Unknown type %i", Element->Type);
+               break;
        }
 }

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