void uiWindowsControlContinueMinimumSizeChanged(uiWindowsControl *c) { uiControl *parent; parent = uiControlParent(uiControl(c)); if (parent != NULL) uiWindowsControlMinimumSizeChanged(uiWindowsControl(parent)); }
int uiControlEnabledToUser(uiControl *c) { while (c != NULL) { if (!uiControlEnabled(c)) return 0; c = uiControlParent(c); } return 1; }
void uiWindowsRearrangeControlIDsZOrder(uiControl *c) { uiWindowsControl *wc; c = uiControlParent(c); if (c == NULL) return; wc = uiWindowsControl(c); (*(wc->ArrangeChildrenControlIDsZOrder))(wc); }
static Janet janet_ui_parent(int32_t argc, Janet *argv) { uiControl *c, *d; janet_arity(argc, 1, 2); c = janet_getcontrol(argv, 0); if (argc == 2) { d = janet_getcontrol(argv, 1); uiControlSetParent(c, d); return argv[0]; } return janet_ui_handle_to_control(uiControlParent(c), &control_td); }
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); }
void uiControlVerifySetParent(uiControl *c, uiControl *parent) { uiControl *curParent; if (uiControlToplevel(c)) complain("cannot set a parent on a toplevel (uiWindow)"); curParent = uiControlParent(c); if (parent != NULL && curParent != NULL) complain("attempt to reparent uiControl %p (has parent %p, attempt to give parent %p)", c, curParent, parent); if (parent == NULL && curParent == NULL) // TODO implbug() complain("attempt to double unparent uiControl %p — likely an implementation bug ", c); }
void uiControlVerifyDestroy(uiControl *c) { if (uiControlParent(c) != NULL) complain("attempt to destroy uiControl %p while it has a parent", 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); }