Announcing Luigi -- WIP teaser [25k image attachment]
clayasaurus
clayasaurus at gmail.com
Mon Nov 13 06:37:22 PST 2006
Bill Baxter wrote:
> I mentioned a while back that I was interested in having a simple
> OpenGL-based GUI toolkit that would be easy to use.
>
> I spent most last week working on it, and thought I'd show what I've got
> so far.
>
> The layout in the screen shot is done completely using Luigi "Arrangers"
> which is what most other toolkits call "Layouts". The arrangers I've
> implemented so far are clones of some of the basic Java ones --
> BorderArranger, FlowArranger, and GridArranger. What you can see in the
> screenshot is a BorderArranger with a FlowArranger on the North and
> South, and a GridArranger on the West.
Will you allow users to create their own 'arrangers' ?
>
> Not so many widgets implemented yet as you can see. :-(
>
Could you create a system that allows users to create their own widgets
out of simple 'building block' widgets?
> The demo is using GLFW, but the input source and window management
> library is abstracted out to be easily replaceable. Eventually I'd like
> to have input adapter modules also for SDL, GLUT, raw Win32 etc.
>
> The theme is Win32-like, but that also is abstracted out and replaceable.
>
How do you plan on supporting themes? Do you plan on allowing 'skinning?'
> I'm using std.signals for notifications.
>
> Tab-Focus shifting and drawing all work properly with hierarchically
> nested widgets (something other simple toolkits often overlook), but
> it's very hard to do generic arrangers or (eventually) scrollable panels
> without that.
>
> License will be ZLIB.
>
> (Sorry for the big attachment - I would have put the screen shot on
> Luigi DSource page, except for the current unavailability of DSource)
>
> --bb
>
> ------------------------------------------------------------------------
>
I'm also working on a GUI. My setup is like this...
Basic Widgets:
- label
- button
- textfield
- image
Can be recombined to create 'higher level' widgets, like a FileDialog.
skin.xml --> holds the images used to represent different widget
functions (button, button_pressed, button_hover, etc.)
layout.xml --> holds a 'layout', a combination of widgets to create new
widgets, like a filedialog
gui.xml --> holds all the layouts a single program will use, simple load
it up with
GUI gui = new GUI("gui.xml");
and hook up signals like so...
gui.getLayout("filedialog").getWidget("btn1").connect(&guiobserver.watchButton1);
Just some ideas.
~ Clay
More information about the Digitalmars-d-announce
mailing list