So we're back to canvas land for OLPC. The visual mock-ups which Pentagram, Red Hat, and OLPC folks have been blitzerating (iterating with lightening-like speed) over for the past two or three weeks aren't going to be able to be stuffed into a GTK layout/box model. So Marco and I would like to kick off a discussion about canvas libraries and OLPC/Sugar requirements (as we see them).
We have a few hard requirements: (a) Must use Cairo for drawing and rendering, no 3D or OGL (b) Must have python bindings (c) Must be usable within GTK-based applications There are two canvas libraries that look like promising candidates: GooCanvas libccc Both seem to be fairly actively developed, have a steady stream of recent commits, and provide a -> c from above. They both appear to support about the same feature set and provide similar API, using variants of MVC which we may well find useful in the Sugar UI. We're going to be making heavy use of animation, if possible, so having convenience functions to support that, or even higher level support would be useful. We will likely have to extend this ourselves anyway, since neither option seems to provide a lot of animation support. We need to make sure that the option we finally choose is maintained over the long term, preferably by people in addition to us. Perhaps one of these options will eventually replace GnomeCanvas upstream. If it's the one we chose, great, if not, well then we suck it up. What ever happened to Alex's infamous GTK offscreen patch? We're still stuck in the same world where a canvas is a one-way viewport that has to do it's own event handling. We won't be able to use GTK widgets in any of the Home UI we're looking to build, simply because it would make use of the canvas and we can't embed GTK widgets in a canvas AFAIK. - Who knows the maintainers of either of these two options? Are they both sharp people? - Has anyone looked at the code of these two options besides us? What are your thoughts and concerns? - What other options are there that fit the bill? Looked at libpapyrus on mclasen's suggestion, and it looks OK but is (a) C++ and (b) no python bindings - What feature/performance/API gaps do either of these implementations have? - What's the state of canvas discussion WRT Gnome and GTK? Where is it expected to go in the next 6 months? We don't want to spend a ton of time debating canvas stuff, since we've got a really, really tight schedule and we want to start cranking on the higher level UI code rather than getting back into a canvas debate (for the second time). Hopefully we can pick a path to follow by tomorrow and hit the road. Dan _______________________________________________ Sugar mailing list [email protected] http://mailman.laptop.org/mailman/listinfo/sugar
