X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin3_src%2FWM%2Frenderer_classes.c;h=4b0f3c6105b889d1fc48dd174b311a9035f9cd91;hb=a644ed9dc9954091daf616dfe93ab2e2a920bf5d;hp=8e581935278db86149500799c0a1482b141d13c0;hpb=21d938f9041683280a2d5ed44ef0bca278210829;p=tpg%2Facess2.git diff --git a/Usermode/Applications/axwin3_src/WM/renderer_classes.c b/Usermode/Applications/axwin3_src/WM/renderer_classes.c index 8e581935..4b0f3c61 100644 --- a/Usermode/Applications/axwin3_src/WM/renderer_classes.c +++ b/Usermode/Applications/axwin3_src/WM/renderer_classes.c @@ -7,18 +7,63 @@ */ #include #include +#include + +// === TYPES === +typedef struct sClassfulInfo +{ + tColour BGColour; +} tClassfulInfo; + +// === PROTOTYPES === +tWindow *Renderer_Class_Create(int Flags); +void Renderer_Class_Redraw(tWindow *Window); +int Renderer_Class_HandleMessage(tWindow *Target, int Msg, int Len, void *Data); // === GLOBALS === tWMRenderer gRenderer_Class = { + .Name = "Classful", .CreateWindow = Renderer_Class_Create, .Redraw = Renderer_Class_Redraw, - .SendMessage = Renderer_Class_SendMessage + .HandleMessage = Renderer_Class_HandleMessage }; // === CODE === int Renderer_Class_Init(void) { + WM_RegisterRenderer(&gRenderer_Class); + return 0; } +tWindow *Renderer_Class_Create(int Flags) +{ + return WM_CreateWindowStruct(sizeof(tClassfulInfo)); +} + +void Renderer_Class_Redraw(tWindow *Window) +{ + tClassfulInfo *info = Window->RendererInfo; + WM_Render_FillRect(Window, 0, 0, Window->W, Window->H, info->BGColour); +} + +int Renderer_Class_HandleMessage(tWindow *Target, int Msg, int Len, void *Data) +{ + tClassfulInfo *info = Target->RendererInfo; + switch(Msg) + { + case MSG_CLASSFUL_SETBGCOLOUR: + if( Len != sizeof(uint32_t) ) return -1; + info->BGColour = *(uint32_t*)Data; + return 0; + + case MSG_CLASSFUL_SETTEXT: + + return -1; + + // Anything else is unhandled + default: + return 1; + } +}