Hello Wang and Readers, On Fri, Feb 27, 2009 at 05:05, Wang Kunshan <wks1...@gmail.com> wrote: > Currently self.translation is referenced all around the code. It > should be taken seriously whether to introduce > self.central_point_of_view and remove self.translation.
The code is quite a mess, indeed. Oh, and nice analysis of the zoom problem. I had a hard time doing it correctly and it never worked they way I wanted it to do. > Summary: > > 1. The current implementation of scroll() is obviously incorrect. > 2. The self.translation is strange. It is difficult to understand and > difficult to use. > 3. Introducing self.central_point_of_view will simplify coordinate > handling, but will result in many code-changes. The way labyrinth is working with all those nifty details of a canvas is rather awkward, that's right. In the last week I needed something similar to represent a directed graph in a python application. However, the "canvas" (or MMapArea) of Labyrinth is too tied to the rest of the code, to be useful for any other application. I checked out other gtk canvas widgets which might be useful for Labyrinth [1]. The pros and cons of adopting an existing canvas widget are obvious: + well tested + we can spend time on Labyrinth's real problems + with a proper widget a11y is already done - might not be that flexible A must-have for our purpose seems to be Cairo rendering. GnomeCanvas seems to be a no-go, whereas (py)goocanvas and ccc are already adopted by some projects. Clutter on the other hand is a bit overkill for our purposes, I think. So we have several options: * GooCanvas: has a11y support, very low-level (zooming and dnd must be done by us) * ccc: according to the wiki page it seems ok, but it looks like it is abandoned * CrCanvas [2]: this is my all-time favor, it has builtin panning, zooming and infinite scrolling and is made with performance in mind (this is where Labyrinth really sucks) * make our own generic canvas from scratch And I have a question regarding the vcs. I would like to use git or some other kind of dvcs, however the git-to-svn-bridge I used sucked a little bit. Has anyone objections of moving to a distributed vcs? So I would suggest to release the next version of Labyrinth asap and then make a hard break. [1] http://live.gnome.org/ProjectRidley/CanvasOverview [2] http://geocanvas.sourceforge.net/crcanvas/index.html -- Matthias Vogelgesang Public-Key: http://tinyurl.com/2qcydl --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Labyrinth Discussion" group. To post to this group, send email to labyrinth-devel@googlegroups.com To unsubscribe from this group, send email to labyrinth-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/labyrinth-devel?hl=en -~----------~----~----~----~------~----~------~--~---