[EMAIL PROTECTED] ha scritto lo scorso 07/01/2008 08:34:
> 
> Hey Bin Chen[or how do I call you :-)],
> 
> First of all, thank you very much for your instant reply.
> 
> Let me give a simple pseudo-code explaining my problem. Please see what I
> can do with this.
> 
> Program Goal: Do work w1 "iterations" number of times, and keep showing
> progress of this whole work regularly.
> 
> Pseudo code:
> 
> for(i=0;i<iterations;i++)
> {
>     do w1;
>     fraction = (i+1)/iterations;
>     Update progress bar using this fraction.
> }
> 
> This is what I coded, and the progress bar never got updated until
> fraction was 0.99[that is, the progress bar went from zero to 100 % after
> the whole work was done].

that is: until your loop returns control to the (gtk) main loop; one
(easy) way to do what you want is to allow the main loop to accomplish
its tasks (among which the refreshing of current progress bar settings)
is the following:

for (i = 0; i < iterations; i ++)
{
  <do "w1">
  fraction = (gdouble)(i + 1) / iterations;
  gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (widget), fraction);
  while (gtk_events_pending ())
  {
    gtk_main_iteration ();
  }
}



_______________________________________________
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