Martin DeMello wrote: > One of the most interesting facets of a desktop GUI system is how easy > it makes it to go off the beaten track, particularly how well you can > add "first class" components to the system. (Using 'first class' here > to mean 'on an equal footing with the widgets supplied by the > toolkit'). Also, as a ruby programmer, I'd naturally rather not drop > down into C (or Java) to do this. I'm trying to collect examples of > the following four tasks (which I will then assemble and put up on the > web as another datapoint in the eternal GUI debate :)): > > 1. A component consisting of a series of existing components hooked > together to act as a single widget > 2. A component built 'from scratch' atop a canvas, that is, handling > its own drawing and event management > 3. A component combining a canvas and existing widgets > 4. A container that takes a collection of widgets and lays them out > according to some userdefined algorithm > > Examples (more welcomed): > > 1. An icon widget, that combines a picture and a textfield > underneath, with config options to turn either off or size the image, > make the text editable, etc > 2. A speedometer-type dial with a configurable range and tick interval > 3. A box that holds a component and paints a customised border around it > 4. A pure-ruby implementation of a wrapbox > (http://zem.novylen.net/ruby/wrapboxdemo.png) Swing can certainly do all this, and with layout tools like Netbeans Matisse you can do almost all of it drag-and-drop (though obviously implementing your own component atop a canvase requires code). I could try to dig up some examples of doing this in Ruby, but I would wager the Monkeybars guys have some already. In general, it's pretty easy. - Charlie