More glossary work.

This commit is contained in:
Pietro Gagliardi 2015-04-13 18:37:07 -04:00
parent 00ddd78484
commit 6135d29e96
1 changed files with 78 additions and 4 deletions

View File

@ -80,8 +80,82 @@ We also need a term for uiStack and uiGrid
The above uses 'children' for their children The above uses 'children' for their children
CURRENT PLAN CURRENT PLAN
T/THING will be called a 'parent' T/THING will be called a 'host'
H will be called a 'host' H will be called an 'OS parent'
a parent has a host, but it will NOT be accessed directly by children a host has an OS parent; it gives it to the individual children of its control as needed
instead it will use the named methods
uiStack and uiGrid, etc. will be called 'containers' uiStack and uiGrid, etc. will be called 'containers'
let's rewrite the above with the new terminology:
We have
a uiWindow w
which has a Host h
which has a uiControl control
and an OSParent p
a uiControl c
We call
uiWindowSetChild(w, c)
What happens:
w instructs h that c should be the control it keeps track of
h.SetControl(c)
h tells c that it is its host
c.SetHost(h)
t instructs c to lay itself out
c.Resize()
We now say
c is really a uiStack
We call
uiStackAppend(c, d, 2)
What happens:
c asks h to add d to p
h.Host(d)
h gives d p to add itself too
d.SetOSParent(p)
c asks h to let it lay itself out
h.Update()
h tells c to lay itself out
c.Resize()
We call
uiStackDelete(c, 4)
What happens:
c asks h to remove its fifth child from p
h.Unhost(c.children[4])
h tells c's fifth child to unhost itself
c.children[4].UnsetOSParent()
c instructs h to tell it to lay itself out
h.Update()
h tells c to lay itself out
c.Resize()
We do
resize the window
What happens:
w resizes h, which resizes p
h.Resize()
resizing p triggers a relayout of c
c.Resize()
We do
uiWindowSetChild(w, e)
What happens:
w instructs t to stop tracking c
t.UnsetControl(c)
t instructs c to remove its children from h
c.UnsetHost()
t.Unhost(d)
d.UnsetOSParent()
w instrcuts t to start tracking e
t.SetControl(e)
t instructs e to add its children to h
e.SetHost(t)
t instructs e to be laid out
e.Resize()
We do
uiWindowDestroy(w)
What happens
w instructs h to tell e to destroy itself
h.Destroy()
h tells e to unhook itself
e.UnsetHost()
h tells e to destroy itself
e.Destroy()
h destroys p, then itself
w destroys itself