On 9/30/07, Keith Feesh <[EMAIL PROTECTED]> wrote:
> The way that I do things now includes redrawing the entire canvas every time
> the mouse is moved, in order to clear the old
> outline's drawing, and then to redraw the outline once again. This brings my
> system to it's knees and I figure there must be
> a better method, just I can't think of any method. Any hints would be great.

I do something like this in my app:

  http://www.vips.ecs.soton.ac.uk

Load an image, doubleclick the thumbnail to get an image view window,
hold down CTRL and left-button drag down and right to mark a region.
Drag on the region label to move it around, drag on the edges to
resize.

The animation is done with gtk_widget_queue_draw_area().

  
http://library.gnome.org/devel/gtk/unstable/GtkWidget.html#gtk-widget-queue-draw-area

When I see a mouse movement, I queue a draw for the current position
and size of the region, I update the region to the new position, and
queue a draw at the new position.

When gtk is next in the idle loop, it will calculate the minimum
number of exposes to repaint the damaged area and ask my drawingarea
to repaint just those parts. Because I've moved my region model, this
will cause the old position to be undrawn and the new position to be
drawn.

John
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to