On 1/3/06, Christoph Bersch <[EMAIL PROTECTED]> wrote:
> I want to write a program, that draws something in a DrawingArea, and calls a
> function after _showing_ the changes in the DrawingArea:
>
> 1) call function draw_something()
> 2) show the changes
> 3) call a function measure()
> 4) return to step 1)

I would use a timeout. Set it to run every 20ms (or whatever interval
you want), and do something like:

static int number_of_ticks = 0;

my_timeout_callback( ...
{
  number_of_ticks += 1;
  if( number_of_ticks & 1 )
    // queue a redraw of our drawingarea
    gtk_widget_queue_draw( ..
  else
    measure();

  return( TRUE );
}

then in your expose callback use number_of_ticks to decide what to draw.

expose_callback( ..
{
  for( int i = 0; i < number_of_ticks / 100 + 1; i++ )
    draw_square( i );
}

There's no guarantee that the draw will occur before the measure, but
it probably will for most reasonable machines. But of course that's
always true for X.

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