]> Pileus Git - ~andy/gtk/blobdiff - demos/gtk-demo/panes.c
gtk: remove "gboolean homogeneous" from gtk_box_new()
[~andy/gtk] / demos / gtk-demo / panes.c
index f86d74ac5c0d2a2d1c7e5843d99e19406f8b3be1..63ac7578812ab8274949045b0ee53967c1303fd8 100644 (file)
@@ -17,40 +17,56 @@ void
 toggle_resize (GtkWidget *widget,
               GtkWidget *child)
 {
-  GtkPaned *paned = GTK_PANED (child->parent);
-  gboolean is_child1 = (child == paned->child1);
+  GtkWidget *parent;
+  GtkPaned *paned;
+  gboolean is_child1;
   gboolean resize, shrink;
 
-  resize = is_child1 ? paned->child1_resize : paned->child2_resize;
-  shrink = is_child1 ? paned->child1_shrink : paned->child2_shrink;
+  parent = gtk_widget_get_parent (child);
+  paned = GTK_PANED (parent);
 
-  gtk_widget_ref (child);
-  gtk_container_remove (GTK_CONTAINER (child->parent), child);
+  is_child1 = (child == gtk_paned_get_child1 (paned));
+
+  gtk_container_child_get (GTK_CONTAINER (paned), child,
+                           "resize", &resize,
+                           "shrink", &shrink,
+                           NULL);
+
+  g_object_ref (child);
+  gtk_container_remove (GTK_CONTAINER (parent), child);
   if (is_child1)
     gtk_paned_pack1 (paned, child, !resize, shrink);
   else
     gtk_paned_pack2 (paned, child, !resize, shrink);
-  gtk_widget_unref (child);
+  g_object_unref (child);
 }
 
 void
 toggle_shrink (GtkWidget *widget,
               GtkWidget *child)
 {
-  GtkPaned *paned = GTK_PANED (child->parent);
-  gboolean is_child1 = (child == paned->child1);
+  GtkWidget *parent;
+  GtkPaned *paned;
+  gboolean is_child1;
   gboolean resize, shrink;
 
-  resize = is_child1 ? paned->child1_resize : paned->child2_resize;
-  shrink = is_child1 ? paned->child1_shrink : paned->child2_shrink;
+  parent = gtk_widget_get_parent (child);
+  paned = GTK_PANED (parent);
+
+  is_child1 = (child == gtk_paned_get_child1 (paned));
+
+  gtk_container_child_get (GTK_CONTAINER (paned), child,
+                           "resize", &resize,
+                           "shrink", &shrink,
+                           NULL);
 
-  gtk_widget_ref (child);
-  gtk_container_remove (GTK_CONTAINER (child->parent), child);
+  g_object_ref (child);
+  gtk_container_remove (GTK_CONTAINER (parent), child);
   if (is_child1)
     gtk_paned_pack1 (paned, child, resize, !shrink);
   else
     gtk_paned_pack2 (paned, child, resize, !shrink);
-  gtk_widget_unref (child);
+  g_object_unref (child);
 }
 
 GtkWidget *
@@ -59,11 +75,15 @@ create_pane_options (GtkPaned        *paned,
                     const gchar *label1,
                     const gchar *label2)
 {
+  GtkWidget *child1, *child2;
   GtkWidget *frame;
   GtkWidget *table;
   GtkWidget *label;
   GtkWidget *check_button;
-  
+
+  child1 = gtk_paned_get_child1 (paned);
+  child2 = gtk_paned_get_child2 (paned);
+
   frame = gtk_frame_new (frame_label);
   gtk_container_set_border_width (GTK_CONTAINER (frame), 4);
   
@@ -77,19 +97,17 @@ create_pane_options (GtkPaned        *paned,
   check_button = gtk_check_button_new_with_mnemonic ("_Resize");
   gtk_table_attach_defaults (GTK_TABLE (table), check_button,
                             0, 1, 1, 2);
-  gtk_signal_connect (GTK_OBJECT (check_button), "toggled",
-                     GTK_SIGNAL_FUNC (toggle_resize),
-                     paned->child1);
-  
+  g_signal_connect (check_button, "toggled",
+                   G_CALLBACK (toggle_resize), child1);
+
   check_button = gtk_check_button_new_with_mnemonic ("_Shrink");
   gtk_table_attach_defaults (GTK_TABLE (table), check_button,
                             0, 1, 2, 3);
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button),
                               TRUE);
-  gtk_signal_connect (GTK_OBJECT (check_button), "toggled",
-                     GTK_SIGNAL_FUNC (toggle_shrink),
-                     paned->child1);
-  
+  g_signal_connect (check_button, "toggled",
+                   G_CALLBACK (toggle_shrink), child1);
+
   label = gtk_label_new (label2);
   gtk_table_attach_defaults (GTK_TABLE (table), label,
                             1, 2, 0, 1);
@@ -99,24 +117,22 @@ create_pane_options (GtkPaned       *paned,
                             1, 2, 1, 2);
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button),
                               TRUE);
-  gtk_signal_connect (GTK_OBJECT (check_button), "toggled",
-                     GTK_SIGNAL_FUNC (toggle_resize),
-                     paned->child2);
-  
+  g_signal_connect (check_button, "toggled",
+                   G_CALLBACK (toggle_resize), child2);
+
   check_button = gtk_check_button_new_with_mnemonic ("_Shrink");
   gtk_table_attach_defaults (GTK_TABLE (table), check_button,
                             1, 2, 2, 3);
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button),
                               TRUE);
-  gtk_signal_connect (GTK_OBJECT (check_button), "toggled",
-                     GTK_SIGNAL_FUNC (toggle_shrink),
-                     paned->child2);
+  g_signal_connect (check_button, "toggled",
+                   G_CALLBACK (toggle_shrink), child2);
 
   return frame;
 }
 
 GtkWidget *
-do_panes (void)
+do_panes (GtkWidget *do_widget)
 {
   static GtkWidget *window = NULL;
   GtkWidget *frame;
@@ -128,27 +144,28 @@ do_panes (void)
   if (!window)
     {
       window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+      gtk_window_set_screen (GTK_WINDOW (window),
+                            gtk_widget_get_screen (do_widget));
 
-      gtk_signal_connect (GTK_OBJECT (window), "destroy",
-                         GTK_SIGNAL_FUNC(gtk_widget_destroyed),
-                         &window);
+      g_signal_connect (window, "destroy",
+                       G_CALLBACK (gtk_widget_destroyed), &window);
 
       gtk_window_set_title (GTK_WINDOW (window), "Panes");
       gtk_container_set_border_width (GTK_CONTAINER (window), 0);
 
-      vbox = gtk_vbox_new (FALSE, 0);
+      vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
       gtk_container_add (GTK_CONTAINER (window), vbox);
-      
-      vpaned = gtk_vpaned_new ();
+
+      vpaned = gtk_paned_new (GTK_ORIENTATION_VERTICAL);
       gtk_box_pack_start (GTK_BOX (vbox), vpaned, TRUE, TRUE, 0);
       gtk_container_set_border_width (GTK_CONTAINER(vpaned), 5);
 
-      hpaned = gtk_hpaned_new ();
+      hpaned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL);
       gtk_paned_add1 (GTK_PANED (vpaned), hpaned);
 
       frame = gtk_frame_new (NULL);
       gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN);
-      gtk_widget_set_usize (frame, 60, 60);
+      gtk_widget_set_size_request (frame, 60, 60);
       gtk_paned_add1 (GTK_PANED (hpaned), frame);
       
       button = gtk_button_new_with_mnemonic ("_Hi there");
@@ -156,12 +173,12 @@ do_panes (void)
 
       frame = gtk_frame_new (NULL);
       gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN);
-      gtk_widget_set_usize (frame, 80, 60);
+      gtk_widget_set_size_request (frame, 80, 60);
       gtk_paned_add2 (GTK_PANED (hpaned), frame);
 
       frame = gtk_frame_new (NULL);
       gtk_frame_set_shadow_type (GTK_FRAME(frame), GTK_SHADOW_IN);
-      gtk_widget_set_usize (frame, 60, 80);
+      gtk_widget_set_size_request (frame, 60, 80);
       gtk_paned_add2 (GTK_PANED (vpaned), frame);
 
       /* Now create toggle buttons to control sizing */
@@ -183,7 +200,7 @@ do_panes (void)
       gtk_widget_show_all (vbox);
     }
 
-  if (!GTK_WIDGET_VISIBLE (window))
+  if (!gtk_widget_get_visible (window))
     {
       gtk_widget_show (window);
     }