What does Achtung do with its canvas? I just saw it pass in the
Gnome-components mailing list archive. Is it worth looking at?
Should the Achtung folks make a wishlist too?

Arjan

> -----Original Message-----
> From: Alexander Larsson [mailto:[EMAIL PROTECTED]]
> Sent: woensdag 19 april 2000 20:11
> To: [EMAIL PROTECTED]
> Subject: Re: New canvas??
> 
> 
> On Wed, 19 Apr 2000, James Henstridge wrote:
> 
> > On Tue, 18 Apr 2000, Alexander Larsson wrote:
> > > * GnomeCanvas supports a general affine transformation of 
> all objects,
> > > should we have this? It can be very useful, but it also makes many
> > > item-implementations very difficult, and might not be 
> used by very many
> > > applications.
> > 
> > It would be nice to add support for this.  Rotations in 
> particular would
> > be nice to have.
> > 
> > > 
> > > * The libart micro-tile array structure might be a good 
> way to handle
> > > handling of partial repaints. That code can be taken from 
> libart if we
> > > don't want the libart dependency. It might be nice when 
> intergrating
> > > with bonobo and GnomeCanvas which use this.
> > 
> > It is probably a good idea to use libart from the beginning.  The 
> > instability in the AA GnomeCanvas is not due to libart in 
> most cases, but
> > the GnomeCanvas code.
>  
> Maybe, maybe not. GdkPixbuf was changed to remove the libart 
> dependency
> because the Gtk+ people didn't want to add a new dependency. Maybe we
> should be wary of dependencies too.
> 
> > > * Should we allow CanvasItems to be GtkWidgets? This would mean
> > > subclassing from GtkLayout with all its hocus-pocus 
> mapping and unmapping
> > > for scrolling. It means that some stuff will be hard to 
> implement too,
> > > like affine transformations (or just scaling, see below) 
> of generic
> > > widgets, or rendering to non-gdk renderers. Another 
> problematic thing here
> > > is that GtkWidgets generally cannot be displayed at the 
> same time in
> > > different views.
> > 
> > I don't know.  We should at least aim to make it possible 
> to  add a Bonobo
> > Embeddable to the canvas.  I don't know how much adding of 
> other widgets
> > is used in the GnomeCanvas in cases where multiple views are used.
> 
>  Yeah, that would be good. Might be a bit hard though.
>  
> > > * The renderer. Ahh, this is cool stuff. This is actually 
> the best part of
> > > Dia in my opinion. It can be better though. First of all 
> it should be a
> > > GtkObject, with ref-counting and all, in the name of 
> Gtk-ization. If this
> > > is done well it could be used by other parts of Gtk too, 
> as an abstract
> > > printer interface etc.
> > > 
> > > It should support:
> > >  Color specification
> > >  Line attributes (dash, caps, joins)
> > >  Fill styles
> > >  Lines, polylines, polygons, rectangles
> > >  Ellipses and arcs (axis-aligned, if you need general, 
> use beziers)
> > >  Bezier curves, (lines and filled)
> > 
> > Do we handle these directly, or let an application cache a vpath
> > created from an ArtBPath and use the polyline/polygon 
> rendering routines?
> 
> That is up to the renderer:
>  shape = renderer->create_bezier(renderer, ...);
>  renderer->draw_shape(renderer, shape);
> 
> The shape object here can contain the polygon or the bezier points,
> depending on if the render target can do real beziers (i.e. 
> postscript)
>  
> > >  Image rendering (based on GdkPixbuf)
> > >  Rotated text rendering, (pixmap rotation hack or whatever in Gdk)
> > >  Text extents measuring
> > 
> > Should the text extents depend on which renderer you 
> choose?  It is not
> > clear to me that this is useful.
>  Well... Font extents are difficult stuff. You need the exact font
> metrics, which can differ for different renderers (Gdk vs. PS) because
> they don't use exactly the same font.
>  
> > >  All strings in UTF-8, font selection using Pango (A must 
> for i18n)
> > 
> > Having good font handling is a must.  If Pango isn't yet 
> ready, we can use
> > gnome-print's GnomeFont stuff in the mean time.  It handles 
> the variable
> > size fonts and metrics problems
> 
>  I haven't looked at gnome-print, i really should.
>  
> > We definitely need some way to store some data for each 
> canvas item keyed
> > to the view (eg. we probably want to save a scaled pixbuf 
> for each view),
> > which can be thrown away when the view changes.
>  Yeah, that would be nice.
>  
> > We may as well start putting together a bit of code for the new
> > canvas.  We should put it in a new module on CVS, in case non dia
> > developers want to help.  I am not sure what to call the new canvas
> > objects though.  Probably not GtkCanvas at the moment -- 
> use some other
> > name, and if it gets accepted into gtk+, change the name.  
> This is what
> > Havoc did with the new text widget for gtk+-1.4 (I think it 
> was going by
> > the name FrooTkxt).
> 
> Yeah, someone come up with a name. Names tend to stick around 
> though, so
> watch out. I'd love to work on the renderer stuff.
> 
> I'm going away tomorrow, for a few days, and the next week I'm going
> skiing, so i can't help out right now.
> 
> Btw. There was some discussion about model/view canvas stuff 
> in the gnome
> components mailinglist, check it out.
> 
> / Alex
> 
> 

Reply via email to