More parent planning and related API changes. I now have a better handle over what I want after last night: p.SetChild() is only called by w.SetChild() and the various uiTab and uiGroup methods; everything else should call Control.SetParent(). Some renaming is needed.
This commit is contained in:
parent
e5fea12df6
commit
204f450ff8
20
parentplan
20
parentplan
|
@ -27,13 +27,27 @@ c.Add(h)
|
||||||
p.Update()
|
p.Update()
|
||||||
c.Resize()
|
c.Resize()
|
||||||
d.Remove(1)
|
d.Remove(1)
|
||||||
f.RemoveParent()
|
f.SetParent(NULL)
|
||||||
p.Update()
|
p.Update()
|
||||||
c.Resize()
|
c.Resize()
|
||||||
g.Hide()
|
g.Hide()
|
||||||
p.Update()
|
p.Update()
|
||||||
c.Resize()
|
c.Resize()
|
||||||
w.SetChild(i)
|
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()
|
w.Destroy()
|
||||||
?????????????
|
p.Destroy()
|
||||||
|
i.Destroy()
|
||||||
|
|
6
ui.h
6
ui.h
|
@ -41,7 +41,6 @@ struct uiControl {
|
||||||
void (*destroy)(uiControl *);
|
void (*destroy)(uiControl *);
|
||||||
uintptr_t (*handle)(uiControl *);
|
uintptr_t (*handle)(uiControl *);
|
||||||
void (*setParent)(uiControl *, uiParent *);
|
void (*setParent)(uiControl *, uiParent *);
|
||||||
void (*removeParent)(uiControl *);
|
|
||||||
void (*preferredSize)(uiControl *, uiSizing *, intmax_t *, intmax_t *);
|
void (*preferredSize)(uiControl *, uiSizing *, intmax_t *, intmax_t *);
|
||||||
void (*resize)(uiControl *, intmax_t, intmax_t, intmax_t, intmax_t, uiSizing *);
|
void (*resize)(uiControl *, intmax_t, intmax_t, intmax_t, intmax_t, uiSizing *);
|
||||||
int (*visible)(uiControl *);
|
int (*visible)(uiControl *);
|
||||||
|
@ -57,7 +56,6 @@ struct uiControl {
|
||||||
void uiControlDestroy(uiControl *);
|
void uiControlDestroy(uiControl *);
|
||||||
uintptr_t uiControlHandle(uiControl *);
|
uintptr_t uiControlHandle(uiControl *);
|
||||||
void uiControlSetParent(uiControl *, uiParent *);
|
void uiControlSetParent(uiControl *, uiParent *);
|
||||||
void uiControlRemoveParent(uiControl *);
|
|
||||||
void uiControlPreferredSize(uiControl *, uiSizing *, intmax_t *width, intmax_t *height);
|
void uiControlPreferredSize(uiControl *, uiSizing *, intmax_t *width, intmax_t *height);
|
||||||
void uiControlResize(uiControl *, intmax_t, intmax_t, intmax_t, intmax_t, uiSizing *);
|
void uiControlResize(uiControl *, intmax_t, intmax_t, intmax_t, intmax_t, uiSizing *);
|
||||||
int uiControlVisible(uiControl *);
|
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.
|
// 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.
|
// 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);
|
void (*SetChild)(uiParent *p, uiControl *child);
|
||||||
#define uiParentSetChild(p, child) ((*((p)->SetChild))((p), (child)))
|
#define uiParentSetChild(p, child) ((*((p)->SetChild))((p), (child)))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue