[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Emacs and Gnome Canvas

From: Óscar Fuentes
Subject: Re: Emacs and Gnome Canvas
Date: Thu, 15 Jul 2010 20:02:08 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)

Chong Yidong <address@hidden> writes:

> Óscar Fuentes <address@hidden> writes:
>> Would that system allow to draw UML diagrams with real graphics, instead
>> of ASCII? Would it allow to implement a real graphical view for the DAG
>> of a dVCS history? In short, would it a real drawing surface where you
>> can draw arbitrary stuff and react to user actions such as the user
>> clicking and dragging a line, preferably from Elisp code?
> If this is the reason you want to work with Canvas, I don't think it's
> necessary to overhaul the Emacs redisplay engine at all.  A better
> approach would be to create a system that allows Canvas objects to be
> embedded in an Emacs display, in the same way that images can be
> embedded.
> Thinking of this problem as "replacing" redisplay, or creating an
> alternative to redisplay, is unnecessary.
> Joakim's patch for embedding gtk widgets is an interesting existing
> experiment, somewhat along these lines.

I don't think this is poweful enough. There should be no separation
among text areas and drawing areas. Text should be just another kind of
item on the canvas. How do you represent an UML diagram with editable
areas inside the boxes, or editable rotated text along the lines that
connects them? Or even simpler: how about implementing something like a
tree widget on pure Elisp? It seems to me that doing that with the
approach you propose will be very difficult, at best.

My impression (and this is something that remains to be checked) is that
implementing a new general display engine will be faster than enhancing
the current one for adding a subset of the features the new one would
bring on, not mentioning long term benefits like hackability and easy of

reply via email to

[Prev in Thread] Current Thread [Next in Thread]