From: avdi@... Date: 2001-08-16T04:35:21+09:00 Subject: [ruby-talk:19829] Re: Ruby GUI Quoting "Hal E. Fulton" : > The concept of a new GUI is somewhat appealing, > though I'm not full of ideas for it. I have a few, but I'm just a 21-year old with delusions of grandeur... ;-) There are a *lot* of great ideas for GUI design out there though... things that just never had anyone to bring them to fruition. There are a lot of good toolkits that have fallen by the wayside, too, because they were attached to failing OSs or languages. I've heard neat things about DUIM, and The NEXT toolkit, etc, etc... Anyone on this list who has followed the technology for awhile care to fill us in on the required reading for an aspiring GUI toolkit designer? The people at the Berlin project seem to have a lot of neat ideas: http://www.berlin-consortium.org/. Also, whoever perpetrated the Morphic framework on Squeak probably has a lot of worthwhile things to say on user interface design. > Ben's idea of an interface spec that could be > translated to multiple interfaces is interesting. > > I think XML would be a logical choice. > > In fact, given such a spec, it is conceivable that > we could write tools to generate Ruby code > for multiple GUIs (Tk, GTK, FOX, ...) -- with > major restrictions, of course. > > I do have a crazy idea for *extreme* flexibility > in window shapes... for example, allow the > tab-like title bar as in Plan 9 (?)... or allow > windows with rounded corners. I think what might be necessary for a successful toolkit is to have a number of layers, where each layer is a different tradeoff between control and abtraction. At one end of the continuum, you could simply express your intent in an XML interface file - i.e., "The user needs to be able to choose between values x, y, and z for the user option 'foo'" - and the UI system would generate a command line option "--foo=", a GUI menu option "Options->Foo" and an interactive command-line prompt: "Whould you like 'foo' to be x, y, or z? (x)" as appropriate. At the other end of the continuum, the interface definition would specify the precise x/y coords and size of every widget, and would either explicitly or implicitly declare the UI capabilities that /must/ be available on the system for the application to be run. > I also have some widget ideas that I think > are pretty good but are untested on humans. :) Are you saying you practice animal widget testing? You barbarian! ;-) ~Avdi