I've started a project this week called SolidLayout.

It's a layouting engine combined with a custom layouting language like HTML/XAML.
The current status is: Attributes are bindable or statically assignable, layout supports two basic layouts: Stacking or Docking.

Here is an example of how to declare a UI layout as well as how it looks:
Code:
# Demo Layout
DockLayout {
        Widget(dock=right,width=50,height=100,color="#0000FF",horizontalAlignment=right);
        Widget(dock=top,width=100,height=50,color="#FF0000",horizontalAlignment=right);
        StackLayout(dock=left,stackDirection=vertical) {
                Widget(width=100, height=30, color="#FF8888");
                Widget(color="#88FF88", horizontalAlignment=right);
                DockLayout {
                        Widget(dock=top,color="#000000");
                        Widget(dock=top,color="#444444");
                        Widget(dock=top,color="#888888");
                        Widget(dock=top,color="#BBBBBB");
                        Widget(color="#FFFFFF");
                }
        }
        Widget(color="#FF00FF",horizontalAlignment=stretch);
}




I know the example is pretty lame, but imaging declaring Gamestudio PANEL/TEXTs with a layouting engine with bindings of properties via Lite-C variables.

Right now the project has no Lite-C compatibility or even windows, but those will be my next steps as i think gamestudio integration will be pretty simple, but also useful.

I will keep you updated wink

Also here is an example how a Gamestudio layout could look:
Code:
# Simple main menu with stacked elements
Blank {
  Panel(width=150, height=300, horizontalAlignment=center, verticalAlignment=center, bgcolor="#888888") {
    StackLayout(verticalAlignment=center,horizontalAlignment=stretch) {
      Panel(height=30,bgcolor="#FFFFFF",event=[startGame]) {
        Text(text="Start Game",flags="CENTER_X|CENTER_Y");
      }
      Blank(height=5); # 5 Pixel Distance between elements
      Panel(height=30,bgcolor="#FFFFFF",event=[loadGame]) {
        Text(text="Load Game",flags="CENTER_X|CENTER_Y");
      }
      Blank(height=5); # 5 Pixel Distance between elements
      Panel(height=30,bgcolor="#FFFFFF",event=[quitGame]) {
        Text(text="Quit Game",flags="CENTER_X|CENTER_Y");
      }
    }
  }
}



Visit my site: www.masterq32.de