The problem
The problem with any GUI window system is the resolution of the window system. What looks good at 800x600 is not so great at 1024 x 768 and is horrible at 1600 x 1200. Trying to come up with a schema that works for everyone is difficult. Granted, most people work at 1024 x 768 but as the Wide/Theater screens become cheaper they will begin to dominate the monitor market. I have a 27" wide theater view flat monitor. I run at very high resolutions ( 1600 x 1200 for games). The windows never look right from other applications. it's really annoying. Anyone who has disgned screens can relate that if you design a window at 800 x 600 and then view it in 1024 x 768 (or larger) that the widgets move further and further apart leaving alot of dead space. This idea is to help eliminate that dead space.
The idea
Add an overload Unified coordiante function that can be use data from other window elements - a smart unified system..
Here is a typical unified entry in a layout file:
Code: Select all
<Property Name="UnifiedAreaRect" Value="{ { 0.00, 15.00 } , { 0.00, 35.00 }, { 1.00, -15.00 } , { 1.00, -70.00 } }" />
Now, lineing up a window below it would be difficult. What if you could do this:
Code: Select all
<Property Name="UnifiedAreaRect" Value="{ { 0.00, 15.00 } , { 'WindowName:Y:Bottom', 35.00 }, { 1.00, -15.00 } , { 'AnotherWindowName:Y:Top', -70.00 } }" />
Notice that I have added WindowName and AnotherWindowName.
When the Unified Smart System enounters a STRING (vs a number), it will attempt to locate the Window by that name and use the current value for which the 'label' (i.e. WindowName and AnotherWindowName ) occupy. In this case, WindowName would cause the unified smart system to obtain the lower-left corner and use it as the required data; AnotherWindowName would cause the unified smart system to return the top-left corner data.
Why do this?
Well, it would make designing screens for almost any resolution work better (IMHO). It would make it easier for window layout people and wouldn't require the programmer to "adjust the windows" for different resolutions. It may help the stacking widgets on the screen so that you can maximize the amount of space being made available. Recall that if you design a window at 800 x 600 and then view it in 1024 x 768 (or larger) that the widgets move further and further apart leaving alot of dead space. This idea is to help eliminate that dead space.
Now, not being really familiar with internals of CEGUI, is this idea feasible and would others find this useful?