The current system was half-baked and is only used on the two most basic elements. After designing more of the library, come back and find a more unified way to approach skinning.
Also, as a sidenote: Things need to be accessing variables through getters/setters more, and less of this direct access!
[ ] Make skins involve calling getters/setters instead of accessing element internals. Right now, windows will be broken by skinning, doing something like this is better.
[ ] Make elements have a skin() method that accepts a skin and applies it. This way a window being a more advanced element can pull fancy styles from a skin if it has them.
[ ] Make it so that when skins are applied, new elements created within an element can adopt its parent's skin!
[ ] Make it so that you can modify a skin, and as long as it is the same reference used in active elements, you can call an update function (or maybe it auto-detects..or uses raw references?) and have everything automatically update?
The current system was half-baked and is only used on the two most basic elements. After designing more of the library, come back and find a more unified way to approach skinning.
Also, as a sidenote: Things need to be accessing variables through getters/setters more, and less of this direct access!