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