On 4/24/06, Robert Feldt <robert.feldt / gmail.com> wrote:> On 4/24/06, Ilmari Heikkinen <ilmari.heikkinen / gmail.com> wrote:> > re-implementing GUI widgets is a lot of work.> > Take a simple text editing box for instance:> > that's one vim (or emacs) worth of code right there.> >> I agree it is lots of work but the Editor widget in Inertia is> currently 230 LOC including empty lines. Granted it has only very> basic functionality but getting to a useful state cannot be too hard.
A lot could be achieved by making a method call widget that'dbring up a form for the method's params:Right-click/use call-method kb shortcut on a String object,select gsub, up pops a form with a pattern field,a (optional) replacement field, and a block editor.Type in the params and it creates a new String object.
GUIs are programming languages, in a way. So leveragingthe underlying programming language for as much existingfunctionality as possible would be really great.
The hard work that remains is: rendering, user preferences,undo, different text directions, layout, input methods, integratingall this into a usable GUI, letting other people benefit from it :-)
> It would be a great vehicle for GUI innovation. For apps> where the standard widgets are the way to go maybe this is not the> right framework. But what about LiveUpdatableGraphs etc? Where are> they in standard widget kits? etc...
Yes, for new stuff it'd be great. Just native 3D capability in a gui toolkitopens the door for all kinds of nifty things that are not that doable withpure 2D drawing (smooth zooming, distortions, lenses, panning alandscape, perspective, etc.)
> > Integrating kparts would be a way (> >   no idea how doable that is though,> >   ie. how to render a kpart to a texture and> >   translate input events for it.> > )> >> Sounds interesting. What is kparts?
KDE's component framework [1]. E.g. KWrite, Kate and KDevelop allcan use the same KTextEditor part for their editing needs insteadof writing their own (and the part can be switched to another too[2].)
I don't know how they would fit the Self/Morphic/Naked Objects -system,but they seem to be very mimetype-centric; there's an image kpart,video kpart, html kpart. And mimetypes map to classes well.
[1] http://en.wikipedia.org/wiki/KPart[2] http://www.freenux.org/mirrors/kvim/screenshots.html

Ilmari