I’ll do my best to explain what I expected vs what I got (thanks again for helping me figure this out)
Imagine you have a windows form, you add controls to that form, would you want those controls to be on the form or behind the form and the form have transparency so that you can see the control you add but you can’t do anything with them.
Expected behavior is that we create a GUI.Window object, this object then is a parent, to this object we add children (buttons, labels, boxes, so on), as it stands, when adding anything to that GUI.Window all elements are ‘behind’ it, quiet literally.
Now, when we create gui elements, we should expect to see them rendered in the order in which they were created. Thus we create a GUI.Window, then we create a label and a box in that exact order. Upon gui rendering, it should go, hey, a window, good, render it, look a label now lets render that, there is a box, lets now render that since it was all created in that order.
Since I can’t “bring to front” a gui item since it has no literal identity, and no order, I have zero control. My end result is that I want to create a GUI ‘form’ per say, that has all of the elements that I desire, where I desire them and selectable as needed.
All GUI elements are missing a key ID field of type GUIParent (meaning who are they sibilings of), no Z order or a way to identify them by a unique ID at time of creation (name it perchance). So I am trying to keep within the rules of the GUI design system.
HTH in explaining what I expected vs what is going on. I see no reason why GUI.Window takes presidence over all other gui elements when it comes to render order and where it is placed in the stack. Makes no sense to me.
That is literally saying, create a new windows form, add controls, reverse order the items in the window child stack, now render. No one would ever be able to click a button or do data entry because the form is over top of everything.