This is a debatable change and I am sure it will infuriate some but we believe it's a good one. Let me explain:
In 0.7, all windows have absolute (and terribly long) names. Root/Inventory/Panel/DropGoldButton or such. You can never have 2 windows with the same name. This makes cloning and loading layout repeatedly very annoying.
In 0.8, all windows have short relative names. You have window Root, window Inventory inside it, etc... if you want DropGoldButton and you have a pointer to the Root you simply do:
Code: Select all
You can always load any layout without any fear of clashing with anything. You can of course only have unique child names in one parent window but that's a weaker constraint and it's easy to manage it.
We are thinking about adding relative ".." and "/Something" to get the Something child of GUISheet and so on but so far it hasn't been decided whether that's a good thing.
The first one is definitely possible, the second one gets trickier with this change. You either attach the needed window and get it using getGUISheet or (yet better) you design your code differently to store the necessary reference. It would be possible to add something like "Anchor" to the window so that that's absolute (if it's there) and you can get it using WindowManager but it seems like such an ad-hoc solution and wouldn't force people to make better code.