That to me would cover any type of fuel (diesel would be cetane not octane-but could use the same struct). Movies, I probably will discuss when it gets time to define anything related to that-and you may be right we may have trouble defining it.
Another thing to note is the difference between UI and MainMenu. UI is an always loaded and always on top panel. Its at the skinners discretion if it contains just a back button or a full top bar and sliding panels for various notifications. Main menu is the first screen loaded but can be transitioned in and out as needed and works like any other panel.
skins folder instead, it would just mean having to look in two folders at startup, which could have a small performance penalty.
windows you need to set a callback to a windows form. Now I could (and may in the future) create a form thats never drawn just to handle callbacks but for now im using the UI for winproc messages. During testing I had kept the check volume function there for debugging and forgot to move it out. I'll move it into osspecificlib where it belongs.
Actually on second thought yes a data plugin could push the system time via a message but it certainly wouldn't be considered "good practice".
For the most part i'm aiming to keep cyclically changing data as pull type events and randomly changing data as push type events. I think overall that should work best but certainly welcome input if i'm overlooking anything.
The only think that I haven't figured out is how to handle scaling-thats certainly going to need a unique solution. Obviously actually drawing the controls scaled is easy, but figuring out by how much is difficult.
Now-for the renderer class:
Your absolutely right-each control should have the rendering done inside the render function. When I first started working on the control set, the rendering was done by that class but after adding the render function to IHighLevel, newer controls do their rendering there (Slider, MessageBox, AnimatedLabel). I started moving some of the functions back but certainly need to finish that.
I think the goal will be to move the control rendering of most things back into their respective classes but I plan to leave some of the more general functions in the renderer class to make it easier for newer controls (so they don't have to re-invent the wheel). Things like drawing a string formatted and with the right font and transparency, or drawing a semi-transparent image...stuff that will likely need to be used by many controls. I'll also have to take a look at all the rendering functions and see if theres anything in common between a few of them that I might want to move to a separate function.