On Wed, 16 Mar 2005 19:42:03 -0500, Paul Davis <paul@xxxxxxxxxxxxxxxxxxxxx> wrote: > >I have a gnomecanvas object (is this the right list?). The user can > >move around in the object by pressing arrows that are drawn in the > >lower right hand corner of the object. > > > >I'm guessing when the user clicks a move arrow, I'd use > >gnome_canvas_scroll_to(cx, cy) to scroll on the canvas. > > > >The user can also zoom in and out on the canvas. > > > >So each time the user moves or zooms, I'd need to rerdraw those > >movement arrows so they stay in the same place and say the same size > >(in pixels on the user's screen). > > > >Is there an easy way to do this? Or do I need to delete the old > >arrows, figure out where in the world coordinates to draw the new > >arrows, and query the current zooming level to figure out how large > >the arrows should be? > > my experience of canvas zooming is that its mostly useless. > > as soon as you put multiple objects on the canvas whose behaviour > under zoom differs from each other, using the affine transform method > of zooming the whole canvas becomes more of an impediment than a > benefit. > > your mileage may vary. and check out http://ardour.org/ for a very, > very heavyduty canvas application (though we're still stuck using > GtkCanvas for the next month or so). > I'm using gnome_canvas_set_pixels_per_unit () to zoom in and out. That's not an affine transformation, is it? _______________________________________________ gtk-list@xxxxxxxxx http://mail.gnome.org/mailman/listinfo/gtk-list