Re: Problems with GtkFrame

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

 



Someone correct me if I'm wrong...

The GtkFrame will set the widget to NULL if you set label to NULL. When 
GtkFrame is initialized, the label widget is NULL at first and later is 
set to a GtkLabel if you passed a string to gtk_frame_new(). If you use 
an empty string "" it is not null, and the GtkLabel will be used but 
contain an empty string.

In my experience, both of these will create the frame, however, the 
first one will have an empty GtkLabel and the latter will have NULL as 
the label widget:

    frame = g_object_new (GTK_TYPE_FRAME,
       "label", ""
        "shadow-type", GTK_SHADOW_ETCHED_IN,
        "border-width", 10,
        NULL);

    frame = g_object_new (GTK_TYPE_FRAME,
        "shadow-type", GTK_SHADOW_ETCHED_IN,
        "border-width", 10,
        NULL);

The first is equivalent to this:

    frame = gtk_frame_new ("");
    gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_ETCHED_IN);
    gtk_container_set_border_width  (GTK_CONTAINER (frame), 10);

And the second equivalent to:

    frame = gtk_frame_new (NULL);
    gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_ETCHED_IN);
    gtk_container_set_border_width  (GTK_CONTAINER (frame), 10);

- Micah Carrick
  Freelance Developer
  http://www.micahcarrick.com | http://www.gtkforums.com



Michael Ott wrote:
> Hi!
>
> I write a small application which show a small window. And this a
> GtkFrame. And this does not work correct. Here is my source code
>
> --snip--
> 	gtk_init(&argc, &argv);
>
> 	window = g_object_new(GTK_TYPE_WINDOW,
> 						  "title", PACKAGE_STRING,
> 						  "type", GTK_WINDOW_TOPLEVEL,
> 						  "resizable", FALSE,
> 						  "window-position", GTK_WIN_POS_CENTER,
> 						  NULL);
>
> 	frame = g_object_new(GTK_TYPE_FRAME,
> 						"label", "",
> 						"shadow-type", GTK_SHADOW_ETCHED_IN,
> 						"border-width", 10,
> 						NULL);
> 	gtk_container_add(GTK_CONTAINER(window), frame);
>
> 	vbox = g_object_new(GTK_TYPE_VBOX,
> 						"homogeneous", FALSE,
> 						"spacing", 5,
> 						"border-width", 5,
> 						NULL);
> 	gtk_container_add(GTK_CONTAINER(frame), vbox);
>
> 	label = g_object_new(GTK_TYPE_LABEL,
> 						"label", " Searching for devices ",
> 						NULL);
> 	gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 2);
>
> 	gtk_widget_show_all(window);
>
> 	usleep(100000);
> 	while (gtk_events_pending()) {
> 		gtk_main_iteration();
> 	}
> --snap--
>
> frame = g_object_new(GTK_TYPE_FRAME, "label", "",
>
> I need the empty label to get this frame to work. Why that?
>
> OS: Debian Etch (testing)
> Gtk+ 2.8.20
>
> In Debian SID it works
>
> CU        
>          
>   Michael  
>           
>   
_______________________________________________
gtk-list mailing list
gtk-list@xxxxxxxxx
http://mail.gnome.org/mailman/listinfo/gtk-list

[Index of Archives]     [Touch Screen Library]     [GIMP Users]     [Gnome]     [KDE]     [Yosemite News]     [Steve's Art]

  Powered by Linux