Re: GTK-Canvas

On Tue, 2006-02-28 at 16:33 +0000, Gustavo J. A. M. Carneiro wrote:
>   That sounds complicated to get right in one go.  Personally, I'd just
> be happy to have a canvas that lets you create items, with virtualized
> draw method, even at position/size statically controlled by the
> programmer, stacking/layering and events.  Basically like GnomeCanvas.
> If we get that right, and optimise the redrawing properly using micro
> tile arrays like in GnomeCanvas, then we can put that in gtk+ 2.10 right
> away.  It seems to me like everything else is either not so important
> that can't wait a bit more (like embedding widgets) or can be done on
> top of the existing framework (animations, layout, object graph file
> persistency).

Maybe so. I feel like we kind of stopped using GnomeCanvas though,
because it just wasn't that much more useful than a drawing area, and
had its own kind of complexity and limitations ... retained mode in
particular adds the problem of keeping the retained graphics state in
sync with the state of the app, while with non-retained mode when the
app state changes you just queue_draw() and that's it.

The two exciting features of GnomeCanvas really were antialiasing and
lack of flicker, and a drawing area has both of those now. The only
other thing the canvas really does for you is event handling on objects,
but GnomeCanvas wasn't that convenient for that because the hard part
really is coding the grab handling and such (behaviors).

Also, I'm not sure all the cool features can be done on top, at least
not while keeping a nice simple API. Or put differently, maybe the API
can be better if it's a bit higher level than "put a line here and a
circle there" - think about making the XML format the primary usage
pattern, with subsequent manipulation from code, sort of like a web

It's not like all my wishlist items are star trek hard - behaviors and
animations in particular seem pretty manageable, and for widget
embedding Alex already sorted out the hard bits.

Just trying to cheerlead some ambitious goals ;-)


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