current situation

let's say the control hierarchy is
w	window
	p	parent
c	stack
	d	stack
		e	button
		f	button
	g	button
h	button
i	entry

w = NewWindow()
	p = NewParent(w.Handle)
w.SetChild(c)
	p.SetChild(c)
		c.SetParent(p)
			d.SetParent(p)
				e.SetParent(p)
				f.SetParent(p)
			g.SetParent(p)
	p.Update()
		c.Resize()
c.Add(h)
	h.SetParent(p)
	p.Update()
		c.Resize()
d.Remove(1)
	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()

TODO
- rename these methods
- p.DeferUpdate()/p.EndDeferUpdate()