Usermode/AxWin3 - Added window invalidation, sub-windows render now
[tpg/acess2.git] / Usermode / Applications / axwin3_src / libaxwin3.so_src / r_widget.c
index 64c15b3..0c945d3 100644 (file)
@@ -8,11 +8,13 @@
 #include <axwin3/axwin.h>
 #include <axwin3/widget.h>
 #include "include/internal.h"
+#include <stdlib.h>
 
 // === STRUCTURES ===
 struct sAxWin3_Widget
 {
        tHWND   Window;
+       uint32_t        ID;
        tAxWin3_Widget_Callback Callback;
 };
 
@@ -36,10 +38,37 @@ tHWND AxWin3_Widget_CreateWindow(tHWND Parent, int W, int H, int RootEleFlags)
        
        ret = AxWin3_CreateWindow(
                Parent, "Widget", RootEleFlags,
-               sizeof(*info), AxWin3_Widget_MessageHandler
+               sizeof(*info) + sizeof(tAxWin3_Widget), AxWin3_Widget_MessageHandler
                );
        info = AxWin3_int_GetDataPtr(ret);
+
+       info->nElements = 1;
+       info->Elements = malloc(sizeof(tAxWin3_Widget*));
+       info->Elements[0] = (void*)(info + 1);  // Get end of *info
+
+       AxWin3_ResizeWindow(ret, W, H);
        
        return ret;
 }
 
+void AxWin3_Widget_DestroyWindow(tHWND Window)
+{
+       // Free all element structures
+       
+       // Free array
+       
+       // Request window to be destroyed (will clean up any data stored in tHWND)
+}
+
+tAxWin3_Widget *AxWin3_Widget_GetRoot(tHWND Window)
+{
+       tWidgetWindowInfo       *info = AxWin3_int_GetDataPtr(Window);
+       return info->Elements[0];
+}
+
+tAxWin3_Widget *AxWin3_Widget_AddWidget(tAxWin3_Widget *Parent, int Type, int Flags, const char *DebugName)
+{
+       // Assign ID
+       
+       return NULL;
+}

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