From 70e4841d311d68689724768157cc9cbfbde7a9fc Mon Sep 17 00:00:00 2001 From: StapleButter Date: Sat, 9 Sep 2017 02:30:51 +0200 Subject: another UI attempt, I guess. sorry. --- src/libui_sdl/libui/common/control.c | 101 +++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 src/libui_sdl/libui/common/control.c (limited to 'src/libui_sdl/libui/common/control.c') diff --git a/src/libui_sdl/libui/common/control.c b/src/libui_sdl/libui/common/control.c new file mode 100644 index 0000000..2806646 --- /dev/null +++ b/src/libui_sdl/libui/common/control.c @@ -0,0 +1,101 @@ +// 26 may 2015 +#include "../ui.h" +#include "uipriv.h" + +void uiControlDestroy(uiControl *c) +{ + (*(c->Destroy))(c); +} + +uintptr_t uiControlHandle(uiControl *c) +{ + return (*(c->Handle))(c); +} + +uiControl *uiControlParent(uiControl *c) +{ + return (*(c->Parent))(c); +} + +void uiControlSetParent(uiControl *c, uiControl *parent) +{ + (*(c->SetParent))(c, parent); +} + +int uiControlToplevel(uiControl *c) +{ + return (*(c->Toplevel))(c); +} + +int uiControlVisible(uiControl *c) +{ + return (*(c->Visible))(c); +} + +void uiControlShow(uiControl *c) +{ + (*(c->Show))(c); +} + +void uiControlHide(uiControl *c) +{ + (*(c->Hide))(c); +} + +int uiControlEnabled(uiControl *c) +{ + return (*(c->Enabled))(c); +} + +void uiControlEnable(uiControl *c) +{ + (*(c->Enable))(c); +} + +void uiControlDisable(uiControl *c) +{ + (*(c->Disable))(c); +} + +#define uiControlSignature 0x7569436F + +uiControl *uiAllocControl(size_t size, uint32_t OSsig, uint32_t typesig, const char *typenamestr) +{ + uiControl *c; + + c = (uiControl *) uiAlloc(size, typenamestr); + c->Signature = uiControlSignature; + c->OSSignature = OSsig; + c->TypeSignature = typesig; + return c; +} + +void uiFreeControl(uiControl *c) +{ + if (uiControlParent(c) != NULL) + userbug("You cannot destroy a uiControl while it still has a parent. (control: %p)", c); + uiFree(c); +} + +void uiControlVerifySetParent(uiControl *c, uiControl *parent) +{ + uiControl *curParent; + + if (uiControlToplevel(c)) + userbug("You cannot give a toplevel uiControl a parent. (control: %p)", c); + curParent = uiControlParent(c); + if (parent != NULL && curParent != NULL) + userbug("You cannot give a uiControl a parent while it already has one. (control: %p; current parent: %p; new parent: %p)", c, curParent, parent); + if (parent == NULL && curParent == NULL) + implbug("attempt to double unparent uiControl %p", c); +} + +int uiControlEnabledToUser(uiControl *c) +{ + while (c != NULL) { + if (!uiControlEnabled(c)) + return 0; + c = uiControlParent(c); + } + return 1; +} -- cgit v1.2.3