On 4/24/06, Robert F. [email protected] wrote:
On 4/24/06, Ilmari H. [email protected] 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’d
bring 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 leveraging
the underlying programming language for as much existing
functionality as possible would be really great.
The hard work that remains is: rendering, user preferences,
undo, different text directions, layout, input methods, integrating
all 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
opens the door for all kinds of nifty things that are not that doable
pure 2D drawing (smooth zooming, distortions, lenses, panning a
landscape, 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 . E.g. KWrite, Kate and KDevelop all
can use the same KTextEditor part for their editing needs instead
of writing their own (and the part can be switched to another too.)
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.