Re: Unidentified subject!



Thank you for the answer. I'm sorry to have posted it but I've asked that
question for 2 weeks on other list and no one could help. 

See what I don't understand is I actually do do g_main_iterate every cycle
but it just wont update but yet all the other widgets in my interface
update correctly through the calculations. So I don't know what to do.

Thanks
Ian

On 17 Apr 2000, Owen Taylor wrote:

> 
> "Ian P. Johnson" <johnsoip@clarkson.edu> writes:
> 
> > I'm sorry to post this quertion but I can't find an answer anywhere else
> > so I thought if the answer was anywhere it would be here.
> > 
> > Q: I have a GtkLabel that I need to update rapidly. How do I go about
> > forcing the label to repaint. What is the best solution?
> 
> Well, a lot of answers are here, but just because they are here, doesn't
> mean that this list should be cluttered with him.
> 
> This list is about the development of GTK+ itself, not about the
> development of programs with GTK+.
> 
> Please address such questions to gtk-list in the future. 
> 
> 
> But, a completely content-less reply, I'll add an on-topic remark:
> 
> For GTK+-1.4, the most efficient way to do it will look like:
> 
>  if (GTK_WIDGET_REALIZED (label))
>    {
>      GtkWidget *window_widget = label;
>      while (GTK_WIDGET_NO_WINDOW (window_widget))
>        window_widget = window_widget->parent;
> 
>      gdk_window_process_updates (window_widget->window, FALSE);
>    }
> 
> We probably should add a gtk_widget_process_updates() function that
> does this.
> 
> 
> For GTK+-1.2, you can change
> 
>  gdk_window_process_updates (window_widget->window, FALSE);
> 
> to 
> 
>  gtk_widget_draw (window_widget, NULL);
> 
> Which isn't as efficient, but will work. 
> 
> 
> Actually, for either GTK+-1.2 or GTK+-1.4, doing this is pretty
> suspect, because you are updating the label, but nothing else in your
> interface. Which look very odd if there are exposure events waiting to
> be processed.
> 
> So, what you simply should do, for both versions, is:
> 
>  while (g_main_iterate (FALSE))
>    /* Nothing */;
> 
> Which tells GTK+ - "process all pending events, resizes, and redraws"
> 
> 
> Regards,
>                                         Owen
> 
> 
> 
> 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]