X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin3_src%2FWM%2Frenderers%2Fwidget%2Fwidget_decorator.c;fp=Usermode%2FApplications%2Faxwin3_src%2FWM%2Frenderers%2Fwidget%2Fwidget_decorator.c;h=442e9fcc4d23666c4e69499c4fc3707c915af7de;hb=2f16fec349eabb42f5e23ea2b821f149fa6b767e;hp=0000000000000000000000000000000000000000;hpb=a644ed9dc9954091daf616dfe93ab2e2a920bf5d;p=tpg%2Facess2.git diff --git a/Usermode/Applications/axwin3_src/WM/renderers/widget/widget_decorator.c b/Usermode/Applications/axwin3_src/WM/renderers/widget/widget_decorator.c new file mode 100644 index 00000000..442e9fcc --- /dev/null +++ b/Usermode/Applications/axwin3_src/WM/renderers/widget/widget_decorator.c @@ -0,0 +1,96 @@ +/* + * Acess2 Window Manager v3 + * - By John Hodge (thePowersGang) + * + * renderer_widget_decorator.c + * - Widget Decorator + */ +#include +#include +#include + +#define BORDER_EVERYTHING 1 + +#include "./colours.h" + +// === CODE === +void Widget_Decorator_RenderWidget(tWindow *Window, tElement *Element) +{ +// _SysDebug("Widget_Decorator_RenderWidget: (Element={Type:%i,(%i,%i) %ix%i})", +// Element->Type, +// Element->CachedX, Element->CachedY, +// Element->CachedW, Element->CachedH +// ); + + #if BORDER_EVERYTHING + WM_Render_DrawRect( + Window, + Element->CachedX, Element->CachedY, + Element->CachedW, Element->CachedH, + 0 + ); + #endif + + switch(Element->Type) + { + case ELETYPE_NONE: + case ELETYPE_BOX: break; // Box is a meta-element + + case ELETYPE_TABBAR: // Tab Bar + WM_Render_DrawRect( + Window, + Element->CachedX, Element->CachedY, + Element->CachedW, Element->CachedH, + BOX_BORDER + ); + WM_Render_FillRect( + Window, + Element->CachedX+1, Element->CachedY+1, + Element->CachedW-2, Element->CachedH-2, + BOX_BGCOLOUR + ); + // Enumerate Items. + break; + case ELETYPE_TOOLBAR: // Tool Bar + WM_Render_DrawRect( + Window, + Element->CachedX, Element->CachedY, + Element->CachedW, Element->CachedH, + BOX_BORDER + ); + WM_Render_FillRect( + Window, + Element->CachedX+1, Element->CachedY+1, + Element->CachedW-2, Element->CachedH-2, + BOX_BGCOLOUR + ); + break; + + case ELETYPE_SPACER: // Spacer (subtle line) + WM_Render_FillRect( + Window, + Element->CachedX+3, Element->CachedY+3, + Element->CachedW-6, Element->CachedH-6, + BOX_BORDER + ); + break; + + case ELETYPE_BUTTON: // Button + break; + + // Text input field / Text Box + case ELETYPE_TEXTINPUT: + case ELETYPE_TEXTBOX: + break; + + case ELETYPE_TEXT: + break; + + case ELETYPE_IMAGE: + break; + + default: + _SysDebug(" ERROR: Unknown type %i", Element->Type); + break; + } +}