summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--new/parentplan20
-rw-r--r--new/ui.h6
2 files changed, 20 insertions, 6 deletions
diff --git a/new/parentplan b/new/parentplan
index 80f6eb9..9f817b5 100644
--- a/new/parentplan
+++ b/new/parentplan
@@ -27,13 +27,27 @@ c.Add(h)
p.Update()
c.Resize()
d.Remove(1)
- f.RemoveParent()
+ f.SetParent(NULL)
p.Update()
c.Resize()
g.Hide()
p.Update()
c.Resize()
w.SetChild(i)
- ?????????????
+ p.SetChild(i)
+ c.SetParent(NULL)
+ d.SetParent(NULL)
+ ...
+ i.SetParent(p)
+ ...
+ p.Update()
+ i.Resize()
+w.SetChild(NULL)
+ p.SetChild(NULL)
+ i.SetParent(NULL)
+ p.Update()
+w.SetChild(i)
+ (again)
w.Destroy()
- ?????????????
+ p.Destroy()
+ i.Destroy()
diff --git a/new/ui.h b/new/ui.h
index f82e800..d7facff 100644
--- a/new/ui.h
+++ b/new/ui.h
@@ -41,7 +41,6 @@ struct uiControl {
void (*destroy)(uiControl *);
uintptr_t (*handle)(uiControl *);
void (*setParent)(uiControl *, uiParent *);
- void (*removeParent)(uiControl *);
void (*preferredSize)(uiControl *, uiSizing *, intmax_t *, intmax_t *);
void (*resize)(uiControl *, intmax_t, intmax_t, intmax_t, intmax_t, uiSizing *);
int (*visible)(uiControl *);
@@ -57,7 +56,6 @@ struct uiControl {
void uiControlDestroy(uiControl *);
uintptr_t uiControlHandle(uiControl *);
void uiControlSetParent(uiControl *, uiParent *);
-void uiControlRemoveParent(uiControl *);
void uiControlPreferredSize(uiControl *, uiSizing *, intmax_t *width, intmax_t *height);
void uiControlResize(uiControl *, intmax_t, intmax_t, intmax_t, intmax_t, uiSizing *);
int uiControlVisible(uiControl *);
@@ -90,7 +88,9 @@ struct uiParent {
// The uiParent should already not have a child and the uiControl should already not have a parent.
//
// child can be NULL, in which case the uiParent has no children.
- // This form should be called by uiControl.RemoveParent().
+ // This version should also call uiControl.SetParent(), passing NULL.
+ //
+ // If this uiParent has a child already, then the current child is replaced with the new one.
void (*SetChild)(uiParent *p, uiControl *child);
#define uiParentSetChild(p, child) ((*((p)->SetChild))((p), (child)))