2 * AxWin3 Interface Library
3 * - By John Hodge (thePowersGang)
6 * - Entrypoint and setup
8 #include <axwin3/axwin.h>
9 #include <axwin3/widget.h>
10 #include "include/internal.h"
18 tAxWin3_Widget_Callback Callback;
24 tAxWin3_Widget **Elements;
25 // Callbacks for each element
29 int AxWin3_Widget_MessageHandler(tHWND Window, int Size, void *Data)
34 tHWND AxWin3_Widget_CreateWindow(tHWND Parent, int W, int H, int RootEleFlags)
37 tWidgetWindowInfo *info;
39 ret = AxWin3_CreateWindow(
40 Parent, "Widget", RootEleFlags,
41 sizeof(*info) + sizeof(tAxWin3_Widget), AxWin3_Widget_MessageHandler
43 info = AxWin3_int_GetDataPtr(ret);
46 info->Elements = malloc(sizeof(tAxWin3_Widget*));
47 info->Elements[0] = (void*)(info + 1); // Get end of *info
49 AxWin3_ResizeWindow(ret, W, H);
54 void AxWin3_Widget_DestroyWindow(tHWND Window)
56 // Free all element structures
60 // Request window to be destroyed (will clean up any data stored in tHWND)
63 tAxWin3_Widget *AxWin3_Widget_GetRoot(tHWND Window)
65 tWidgetWindowInfo *info = AxWin3_int_GetDataPtr(Window);
66 return info->Elements[0];
69 tAxWin3_Widget *AxWin3_Widget_AddWidget(tAxWin3_Widget *Parent, int Type, int Flags, const char *DebugName)