On Fri, Feb 27, 2009 at 14:30, Wang Kunshan <wks1...@gmail.com> wrote: > > I add gaphas, the canvas system of gaphor UML modelling program.
Gaphas is a good fit in my experience. Regards, Tomeu > The code looks well-commented. And the README shows its structure > which addressed some problems (like the responsibility of geometric > objects, canvas, tools) that I am also considering recently. > > But the size of gaphas is almost as big as the entire labyrinth. > Isn't is a bit overkilling? > > > > 2009/2/27 Matthias Vogelgesang <matthias.vogelges...@gmail.com>: >> >> 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 -~----------~----~----~----~------~----~------~--~---