Re: How to get the widget's size before it has been shown?



On Wed, Sep 03, 2008 at 06:30:25PM +0800, Lazy Fox wrote:
> /* How to get the widget's size before it has been shown?
>  *
>  * There are two "printf" statements below. I want to get the widget's
> size at the first printf.
>  * How to do this?
>  */
> #include <gtk/gtk.h>
> 
> int main( int   argc, char *argv[] )
> {
>     GtkWidget *window;
>     gtk_init (&argc, &argv);
> 
>     window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
> printf("width=%d \n", window->allocation.width); // return 1
>     gtk_widget_show  (window);
> printf("width=%d \n", window->allocation.width); // return 200
>     gtk_main ();
>     return 0;
> }

You can't do that. Depending on how widgets are packed together
the size must be calculated. That is just what gtk_widget_show
does. You can eaven change packeting in runtime. Then you must
make a new expose, where the size should be recalculated.


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

-- 
Göran Hasse

----------------------------------------------------------------
Göran Hasse           email: gorhas raditex se  Tel: 019-450105
Raditex AB             http://www.raditex.se    
Planiavägen 15, 1tr                             Mob: 070-5530148
131 34  NACKA, SWEDEN                         OrgNr: 556240-0589
VAT: SE556240058901
------------------------------------------------------------------



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