]> Pileus Git - ~andy/gtk/blobdiff - tests/testgtk.c
stylecontext: Do invalidation on first resize container
[~andy/gtk] / tests / testgtk.c
index d7489128947dbfa8cc1fded57e2e251841adcce4..d7d63ff53004dd3a9838c2263855b78bfd1bc877 100644 (file)
@@ -12,9 +12,7 @@
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
 /*
@@ -169,78 +167,49 @@ on_alpha_window_draw (GtkWidget *widget,
 static GtkWidget *
 build_alpha_widgets (void)
 {
-  GtkWidget *table;
+  GtkWidget *grid;
   GtkWidget *radio_button;
+  GtkWidget *check_button;
   GtkWidget *hbox;
   GtkWidget *label;
   GtkWidget *entry;
 
-  table = gtk_table_new (1, 1, FALSE);
+  grid = gtk_grid_new ();
 
   radio_button = gtk_radio_button_new_with_label (NULL, "Red");
-  gtk_table_attach (GTK_TABLE (table),
-                   radio_button,
-                   0, 1,                  0, 1,
-                   GTK_EXPAND | GTK_FILL, 0,
-                   0,                     0);
+  gtk_widget_set_hexpand (radio_button, TRUE);
+  gtk_grid_attach (GTK_GRID (grid), radio_button, 0, 0, 1, 1);
 
   radio_button = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (radio_button), "Green");
-  gtk_table_attach (GTK_TABLE (table),
-                   radio_button,
-                   0, 1,                  1, 2,
-                   GTK_EXPAND | GTK_FILL, 0,
-                   0,                     0);
+  gtk_widget_set_hexpand (radio_button, TRUE);
+  gtk_grid_attach (GTK_GRID (grid), radio_button, 0, 1, 1, 1);
 
   radio_button = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (radio_button), "Blue"),
-  gtk_table_attach (GTK_TABLE (table),
-                   radio_button,
-                   0, 1,                  2, 3,
-                   GTK_EXPAND | GTK_FILL, 0,
-                   0,                     0);
-
-  gtk_table_attach (GTK_TABLE (table),
-                   gtk_check_button_new_with_label ("Sedentary"),
-                   1, 2,                  0, 1,
-                   GTK_EXPAND | GTK_FILL, 0,
-                   0,                     0);
-  gtk_table_attach (GTK_TABLE (table),
-                   gtk_check_button_new_with_label ("Nocturnal"),
-                   1, 2,                  1, 2,
-                   GTK_EXPAND | GTK_FILL, 0,
-                   0,                     0);
-  gtk_table_attach (GTK_TABLE (table),
-                   gtk_check_button_new_with_label ("Compulsive"),
-                   1, 2,                  2, 3,
-                   GTK_EXPAND | GTK_FILL, 0,
-                   0,                     0);
+  gtk_widget_set_hexpand (radio_button, TRUE);
+  gtk_grid_attach (GTK_GRID (grid), radio_button, 0, 2, 1, 1);
 
-  radio_button = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (radio_button), "Green");
-  gtk_table_attach (GTK_TABLE (table),
-                   radio_button,
-                   0, 1,                  1, 2,
-                   GTK_EXPAND | GTK_FILL, 0,
-                   0,                     0);
+  check_button = gtk_check_button_new_with_label ("Sedentary"),
+  gtk_widget_set_hexpand (check_button, TRUE);
+  gtk_grid_attach (GTK_GRID (grid), check_button, 1, 0, 1, 1);
 
-  radio_button = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (radio_button), "Blue"),
-  gtk_table_attach (GTK_TABLE (table),
-                   radio_button,
-                   0, 1,                  2, 3,
-                   GTK_EXPAND | GTK_FILL, 0,
-                   0,                     0);
-  
-  hbox = gtk_hbox_new (FALSE, 0);
+  check_button = gtk_check_button_new_with_label ("Nocturnal"),
+  gtk_widget_set_hexpand (check_button, TRUE);
+  gtk_grid_attach (GTK_GRID (grid), check_button, 1, 1, 1, 1);
+
+  check_button = gtk_check_button_new_with_label ("Compulsive"),
+  gtk_widget_set_hexpand (check_button, TRUE);
+  gtk_grid_attach (GTK_GRID (grid), check_button, 1, 2, 1, 1);
+
+  hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
   label = gtk_label_new (NULL);
   gtk_label_set_markup (GTK_LABEL (label), "<i>Entry: </i>");
   gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
   entry = gtk_entry_new ();
   gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0);
-  gtk_table_attach (GTK_TABLE (table),
-                   hbox,
-                   0, 1,                  3, 4,
-                   GTK_EXPAND | GTK_FILL, 0,
-                   0,                     0);
+  gtk_widget_set_hexpand (hbox, TRUE);
+  gtk_grid_attach (GTK_GRID (grid), hbox, 0, 3, 2, 1);
   
-  return table;
+  return grid;
 }
 
 static void
@@ -298,7 +267,7 @@ create_alpha_window (GtkWidget *widget)
 
       content_area = gtk_dialog_get_content_area (GTK_DIALOG (window));
       
-      vbox = gtk_vbox_new (FALSE, 8);
+      vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8);
       gtk_container_set_border_width (GTK_CONTAINER (vbox), 12);
       gtk_box_pack_start (GTK_BOX (content_area), vbox,
                          TRUE, TRUE, 0);
@@ -399,7 +368,7 @@ create_composited_window (GtkWidget *widget)
   if (!window)
     {
       GtkWidget *event, *button;
-      GdkColor red;
+      GdkRGBA red;
 
       /* make the widgets */
       button = gtk_button_new_with_label ("A Button");
@@ -411,8 +380,8 @@ create_composited_window (GtkWidget *widget)
                         &window);
 
       /* put a red background on the window */
-      gdk_color_parse ("red", &red);
-      gtk_widget_modify_bg (window, GTK_STATE_NORMAL, &red);
+      gdk_rgba_parse (&red, "red");
+      gtk_widget_override_background_color (window, 0, &red);
 
       /* set our event box to have a fully-transparent background
        * drawn on it.  currently there is no way to simply tell gtk
@@ -459,14 +428,14 @@ pattern_set_bg (GtkWidget   *widget,
                GdkWindow   *child,
                gint         level)
 {
-  static const GdkColor colors[] = {
-    { 0, 0x4444, 0x4444, 0xffff },
-    { 0, 0x8888, 0x8888, 0xffff },
-    { 0, 0xaaaa, 0xaaaa, 0xffff }
+  static GdkRGBA colors[] = {
+    { 0.27, 0.27, 1.0, 1.0 },
+    { 0.53, 0.53, 1.0, 1.0},
+    { 0.67, 0.67, 1.0, 1.0 }
   };
     
   gdk_window_set_user_data (child, widget);
-  gdk_window_set_background (child, &colors[level]);
+  gdk_window_set_background_rgba (child, &colors[level]);
 }
 
 static void
@@ -525,11 +494,11 @@ create_pattern (GtkWidget   *widget,
 #define PATTERN_SIZE (1 << 18)
 
 static void
-pattern_hadj_changed (GtkAdjustment *adj,
+pattern_hadj_changed (GtkAdjustment *adjustment,
                      GtkWidget     *darea)
 {
-  gint *old_value = g_object_get_data (G_OBJECT (adj), "old-value");
-  gint new_value = adj->value;
+  gint *old_value = g_object_get_data (G_OBJECT (adjustment), "old-value");
+  gint new_value = gtk_adjustment_get_value (adjustment);
 
   if (gtk_widget_get_realized (darea))
     {
@@ -540,11 +509,11 @@ pattern_hadj_changed (GtkAdjustment *adj,
 }
 
 static void
-pattern_vadj_changed (GtkAdjustment *adj,
+pattern_vadj_changed (GtkAdjustment *adjustment,
                      GtkWidget *darea)
 {
-  gint *old_value = g_object_get_data (G_OBJECT (adj), "old-value");
-  gint new_value = adj->value;
+  gint *old_value = g_object_get_data (G_OBJECT (adjustment), "old-value");
+  gint new_value = gtk_adjustment_get_value (adjustment);
 
   if (gtk_widget_get_realized (darea))
     {
@@ -570,10 +539,10 @@ create_big_windows (GtkWidget *widget)
 {
   static GtkWidget *window = NULL;
   GtkWidget *content_area;
-  GtkWidget *darea, *table, *scrollbar;
+  GtkWidget *darea, *grid, *scrollbar;
   GtkWidget *eventbox;
-  GtkAdjustment *hadj;
-  GtkAdjustment *vadj;
+  GtkAdjustment *hadjustment;
+  GtkAdjustment *vadjustment;
   static gint current_x;
   static gint current_y;
  
@@ -603,45 +572,39 @@ create_big_windows (GtkWidget *widget)
 
       content_area = gtk_dialog_get_content_area (GTK_DIALOG (window));
 
-      table = gtk_table_new (2, 2, FALSE);
-      gtk_box_pack_start (GTK_BOX (content_area), table, TRUE, TRUE, 0);
+      grid = gtk_grid_new ();
+      gtk_box_pack_start (GTK_BOX (content_area), grid, TRUE, TRUE, 0);
 
       darea = gtk_drawing_area_new ();
 
-      hadj = gtk_adjustment_new (0, 0, PATTERN_SIZE, 10, 100, 100);
-      g_signal_connect (hadj, "value_changed",
+      hadjustment = gtk_adjustment_new (0, 0, PATTERN_SIZE, 10, 100, 100);
+      g_signal_connect (hadjustment, "value_changed",
                        G_CALLBACK (pattern_hadj_changed), darea);
-      g_object_set_data (G_OBJECT (hadj), "old-value", &current_x);
+      g_object_set_data (G_OBJECT (hadjustment), "old-value", &current_x);
 
-      vadj = gtk_adjustment_new (0, 0, PATTERN_SIZE, 10, 100, 100);
-      g_signal_connect (vadj, "value_changed",
+      vadjustment = gtk_adjustment_new (0, 0, PATTERN_SIZE, 10, 100, 100);
+      g_signal_connect (vadjustment, "value_changed",
                        G_CALLBACK (pattern_vadj_changed), darea);
-      g_object_set_data (G_OBJECT (vadj), "old-value", &current_y);
+      g_object_set_data (G_OBJECT (vadjustment), "old-value", &current_y);
       
       g_signal_connect (darea, "realize",
                         G_CALLBACK (pattern_realize),
                         NULL);
 
       eventbox = gtk_event_box_new ();
-      gtk_table_attach (GTK_TABLE (table), eventbox,
-                       0, 1,                  0, 1,
-                       GTK_FILL | GTK_EXPAND, GTK_FILL | GTK_EXPAND,
-                       0,                     0);
+      gtk_widget_set_hexpand (eventbox, TRUE);
+      gtk_widget_set_vexpand (eventbox, TRUE);
+      gtk_grid_attach (GTK_GRID (grid), eventbox, 0, 0, 1, 1);
 
       gtk_container_add (GTK_CONTAINER (eventbox), darea);
 
-      scrollbar = gtk_hscrollbar_new (hadj);
-      gtk_table_attach (GTK_TABLE (table), scrollbar,
-                       0, 1,                  1, 2,
-                       GTK_FILL | GTK_EXPAND, GTK_FILL,
-                       0,                     0);
-
-      scrollbar = gtk_vscrollbar_new (vadj);
-      gtk_table_attach (GTK_TABLE (table), scrollbar,
-                       1, 2,                  0, 1,
-                       GTK_FILL,              GTK_EXPAND | GTK_FILL,
-                       0,                     0);
+      scrollbar = gtk_scrollbar_new (GTK_ORIENTATION_HORIZONTAL, hadjustment);
+      gtk_widget_set_hexpand (scrollbar, TRUE);
+      gtk_grid_attach (GTK_GRID (grid), scrollbar, 0, 1, 1, 1);
 
+      scrollbar = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL, vadjustment);
+      gtk_widget_set_vexpand (scrollbar, TRUE);
+      gtk_grid_attach (GTK_GRID (grid), scrollbar, 1, 0, 1, 1);
     }
 
   if (!gtk_widget_get_visible (window))
@@ -670,9 +633,12 @@ create_buttons (GtkWidget *widget)
   static GtkWidget *window = NULL;
   GtkWidget *box1;
   GtkWidget *box2;
-  GtkWidget *table;
-  GtkWidget *button[10];
+  GtkWidget *grid;
   GtkWidget *separator;
+  GtkWidget *button[10];
+  int button_x[9] = { 0, 1, 2, 0, 2, 1, 1, 2, 0 };
+  int button_y[9] = { 0, 1, 2, 2, 0, 2, 0, 1, 1 };
+  guint i;
 
   if (!window)
     {
@@ -687,14 +653,14 @@ create_buttons (GtkWidget *widget)
       gtk_window_set_title (GTK_WINDOW (window), "GtkButton");
       gtk_container_set_border_width (GTK_CONTAINER (window), 0);
 
-      box1 = gtk_vbox_new (FALSE, 0);
+      box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
       gtk_container_add (GTK_CONTAINER (window), box1);
 
-      table = gtk_table_new (3, 3, FALSE);
-      gtk_table_set_row_spacings (GTK_TABLE (table), 5);
-      gtk_table_set_col_spacings (GTK_TABLE (table), 5);
-      gtk_container_set_border_width (GTK_CONTAINER (table), 10);
-      gtk_box_pack_start (GTK_BOX (box1), table, TRUE, TRUE, 0);
+      grid = gtk_grid_new ();
+      gtk_grid_set_row_spacing (GTK_GRID (grid), 5);
+      gtk_grid_set_column_spacing (GTK_GRID (grid), 5);
+      gtk_container_set_border_width (GTK_CONTAINER (grid), 10);
+      gtk_box_pack_start (GTK_BOX (box1), grid, TRUE, TRUE, 0);
 
       button[0] = gtk_button_new_with_label ("button1");
       button[1] = gtk_button_new_with_mnemonic ("_button2");
@@ -706,66 +672,22 @@ create_buttons (GtkWidget *widget)
       button[7] = gtk_button_new_from_stock (GTK_STOCK_CLOSE);
       button[8] = gtk_button_new_with_label ("button9");
       
-      g_signal_connect (button[0], "clicked",
-                       G_CALLBACK (button_window),
-                       button[1]);
-
-      gtk_table_attach (GTK_TABLE (table), button[0], 0, 1, 0, 1,
-                       GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
-
-      g_signal_connect (button[1], "clicked",
-                       G_CALLBACK (button_window),
-                       button[2]);
-
-      gtk_table_attach (GTK_TABLE (table), button[1], 1, 2, 1, 2,
-                       GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
-
-      g_signal_connect (button[2], "clicked",
-                       G_CALLBACK (button_window),
-                       button[3]);
-      gtk_table_attach (GTK_TABLE (table), button[2], 2, 3, 2, 3,
-                       GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
-
-      g_signal_connect (button[3], "clicked",
-                       G_CALLBACK (button_window),
-                       button[4]);
-      gtk_table_attach (GTK_TABLE (table), button[3], 0, 1, 2, 3,
-                       GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
-
-      g_signal_connect (button[4], "clicked",
-                       G_CALLBACK (button_window),
-                       button[5]);
-      gtk_table_attach (GTK_TABLE (table), button[4], 2, 3, 0, 1,
-                       GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
-
-      g_signal_connect (button[5], "clicked",
-                       G_CALLBACK (button_window),
-                       button[6]);
-      gtk_table_attach (GTK_TABLE (table), button[5], 1, 2, 2, 3,
-                       GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
-
-      g_signal_connect (button[6], "clicked",
-                       G_CALLBACK (button_window),
-                       button[7]);
-      gtk_table_attach (GTK_TABLE (table), button[6], 1, 2, 0, 1,
-                       GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
-
-      g_signal_connect (button[7], "clicked",
-                       G_CALLBACK (button_window),
-                       button[8]);
-      gtk_table_attach (GTK_TABLE (table), button[7], 2, 3, 1, 2,
-                       GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
-
-      g_signal_connect (button[8], "clicked",
-                       G_CALLBACK (button_window),
-                       button[0]);
-      gtk_table_attach (GTK_TABLE (table), button[8], 0, 1, 1, 2,
-                       GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
-
-      separator = gtk_hseparator_new ();
+      for (i = 0; i < 9; i++)
+        {
+          g_signal_connect (button[i], "clicked",
+                            G_CALLBACK (button_window),
+                            button[(i + 1) % 9]);
+          gtk_widget_set_hexpand (button[i], TRUE);
+          gtk_widget_set_vexpand (button[i], TRUE);
+
+          gtk_grid_attach (GTK_GRID (grid), button[i],
+                           button_x[i], button_y[i] + 1, 1, 1);
+        }
+
+      separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
       gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
 
-      box2 = gtk_vbox_new (FALSE, 10);
+      box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
       gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
       gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0);
 
@@ -810,10 +732,10 @@ create_toggle_buttons (GtkWidget *widget)
       gtk_window_set_title (GTK_WINDOW (window), "GtkToggleButton");
       gtk_container_set_border_width (GTK_CONTAINER (window), 0);
 
-      box1 = gtk_vbox_new (FALSE, 0);
+      box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
       gtk_container_add (GTK_CONTAINER (window), box1);
 
-      box2 = gtk_vbox_new (FALSE, 10);
+      box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
       gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
       gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);
 
@@ -830,10 +752,10 @@ create_toggle_buttons (GtkWidget *widget)
       gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (button), TRUE);
       gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
       
-      separator = gtk_hseparator_new ();
+      separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
       gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
 
-      box2 = gtk_vbox_new (FALSE, 10);
+      box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
       gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
       gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0);
 
@@ -855,11 +777,11 @@ create_toggle_buttons (GtkWidget *widget)
 static GtkWidget *
 create_widget_grid (GType widget_type)
 {
-  GtkWidget *table;
+  GtkWidget *grid;
   GtkWidget *group_widget = NULL;
   gint i, j;
   
-  table = gtk_table_new (FALSE, 3, 3);
+  grid = gtk_grid_new ();
   
   for (i = 0; i < 5; i++)
     {
@@ -898,14 +820,11 @@ create_widget_grid (GType widget_type)
            }
          
          if (widget)
-           gtk_table_attach (GTK_TABLE (table), widget,
-                             i, i + 1, j, j + 1,
-                             0,        0,
-                             0,        0);
+           gtk_grid_attach (GTK_GRID (grid), widget, i, j, 1, 1);
        }
     }
 
-  return table;
+  return grid;
 }
 
 /*
@@ -942,7 +861,7 @@ create_check_buttons (GtkWidget *widget)
 
       box1 = gtk_dialog_get_content_area (GTK_DIALOG (window));
       
-      box2 = gtk_vbox_new (FALSE, 10);
+      box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
       gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
       gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);
 
@@ -959,7 +878,7 @@ create_check_buttons (GtkWidget *widget)
       gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (button), TRUE);
       gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
 
-      separator = gtk_hseparator_new ();
+      separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
       gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
 
       table = create_widget_grid (GTK_TYPE_CHECK_BUTTON);
@@ -1007,7 +926,7 @@ create_radio_buttons (GtkWidget *widget)
 
       box1 = gtk_dialog_get_content_area (GTK_DIALOG (window));
 
-      box2 = gtk_vbox_new (FALSE, 10);
+      box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
       gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
       gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);
 
@@ -1031,10 +950,10 @@ create_radio_buttons (GtkWidget *widget)
       gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (button), TRUE);
       gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
       
-      separator = gtk_hseparator_new ();
+      separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
       gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
 
-      box2 = gtk_vbox_new (FALSE, 10);
+      box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
       gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
       gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);
 
@@ -1055,7 +974,7 @@ create_radio_buttons (GtkWidget *widget)
       gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (button), FALSE);
       gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
 
-      separator = gtk_hseparator_new ();
+      separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
       gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
 
       table = create_widget_grid (GTK_TYPE_RADIO_BUTTON);
@@ -1088,9 +1007,9 @@ create_bbox (gint  horizontal,
   frame = gtk_frame_new (title);
 
   if (horizontal)
-    bbox = gtk_hbutton_box_new ();
+    bbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL);
   else
-    bbox = gtk_vbutton_box_new ();
+    bbox = gtk_button_box_new (GTK_ORIENTATION_VERTICAL);
 
   gtk_container_set_border_width (GTK_CONTAINER (bbox), 5);
   gtk_container_add (GTK_CONTAINER (frame), bbox);
@@ -1132,13 +1051,13 @@ create_button_box (GtkWidget *widget)
 
     gtk_container_set_border_width (GTK_CONTAINER (window), 10);
 
-    main_vbox = gtk_vbox_new (FALSE, 0);
+    main_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
     gtk_container_add (GTK_CONTAINER (window), main_vbox);
     
     frame_horz = gtk_frame_new ("Horizontal Button Boxes");
     gtk_box_pack_start (GTK_BOX (main_vbox), frame_horz, TRUE, TRUE, 10);
     
-    vbox = gtk_vbox_new (FALSE, 0);
+    vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
     gtk_container_set_border_width (GTK_CONTAINER (vbox), 10);
     gtk_container_add (GTK_CONTAINER (frame_horz), vbox);
     
@@ -1165,7 +1084,7 @@ create_button_box (GtkWidget *widget)
     frame_vert = gtk_frame_new ("Vertical Button Boxes");
     gtk_box_pack_start (GTK_BOX (main_vbox), frame_vert, TRUE, TRUE, 10);
     
-    hbox = gtk_hbox_new (FALSE, 0);
+    hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
     gtk_container_set_border_width (GTK_CONTAINER (hbox), 10);
     gtk_container_add (GTK_CONTAINER (frame_vert), hbox);
 
@@ -1202,8 +1121,7 @@ create_button_box (GtkWidget *widget)
 
 static GtkWidget*
 new_pixbuf (char      *filename,
-           GdkWindow *window,
-           GdkColor  *background)
+           GdkWindow *window)
 {
   GtkWidget *widget;
   GdkPixbuf *pixbuf;
@@ -1379,8 +1297,7 @@ create_toolbar (GtkWidget *widget)
             {
               GtkWidget *icon;
 
-              icon = new_pixbuf ("test.xpm", gtk_widget_get_window (window),
-                                 &gtk_widget_get_style (window)->bg[GTK_STATE_NORMAL]);
+              icon = new_pixbuf ("test.xpm", gtk_widget_get_window (window));
               toolitem = gtk_tool_button_new (icon, create_toolbar_items[i].label);
             }
           if (create_toolbar_items[i].callback)
@@ -1401,67 +1318,6 @@ create_toolbar (GtkWidget *widget)
     gtk_widget_destroy (window);
 }
 
-static GtkActionEntry make_toolbar_items[] = {
-    { NULL, NULL, "Horizontal", NULL, "Horizontal toolbar layout",
-      G_CALLBACK (set_toolbar_horizontal) },
-    { NULL, NULL, "Vertical", NULL, "Vertical toolbar layout",
-      G_CALLBACK (set_toolbar_vertical) },
-    { NULL },
-    { NULL, NULL, "Icons", NULL, "Only show toolbar icons",
-      G_CALLBACK (set_toolbar_icons) },
-    { NULL, NULL, "Text", NULL, "Only show toolbar text",
-      G_CALLBACK (set_toolbar_text) },
-    { NULL, NULL, "Both", NULL, "Show toolbar icons and text",
-      G_CALLBACK (set_toolbar_both) },
-    { NULL },
-    { NULL, NULL, "Woot", NULL, "Woot woot woot",
-      NULL },
-    { NULL, NULL, "Blah", NULL, "Blah blah blah",
-      NULL },
-    { NULL },
-    { NULL, NULL, "Enable", NULL, "Enable tooltips",
-      G_CALLBACK (set_toolbar_enable) },
-    { NULL, NULL, "Disable", NULL, "Disable tooltips",
-      G_CALLBACK (set_toolbar_disable) },
-    { NULL },
-    { NULL, NULL, "Hoo", NULL, "Hoo tooltip",
-      NULL },
-    { NULL, NULL, "Woo", NULL, "Woo tooltip",
-      NULL }
-};
-
-static GtkWidget*
-make_toolbar (GtkWidget *window)
-{
-  GtkWidget *toolbar;
-  guint i;
-
-  if (!gtk_widget_get_realized (window))
-    gtk_widget_realize (window);
-
-  toolbar = gtk_toolbar_new ();
-  for (i = 0; i < G_N_ELEMENTS (make_toolbar_items); i++)
-    {
-      GtkWidget *icon;
-      GtkToolItem *toolitem;
-
-      if (make_toolbar_items[i].label == NULL)
-        {
-          toolitem = gtk_separator_tool_item_new ();
-          continue;
-        }
-      icon  = new_pixbuf ("test.xpm", gtk_widget_get_window (window),
-                          &gtk_widget_get_style (window)->bg[GTK_STATE_NORMAL]);
-      toolitem = gtk_tool_button_new (icon, make_toolbar_items[i].label);
-      gtk_tool_item_set_tooltip_text (toolitem, make_toolbar_items[i].tooltip);
-      if (make_toolbar_items[i].callback != NULL)
-        g_signal_connect (toolitem, "clicked",  make_toolbar_items[i].callback, toolbar);
-      gtk_toolbar_insert (GTK_TOOLBAR (toolbar), toolitem, -1);
-    }
-
-  return toolbar;
-}
-
 /*
  * GtkStatusBar
  */
@@ -1567,10 +1423,10 @@ create_statusbar (GtkWidget *widget)
       gtk_window_set_title (GTK_WINDOW (window), "statusbar");
       gtk_container_set_border_width (GTK_CONTAINER (window), 0);
 
-      box1 = gtk_vbox_new (FALSE, 0);
+      box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
       gtk_container_add (GTK_CONTAINER (window), box1);
 
-      box2 = gtk_vbox_new (FALSE, 10);
+      box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
       gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
       gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);
 
@@ -1622,10 +1478,10 @@ create_statusbar (GtkWidget *widget)
                                 "signal_after::clicked", statusbar_push_long, statusbar,
                                 NULL);
       
-      separator = gtk_hseparator_new ();
+      separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
       gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
 
-      box2 = gtk_vbox_new (FALSE, 10);
+      box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
       gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
       gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0);
 
@@ -1644,121 +1500,110 @@ create_statusbar (GtkWidget *widget)
     gtk_widget_destroy (window);
 }
 
-/*
- * GtkHandleBox
- */
+/* Alpha demo */
 
 static void
-handle_box_child_signal (GtkHandleBox *hb,
-                        GtkWidget    *child,
-                        const gchar  *action)
+alpha_changed (GtkRange *range, GtkWidget *widget)
 {
-  printf ("%s: child <%s> %sed\n",
-         g_type_name (G_OBJECT_TYPE (hb)),
-         g_type_name (G_OBJECT_TYPE (child)),
-         action);
+  gdouble alpha;
+
+  alpha = gtk_range_get_value (range);
+
+  gtk_widget_set_opacity (widget, alpha / 100.0);
 }
 
-static void
-create_handle_box (GtkWidget *widget)
+
+void
+create_alpha_widgets (GtkWidget *widget)
 {
-  static GtkWidget* window = NULL;
-  GtkWidget *handle_box;
-  GtkWidget *handle_box2;
-  GtkWidget *vbox;
-  GtkWidget *hbox;
-  GtkWidget *toolbar;
-  GtkWidget *label;
-  GtkWidget *separator;
+  static GtkWidget *window = NULL;
 
   if (!window)
-  {
-    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-    
-    gtk_window_set_screen (GTK_WINDOW (window),
-                          gtk_widget_get_screen (widget));
-    gtk_window_set_modal (GTK_WINDOW (window), FALSE);
-    gtk_window_set_title (GTK_WINDOW (window),
-                         "Handle Box Test");
-    gtk_window_set_resizable (GTK_WINDOW (window), TRUE);
-    
-    g_signal_connect (window, "destroy",
-                     G_CALLBACK (gtk_widget_destroyed),
-                     &window);
-    
-    gtk_container_set_border_width (GTK_CONTAINER (window), 20);
+    {
+      GtkWidget *vbox2, *vbox, *main_hbox;
+      GtkWidget *button, *event_box, *label, *scale;
+      GtkWidget *alpha1, *alpha2, *alpha3;
 
-    vbox = gtk_vbox_new (FALSE, 0);
-    gtk_container_add (GTK_CONTAINER (window), vbox);
-    gtk_widget_show (vbox);
+      window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+      gtk_window_set_screen (GTK_WINDOW (window),
+                             gtk_widget_get_screen (widget));
+      gtk_window_set_default_size (GTK_WINDOW (window),
+                                   450, 450);
 
-    label = gtk_label_new ("Above");
-    gtk_container_add (GTK_CONTAINER (vbox), label);
-    gtk_widget_show (label);
+      g_signal_connect (window, "destroy",
+                        G_CALLBACK (gtk_widget_destroyed), &window);
 
-    separator = gtk_hseparator_new ();
-    gtk_container_add (GTK_CONTAINER (vbox), separator);
-    gtk_widget_show (separator);
-    
-    hbox = gtk_hbox_new (FALSE, 10);
-    gtk_container_add (GTK_CONTAINER (vbox), hbox);
-    gtk_widget_show (hbox);
-
-    separator = gtk_hseparator_new ();
-    gtk_container_add (GTK_CONTAINER (vbox), separator);
-    gtk_widget_show (separator);
-
-    label = gtk_label_new ("Below");
-    gtk_container_add (GTK_CONTAINER (vbox), label);
-    gtk_widget_show (label);
-
-    handle_box = gtk_handle_box_new ();
-    gtk_box_pack_start (GTK_BOX (hbox), handle_box, FALSE, FALSE, 0);
-    g_signal_connect (handle_box,
-                     "child_attached",
-                     G_CALLBACK (handle_box_child_signal),
-                     "attached");
-    g_signal_connect (handle_box,
-                     "child_detached",
-                     G_CALLBACK (handle_box_child_signal),
-                     "detached");
-    gtk_widget_show (handle_box);
-
-    toolbar = make_toolbar (window);
-    
-    gtk_container_add (GTK_CONTAINER (handle_box), toolbar);
-    gtk_widget_show (toolbar);
-
-    handle_box = gtk_handle_box_new ();
-    gtk_box_pack_start (GTK_BOX (hbox), handle_box, FALSE, FALSE, 0);
-    g_signal_connect (handle_box,
-                     "child_attached",
-                     G_CALLBACK (handle_box_child_signal),
-                     "attached");
-    g_signal_connect (handle_box,
-                     "child_detached",
-                     G_CALLBACK (handle_box_child_signal),
-                     "detached");
-    gtk_widget_show (handle_box);
-
-    handle_box2 = gtk_handle_box_new ();
-    gtk_container_add (GTK_CONTAINER (handle_box), handle_box2);
-    g_signal_connect (handle_box2,
-                     "child_attached",
-                     G_CALLBACK (handle_box_child_signal),
-                     "attached");
-    g_signal_connect (handle_box2,
-                     "child_detached",
-                     G_CALLBACK (handle_box_child_signal),
-                     "detached");
-    gtk_widget_show (handle_box2);
-
-    hbox = g_object_new (GTK_TYPE_HBOX, "visible", 1, "parent", handle_box2, NULL);
-    label = gtk_label_new ("Fooo!");
-    gtk_container_add (GTK_CONTAINER (hbox), label);
-    gtk_widget_show (label);
-    g_object_new (GTK_TYPE_ARROW, "visible", 1, "parent", hbox, NULL);
-  }
+      gtk_window_set_title (GTK_WINDOW (window), "Alpha");
+      gtk_container_set_border_width (GTK_CONTAINER (window), 0);
+
+      main_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+      gtk_container_add (GTK_CONTAINER (window), main_hbox);
+
+      vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+
+      gtk_box_pack_start (GTK_BOX (main_hbox), vbox, FALSE, FALSE, 0);
+
+      /* Plain button (no gdkwindows */
+
+      label = gtk_label_new ("non-window widget");
+      gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
+
+      alpha1 = button = gtk_button_new_with_label ("A Button");
+      gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
+
+      /* windowed container with both windowed and normal button */
+      label = gtk_label_new ("\nwindow widget");
+      gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
+
+      alpha2 = event_box = gtk_event_box_new ();
+      gtk_box_pack_start (GTK_BOX (vbox), event_box, FALSE, FALSE, 0);
+
+      vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+      gtk_container_add (GTK_CONTAINER (event_box), vbox2);
+
+      button = gtk_button_new_with_label ("A Button");
+      gtk_box_pack_start (GTK_BOX (vbox2), button, FALSE, FALSE, 0);
+
+      event_box = gtk_event_box_new ();
+      button = gtk_button_new_with_label ("A Button (in window)");
+      gtk_container_add (GTK_CONTAINER (event_box), button);
+      gtk_box_pack_start (GTK_BOX (vbox2), event_box, FALSE, FALSE, 0);
+
+      /* non-windowed container with both windowed and normal button */
+      label = gtk_label_new ("\nnon-window widget with widget child");
+      gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
+
+      alpha3 = vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+      gtk_box_pack_start (GTK_BOX (vbox), vbox2, FALSE, FALSE, 0);
+
+      button = gtk_button_new_with_label ("A Button");
+      gtk_box_pack_start (GTK_BOX (vbox2), button, FALSE, FALSE, 0);
+
+      event_box = gtk_event_box_new ();
+      button = gtk_button_new_with_label ("A Button (in window)");
+      gtk_container_add (GTK_CONTAINER (event_box), button);
+      gtk_box_pack_start (GTK_BOX (vbox2), event_box, FALSE, FALSE, 0);
+
+      scale = gtk_scale_new_with_range (GTK_ORIENTATION_VERTICAL,
+                                         0, 100, 1);
+      gtk_box_pack_start (GTK_BOX (main_hbox), scale, FALSE, FALSE, 0);
+      g_signal_connect (scale, "value_changed", G_CALLBACK (alpha_changed), alpha1);
+      gtk_range_set_value (GTK_RANGE (scale), 50);
+
+      scale = gtk_scale_new_with_range (GTK_ORIENTATION_VERTICAL,
+                                         0, 100, 1);
+      gtk_box_pack_start (GTK_BOX (main_hbox), scale, FALSE, FALSE, 0);
+      g_signal_connect (scale, "value_changed", G_CALLBACK (alpha_changed), alpha2);
+      gtk_range_set_value (GTK_RANGE (scale), 50);
+
+      scale = gtk_scale_new_with_range (GTK_ORIENTATION_VERTICAL,
+                                         0, 100, 1);
+      gtk_box_pack_start (GTK_BOX (main_hbox), scale, FALSE, FALSE, 0);
+      g_signal_connect (scale, "value_changed", G_CALLBACK (alpha_changed), alpha3);
+      gtk_range_set_value (GTK_RANGE (scale), 50);
+
+      gtk_widget_show_all (main_hbox);
+    }
 
   if (!gtk_widget_get_visible (window))
     gtk_widget_show (window);
@@ -1766,6 +1611,7 @@ create_handle_box (GtkWidget *widget)
     gtk_widget_destroy (window);
 }
 
+
 /* 
  * Label Demo
  */
@@ -1911,9 +1757,9 @@ void create_labels (GtkWidget *widget)
 
       gtk_window_set_title (GTK_WINDOW (window), "Label");
 
-      vbox = gtk_vbox_new (FALSE, 5);
+      vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
       
-      hbox = gtk_hbox_new (FALSE, 5);
+      hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
       gtk_container_add (GTK_CONTAINER (window), vbox);
 
       gtk_box_pack_end (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
@@ -1926,7 +1772,7 @@ void create_labels (GtkWidget *widget)
 
       gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
       
-      vbox = gtk_vbox_new (FALSE, 5);
+      vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
       
       gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0);
       gtk_container_set_border_width (GTK_CONTAINER (window), 5);
@@ -1985,7 +1831,7 @@ void create_labels (GtkWidget *widget)
       gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
       g_signal_connect (label, "activate-link", G_CALLBACK (activate_link), NULL);
 
-      vbox = gtk_vbox_new (FALSE, 5);
+      vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
       gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0);
       frame = gtk_frame_new ("Line wrapped label");
       label = gtk_label_new ("This is an example of a line-wrapped label.  It should not be taking "\
@@ -2092,7 +1938,7 @@ create_rotated_label (GtkWidget *widget)
 
       content_area = gtk_dialog_get_content_area (GTK_DIALOG (window));
 
-      vbox = gtk_vbox_new (FALSE, 5);
+      vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
       gtk_box_pack_start (GTK_BOX (content_area), vbox, TRUE, TRUE, 0);
       gtk_container_set_border_width (GTK_CONTAINER (vbox), 10);
 
@@ -2100,14 +1946,15 @@ create_rotated_label (GtkWidget *widget)
       gtk_label_set_markup (GTK_LABEL (label), "Hello World\n<i>Rotate</i> <span underline='single' foreground='blue'>me</span>");
       gtk_box_pack_start (GTK_BOX (vbox), label, TRUE, TRUE, 0);
 
-      scale_hbox = gtk_hbox_new (FALSE, 0);
+      scale_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
       gtk_box_pack_start (GTK_BOX (vbox), scale_hbox, FALSE, FALSE, 0);
       
       scale_label = gtk_label_new (NULL);
       gtk_label_set_markup (GTK_LABEL (scale_label), "<i>Angle: </i>");
       gtk_box_pack_start (GTK_BOX (scale_hbox), scale_label, FALSE, FALSE, 0);
 
-      hscale = gtk_hscale_new_with_range (0, 360, 5);
+      hscale = gtk_scale_new_with_range (GTK_ORIENTATION_HORIZONTAL,
+                                         0, 360, 5);
       g_signal_connect (hscale, "value-changed",
                        G_CALLBACK (on_angle_scale_changed), label);
       
@@ -2199,7 +2046,7 @@ create_rotated_text (GtkWidget *widget)
 
   if (!window)
     {
-      const GdkColor white = { 0, 0xffff, 0xffff, 0xffff };
+      const GdkRGBA white = { 1.0, 1.0, 1.0, 1.0 };
       GtkRequisition requisition;
       GtkWidget *content_area;
       GtkWidget *drawing_area;
@@ -2224,7 +2071,7 @@ create_rotated_text (GtkWidget *widget)
 
       drawing_area = gtk_drawing_area_new ();
       gtk_box_pack_start (GTK_BOX (content_area), drawing_area, TRUE, TRUE, 0);
-      gtk_widget_modify_bg (drawing_area, GTK_STATE_NORMAL, &white);
+      gtk_widget_override_background_color (drawing_area, 0, &white);
 
       tile_pixbuf = gdk_pixbuf_new_from_file ("marble.xpm", NULL);
       
@@ -2305,10 +2152,10 @@ create_reparent (GtkWidget *widget)
       gtk_window_set_title (GTK_WINDOW (window), "reparent");
       gtk_container_set_border_width (GTK_CONTAINER (window), 0);
 
-      box1 = gtk_vbox_new (FALSE, 0);
+      box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
       gtk_container_add (GTK_CONTAINER (window), box1);
 
-      box2 = gtk_hbox_new (FALSE, 5);
+      box2 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
       gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
       gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);
 
@@ -2317,7 +2164,7 @@ create_reparent (GtkWidget *widget)
       frame = gtk_frame_new ("Frame 1");
       gtk_box_pack_start (GTK_BOX (box2), frame, TRUE, TRUE, 0);
 
-      box3 = gtk_vbox_new (FALSE, 5);
+      box3 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
       gtk_container_set_border_width (GTK_CONTAINER (box3), 5);
       gtk_container_add (GTK_CONTAINER (frame), box3);
 
@@ -2340,7 +2187,7 @@ create_reparent (GtkWidget *widget)
       frame = gtk_frame_new ("Frame 2");
       gtk_box_pack_start (GTK_BOX (box2), frame, TRUE, TRUE, 0);
 
-      box3 = gtk_vbox_new (FALSE, 5);
+      box3 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
       gtk_container_set_border_width (GTK_CONTAINER (box3), 5);
       gtk_container_add (GTK_CONTAINER (frame), box3);
 
@@ -2355,10 +2202,10 @@ create_reparent (GtkWidget *widget)
                        G_CALLBACK (reparent_label),
                        event_box);
 
-      separator = gtk_hseparator_new ();
+      separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
       gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
 
-      box2 = gtk_vbox_new (FALSE, 10);
+      box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
       gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
       gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0);
 
@@ -2384,11 +2231,11 @@ grippy_button_press (GtkWidget *area, GdkEventButton *event, GdkWindowEdge edge)
 {
   if (event->type == GDK_BUTTON_PRESS) 
     {
-      if (event->button == 1)
+      if (event->button == GDK_BUTTON_PRIMARY)
        gtk_window_begin_resize_drag (GTK_WINDOW (gtk_widget_get_toplevel (area)), edge,
                                      event->button, event->x_root, event->y_root,
                                      event->time);
-      else if (event->button == 2)
+      else if (event->button == GDK_BUTTON_MIDDLE)
        gtk_window_begin_move_drag (GTK_WINDOW (gtk_widget_get_toplevel (area)), 
                                    event->button, event->x_root, event->y_root,
                                    event->time);
@@ -2399,15 +2246,49 @@ grippy_button_press (GtkWidget *area, GdkEventButton *event, GdkWindowEdge edge)
 static gboolean
 grippy_draw (GtkWidget *area, cairo_t *cr, GdkWindowEdge edge)
 {
-  gtk_paint_resize_grip (gtk_widget_get_style (area),
-                         cr,
-                        gtk_widget_get_state (area),
-                        area,
-                        "statusbar",
-                        edge,
-                        0, 0,
-                         gtk_widget_get_allocated_width (area),
-                         gtk_widget_get_allocated_height (area));
+  GtkStyleContext *context;
+  GtkJunctionSides sides;
+
+  switch (edge)
+    {
+    case GDK_WINDOW_EDGE_NORTH_WEST:
+      sides = GTK_JUNCTION_CORNER_TOPLEFT;
+      break;
+    case GDK_WINDOW_EDGE_NORTH:
+      sides = GTK_JUNCTION_TOP;
+      break;
+    case GDK_WINDOW_EDGE_NORTH_EAST:
+      sides = GTK_JUNCTION_CORNER_TOPRIGHT;
+      break;
+    case GDK_WINDOW_EDGE_WEST:
+      sides = GTK_JUNCTION_LEFT;
+      break;
+    case GDK_WINDOW_EDGE_EAST:
+      sides = GTK_JUNCTION_RIGHT;
+      break;
+    case GDK_WINDOW_EDGE_SOUTH_WEST:
+      sides = GTK_JUNCTION_CORNER_BOTTOMLEFT;
+      break;
+    case GDK_WINDOW_EDGE_SOUTH:
+      sides = GTK_JUNCTION_BOTTOM;
+      break;
+    case GDK_WINDOW_EDGE_SOUTH_EAST:
+      sides = GTK_JUNCTION_CORNER_BOTTOMRIGHT;
+      break;
+    default:
+      g_assert_not_reached();
+    }
+
+  context = gtk_widget_get_style_context (area);
+  gtk_style_context_save (context);
+  gtk_style_context_add_class (context, "grip");
+  gtk_style_context_set_junction_sides (context, sides);
+  gtk_render_handle (context, cr,
+                     0, 0,
+                     gtk_widget_get_allocated_width (area),
+                     gtk_widget_get_allocated_height (area));
+
+  gtk_style_context_restore (context);
 
   return TRUE;
 }
@@ -2431,10 +2312,10 @@ create_resize_grips (GtkWidget *widget)
                        G_CALLBACK (gtk_widget_destroyed),
                        &window);
 
-      vbox = gtk_vbox_new (FALSE, 0);
+      vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
       gtk_container_add (GTK_CONTAINER (window), vbox);
       
-      hbox = gtk_hbox_new (FALSE, 0);
+      hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
       gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0);
 
       /* North west */
@@ -2464,7 +2345,7 @@ create_resize_grips (GtkWidget *widget)
       g_signal_connect (area, "button_press_event", G_CALLBACK (grippy_button_press),
                        GINT_TO_POINTER (GDK_WINDOW_EDGE_NORTH_EAST));
 
-      hbox = gtk_hbox_new (FALSE, 0);
+      hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
       gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0);
 
       /* West */
@@ -2490,7 +2371,7 @@ create_resize_grips (GtkWidget *widget)
                        GINT_TO_POINTER (GDK_WINDOW_EDGE_EAST));
 
 
-      hbox = gtk_hbox_new (FALSE, 0);
+      hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
       gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0);
 
       /* South west */
@@ -2595,12 +2476,13 @@ create_saved_position (GtkWidget *widget)
                        G_CALLBACK (gtk_widget_destroyed),
                        &window);
 
-      main_vbox = gtk_vbox_new (FALSE, 5);
+      main_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
       gtk_container_set_border_width (GTK_CONTAINER (main_vbox), 0);
       gtk_container_add (GTK_CONTAINER (window), main_vbox);
 
       vbox =
-       g_object_new (gtk_vbox_get_type (),
+       g_object_new (GTK_TYPE_BOX,
+                      "orientation", GTK_ORIENTATION_VERTICAL,
                        "GtkBox::homogeneous", FALSE,
                        "GtkBox::spacing", 5,
                        "GtkContainer::border_width", 10,
@@ -2615,24 +2497,26 @@ create_saved_position (GtkWidget *widget)
                                                   NULL),
                        NULL);
 
-      hbox = gtk_hbox_new (FALSE, 0);
+      hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
       gtk_container_set_border_width (GTK_CONTAINER (hbox), 5);
       gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0);
 
       label = gtk_label_new ("X Origin : ");
-      gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
+      gtk_widget_set_halign (label, GTK_ALIGN_START);
+      gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
       gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0);
 
       x_label = gtk_label_new ("");
       gtk_box_pack_start (GTK_BOX (hbox), x_label, TRUE, TRUE, 0);
       g_object_set_data (G_OBJECT (window), "x", x_label);
 
-      hbox = gtk_hbox_new (FALSE, 0);
+      hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
       gtk_container_set_border_width (GTK_CONTAINER (hbox), 5);
       gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0);
 
       label = gtk_label_new ("Y Origin : ");
-      gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
+      gtk_widget_set_halign (label, GTK_ALIGN_START);
+      gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
       gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0);
 
       y_label = gtk_label_new ("");
@@ -2640,12 +2524,12 @@ create_saved_position (GtkWidget *widget)
       g_object_set_data (G_OBJECT (window), "y", y_label);
 
       any =
-       g_object_new (gtk_hseparator_get_type (),
+       g_object_new (gtk_separator_get_type (),
                        "GtkWidget::visible", TRUE,
                        NULL);
       gtk_box_pack_start (GTK_BOX (main_vbox), any, FALSE, TRUE, 0);
 
-      hbox = gtk_hbox_new (FALSE, 0);
+      hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
       gtk_container_set_border_width (GTK_CONTAINER (hbox), 10);
       gtk_box_pack_start (GTK_BOX (main_vbox), hbox, FALSE, TRUE, 0);
 
@@ -2695,10 +2579,10 @@ create_pixbuf (GtkWidget *widget)
       gtk_container_set_border_width (GTK_CONTAINER (window), 0);
       gtk_widget_realize(window);
 
-      box1 = gtk_vbox_new (FALSE, 0);
+      box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
       gtk_container_add (GTK_CONTAINER (window), box1);
 
-      box2 = gtk_vbox_new (FALSE, 10);
+      box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
       gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
       gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);
 
@@ -2707,10 +2591,10 @@ create_pixbuf (GtkWidget *widget)
 
       gdk_window = gtk_widget_get_window (window);
 
-      pixbufwid = new_pixbuf ("test.xpm", gdk_window, NULL);
+      pixbufwid = new_pixbuf ("test.xpm", gdk_window);
 
       label = gtk_label_new ("Pixbuf\ntest");
-      box3 = gtk_hbox_new (FALSE, 0);
+      box3 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
       gtk_container_set_border_width (GTK_CONTAINER (box3), 2);
       gtk_container_add (GTK_CONTAINER (box3), pixbufwid);
       gtk_container_add (GTK_CONTAINER (box3), label);
@@ -2719,10 +2603,10 @@ create_pixbuf (GtkWidget *widget)
       button = gtk_button_new ();
       gtk_box_pack_start (GTK_BOX (box2), button, FALSE, FALSE, 0);
 
-      pixbufwid = new_pixbuf ("test.xpm", gdk_window, NULL);
+      pixbufwid = new_pixbuf ("test.xpm", gdk_window);
 
       label = gtk_label_new ("Pixbuf\ntest");
-      box3 = gtk_hbox_new (FALSE, 0);
+      box3 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
       gtk_container_set_border_width (GTK_CONTAINER (box3), 2);
       gtk_container_add (GTK_CONTAINER (box3), pixbufwid);
       gtk_container_add (GTK_CONTAINER (box3), label);
@@ -2730,10 +2614,10 @@ create_pixbuf (GtkWidget *widget)
 
       gtk_widget_set_sensitive (button, FALSE);
       
-      separator = gtk_hseparator_new ();
+      separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
       gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
 
-      box2 = gtk_vbox_new (FALSE, 10);
+      box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
       gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
       gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0);
 
@@ -2777,10 +2661,10 @@ create_tooltips (GtkWidget *widget)
       gtk_window_set_screen (GTK_WINDOW (window),
                             gtk_widget_get_screen (widget));
 
-      box1 = gtk_vbox_new (FALSE, 0);
+      box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
       gtk_container_add (GTK_CONTAINER (window), box1);
 
-      box2 = gtk_vbox_new (FALSE, 10);
+      box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
       gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
       gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);
 
@@ -2803,7 +2687,8 @@ create_tooltips (GtkWidget *widget)
       gtk_widget_set_tooltip_text (toggle, "Toggle TipsQuery view.");
 
       box3 =
-       g_object_new (gtk_vbox_get_type (),
+       g_object_new (GTK_TYPE_BOX,
+                      "orientation", GTK_ORIENTATION_VERTICAL,
                        "homogeneous", FALSE,
                        "spacing", 5,
                        "border_width", 5,
@@ -2829,10 +2714,10 @@ create_tooltips (GtkWidget *widget)
                              NULL);
       gtk_box_set_child_packing (GTK_BOX (box2), frame, TRUE, TRUE, 10, GTK_PACK_START);
 
-      separator = gtk_hseparator_new ();
+      separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
       gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
 
-      box2 = gtk_vbox_new (FALSE, 10);
+      box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
       gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
       gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0);
 
@@ -2895,7 +2780,7 @@ create_image (GtkWidget *widget)
                        G_CALLBACK (gtk_widget_destroyed),
                        &window);
 
-      vbox = gtk_vbox_new (FALSE, 5);
+      vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
 
       gtk_container_add (GTK_CONTAINER (window), vbox);
 
@@ -2922,7 +2807,7 @@ create_image (GtkWidget *widget)
  */
 
 static GtkWidget*
-create_menu (GdkScreen *screen, gint depth, gint length, gboolean tearoff)
+create_menu (GdkScreen *screen, gint depth, gint length)
 {
   GtkWidget *menu;
   GtkWidget *menuitem;
@@ -2939,13 +2824,6 @@ create_menu (GdkScreen *screen, gint depth, gint length, gboolean tearoff)
 
   group = NULL;
 
-  if (tearoff)
-    {
-      menuitem = gtk_tearoff_menu_item_new ();
-      gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
-      gtk_widget_show (menuitem);
-    }
-
   image = gtk_image_new_from_stock (GTK_STOCK_OPEN,
                                     GTK_ICON_SIZE_MENU);
   gtk_widget_show (image);
@@ -2972,14 +2850,14 @@ create_menu (GdkScreen *screen, gint depth, gint length, gboolean tearoff)
 
       if (i < 5)
        gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), 
-                                  create_menu (screen, depth - 1, 5,  TRUE));
+                                  create_menu (screen, depth - 1, 5));
     }
 
   return menu;
 }
 
 static GtkWidget*
-create_table_menu (GdkScreen *screen, gint cols, gint rows, gboolean tearoff)
+create_table_menu (GdkScreen *screen, gint cols, gint rows)
 {
   GtkWidget *menu;
   GtkWidget *menuitem;
@@ -2992,13 +2870,6 @@ create_table_menu (GdkScreen *screen, gint cols, gint rows, gboolean tearoff)
   gtk_menu_set_screen (GTK_MENU (menu), screen);
 
   j = 0;
-  if (tearoff)
-    {
-      menuitem = gtk_tearoff_menu_item_new ();
-      gtk_menu_attach (GTK_MENU (menu), menuitem, 0, cols, j, j + 1);
-      gtk_widget_show (menuitem);
-      j++;
-    }
   
   menuitem = gtk_menu_item_new_with_label ("items");
   gtk_menu_attach (GTK_MENU (menu), menuitem, 0, cols, j, j + 1);
@@ -3204,7 +3075,7 @@ create_menus (GtkWidget *widget)
       gtk_container_set_border_width (GTK_CONTAINER (window), 0);
       
       
-      box1 = gtk_vbox_new (FALSE, 0);
+      box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
       gtk_container_add (GTK_CONTAINER (window), box1);
       gtk_widget_show (box1);
       
@@ -3212,14 +3083,14 @@ create_menus (GtkWidget *widget)
       gtk_box_pack_start (GTK_BOX (box1), menubar, FALSE, TRUE, 0);
       gtk_widget_show (menubar);
       
-      menu = create_menu (screen, 2, 50, TRUE);
+      menu = create_menu (screen, 2, 50);
       
       menuitem = gtk_menu_item_new_with_label ("test\nline2");
       gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), menu);
       gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem);
       gtk_widget_show (menuitem);
 
-      menu = create_table_menu (screen, 2, 50, TRUE);
+      menu = create_table_menu (screen, 2, 50);
       
       menuitem = gtk_menu_item_new_with_label ("table");
       gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), menu);
@@ -3227,7 +3098,7 @@ create_menus (GtkWidget *widget)
       gtk_widget_show (menuitem);
       
       menuitem = gtk_menu_item_new_with_label ("foo");
-      gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), create_menu (screen, 3, 5, TRUE));
+      gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), create_menu (screen, 3, 5));
       gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem);
       gtk_widget_show (menuitem);
 
@@ -3236,8 +3107,9 @@ create_menus (GtkWidget *widget)
       gtk_widget_show (image);
       menuitem = gtk_image_menu_item_new_with_label ("Help");
       gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image);
-      gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), create_menu (screen, 4, 5, TRUE));
-      gtk_menu_item_set_right_justified (GTK_MENU_ITEM (menuitem), TRUE);
+      gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), create_menu (screen, 4, 5));
+      gtk_widget_set_hexpand (menuitem, TRUE);
+      gtk_widget_set_halign (menuitem, GTK_ALIGN_END);
       gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem);
       gtk_widget_show (menuitem);
       
@@ -3245,19 +3117,19 @@ create_menus (GtkWidget *widget)
       gtk_box_pack_start (GTK_BOX (box1), menubar, FALSE, TRUE, 0);
       gtk_widget_show (menubar);
       
-      menu = create_menu (screen, 2, 10, TRUE);
+      menu = create_menu (screen, 2, 10);
       
       menuitem = gtk_menu_item_new_with_label ("Second menu bar");
       gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), menu);
       gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem);
       gtk_widget_show (menuitem);
       
-      box2 = gtk_vbox_new (FALSE, 10);
+      box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
       gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
       gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);
       gtk_widget_show (box2);
       
-      menu = create_menu (screen, 1, 5, FALSE);
+      menu = create_menu (screen, 1, 5);
       gtk_menu_set_accel_group (GTK_MENU (menu), accel_group);
 
       menuitem = gtk_image_menu_item_new_from_stock (GTK_STOCK_NEW, accel_group);
@@ -3303,11 +3175,11 @@ create_menus (GtkWidget *widget)
       gtk_box_pack_start (GTK_BOX (box2), optionmenu, TRUE, TRUE, 0);
       gtk_widget_show (optionmenu);
 
-      separator = gtk_hseparator_new ();
+      separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
       gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
       gtk_widget_show (separator);
 
-      box2 = gtk_vbox_new (FALSE, 10);
+      box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
       gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
       gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0);
       gtk_widget_show (box2);
@@ -3536,35 +3408,16 @@ static void
 cmw_color (GtkWidget *widget, GtkWidget *parent)
 {
     GtkWidget *csd;
-    GtkWidget *colorsel;
-    GtkWidget *ok_button, *cancel_button;
-
-    csd = gtk_color_selection_dialog_new ("This is a modal color selection dialog");
 
-    gtk_window_set_screen (GTK_WINDOW (csd), gtk_widget_get_screen (parent));
+    csd = gtk_color_chooser_dialog_new ("This is a modal color selection dialog", GTK_WINDOW (parent));
 
-    colorsel = gtk_color_selection_dialog_get_color_selection (GTK_COLOR_SELECTION_DIALOG (csd));
-    gtk_color_selection_set_has_palette (GTK_COLOR_SELECTION (colorsel),
-                                         TRUE);
-    
     /* Set as modal */
     gtk_window_set_modal (GTK_WINDOW(csd),TRUE);
 
-    /* And mark it as a transient dialog */
-    gtk_window_set_transient_for (GTK_WINDOW (csd), GTK_WINDOW (parent));
-    
     g_signal_connect (csd, "destroy",
                      G_CALLBACK (cmw_destroy_cb), NULL);
-
-    g_object_get (csd,
-                  "ok-button", &ok_button,
-                  "cancel-button", &cancel_button,
-                  NULL);
-
-    g_signal_connect_swapped (ok_button,
-                            "clicked", G_CALLBACK (gtk_widget_destroy), csd);
-    g_signal_connect_swapped (cancel_button,
-                            "clicked", G_CALLBACK (gtk_widget_destroy), csd);
+    g_signal_connect (csd, "response",
+                      G_CALLBACK (gtk_widget_destroy), NULL);
     
     /* wait until destroy calls gtk_main_quit */
     gtk_widget_show (csd);    
@@ -3614,9 +3467,10 @@ create_modal_window (GtkWidget *widget)
   gtk_window_set_modal (GTK_WINDOW(window),TRUE);
 
   /* Create widgets */
-  box1 = gtk_vbox_new (FALSE,5);
+  box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
   frame1 = gtk_frame_new ("Standard dialogs in modal form");
-  box2 = gtk_vbox_new (TRUE,5);
+  box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
+  gtk_box_set_homogeneous (GTK_BOX (box2), TRUE);
   btnColor = gtk_button_new_with_label ("Color");
   btnFile = gtk_button_new_with_label ("File Selection");
   btnClose = gtk_button_new_with_label ("Close");
@@ -3631,7 +3485,7 @@ create_modal_window (GtkWidget *widget)
   gtk_container_add (GTK_CONTAINER (frame1), box2);
   gtk_box_pack_start (GTK_BOX (box2), btnColor, FALSE, FALSE, 4);
   gtk_box_pack_start (GTK_BOX (box2), btnFile, FALSE, FALSE, 4);
-  gtk_box_pack_start (GTK_BOX (box1), gtk_hseparator_new (), FALSE, FALSE, 4);
+  gtk_box_pack_start (GTK_BOX (box1), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), FALSE, FALSE, 4);
   gtk_box_pack_start (GTK_BOX (box1), btnClose, FALSE, FALSE, 4);
    
   /* connect signals */
@@ -3776,7 +3630,7 @@ create_scrolled_windows (GtkWidget *widget)
   static GtkWidget *window;
   GtkWidget *content_area, *action_area;
   GtkWidget *scrolled_window;
-  GtkWidget *table;
+  GtkWidget *grid;
   GtkWidget *button;
   char buffer[32];
   int i, j;
@@ -3806,23 +3660,22 @@ create_scrolled_windows (GtkWidget *widget)
       gtk_box_pack_start (GTK_BOX (content_area), scrolled_window, TRUE, TRUE, 0);
       gtk_widget_show (scrolled_window);
 
-      table = gtk_table_new (20, 20, FALSE);
-      gtk_table_set_row_spacings (GTK_TABLE (table), 10);
-      gtk_table_set_col_spacings (GTK_TABLE (table), 10);
-      gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window), table);
-      gtk_container_set_focus_hadjustment (GTK_CONTAINER (table),
+      grid = gtk_grid_new ();
+      gtk_grid_set_row_spacing (GTK_GRID (grid), 10);
+      gtk_grid_set_column_spacing (GTK_GRID (grid), 10);
+      gtk_container_add (GTK_CONTAINER (scrolled_window), grid);
+      gtk_container_set_focus_hadjustment (GTK_CONTAINER (grid),
                                           gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (scrolled_window)));
-      gtk_container_set_focus_vadjustment (GTK_CONTAINER (table),
+      gtk_container_set_focus_vadjustment (GTK_CONTAINER (grid),
                                           gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (scrolled_window)));
-      gtk_widget_show (table);
+      gtk_widget_show (grid);
 
       for (i = 0; i < 20; i++)
        for (j = 0; j < 20; j++)
          {
            sprintf (buffer, "button (%d,%d)\n", i, j);
            button = gtk_toggle_button_new_with_label (buffer);
-           gtk_table_attach_defaults (GTK_TABLE (table), button,
-                                      i, i+1, j, j+1);
+           gtk_grid_attach (GTK_GRID (grid), button, i, j, 1, 1);
            gtk_widget_show (button);
          }
 
@@ -3894,7 +3747,7 @@ entry_progress_timeout (gpointer data)
       gtk_entry_set_progress_fraction (GTK_ENTRY (data), fraction);
     }
 
-  return TRUE;
+  return G_SOURCE_CONTINUE;
 }
 
 static void
@@ -3972,15 +3825,15 @@ create_entry (GtkWidget *widget)
       gtk_container_set_border_width (GTK_CONTAINER (window), 0);
 
 
-      box1 = gtk_vbox_new (FALSE, 0);
+      box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
       gtk_container_add (GTK_CONTAINER (window), box1);
 
 
-      box2 = gtk_vbox_new (FALSE, 10);
+      box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
       gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
       gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);
 
-      hbox = gtk_hbox_new (FALSE, 5);
+      hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
       gtk_box_pack_start (GTK_BOX (box2), hbox, TRUE, TRUE, 0);
       
       entry = gtk_entry_new ();
@@ -4035,10 +3888,10 @@ create_entry (GtkWidget *widget)
       g_signal_connect (progress_check, "toggled",
                        G_CALLBACK (entry_toggle_pulse), entry);
 
-      separator = gtk_hseparator_new ();
+      separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
       gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
 
-      box2 = gtk_vbox_new (FALSE, 10);
+      box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
       gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
       gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0);
 
@@ -4078,7 +3931,7 @@ create_expander (GtkWidget *widget)
       gtk_window_set_title (GTK_WINDOW (window), "expander");
       gtk_container_set_border_width (GTK_CONTAINER (window), 0);
       
-      box1 = gtk_vbox_new (FALSE, 0);
+      box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
       gtk_container_add (GTK_CONTAINER (window), box1);
       
       expander = gtk_expander_new ("The Hidden");
@@ -4146,13 +3999,14 @@ create_event_box (GtkWidget *widget)
   GtkWidget *label;
   GtkWidget *visible_window_check;
   GtkWidget *above_child_check;
-  GdkColor color;
+  GdkRGBA color;
 
   if (!window)
     {
       color.red = 0;
-      color.blue = 65535;
+      color.blue = 1;
       color.green = 0;
+      color.alpha = 1;
       
       window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
       gtk_window_set_screen (GTK_WINDOW (window),
@@ -4165,17 +4019,17 @@ create_event_box (GtkWidget *widget)
       gtk_window_set_title (GTK_WINDOW (window), "event box");
       gtk_container_set_border_width (GTK_CONTAINER (window), 0);
 
-      box1 = gtk_vbox_new (FALSE, 0);
+      box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
       gtk_container_add (GTK_CONTAINER (window), box1);
-      gtk_widget_modify_bg (window, GTK_STATE_NORMAL, &color);
+      gtk_widget_override_background_color (window, 0, &color);
 
-      hbox = gtk_hbox_new (FALSE, 0);
+      hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
       gtk_box_pack_start (GTK_BOX (box1), hbox, TRUE, FALSE, 0);
       
       event_box = gtk_event_box_new ();
       gtk_box_pack_start (GTK_BOX (hbox), event_box, TRUE, FALSE, 0);
 
-      vbox = gtk_vbox_new (FALSE, 0);
+      vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
       gtk_container_add (GTK_CONTAINER (event_box), vbox);
       g_signal_connect (event_box, "button_press_event",
                        G_CALLBACK (event_box_label_pressed),
@@ -4203,10 +4057,10 @@ create_event_box (GtkWidget *widget)
                        G_CALLBACK (event_box_toggle_above_child), event_box);
       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (above_child_check), FALSE);
       
-      separator = gtk_hseparator_new ();
+      separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
       gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
 
-      box2 = gtk_vbox_new (FALSE, 10);
+      box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
       gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
       gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0);
 
@@ -4256,7 +4110,7 @@ create_size_group_window (GdkScreen    *screen,
 {
   GtkWidget *content_area;
   GtkWidget *window;
-  GtkWidget *table;
+  GtkWidget *grid;
   GtkWidget *main_button;
   GtkWidget *button;
   GtkWidget *spin_button;
@@ -4282,13 +4136,13 @@ create_size_group_window (GdkScreen    *screen,
 
   content_area = gtk_dialog_get_content_area (GTK_DIALOG (window));
 
-  table = gtk_table_new (2, 2, FALSE);
-  gtk_box_pack_start (GTK_BOX (content_area), table, TRUE, TRUE, 0);
+  grid = gtk_grid_new ();
+  gtk_box_pack_start (GTK_BOX (content_area), grid, TRUE, TRUE, 0);
 
-  gtk_table_set_row_spacings (GTK_TABLE (table), 5);
-  gtk_table_set_col_spacings (GTK_TABLE (table), 5);
-  gtk_container_set_border_width (GTK_CONTAINER (table), 5);
-  gtk_widget_set_size_request (table, 250, 250);
+  gtk_grid_set_row_spacing (GTK_GRID (grid), 5);
+  gtk_grid_set_column_spacing (GTK_GRID (grid), 5);
+  gtk_container_set_border_width (GTK_CONTAINER (grid), 5);
+  gtk_widget_set_size_request (grid, 250, 250);
 
   hgroup1 = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
   hgroup2 = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
@@ -4296,11 +4150,12 @@ create_size_group_window (GdkScreen    *screen,
   vgroup2 = gtk_size_group_new (GTK_SIZE_GROUP_VERTICAL);
 
   main_button = gtk_button_new_with_label ("X");
+  gtk_widget_set_hexpand (main_button, TRUE);
+  gtk_widget_set_vexpand (main_button, TRUE);
+  gtk_widget_set_halign (main_button, GTK_ALIGN_CENTER);
+  gtk_widget_set_valign (main_button, GTK_ALIGN_CENTER);
+  gtk_grid_attach (GTK_GRID (grid), main_button, 0, 0, 1, 1);
   
-  gtk_table_attach (GTK_TABLE (table), main_button,
-                   0, 1,       0, 1,
-                   GTK_EXPAND, GTK_EXPAND,
-                   0,          0);
   gtk_size_group_add_widget (master_size_group, main_button);
   gtk_size_group_add_widget (hgroup1, main_button);
   gtk_size_group_add_widget (vgroup1, main_button);
@@ -4309,26 +4164,32 @@ create_size_group_window (GdkScreen    *screen,
                               SIZE_GROUP_INITIAL_SIZE);
 
   button = gtk_button_new ();
-  gtk_table_attach (GTK_TABLE (table), button,
-                   1, 2,       0, 1,
-                   GTK_EXPAND, GTK_EXPAND,
-                   0,          0);
+  gtk_widget_set_hexpand (button, TRUE);
+  gtk_widget_set_vexpand (button, TRUE);
+  gtk_widget_set_halign (button, GTK_ALIGN_CENTER);
+  gtk_widget_set_valign (button, GTK_ALIGN_CENTER);
+  gtk_grid_attach (GTK_GRID (grid), button, 1, 0, 1, 1);
+
   gtk_size_group_add_widget (vgroup1, button);
   gtk_size_group_add_widget (vgroup2, button);
 
   button = gtk_button_new ();
-  gtk_table_attach (GTK_TABLE (table), button,
-                   0, 1,       1, 2,
-                   GTK_EXPAND, GTK_EXPAND,
-                   0,          0);
+  gtk_widget_set_hexpand (button, TRUE);
+  gtk_widget_set_vexpand (button, TRUE);
+  gtk_widget_set_halign (button, GTK_ALIGN_CENTER);
+  gtk_widget_set_valign (button, GTK_ALIGN_CENTER);
+  gtk_grid_attach (GTK_GRID (grid), button, 0, 1, 1, 1);
+
   gtk_size_group_add_widget (hgroup1, button);
   gtk_size_group_add_widget (hgroup2, button);
 
   button = gtk_button_new ();
-  gtk_table_attach (GTK_TABLE (table), button,
-                   1, 2,       1, 2,
-                   GTK_EXPAND, GTK_EXPAND,
-                   0,          0);
+  gtk_widget_set_hexpand (button, TRUE);
+  gtk_widget_set_vexpand (button, TRUE);
+  gtk_widget_set_halign (button, GTK_ALIGN_CENTER);
+  gtk_widget_set_valign (button, GTK_ALIGN_CENTER);
+  gtk_grid_attach (GTK_GRID (grid), button, 1, 1, 1, 1);
+
   gtk_size_group_add_widget (hgroup2, button);
   gtk_size_group_add_widget (vgroup2, button);
 
@@ -4337,7 +4198,7 @@ create_size_group_window (GdkScreen    *screen,
   g_object_unref (vgroup1);
   g_object_unref (vgroup2);
   
-  hbox = gtk_hbox_new (FALSE, 5);
+  hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
   gtk_box_pack_start (GTK_BOX (content_area), hbox, FALSE, FALSE, 0);
   
   spin_button = gtk_spin_button_new_with_range (1, 100, 1);
@@ -4581,7 +4442,7 @@ create_spins (GtkWidget *widget)
   GtkWidget *button;
   GtkWidget *label;
   GtkWidget *val_label;
-  GtkAdjustment *adj;
+  GtkAdjustment *adjustment;
 
   if (!window)
     {
@@ -4595,31 +4456,32 @@ create_spins (GtkWidget *widget)
       
       gtk_window_set_title (GTK_WINDOW (window), "GtkSpinButton");
       
-      main_vbox = gtk_vbox_new (FALSE, 5);
+      main_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
       gtk_container_set_border_width (GTK_CONTAINER (main_vbox), 10);
       gtk_container_add (GTK_CONTAINER (window), main_vbox);
       
       frame = gtk_frame_new ("Not accelerated");
       gtk_box_pack_start (GTK_BOX (main_vbox), frame, TRUE, TRUE, 0);
       
-      vbox = gtk_vbox_new (FALSE, 0);
+      vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
       gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
       gtk_container_add (GTK_CONTAINER (frame), vbox);
       
       /* Time, month, hex spinners */
       
-      hbox = gtk_hbox_new (FALSE, 0);
+      hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
       gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 5);
       
-      vbox2 = gtk_vbox_new (FALSE, 0);
+      vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
       gtk_box_pack_start (GTK_BOX (hbox), vbox2, TRUE, TRUE, 5);
       
       label = gtk_label_new ("Time :");
-      gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
+      gtk_widget_set_halign (label, GTK_ALIGN_START);
+      gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
       gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, TRUE, 0);
 
-      adj = gtk_adjustment_new (0, 0, 1410, 30, 60, 0);
-      spinner = gtk_spin_button_new (adj, 0, 0);
+      adjustment = gtk_adjustment_new (0, 0, 1410, 30, 60, 0);
+      spinner = gtk_spin_button_new (adjustment, 0, 0);
       gtk_editable_set_editable (GTK_EDITABLE (spinner), FALSE);
       g_signal_connect (spinner,
                        "output",
@@ -4629,16 +4491,17 @@ create_spins (GtkWidget *widget)
       gtk_entry_set_width_chars (GTK_ENTRY (spinner), 5);
       gtk_box_pack_start (GTK_BOX (vbox2), spinner, FALSE, TRUE, 0);
 
-      vbox2 = gtk_vbox_new (FALSE, 0);
+      vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
       gtk_box_pack_start (GTK_BOX (hbox), vbox2, TRUE, TRUE, 5);
       
       label = gtk_label_new ("Month :");
-      gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
+      gtk_widget_set_halign (label, GTK_ALIGN_START);
+      gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
       gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, TRUE, 0);
 
-      adj = gtk_adjustment_new (1.0, 1.0, 12.0, 1.0,
+      adjustment = gtk_adjustment_new (1.0, 1.0, 12.0, 1.0,
                                                  5.0, 0.0);
-      spinner = gtk_spin_button_new (adj, 0, 0);
+      spinner = gtk_spin_button_new (adjustment, 0, 0);
       gtk_spin_button_set_update_policy (GTK_SPIN_BUTTON (spinner),
                                         GTK_UPDATE_IF_VALID);
       g_signal_connect (spinner,
@@ -4653,15 +4516,16 @@ create_spins (GtkWidget *widget)
       gtk_entry_set_width_chars (GTK_ENTRY (spinner), 9);
       gtk_box_pack_start (GTK_BOX (vbox2), spinner, FALSE, TRUE, 0);
       
-      vbox2 = gtk_vbox_new (FALSE, 0);
+      vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
       gtk_box_pack_start (GTK_BOX (hbox), vbox2, TRUE, TRUE, 5);
 
       label = gtk_label_new ("Hex :");
-      gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
+      gtk_widget_set_halign (label, GTK_ALIGN_START);
+      gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
       gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, TRUE, 0);
 
-      adj = gtk_adjustment_new (0, 0, 255, 1, 16, 0);
-      spinner = gtk_spin_button_new (adj, 0, 0);
+      adjustment = gtk_adjustment_new (0, 0, 255, 1, 16, 0);
+      spinner = gtk_spin_button_new (adjustment, 0, 0);
       gtk_editable_set_editable (GTK_EDITABLE (spinner), TRUE);
       g_signal_connect (spinner,
                        "input",
@@ -4678,41 +4542,43 @@ create_spins (GtkWidget *widget)
       frame = gtk_frame_new ("Accelerated");
       gtk_box_pack_start (GTK_BOX (main_vbox), frame, TRUE, TRUE, 0);
   
-      vbox = gtk_vbox_new (FALSE, 0);
+      vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
       gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
       gtk_container_add (GTK_CONTAINER (frame), vbox);
       
-      hbox = gtk_hbox_new (FALSE, 0);
+      hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
       gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 5);
       
-      vbox2 = gtk_vbox_new (FALSE, 0);
+      vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
       gtk_box_pack_start (GTK_BOX (hbox), vbox2, FALSE, FALSE, 5);
       
       label = gtk_label_new ("Value :");
-      gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
+      gtk_widget_set_halign (label, GTK_ALIGN_START);
+      gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
       gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, TRUE, 0);
 
-      adj = gtk_adjustment_new (0.0, -10000.0, 10000.0,
+      adjustment = gtk_adjustment_new (0.0, -10000.0, 10000.0,
                                                  0.5, 100.0, 0.0);
-      spinner1 = gtk_spin_button_new (adj, 1.0, 2);
+      spinner1 = gtk_spin_button_new (adjustment, 1.0, 2);
       gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (spinner1), TRUE);
       gtk_box_pack_start (GTK_BOX (vbox2), spinner1, FALSE, TRUE, 0);
 
-      vbox2 = gtk_vbox_new (FALSE, 0);
+      vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
       gtk_box_pack_start (GTK_BOX (hbox), vbox2, FALSE, FALSE, 5);
 
       label = gtk_label_new ("Digits :");
-      gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
+      gtk_widget_set_halign (label, GTK_ALIGN_START);
+      gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
       gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, TRUE, 0);
 
-      adj = gtk_adjustment_new (2, 1, 15, 1, 1, 0);
-      spinner2 = gtk_spin_button_new (adj, 0.0, 0);
-      g_signal_connect (adj, "value_changed",
+      adjustment = gtk_adjustment_new (2, 1, 15, 1, 1, 0);
+      spinner2 = gtk_spin_button_new (adjustment, 0.0, 0);
+      g_signal_connect (adjustment, "value_changed",
                        G_CALLBACK (change_digits),
                        spinner2);
       gtk_box_pack_start (GTK_BOX (vbox2), spinner2, FALSE, TRUE, 0);
 
-      hbox = gtk_hbox_new (FALSE, 0);
+      hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
       gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 5);
 
       button = gtk_check_button_new_with_label ("Snap to 0.5-ticks");
@@ -4731,7 +4597,7 @@ create_spins (GtkWidget *widget)
 
       val_label = gtk_label_new ("");
 
-      hbox = gtk_hbox_new (FALSE, 0);
+      hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
       gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 5);
 
       button = gtk_button_new_with_label ("Value as Int");
@@ -4754,7 +4620,7 @@ create_spins (GtkWidget *widget)
       frame = gtk_frame_new ("Using Convenience Constructor");
       gtk_box_pack_start (GTK_BOX (main_vbox), frame, TRUE, TRUE, 0);
   
-      hbox = gtk_hbox_new (FALSE, 0);
+      hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
       gtk_container_set_border_width (GTK_CONTAINER (hbox), 5);
       gtk_container_add (GTK_CONTAINER (frame), hbox);
       
@@ -4767,7 +4633,7 @@ create_spins (GtkWidget *widget)
       gtk_box_pack_start (GTK_BOX (hbox), spinner, TRUE, TRUE, 5);
       gtk_box_pack_start (GTK_BOX (hbox), val_label, TRUE, TRUE, 5);
 
-      hbox = gtk_hbox_new (FALSE, 0);
+      hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
       gtk_box_pack_start (GTK_BOX (main_vbox), hbox, FALSE, TRUE, 0);
   
       button = gtk_button_new_with_label ("Close");
@@ -4794,6 +4660,8 @@ cursor_draw (GtkWidget *widget,
             gpointer   user_data)
 {
   int width, height;
+  GtkStyleContext *context;
+  GdkRGBA bg;
 
   width = gtk_widget_get_allocated_width (widget);
   height = gtk_widget_get_allocated_height (widget);
@@ -4806,7 +4674,9 @@ cursor_draw (GtkWidget *widget,
   cairo_rectangle (cr, 0, height / 2, width, height / 2);
   cairo_fill (cr);
 
-  gdk_cairo_set_source_color (cr, &gtk_widget_get_style (widget)->bg[GTK_STATE_NORMAL]);
+  context = gtk_widget_get_style_context (widget);
+  gtk_style_context_get_background_color (context, GTK_STATE_FLAG_NORMAL, &bg);
+  gdk_cairo_set_source_rgba (cr, &bg);
   cairo_rectangle (cr, width / 3, height / 3, width / 3, height / 3);
   cairo_fill (cr);
 
@@ -4843,7 +4713,7 @@ set_cursor (GtkWidget *spinner,
   cursor = gdk_cursor_new_for_display (gtk_widget_get_display (widget), c);
   gdk_window_set_cursor (gtk_widget_get_window (widget),
                          cursor);
-  gdk_cursor_unref (cursor);
+  g_object_unref (cursor);
 }
 
 static gint
@@ -4852,10 +4722,10 @@ cursor_event (GtkWidget          *widget,
              GtkSpinButton      *spinner)
 {
   if ((event->type == GDK_BUTTON_PRESS) &&
-      ((event->button.button == 1) ||
-       (event->button.button == 3)))
+      ((event->button.button == GDK_BUTTON_PRIMARY) ||
+       (event->button.button == GDK_BUTTON_SECONDARY)))
     {
-      gtk_spin_button_spin (spinner, event->button.button == 1 ?
+      gtk_spin_button_spin (spinner, event->button.button == GDK_BUTTON_PRIMARY ?
                            GTK_SPIN_STEP_FORWARD : GTK_SPIN_STEP_BACKWARD, 0);
       return TRUE;
     }
@@ -4900,7 +4770,7 @@ create_cursors (GtkWidget *widget)
   GtkWidget *button;
   GtkWidget *label;
   GtkWidget *any;
-  GtkAdjustment *adj;
+  GtkAdjustment *adjustment;
   GtkWidget *entry;
   GtkWidget *size;  
 
@@ -4916,12 +4786,13 @@ create_cursors (GtkWidget *widget)
       
       gtk_window_set_title (GTK_WINDOW (window), "Cursors");
       
-      main_vbox = gtk_vbox_new (FALSE, 5);
+      main_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
       gtk_container_set_border_width (GTK_CONTAINER (main_vbox), 0);
       gtk_container_add (GTK_CONTAINER (window), main_vbox);
 
       vbox =
-       g_object_new (gtk_vbox_get_type (),
+       g_object_new (GTK_TYPE_BOX,
+                      "orientation", GTK_ORIENTATION_VERTICAL,
                        "GtkBox::homogeneous", FALSE,
                        "GtkBox::spacing", 5,
                        "GtkContainer::border_width", 10,
@@ -4930,41 +4801,46 @@ create_cursors (GtkWidget *widget)
                        NULL);
 
 #ifdef GDK_WINDOWING_X11
-      hbox = gtk_hbox_new (FALSE, 0);
-      gtk_container_set_border_width (GTK_CONTAINER (hbox), 5);
-      gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0);
-
-      label = gtk_label_new ("Cursor Theme : ");
-      gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
-      gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0);
-
-      entry = gtk_entry_new ();
-      gtk_entry_set_text (GTK_ENTRY (entry), "default");
-      gtk_box_pack_start (GTK_BOX (hbox), entry, FALSE, TRUE, 0);
-
-      size = gtk_spin_button_new_with_range (1.0, 64.0, 1.0);
-      gtk_spin_button_set_value (GTK_SPIN_BUTTON (size), 24.0);
-      gtk_box_pack_start (GTK_BOX (hbox), size, TRUE, TRUE, 0);
-      
-      g_signal_connect (entry, "changed", 
-                       G_CALLBACK (change_cursor_theme), hbox);
-      g_signal_connect (size, "changed", 
-                       G_CALLBACK (change_cursor_theme), hbox);
+      if (GDK_IS_X11_DISPLAY (gtk_widget_get_display (vbox)))
+        {
+          hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+          gtk_container_set_border_width (GTK_CONTAINER (hbox), 5);
+          gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0);
+
+          label = gtk_label_new ("Cursor Theme : ");
+          gtk_widget_set_halign (label, GTK_ALIGN_START);
+          gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
+          gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0);
+
+          entry = gtk_entry_new ();
+          gtk_entry_set_text (GTK_ENTRY (entry), "default");
+          gtk_box_pack_start (GTK_BOX (hbox), entry, FALSE, TRUE, 0);
+
+          size = gtk_spin_button_new_with_range (1.0, 64.0, 1.0);
+          gtk_spin_button_set_value (GTK_SPIN_BUTTON (size), 24.0);
+          gtk_box_pack_start (GTK_BOX (hbox), size, TRUE, TRUE, 0);
+
+          g_signal_connect (entry, "changed", 
+                            G_CALLBACK (change_cursor_theme), hbox);
+          g_signal_connect (size, "changed", 
+                            G_CALLBACK (change_cursor_theme), hbox);
+        }
 #endif
 
-      hbox = gtk_hbox_new (FALSE, 0);
+      hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
       gtk_container_set_border_width (GTK_CONTAINER (hbox), 5);
       gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0);
 
       label = gtk_label_new ("Cursor Value : ");
-      gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
+      gtk_widget_set_halign (label, GTK_ALIGN_START);
+      gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
       gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0);
 
-      adj = gtk_adjustment_new (0,
+      adjustment = gtk_adjustment_new (0,
                                 0, 152,
                                 2,
                                 10, 0);
-      spinner = gtk_spin_button_new (adj, 0, 0);
+      spinner = gtk_spin_button_new (adjustment, 0, 0);
       gtk_box_pack_start (GTK_BOX (hbox), spinner, TRUE, TRUE, 0);
 
       frame =
@@ -5004,13 +4880,10 @@ create_cursors (GtkWidget *widget)
                               NULL);
       g_object_set_data (G_OBJECT (spinner), "user_data", label);
 
-      any =
-       g_object_new (gtk_hseparator_get_type (),
-                       "GtkWidget::visible", TRUE,
-                       NULL);
+      any = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
       gtk_box_pack_start (GTK_BOX (main_vbox), any, FALSE, TRUE, 0);
   
-      hbox = gtk_hbox_new (FALSE, 0);
+      hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
       gtk_container_set_border_width (GTK_CONTAINER (hbox), 10);
       gtk_box_pack_start (GTK_BOX (main_vbox), hbox, FALSE, TRUE, 0);
 
@@ -5032,55 +4905,6 @@ create_cursors (GtkWidget *widget)
  * GtkColorSelection
  */
 
-void
-color_selection_ok (GtkWidget               *w,
-                    GtkColorSelectionDialog *cs)
-{
-  GtkWidget *colorsel;
-  GdkColor color;
-
-  colorsel = gtk_color_selection_dialog_get_color_selection (cs);
-
-  gtk_color_selection_get_current_color (GTK_COLOR_SELECTION (colorsel), &color);
-  gtk_color_selection_set_current_color (GTK_COLOR_SELECTION (colorsel), &color);
-}
-
-void
-color_selection_changed (GtkWidget *w,
-                         GtkColorSelectionDialog *cs)
-{
-  GtkWidget *colorsel;
-  GdkColor color;
-
-  colorsel = gtk_color_selection_dialog_get_color_selection (cs);
-  gtk_color_selection_get_current_color (GTK_COLOR_SELECTION (colorsel), &color);
-  gtk_color_selection_set_current_color (GTK_COLOR_SELECTION (colorsel), &color);
-}
-
-#if 0 /* unused */
-static void
-opacity_toggled_cb (GtkWidget *w,
-                   GtkColorSelectionDialog *cs)
-{
-  GtkColorSelection *colorsel;
-
-  colorsel = GTK_COLOR_SELECTION (cs->colorsel);
-  gtk_color_selection_set_has_opacity_control (colorsel,
-                                              gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (w)));
-}
-
-static void
-palette_toggled_cb (GtkWidget *w,
-                   GtkColorSelectionDialog *cs)
-{
-  GtkColorSelection *colorsel;
-
-  colorsel = GTK_COLOR_SELECTION (cs->colorsel);
-  gtk_color_selection_set_has_palette (colorsel,
-                                      gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (w)));
-}
-#endif
-
 void
 create_color_selection (GtkWidget *widget)
 {
@@ -5104,7 +4928,7 @@ create_color_selection (GtkWidget *widget)
       gtk_window_set_title (GTK_WINDOW (window), "GtkColorButton");
       gtk_container_set_border_width (GTK_CONTAINER (window), 0);
 
-      hbox = gtk_hbox_new (FALSE, 8);
+      hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8);
       gtk_container_set_border_width (GTK_CONTAINER (hbox), 8);
       gtk_container_add (GTK_CONTAINER (window), hbox);
       
@@ -5112,7 +4936,7 @@ create_color_selection (GtkWidget *widget)
       gtk_container_add (GTK_CONTAINER (hbox), label);
 
       picker = gtk_color_button_new ();
-      gtk_color_button_set_use_alpha (GTK_COLOR_BUTTON (picker), TRUE);
+      gtk_color_chooser_set_use_alpha (GTK_COLOR_CHOOSER (picker), TRUE);
       gtk_container_add (GTK_CONTAINER (hbox), picker);
 
       button = gtk_button_new_with_mnemonic ("_Props");
@@ -5194,7 +5018,7 @@ create_forward_back (const char       *title,
                     GtkTextDirection  text_dir)
 {
   GtkWidget *frame = gtk_frame_new (title);
-  GtkWidget *bbox = gtk_hbutton_box_new ();
+  GtkWidget *bbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL);
   GtkWidget *back_button = gtk_button_new_from_stock (GTK_STOCK_GO_BACK);
   GtkWidget *forward_button = gtk_button_new_from_stock (GTK_STOCK_GO_FORWARD);
 
@@ -5280,18 +5104,17 @@ create_flipping (GtkWidget *widget)
 static GtkWidget*
 make_focus_table (GList **list)
 {
-  GtkWidget *table;
+  GtkWidget *grid;
   gint i, j;
   
-  table = gtk_table_new (5, 5, FALSE);
+  grid = gtk_grid_new ();
 
-  i = 0;
-  j = 0;
+  gtk_grid_set_row_spacing (GTK_GRID (grid), 10);
+  gtk_grid_set_column_spacing (GTK_GRID (grid), 10);
 
-  while (i < 5)
+  for (i = 0; i < 5; i++)
     {
-      j = 0;
-      while (j < 5)
+      for (j = 0; j < 5; j++)
         {
           GtkWidget *widget;
           
@@ -5302,23 +5125,16 @@ make_focus_table (GList **list)
 
           *list = g_list_prepend (*list, widget);
           
-          gtk_table_attach (GTK_TABLE (table),
-                            widget,
-                            i, i + 1,
-                            j, j + 1,
-                            GTK_EXPAND | GTK_FILL,
-                            GTK_EXPAND | GTK_FILL,
-                            5, 5);
-          
-          ++j;
-        }
+          gtk_widget_set_hexpand (widget, TRUE);
+          gtk_widget_set_vexpand (widget, TRUE);
 
-      ++i;
+          gtk_grid_attach (GTK_GRID (grid), widget, i, j, 1, 1);
+        }
     }
 
   *list = g_list_reverse (*list);
   
-  return table;
+  return grid;
 }
 
 static void
@@ -5389,17 +5205,6 @@ create_focus (GtkWidget *widget)
  * GtkFontSelection
  */
 
-void
-font_selection_ok (GtkWidget              *w,
-                  GtkFontSelectionDialog *fs)
-{
-  gchar *s = gtk_font_selection_dialog_get_font_name (fs);
-
-  g_print ("%s\n", s);
-  g_free (s);
-  gtk_widget_destroy (GTK_WIDGET (fs));
-}
-
 void
 create_font_selection (GtkWidget *widget)
 {
@@ -5422,7 +5227,7 @@ create_font_selection (GtkWidget *widget)
       gtk_window_set_title (GTK_WINDOW (window), "GtkFontButton");
       gtk_container_set_border_width (GTK_CONTAINER (window), 0);
 
-      hbox = gtk_hbox_new (FALSE, 8);
+      hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8);
       gtk_container_set_border_width (GTK_CONTAINER (hbox), 8);
       gtk_container_add (GTK_CONTAINER (window), hbox);
       
@@ -5457,7 +5262,7 @@ label_toggle (GtkWidget  *widget,
                        "destroy",
                        G_CALLBACK (gtk_widget_destroyed),
                        label);
-      gtk_misc_set_padding (GTK_MISC (*label), 10, 10);
+      g_object_set (*label, "margin", 10, NULL);
       gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog_window))),
                          *label, TRUE, TRUE, 0);
       gtk_widget_show (*label);
@@ -5603,7 +5408,7 @@ screen_display_destroy_diag (GtkWidget *widget, GtkWidget *data)
 void
 create_display_screen (GtkWidget *widget)
 {
-  GtkWidget *table, *frame, *window, *combo_dpy, *vbox;
+  GtkWidget *grid, *frame, *window, *combo_dpy, *vbox;
   GtkWidget *radio_dpy, *radio_scr, *applyb, *cancelb;
   GtkWidget *bbox;
   ScreenDisplaySelection *scr_dpy_data;
@@ -5611,26 +5416,25 @@ create_display_screen (GtkWidget *widget)
   GdkDisplay *display = gdk_screen_get_display (screen);
 
   window = g_object_new (gtk_window_get_type (),
-                          "screen", screen,
-                          "user_data", NULL,
-                          "type", GTK_WINDOW_TOPLEVEL,
-                          "title",
-                          "Screen or Display selection",
-                          "border_width", 10, NULL);
+                        "screen", screen,
+                        "type", GTK_WINDOW_TOPLEVEL,
+                        "title", "Screen or Display selection",
+                        "border_width",
+                         10, NULL);
   g_signal_connect (window, "destroy", 
                    G_CALLBACK (gtk_widget_destroy), NULL);
 
-  vbox = gtk_vbox_new (FALSE, 3);
+  vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
   gtk_container_add (GTK_CONTAINER (window), vbox);
   
   frame = gtk_frame_new ("Select screen or display");
   gtk_container_add (GTK_CONTAINER (vbox), frame);
   
-  table = gtk_table_new (2, 2, TRUE);
-  gtk_table_set_row_spacings (GTK_TABLE (table), 3);
-  gtk_table_set_col_spacings (GTK_TABLE (table), 3);
+  grid = gtk_grid_new ();
+  gtk_grid_set_row_spacing (GTK_GRID (grid), 3);
+  gtk_grid_set_column_spacing (GTK_GRID (grid), 3);
 
-  gtk_container_add (GTK_CONTAINER (frame), table);
+  gtk_container_add (GTK_CONTAINER (frame), grid);
 
   radio_dpy = gtk_radio_button_new_with_label (NULL, "move to another X display");
   if (gdk_display_get_n_screens(display) > 1)
@@ -5644,15 +5448,16 @@ create_display_screen (GtkWidget *widget)
       gtk_widget_set_sensitive (radio_scr, FALSE);
     }
   combo_dpy = gtk_combo_box_text_new_with_entry ();
+  gtk_widget_set_hexpand (combo_dpy, TRUE);
   gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (combo_dpy), "diabolo:0.0");
   gtk_entry_set_text (GTK_ENTRY (gtk_bin_get_child (GTK_BIN (combo_dpy))),
                       "<hostname>:<X Server Num>.<Screen Num>");
 
-  gtk_table_attach_defaults (GTK_TABLE (table), radio_dpy, 0, 1, 0, 1);
-  gtk_table_attach_defaults (GTK_TABLE (table), radio_scr, 0, 1, 1, 2);
-  gtk_table_attach_defaults (GTK_TABLE (table), combo_dpy, 1, 2, 0, 1);
+  gtk_grid_attach (GTK_GRID (grid), radio_dpy, 0, 0, 1, 1);
+  gtk_grid_attach (GTK_GRID (grid), radio_scr, 0, 1, 1, 1);
+  gtk_grid_attach (GTK_GRID (grid), combo_dpy, 1, 0, 1, 1);
 
-  bbox = gtk_hbutton_box_new ();
+  bbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL);
   applyb = gtk_button_new_from_stock (GTK_STOCK_APPLY);
   cancelb = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
   
@@ -5815,12 +5620,12 @@ create_range_controls (GtkWidget *widget)
       gtk_container_set_border_width (GTK_CONTAINER (window), 0);
 
 
-      box1 = gtk_vbox_new (FALSE, 0);
+      box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
       gtk_container_add (GTK_CONTAINER (window), box1);
       gtk_widget_show (box1);
 
 
-      box2 = gtk_vbox_new (FALSE, 10);
+      box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
       gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
       gtk_box_pack_start (GTK_BOX (box1), box2, TRUE, TRUE, 0);
       gtk_widget_show (box2);
@@ -5828,21 +5633,18 @@ create_range_controls (GtkWidget *widget)
 
       adjustment = gtk_adjustment_new (0.0, 0.0, 101.0, 0.1, 1.0, 1.0);
 
-      scale = gtk_hscale_new (GTK_ADJUSTMENT (adjustment));
+      scale = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (adjustment));
       gtk_widget_set_size_request (GTK_WIDGET (scale), 150, -1);
-      gtk_range_set_update_policy (GTK_RANGE (scale), GTK_UPDATE_DELAYED);
       gtk_scale_set_digits (GTK_SCALE (scale), 1);
       gtk_scale_set_draw_value (GTK_SCALE (scale), TRUE);
       gtk_box_pack_start (GTK_BOX (box2), scale, TRUE, TRUE, 0);
       gtk_widget_show (scale);
 
-      scrollbar = gtk_hscrollbar_new (GTK_ADJUSTMENT (adjustment));
-      gtk_range_set_update_policy (GTK_RANGE (scrollbar), 
-                                  GTK_UPDATE_CONTINUOUS);
+      scrollbar = gtk_scrollbar_new (GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (adjustment));
       gtk_box_pack_start (GTK_BOX (box2), scrollbar, TRUE, TRUE, 0);
       gtk_widget_show (scrollbar);
 
-      scale = gtk_hscale_new (GTK_ADJUSTMENT (adjustment));
+      scale = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (adjustment));
       gtk_scale_set_draw_value (GTK_SCALE (scale), TRUE);
       g_signal_connect (scale,
                         "format_value",
@@ -5851,16 +5653,16 @@ create_range_controls (GtkWidget *widget)
       gtk_box_pack_start (GTK_BOX (box2), scale, TRUE, TRUE, 0);
       gtk_widget_show (scale);
       
-      hbox = gtk_hbox_new (FALSE, 0);
+      hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
 
-      scale = gtk_vscale_new (GTK_ADJUSTMENT (adjustment));
+      scale = gtk_scale_new (GTK_ORIENTATION_VERTICAL, GTK_ADJUSTMENT (adjustment));
       gtk_widget_set_size_request (scale, -1, 200);
       gtk_scale_set_digits (GTK_SCALE (scale), 2);
       gtk_scale_set_draw_value (GTK_SCALE (scale), TRUE);
       gtk_box_pack_start (GTK_BOX (hbox), scale, TRUE, TRUE, 0);
       gtk_widget_show (scale);
 
-      scale = gtk_vscale_new (GTK_ADJUSTMENT (adjustment));
+      scale = gtk_scale_new (GTK_ORIENTATION_VERTICAL, GTK_ADJUSTMENT (adjustment));
       gtk_widget_set_size_request (scale, -1, 200);
       gtk_scale_set_digits (GTK_SCALE (scale), 2);
       gtk_scale_set_draw_value (GTK_SCALE (scale), TRUE);
@@ -5868,7 +5670,7 @@ create_range_controls (GtkWidget *widget)
       gtk_box_pack_start (GTK_BOX (hbox), scale, TRUE, TRUE, 0);
       gtk_widget_show (scale);
 
-      scale = gtk_vscale_new (GTK_ADJUSTMENT (adjustment));
+      scale = gtk_scale_new (GTK_ORIENTATION_VERTICAL, GTK_ADJUSTMENT (adjustment));
       gtk_scale_set_draw_value (GTK_SCALE (scale), TRUE);
       g_signal_connect (scale,
                         "format_value",
@@ -5881,12 +5683,12 @@ create_range_controls (GtkWidget *widget)
       gtk_box_pack_start (GTK_BOX (box2), hbox, TRUE, TRUE, 0);
       gtk_widget_show (hbox);
       
-      separator = gtk_hseparator_new ();
+      separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
       gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
       gtk_widget_show (separator);
 
 
-      box2 = gtk_vbox_new (FALSE, 10);
+      box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
       gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
       gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0);
       gtk_widget_show (box2);
@@ -5908,74 +5710,6 @@ create_range_controls (GtkWidget *widget)
     gtk_widget_destroy (window);
 }
 
-/*
- * GtkRulers
- */
-
-void
-create_rulers (GtkWidget *widget)
-{
-  static GtkWidget *window = NULL;
-  GtkWidget *table;
-  GtkWidget *ruler;
-
-  if (!window)
-    {
-      window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-
-      gtk_window_set_screen (GTK_WINDOW (window),
-                            gtk_widget_get_screen (widget));
-
-      gtk_window_set_resizable (GTK_WINDOW (window), TRUE);
-
-      g_signal_connect (window, "destroy",
-                       G_CALLBACK (gtk_widget_destroyed),
-                       &window);
-
-      gtk_window_set_title (GTK_WINDOW (window), "rulers");
-      gtk_widget_set_size_request (window, 300, 300);
-      gtk_widget_set_events (window, 
-                            GDK_POINTER_MOTION_MASK 
-                            | GDK_POINTER_MOTION_HINT_MASK);
-      gtk_container_set_border_width (GTK_CONTAINER (window), 0);
-
-      table = gtk_table_new (2, 2, FALSE);
-      gtk_container_add (GTK_CONTAINER (window), table);
-      gtk_widget_show (table);
-
-      ruler = gtk_hruler_new ();
-      gtk_ruler_set_metric (GTK_RULER (ruler), GTK_CENTIMETERS);
-      gtk_ruler_set_range (GTK_RULER (ruler), 100, 0, 0, 20);
-
-      g_signal_connect_swapped (window, 
-                               "motion_notify_event",
-                               G_CALLBACK (GTK_WIDGET_GET_CLASS (ruler)->motion_notify_event),
-                               ruler);
-      
-      gtk_table_attach (GTK_TABLE (table), ruler, 1, 2, 0, 1,
-                       GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
-      gtk_widget_show (ruler);
-
-
-      ruler = gtk_vruler_new ();
-      gtk_ruler_set_range (GTK_RULER (ruler), 5, 15, 0, 20);
-
-      g_signal_connect_swapped (window, 
-                               "motion_notify_event",
-                               G_CALLBACK (GTK_WIDGET_GET_CLASS (ruler)->motion_notify_event),
-                               ruler);
-      
-      gtk_table_attach (GTK_TABLE (table), ruler, 0, 1, 1, 2,
-                       GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
-      gtk_widget_show (ruler);
-    }
-
-  if (!gtk_widget_get_visible (window))
-    gtk_widget_show (window);
-  else
-    gtk_widget_destroy (window);
-}
-
 struct {
   GdkColor color;
   gchar *name;
@@ -6117,11 +5851,13 @@ create_pages (GtkNotebook *notebook, gint start, gint end)
       child = gtk_frame_new (buffer);
       gtk_container_set_border_width (GTK_CONTAINER (child), 10);
 
-      vbox = gtk_vbox_new (TRUE,0);
+      vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+      gtk_box_set_homogeneous (GTK_BOX (vbox), TRUE);
       gtk_container_set_border_width (GTK_CONTAINER (vbox), 10);
       gtk_container_add (GTK_CONTAINER (child), vbox);
 
-      hbox = gtk_hbox_new (TRUE,0);
+      hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+      gtk_box_set_homogeneous (GTK_BOX (hbox), TRUE);
       gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 5);
 
       button = gtk_check_button_new_with_label ("Fill Tab");
@@ -6143,23 +5879,29 @@ create_pages (GtkNotebook *notebook, gint start, gint end)
 
       gtk_widget_show_all (child);
 
-      label_box = gtk_hbox_new (FALSE, 0);
+      label_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
       pixwid = gtk_image_new_from_pixbuf (book_closed);
       g_object_set_data (G_OBJECT (child), "tab_pixmap", pixwid);
                           
       gtk_box_pack_start (GTK_BOX (label_box), pixwid, FALSE, TRUE, 0);
-      gtk_misc_set_padding (GTK_MISC (pixwid), 3, 1);
+      gtk_widget_set_margin_left (pixwid, 3);
+      gtk_widget_set_margin_right (pixwid, 3);
+      gtk_widget_set_margin_bottom (pixwid, 1);
+      gtk_widget_set_margin_top (pixwid, 1);
       label = gtk_label_new_with_mnemonic (accel_buffer);
       gtk_box_pack_start (GTK_BOX (label_box), label, FALSE, TRUE, 0);
       gtk_widget_show_all (label_box);
       
                                       
-      menu_box = gtk_hbox_new (FALSE, 0);
+      menu_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
       pixwid = gtk_image_new_from_pixbuf (book_closed);
       g_object_set_data (G_OBJECT (child), "menu_pixmap", pixwid);
       
       gtk_box_pack_start (GTK_BOX (menu_box), pixwid, FALSE, TRUE, 0);
-      gtk_misc_set_padding (GTK_MISC (pixwid), 3, 1);
+      gtk_widget_set_margin_left (pixwid, 3);
+      gtk_widget_set_margin_right (pixwid, 3);
+      gtk_widget_set_margin_bottom (pixwid, 1);
+      gtk_widget_set_margin_top (pixwid, 1);
       label = gtk_label_new (buffer);
       gtk_box_pack_start (GTK_BOX (menu_box), label, FALSE, TRUE, 0);
       gtk_widget_show_all (menu_box);
@@ -6281,7 +6023,7 @@ create_notebook (GtkWidget *widget)
       gtk_window_set_title (GTK_WINDOW (window), "notebook");
       gtk_container_set_border_width (GTK_CONTAINER (window), 0);
 
-      box1 = gtk_vbox_new (FALSE, 0);
+      box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
       gtk_container_add (GTK_CONTAINER (window), box1);
 
       sample_notebook = gtk_notebook_new ();
@@ -6301,10 +6043,10 @@ create_notebook (GtkWidget *widget)
 
       create_pages (GTK_NOTEBOOK (sample_notebook), 1, 5);
 
-      separator = gtk_hseparator_new ();
+      separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
       gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 10);
       
-      box2 = gtk_hbox_new (FALSE, 5);
+      box2 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
       gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
       gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0);
 
@@ -6314,7 +6056,7 @@ create_notebook (GtkWidget *widget)
                        G_CALLBACK (notebook_popup),
                        sample_notebook);
 
-      box2 = gtk_hbox_new (FALSE, 5);
+      box2 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
       gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
       gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0);
 
@@ -6331,7 +6073,8 @@ create_notebook (GtkWidget *widget)
       g_signal_connect (button, "clicked",
                        G_CALLBACK (show_all_pages), sample_notebook);
 
-      box2 = gtk_hbox_new (TRUE, 10);
+      box2 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10);
+      gtk_box_set_homogeneous (GTK_BOX (box2), TRUE);
       gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
       gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0);
 
@@ -6352,7 +6095,7 @@ create_notebook (GtkWidget *widget)
                        G_CALLBACK (rotate_notebook), sample_notebook);
       gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
 
-      separator = gtk_hseparator_new ();
+      separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
       gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 5);
 
       button = gtk_button_new_with_label ("close");
@@ -6371,6 +6114,31 @@ create_notebook (GtkWidget *widget)
     gtk_widget_destroy (window);
 }
 
+void
+create_settings (GtkWidget *widget)
+{
+  static GtkWidget *window = NULL;
+
+  if (!window)
+    {
+      window = create_prop_editor (G_OBJECT (gtk_settings_get_default ()), GTK_TYPE_SETTINGS);
+      gtk_window_set_screen (GTK_WINDOW (window),
+                             gtk_widget_get_screen (widget));
+
+      gtk_widget_hide (window);
+      gtk_window_set_title (GTK_WINDOW (window), "GTK+ Settings");
+
+      g_signal_connect (window, "destroy",
+                        G_CALLBACK (gtk_widget_destroyed),
+                        &window);
+    }
+
+  if (!gtk_widget_get_visible (window))
+    gtk_widget_show (window);
+  else
+    gtk_widget_destroy (window);
+}
+
 /*
  * GtkPanes
  */
@@ -6379,7 +6147,7 @@ void
 toggle_resize (GtkWidget *widget, GtkWidget *child)
 {
   GtkContainer *container = GTK_CONTAINER (gtk_widget_get_parent (child));
-  GValue value = { 0, };
+  GValue value = G_VALUE_INIT;
   g_value_init (&value, G_TYPE_BOOLEAN);
   gtk_container_child_get_property (container, child, "resize", &value);
   g_value_set_boolean (&value, !g_value_get_boolean (&value));
@@ -6390,7 +6158,7 @@ void
 toggle_shrink (GtkWidget *widget, GtkWidget *child)
 {
   GtkContainer *container = GTK_CONTAINER (gtk_widget_get_parent (child));
-  GValue value = { 0, };
+  GValue value = G_VALUE_INIT;
   g_value_init (&value, G_TYPE_BOOLEAN);
   gtk_container_child_get_property (container, child, "shrink", &value);
   g_value_set_boolean (&value, !g_value_get_boolean (&value));
@@ -6414,7 +6182,7 @@ create_pane_options (GtkPaned    *paned,
 {
   GtkWidget *child1, *child2;
   GtkWidget *frame;
-  GtkWidget *table;
+  GtkWidget *grid;
   GtkWidget *label;
   GtkWidget *button;
   GtkWidget *check_button;
@@ -6425,23 +6193,20 @@ create_pane_options (GtkPaned    *paned,
   frame = gtk_frame_new (frame_label);
   gtk_container_set_border_width (GTK_CONTAINER (frame), 4);
   
-  table = gtk_table_new (4, 2, 4);
-  gtk_container_add (GTK_CONTAINER (frame), table);
+  grid = gtk_grid_new ();
+  gtk_container_add (GTK_CONTAINER (frame), grid);
   
   label = gtk_label_new (label1);
-  gtk_table_attach_defaults (GTK_TABLE (table), label,
-                            0, 1, 0, 1);
+  gtk_grid_attach (GTK_GRID (grid), label, 0, 0, 1, 1);
   
   check_button = gtk_check_button_new_with_label ("Resize");
-  gtk_table_attach_defaults (GTK_TABLE (table), check_button,
-                            0, 1, 1, 2);
+  gtk_grid_attach (GTK_GRID (grid), check_button, 0, 1, 1, 1);
   g_signal_connect (check_button, "toggled",
                    G_CALLBACK (toggle_resize),
                     child1);
 
   check_button = gtk_check_button_new_with_label ("Shrink");
-  gtk_table_attach_defaults (GTK_TABLE (table), check_button,
-                            0, 1, 2, 3);
+  gtk_grid_attach (GTK_GRID (grid), check_button, 0, 2, 1, 1);
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button),
                               TRUE);
   g_signal_connect (check_button, "toggled",
@@ -6449,12 +6214,10 @@ create_pane_options (GtkPaned    *paned,
                     child1);
 
   label = gtk_label_new (label2);
-  gtk_table_attach_defaults (GTK_TABLE (table), label,
-                            1, 2, 0, 1);
+  gtk_grid_attach (GTK_GRID (grid), label, 1, 0, 1, 1);
   
   check_button = gtk_check_button_new_with_label ("Resize");
-  gtk_table_attach_defaults (GTK_TABLE (table), check_button,
-                            1, 2, 1, 2);
+  gtk_grid_attach (GTK_GRID (grid), check_button, 1, 1, 1, 1);
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button),
                               TRUE);
   g_signal_connect (check_button, "toggled",
@@ -6462,8 +6225,7 @@ create_pane_options (GtkPaned    *paned,
                     child2);
 
   check_button = gtk_check_button_new_with_label ("Shrink");
-  gtk_table_attach_defaults (GTK_TABLE (table), check_button,
-                            1, 2, 2, 3);
+  gtk_grid_attach (GTK_GRID (grid), check_button, 1, 2, 1, 1);
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button),
                               TRUE);
   g_signal_connect (check_button, "toggled",
@@ -6471,8 +6233,7 @@ create_pane_options (GtkPaned    *paned,
                     child2);
 
   button = gtk_button_new_with_mnemonic ("_Properties");
-  gtk_table_attach_defaults (GTK_TABLE (table), button,
-                            0, 2, 3, 4);
+  gtk_grid_attach (GTK_GRID (grid), button, 0, 3, 2, 1);
   g_signal_connect (button, "clicked",
                    G_CALLBACK (paned_props_clicked),
                    paned);
@@ -6504,14 +6265,14 @@ create_panes (GtkWidget *widget)
       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);
@@ -6579,7 +6340,7 @@ paned_keyboard_window1 (GtkWidget *widget)
   GtkWidget *button6;
   GtkWidget *frame3;
   GtkWidget *frame4;
-  GtkWidget *table1;
+  GtkWidget *grid1;
   GtkWidget *button1;
   GtkWidget *button2;
   GtkWidget *button3;
@@ -6590,14 +6351,14 @@ paned_keyboard_window1 (GtkWidget *widget)
   gtk_window_set_screen (GTK_WINDOW (window1), 
                         gtk_widget_get_screen (widget));
 
-  hpaned1 = gtk_hpaned_new ();
+  hpaned1 = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL);
   gtk_container_add (GTK_CONTAINER (window1), hpaned1);
 
   frame1 = gtk_frame_new (NULL);
   gtk_paned_pack1 (GTK_PANED (hpaned1), frame1, FALSE, TRUE);
   gtk_frame_set_shadow_type (GTK_FRAME (frame1), GTK_SHADOW_IN);
 
-  vbox1 = gtk_vbox_new (FALSE, 0);
+  vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
   gtk_container_add (GTK_CONTAINER (frame1), vbox1);
 
   button7 = gtk_button_new_with_label ("button7");
@@ -6609,7 +6370,7 @@ paned_keyboard_window1 (GtkWidget *widget)
   button9 = gtk_button_new_with_label ("button9");
   gtk_box_pack_start (GTK_BOX (vbox1), button9, FALSE, FALSE, 0);
 
-  vpaned1 = gtk_vpaned_new ();
+  vpaned1 = gtk_paned_new (GTK_ORIENTATION_VERTICAL);
   gtk_paned_pack2 (GTK_PANED (hpaned1), vpaned1, TRUE, TRUE);
 
   frame2 = gtk_frame_new (NULL);
@@ -6619,7 +6380,7 @@ paned_keyboard_window1 (GtkWidget *widget)
   frame5 = gtk_frame_new (NULL);
   gtk_container_add (GTK_CONTAINER (frame2), frame5);
 
-  hbox1 = gtk_hbox_new (FALSE, 0);
+  hbox1 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
   gtk_container_add (GTK_CONTAINER (frame5), hbox1);
 
   button5 = gtk_button_new_with_label ("button5");
@@ -6636,29 +6397,21 @@ paned_keyboard_window1 (GtkWidget *widget)
   gtk_container_add (GTK_CONTAINER (frame3), frame4);
   gtk_container_set_border_width (GTK_CONTAINER (frame4), 15);
 
-  table1 = gtk_table_new (2, 2, FALSE);
-  gtk_container_add (GTK_CONTAINER (frame4), table1);
-  gtk_container_set_border_width (GTK_CONTAINER (table1), 11);
+  grid1 = gtk_grid_new ();
+  gtk_container_add (GTK_CONTAINER (frame4), grid1);
+  gtk_container_set_border_width (GTK_CONTAINER (grid1), 11);
 
   button1 = gtk_button_new_with_label ("button1");
-  gtk_table_attach (GTK_TABLE (table1), button1, 0, 1, 0, 1,
-                    (GtkAttachOptions) (GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
+  gtk_grid_attach (GTK_GRID (grid1), button1, 0, 0, 1, 1);
 
   button2 = gtk_button_new_with_label ("button2");
-  gtk_table_attach (GTK_TABLE (table1), button2, 1, 2, 0, 1,
-                    (GtkAttachOptions) (GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
+  gtk_grid_attach (GTK_GRID (grid1), button2, 1, 0, 1, 1);
 
   button3 = gtk_button_new_with_label ("button3");
-  gtk_table_attach (GTK_TABLE (table1), button3, 0, 1, 1, 2,
-                    (GtkAttachOptions) (GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
+  gtk_grid_attach (GTK_GRID (grid1), button3, 0, 1, 1, 1);
 
   button4 = gtk_button_new_with_label ("button4");
-  gtk_table_attach (GTK_TABLE (table1), button4, 1, 2, 1, 2,
-                    (GtkAttachOptions) (GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
+  gtk_grid_attach (GTK_GRID (grid1), button4, 1, 1, 1, 1);
 
   return window1;
 }
@@ -6684,7 +6437,7 @@ paned_keyboard_window2 (GtkWidget *widget)
   gtk_window_set_screen (GTK_WINDOW (window2), 
                         gtk_widget_get_screen (widget));
 
-  hpaned2 = gtk_hpaned_new ();
+  hpaned2 = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL);
   gtk_container_add (GTK_CONTAINER (window2), hpaned2);
 
   frame6 = gtk_frame_new (NULL);
@@ -6694,10 +6447,10 @@ paned_keyboard_window2 (GtkWidget *widget)
   button13 = gtk_button_new_with_label ("button13");
   gtk_container_add (GTK_CONTAINER (frame6), button13);
 
-  hbox2 = gtk_hbox_new (FALSE, 0);
+  hbox2 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
   gtk_paned_pack2 (GTK_PANED (hpaned2), hbox2, TRUE, TRUE);
 
-  vpaned2 = gtk_vpaned_new ();
+  vpaned2 = gtk_paned_new (GTK_ORIENTATION_VERTICAL);
   gtk_box_pack_start (GTK_BOX (hbox2), vpaned2, TRUE, TRUE, 0);
 
   frame7 = gtk_frame_new (NULL);
@@ -6746,13 +6499,13 @@ paned_keyboard_window3 (GtkWidget *widget)
                         gtk_widget_get_screen (widget));
   
 
-  vbox2 = gtk_vbox_new (FALSE, 0);
+  vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
   gtk_container_add (GTK_CONTAINER (window3), vbox2);
 
   label1 = gtk_label_new ("Three panes nested inside each other");
   gtk_box_pack_start (GTK_BOX (vbox2), label1, FALSE, FALSE, 0);
 
-  hpaned3 = gtk_hpaned_new ();
+  hpaned3 = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL);
   gtk_box_pack_start (GTK_BOX (vbox2), hpaned3, TRUE, TRUE, 0);
 
   frame9 = gtk_frame_new (NULL);
@@ -6762,7 +6515,7 @@ paned_keyboard_window3 (GtkWidget *widget)
   button14 = gtk_button_new_with_label ("button14");
   gtk_container_add (GTK_CONTAINER (frame9), button14);
 
-  hpaned4 = gtk_hpaned_new ();
+  hpaned4 = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL);
   gtk_paned_pack2 (GTK_PANED (hpaned3), hpaned4, TRUE, TRUE);
 
   frame10 = gtk_frame_new (NULL);
@@ -6772,7 +6525,7 @@ paned_keyboard_window3 (GtkWidget *widget)
   button15 = gtk_button_new_with_label ("button15");
   gtk_container_add (GTK_CONTAINER (frame10), button15);
 
-  hpaned5 = gtk_hpaned_new ();
+  hpaned5 = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL);
   gtk_paned_pack2 (GTK_PANED (hpaned4), hpaned5, TRUE, TRUE);
 
   frame11 = gtk_frame_new (NULL);
@@ -6820,17 +6573,17 @@ paned_keyboard_window4 (GtkWidget *widget)
   gtk_window_set_screen (GTK_WINDOW (window4), 
                         gtk_widget_get_screen (widget));
 
-  vbox3 = gtk_vbox_new (FALSE, 0);
+  vbox3 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
   gtk_container_add (GTK_CONTAINER (window4), vbox3);
 
   label2 = gtk_label_new ("Widget tree:\n\nhpaned \n - vpaned\n - hbox\n    - vpaned\n    - vpaned\n    - vpaned\n");
   gtk_box_pack_start (GTK_BOX (vbox3), label2, FALSE, FALSE, 0);
   gtk_label_set_justify (GTK_LABEL (label2), GTK_JUSTIFY_LEFT);
 
-  hpaned6 = gtk_hpaned_new ();
+  hpaned6 = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL);
   gtk_box_pack_start (GTK_BOX (vbox3), hpaned6, TRUE, TRUE, 0);
 
-  vpaned3 = gtk_vpaned_new ();
+  vpaned3 = gtk_paned_new (GTK_ORIENTATION_VERTICAL);
   gtk_paned_pack1 (GTK_PANED (hpaned6), vpaned3, FALSE, TRUE);
 
   button19 = gtk_button_new_with_label ("button19");
@@ -6839,10 +6592,10 @@ paned_keyboard_window4 (GtkWidget *widget)
   button18 = gtk_button_new_with_label ("button18");
   gtk_paned_pack2 (GTK_PANED (vpaned3), button18, TRUE, TRUE);
 
-  hbox3 = gtk_hbox_new (FALSE, 0);
+  hbox3 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
   gtk_paned_pack2 (GTK_PANED (hpaned6), hbox3, TRUE, TRUE);
 
-  vpaned4 = gtk_vpaned_new ();
+  vpaned4 = gtk_paned_new (GTK_ORIENTATION_VERTICAL);
   gtk_box_pack_start (GTK_BOX (hbox3), vpaned4, TRUE, TRUE, 0);
 
   button21 = gtk_button_new_with_label ("button21");
@@ -6851,7 +6604,7 @@ paned_keyboard_window4 (GtkWidget *widget)
   button20 = gtk_button_new_with_label ("button20");
   gtk_paned_pack2 (GTK_PANED (vpaned4), button20, TRUE, TRUE);
 
-  vpaned5 = gtk_vpaned_new ();
+  vpaned5 = gtk_paned_new (GTK_ORIENTATION_VERTICAL);
   gtk_box_pack_start (GTK_BOX (hbox3), vpaned5, TRUE, TRUE, 0);
 
   button23 = gtk_button_new_with_label ("button23");
@@ -6860,7 +6613,7 @@ paned_keyboard_window4 (GtkWidget *widget)
   button22 = gtk_button_new_with_label ("button22");
   gtk_paned_pack2 (GTK_PANED (vpaned5), button22, TRUE, TRUE);
 
-  vpaned6 = gtk_vpaned_new ();
+  vpaned6 = gtk_paned_new (GTK_ORIENTATION_VERTICAL);
   gtk_box_pack_start (GTK_BOX (hbox3), vpaned6, TRUE, TRUE, 0);
 
   button25 = gtk_button_new_with_label ("button25");
@@ -6963,28 +6716,31 @@ shape_pressed (GtkWidget *widget, GdkEventButton *event)
   p->y = (int) event->y;
 
   gtk_grab_add (widget);
-  gdk_pointer_grab (gtk_widget_get_window (widget), TRUE,
-                   GDK_BUTTON_RELEASE_MASK |
-                   GDK_BUTTON_MOTION_MASK |
-                   GDK_POINTER_MOTION_HINT_MASK,
-                   NULL, NULL, 0);
+  gdk_device_grab (gdk_event_get_device ((GdkEvent*)event),
+                   gtk_widget_get_window (widget),
+                   GDK_OWNERSHIP_NONE,
+                   TRUE,
+                   GDK_BUTTON_RELEASE_MASK |
+                   GDK_BUTTON_MOTION_MASK |
+                   GDK_POINTER_MOTION_HINT_MASK,
+                   NULL,
+                   event->time);
 }
 
 static void
-shape_released (GtkWidget *widget)
+shape_released (GtkWidget      *widget,
+                GdkEventButton *event)
 {
   gtk_grab_remove (widget);
-  gdk_display_pointer_ungrab (gtk_widget_get_display (widget),
-                             GDK_CURRENT_TIME);
+  gdk_device_ungrab (gdk_event_get_device ((GdkEvent*)event), event->time);
 }
 
 static void
-shape_motion (GtkWidget      *widget, 
+shape_motion (GtkWidget      *widget,
              GdkEventMotion *event)
 {
   gint xp, yp;
   CursorOffset * p;
-  GdkModifierType mask;
 
   p = g_object_get_data (G_OBJECT (widget), "cursor_offset");
 
@@ -6992,7 +6748,9 @@ shape_motion (GtkWidget      *widget,
    * Can't use event->x / event->y here 
    * because I need absolute coordinates.
    */
-  gdk_window_get_pointer (NULL, &xp, &yp, &mask);
+  gdk_window_get_device_position (gdk_screen_get_root_window (gtk_widget_get_screen (widget)),
+                                  gdk_event_get_device ((GdkEvent *) event),
+                                  &xp, &yp, NULL);
   gtk_window_move (GTK_WINDOW (widget), xp  - p->x, yp  - p->y);
 }
 
@@ -7220,7 +6978,7 @@ create_wmhints (GtkWidget *widget)
       gdk_window_set_decorations (gdk_window, GDK_DECOR_ALL | GDK_DECOR_MENU);
       gdk_window_set_functions (gdk_window, GDK_FUNC_ALL | GDK_FUNC_RESIZE);
       
-      box1 = gtk_vbox_new (FALSE, 0);
+      box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
       gtk_container_add (GTK_CONTAINER (window), box1);
       gtk_widget_show (box1);
 
@@ -7230,12 +6988,12 @@ create_wmhints (GtkWidget *widget)
       gtk_widget_show (label);
 
 
-      separator = gtk_hseparator_new ();
+      separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
       gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
       gtk_widget_show (separator);
 
 
-      box2 = gtk_vbox_new (FALSE, 10);
+      box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
       gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
       gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0);
       gtk_widget_show (box2);
@@ -7303,7 +7061,7 @@ tracking_label (GtkWidget *window)
   GtkWidget *hbox;
   GtkWidget *button;
 
-  hbox = gtk_hbox_new (FALSE, 5);
+  hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
 
   g_signal_connect_object (hbox,
                           "destroy",
@@ -7406,7 +7164,7 @@ get_state_controls (GtkWidget *window)
   GtkWidget *button_above;
   GtkWidget *button_below;
 
-  vbox = gtk_vbox_new (FALSE, 0);
+  vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
   
   button = gtk_button_new_with_label ("Stick");
   g_signal_connect_object (button,
@@ -7516,7 +7274,7 @@ create_window_states (GtkWidget *widget)
 
       gtk_window_set_title (GTK_WINDOW (window), "Window states");
       
-      box1 = gtk_vbox_new (FALSE, 0);
+      box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
       gtk_container_add (GTK_CONTAINER (window), box1);
 
       iconified = gtk_window_new (GTK_WINDOW_TOPLEVEL);
@@ -7837,7 +7595,7 @@ make_gravity_window (GtkWidget   *destroy_with,
   gtk_window_set_screen (GTK_WINDOW (window),
                         gtk_widget_get_screen (destroy_with));
 
-  vbox = gtk_vbox_new (FALSE, 0);
+  vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
   gtk_widget_show (vbox);
   
   gtk_container_add (GTK_CONTAINER (window), vbox);
@@ -7949,7 +7707,7 @@ window_controls (GtkWidget *window)
   GtkWidget *vbox;
   GtkWidget *button;
   GtkWidget *spin;
-  GtkAdjustment *adj;
+  GtkAdjustment *adjustment;
   GtkWidget *entry;
   GtkWidget *om;
   gint i;
@@ -7971,7 +7729,7 @@ window_controls (GtkWidget *window)
                            window,
                           G_CONNECT_SWAPPED);
 
-  vbox = gtk_vbox_new (FALSE, 5);
+  vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
   
   gtk_container_add (GTK_CONTAINER (control_window), vbox);
   
@@ -7983,15 +7741,15 @@ window_controls (GtkWidget *window)
                    G_CALLBACK (configure_event_callback),
                    label);
 
-  adj = gtk_adjustment_new (10.0, -2000.0, 2000.0, 1.0, 5.0, 0.0);
-  spin = gtk_spin_button_new (adj, 0, 0);
+  adjustment = gtk_adjustment_new (10.0, -2000.0, 2000.0, 1.0, 5.0, 0.0);
+  spin = gtk_spin_button_new (adjustment, 0, 0);
 
   gtk_box_pack_start (GTK_BOX (vbox), spin, FALSE, FALSE, 0);
 
   g_object_set_data (G_OBJECT (control_window), "spin1", spin);
 
-  adj = gtk_adjustment_new (10.0, -2000.0, 2000.0, 1.0, 5.0, 0.0);
-  spin = gtk_spin_button_new (adj, 0, 0);
+  adjustment = gtk_adjustment_new (10.0, -2000.0, 2000.0, 1.0, 5.0, 0.0);
+  spin = gtk_spin_button_new (adjustment, 0, 0);
 
   gtk_box_pack_start (GTK_BOX (vbox), spin, FALSE, FALSE, 0);
 
@@ -8258,8 +8016,11 @@ static void
 destroy_progress (GtkWidget     *widget,
                  ProgressData **pdata)
 {
-  g_source_remove ((*pdata)->timer);
-  (*pdata)->timer = 0;
+  if ((*pdata)->timer)
+    {
+      g_source_remove ((*pdata)->timer);
+      (*pdata)->timer = 0;
+    }
   (*pdata)->window = NULL;
   g_free (*pdata);
   *pdata = NULL;
@@ -8316,6 +8077,24 @@ toggle_activity_mode (GtkWidget *widget, ProgressData *pdata)
   pdata->activity = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
 }
 
+static void
+toggle_running (GtkWidget *widget, ProgressData *pdata)
+{
+  if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)))
+    {
+      if (pdata->timer == 0)
+        pdata->timer = g_timeout_add (100, (GSourceFunc)progress_timeout, pdata);
+    }
+  else
+    {
+      if (pdata->timer != 0)
+        {
+          g_source_remove (pdata->timer);
+          pdata->timer = 0;
+        }
+    }
+}
+
 static void
 entry_changed (GtkWidget *widget, ProgressData *pdata)
 {
@@ -8333,9 +8112,8 @@ create_progress_bar (GtkWidget *widget)
   GtkWidget *hbox;
   GtkWidget *check;
   GtkWidget *frame;
-  GtkWidget *tab;
+  GtkWidget *grid;
   GtkWidget *label;
-  GtkWidget *align;
   static ProgressData *pdata = NULL;
 
   static gchar *items1[] =
@@ -8376,31 +8154,27 @@ create_progress_bar (GtkWidget *widget)
       gtk_window_set_title (GTK_WINDOW (pdata->window), "GtkProgressBar");
       gtk_container_set_border_width (GTK_CONTAINER (pdata->window), 0);
 
-      vbox = gtk_vbox_new (FALSE, 5);
+      vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
       gtk_container_set_border_width (GTK_CONTAINER (vbox), 10);
       gtk_box_pack_start (GTK_BOX (content_area), vbox, FALSE, TRUE, 0);
 
       frame = gtk_frame_new ("Progress");
       gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, TRUE, 0);
 
-      vbox2 = gtk_vbox_new (FALSE, 5);
+      vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
       gtk_container_add (GTK_CONTAINER (frame), vbox2);
 
-      align = gtk_alignment_new (0.5, 0.5, 0, 0);
-      gtk_box_pack_start (GTK_BOX (vbox2), align, FALSE, FALSE, 5);
-
       pdata->pbar = gtk_progress_bar_new ();
       gtk_progress_bar_set_ellipsize (GTK_PROGRESS_BAR (pdata->pbar),
                                       PANGO_ELLIPSIZE_MIDDLE);
-
-      gtk_container_add (GTK_CONTAINER (align), pdata->pbar);
-      pdata->timer = g_timeout_add (100, (GSourceFunc)progress_timeout, pdata);
-
-      align = gtk_alignment_new (0.5, 0.5, 0, 0);
-      gtk_box_pack_start (GTK_BOX (vbox2), align, FALSE, FALSE, 5);
-
-      hbox = gtk_hbox_new (FALSE, 5);
-      gtk_container_add (GTK_CONTAINER (align), hbox);
+      gtk_widget_set_halign (pdata->pbar, GTK_ALIGN_CENTER);
+      gtk_widget_set_valign (pdata->pbar, GTK_ALIGN_CENTER);
+      gtk_box_pack_start (GTK_BOX (vbox2), pdata->pbar, FALSE, FALSE, 5);
+
+      hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
+      gtk_widget_set_halign (hbox, GTK_ALIGN_CENTER);
+      gtk_widget_set_valign (hbox, GTK_ALIGN_CENTER);
+      gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, FALSE, 5);
       label = gtk_label_new ("Label updated by user :"); 
       gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0);
       pdata->label = gtk_label_new ("");
@@ -8409,44 +8183,45 @@ create_progress_bar (GtkWidget *widget)
       frame = gtk_frame_new ("Options");
       gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, TRUE, 0);
 
-      vbox2 = gtk_vbox_new (FALSE, 5);
+      vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
       gtk_container_add (GTK_CONTAINER (frame), vbox2);
 
-      tab = gtk_table_new (7, 2, FALSE);
-      gtk_box_pack_start (GTK_BOX (vbox2), tab, FALSE, TRUE, 0);
+      grid = gtk_grid_new ();
+      gtk_grid_set_row_spacing (GTK_GRID (grid), 10);
+      gtk_grid_set_column_spacing (GTK_GRID (grid), 10);
+      gtk_box_pack_start (GTK_BOX (vbox2), grid, FALSE, TRUE, 0);
 
       label = gtk_label_new ("Orientation :");
-      gtk_table_attach (GTK_TABLE (tab), label, 0, 1, 0, 1,
-                       GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL,
-                       5, 5);
-      gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
+      gtk_grid_attach (GTK_GRID (grid), label, 0, 0, 1, 1);
+      gtk_widget_set_halign (label, GTK_ALIGN_START);
+      gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
 
       pdata->omenu1 = build_option_menu (items1, 4, 0,
                                         progressbar_toggle_orientation,
                                         pdata);
-      hbox = gtk_hbox_new (FALSE, 0);
-      gtk_table_attach (GTK_TABLE (tab), hbox, 1, 2, 0, 1,
-                       GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL,
-                       5, 5);
-      gtk_box_pack_start (GTK_BOX (hbox), pdata->omenu1, TRUE, TRUE, 0);
+      gtk_grid_attach (GTK_GRID (grid), pdata->omenu1, 1, 0, 1, 1);
       
+      check = gtk_check_button_new_with_label ("Running");
+      g_signal_connect (check, "toggled",
+                       G_CALLBACK (toggle_running),
+                       pdata);
+      gtk_grid_attach (GTK_GRID (grid), check, 0, 1, 2, 1);
+      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), TRUE);
+
       check = gtk_check_button_new_with_label ("Show text");
       g_signal_connect (check, "clicked",
                        G_CALLBACK (toggle_show_text),
                        pdata);
-      gtk_table_attach (GTK_TABLE (tab), check, 0, 1, 1, 2,
-                       GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL,
-                       5, 5);
+      gtk_grid_attach (GTK_GRID (grid), check, 0, 2, 1, 1);
 
-      hbox = gtk_hbox_new (FALSE, 0);
-      gtk_table_attach (GTK_TABLE (tab), hbox, 1, 2, 1, 2,
-                       GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL,
-                       5, 5);
+      hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+      gtk_grid_attach (GTK_GRID (grid), hbox, 1, 2, 1, 1);
 
       label = gtk_label_new ("Text: ");
       gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0);
 
       pdata->entry = gtk_entry_new ();
+      gtk_widget_set_hexpand (pdata->entry, TRUE);
       g_signal_connect (pdata->entry, "changed",
                        G_CALLBACK (entry_changed),
                        pdata);
@@ -8454,27 +8229,21 @@ create_progress_bar (GtkWidget *widget)
       gtk_widget_set_size_request (pdata->entry, 100, -1);
 
       label = gtk_label_new ("Ellipsize text :");
-      gtk_table_attach (GTK_TABLE (tab), label, 0, 1, 10, 11,
-                       GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL,
-                       5, 5);
-      gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
+      gtk_grid_attach (GTK_GRID (grid), label, 0, 10, 1, 1);
+
+      gtk_widget_set_halign (label, GTK_ALIGN_START);
+      gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
       pdata->elmenu = build_option_menu (ellipsize_items,
                                          sizeof (ellipsize_items) / sizeof (ellipsize_items[0]),
                                          2, // PANGO_ELLIPSIZE_MIDDLE
                                         progressbar_toggle_ellipsize,
                                         pdata);
-      hbox = gtk_hbox_new (FALSE, 0);
-      gtk_table_attach (GTK_TABLE (tab), hbox, 1, 2, 10, 11,
-                       GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL,
-                       5, 5);
-      gtk_box_pack_start (GTK_BOX (hbox), pdata->elmenu, TRUE, TRUE, 0);
+      gtk_grid_attach (GTK_GRID (grid), pdata->elmenu, 1, 10, 1, 1);
 
       check = gtk_check_button_new_with_label ("Activity mode");
       g_signal_connect (check, "clicked",
                        G_CALLBACK (toggle_activity_mode), pdata);
-      gtk_table_attach (GTK_TABLE (tab), check, 0, 1, 15, 16,
-                       GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL,
-                       5, 5);
+      gtk_grid_attach (GTK_GRID (grid), check, 0, 15, 1, 1);
 
       button = gtk_button_new_with_label ("close");
       g_signal_connect_swapped (button, "clicked",
@@ -8600,14 +8369,14 @@ find_widget (GtkWidget *widget, FindWidgetData *data)
 }
 
 static GtkWidget *
-find_widget_at_pointer (GdkDisplay *display)
+find_widget_at_pointer (GdkDevice *device)
 {
   GtkWidget *widget = NULL;
   GdkWindow *pointer_window;
   gint x, y;
   FindWidgetData data;
  
- pointer_window = gdk_display_get_window_at_pointer (display, NULL, NULL);
+ pointer_window = gdk_device_get_window_at_position (device, NULL, NULL);
  
  if (pointer_window)
    {
@@ -8619,8 +8388,9 @@ find_widget_at_pointer (GdkDisplay *display)
 
  if (widget)
    {
-     gdk_window_get_pointer (gtk_widget_get_window (widget),
-                            &x, &y, NULL);
+     gdk_window_get_device_position (gtk_widget_get_window (widget),
+                                     device,
+                                    &x, &y, NULL);
      
      data.x = x;
      data.y = y;
@@ -8654,7 +8424,7 @@ destroy_properties (GtkWidget             *widget,
 
   if (data->cursor)
     {
-      gdk_cursor_unref (data->cursor);
+      g_object_unref (data->cursor);
       data->cursor = NULL;
     }
 
@@ -8668,22 +8438,21 @@ destroy_properties (GtkWidget             *widget,
 }
 
 static gint
-property_query_event (GtkWidget               *widget,
-                     GdkEvent         *event,
-                     struct PropertiesData *data)
+property_query_event (GtkWidget             *widget,
+                      GdkEvent              *event,
+                      struct PropertiesData *data)
 {
   GtkWidget *res_widget = NULL;
 
   if (!data->in_query)
     return FALSE;
-  
+
   if (event->type == GDK_BUTTON_RELEASE)
     {
       gtk_grab_remove (widget);
-      gdk_display_pointer_ungrab (gtk_widget_get_display (widget),
-                                 GDK_CURRENT_TIME);
-      
-      res_widget = find_widget_at_pointer (gtk_widget_get_display (widget));
+      gdk_device_ungrab (gdk_event_get_device (event), GDK_CURRENT_TIME);
+
+      res_widget = find_widget_at_pointer (gdk_event_get_device (event));
       if (res_widget)
        {
          g_object_set_data (G_OBJECT (res_widget), "prop-editor-screen",
@@ -8702,23 +8471,27 @@ query_properties (GtkButton *button,
                  struct PropertiesData *data)
 {
   GtkWidget *widget = GTK_WIDGET (button);
-  gint failure;
+  GdkDisplay *display;
+  GdkDeviceManager *device_manager;
+  GdkDevice *device;
 
   g_signal_connect (button, "event",
                    G_CALLBACK (property_query_event), data);
 
+  display = gtk_widget_get_display (widget);
 
   if (!data->cursor)
-    data->cursor = gdk_cursor_new_for_display (gtk_widget_get_display (widget),
-                                              GDK_TARGET);
-
-  failure = gdk_pointer_grab (gtk_widget_get_window (widget),
-                             TRUE,
-                             GDK_BUTTON_RELEASE_MASK,
-                             NULL,
-                             data->cursor,
-                             GDK_CURRENT_TIME);
-
+    data->cursor = gdk_cursor_new_for_display (display, GDK_TARGET);
+
+  device_manager = gdk_display_get_device_manager (display);
+  device = gdk_device_manager_get_client_pointer (device_manager);
+  gdk_device_grab (device,
+                   gtk_widget_get_window (widget),
+                   GDK_OWNERSHIP_NONE,
+                   TRUE,
+                   GDK_BUTTON_RELEASE_MASK,
+                   data->cursor,
+                   GDK_CURRENT_TIME);
   gtk_grab_add (widget);
 
   data->in_query = TRUE;
@@ -8753,7 +8526,7 @@ create_properties (GtkWidget *widget)
       gtk_window_set_title (GTK_WINDOW (window), "test properties");
       gtk_container_set_border_width (GTK_CONTAINER (window), 10);
 
-      vbox = gtk_vbox_new (FALSE, 1);
+      vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 1);
       gtk_container_add (GTK_CONTAINER (window), vbox);
             
       label = gtk_label_new ("This is just a dumb test to test properties.\nIf you need a generic module, get GLE.");
@@ -8791,7 +8564,7 @@ destroy_snapshot_data (GtkWidget             *widget,
   
   if (data->cursor)
     {
-      gdk_cursor_unref (data->cursor);
+      g_object_unref (data->cursor);
       data->cursor = NULL;
     }
 
@@ -8817,10 +8590,10 @@ snapshot_widget_event (GtkWidget               *widget,
   if (event->type == GDK_BUTTON_RELEASE)
     {
       gtk_grab_remove (widget);
-      gdk_display_pointer_ungrab (gtk_widget_get_display (widget),
-                                 GDK_CURRENT_TIME);
+      gdk_device_ungrab (gdk_event_get_device (event),
+                        GDK_CURRENT_TIME);
       
-      res_widget = find_widget_at_pointer (gtk_widget_get_display (widget));
+      res_widget = find_widget_at_pointer (gdk_event_get_device (event));
       if (data->is_toplevel && res_widget)
        res_widget = gtk_widget_get_toplevel (res_widget);
       if (res_widget)
@@ -8864,10 +8637,14 @@ snapshot_widget (GtkButton *button,
                 struct SnapshotData *data)
 {
   GtkWidget *widget = GTK_WIDGET (button);
-  gint failure;
+  GdkDevice *device;
 
-  g_signal_connect (button, "event",
-                   G_CALLBACK (snapshot_widget_event), data);
+  device = gtk_get_current_event_device ();
+  if (device == NULL)
+    return;
+
+  if (gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD)
+    device = gdk_device_get_associated_device (device);
 
   data->is_toplevel = widget == data->toplevel_button;
 
@@ -8875,12 +8652,16 @@ snapshot_widget (GtkButton *button,
     data->cursor = gdk_cursor_new_for_display (gtk_widget_get_display (widget),
                                               GDK_TARGET);
 
-  failure = gdk_pointer_grab (gtk_widget_get_window (widget),
-                             TRUE,
-                             GDK_BUTTON_RELEASE_MASK,
-                             NULL,
-                             data->cursor,
-                             GDK_CURRENT_TIME);
+  gdk_device_grab (device,
+                   gtk_widget_get_window (widget),
+                   GDK_OWNERSHIP_APPLICATION,
+                  TRUE,
+                  GDK_BUTTON_RELEASE_MASK,
+                  data->cursor,
+                  GDK_CURRENT_TIME);
+
+  g_signal_connect (button, "event",
+                   G_CALLBACK (snapshot_widget_event), data);
 
   gtk_grab_add (widget);
 
@@ -8915,7 +8696,7 @@ create_snapshot (GtkWidget *widget)
       gtk_window_set_title (GTK_WINDOW (window), "test snapshot");
       gtk_container_set_border_width (GTK_CONTAINER (window), 10);
 
-      vbox = gtk_vbox_new (FALSE, 1);
+      vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 1);
       gtk_container_add (GTK_CONTAINER (window), vbox);
             
       button = gtk_button_new_with_label ("Snapshot widget");
@@ -8945,19 +8726,19 @@ create_snapshot (GtkWidget *widget)
 
 void
 selection_test_received (GtkWidget        *tree_view,
-                         GtkSelectionData *data)
+                         GtkSelectionData *selection_data)
 {
   GtkTreeModel *model;
   GtkListStore *store;
   GdkAtom *atoms;
   int i, l;
 
-  if (data->length < 0)
+  if (gtk_selection_data_get_length (selection_data) < 0)
     {
       g_print ("Selection retrieval failed\n");
       return;
     }
-  if (data->type != GDK_SELECTION_TYPE_ATOM)
+  if (gtk_selection_data_get_data_type (selection_data) != GDK_SELECTION_TYPE_ATOM)
     {
       g_print ("Selection \"TARGETS\" was not returned as atoms!\n");
       return;
@@ -8971,9 +8752,9 @@ selection_test_received (GtkWidget        *tree_view,
 
   /* Add new items to list */
 
-  atoms = (GdkAtom *)data->data;
+  gtk_selection_data_get_targets (selection_data,
+                                  &atoms, &l);
 
-  l = data->length / sizeof (GdkAtom);
   for (i = 0; i < l; i++)
     {
       char *name;
@@ -9037,7 +8818,7 @@ create_selection_test (GtkWidget *widget)
 
       /* Create the list */
 
-      vbox = gtk_vbox_new (FALSE, 5);
+      vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
       gtk_container_set_border_width (GTK_CONTAINER (vbox), 10);
       gtk_box_pack_start (GTK_BOX (content_area), vbox, TRUE, TRUE, 0);
 
@@ -9053,7 +8834,7 @@ create_selection_test (GtkWidget *widget)
 
       store = gtk_list_store_new (1, G_TYPE_STRING);
       tree_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (store));
-      gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_win), tree_view);
+      gtk_container_add (GTK_CONTAINER (scrolled_win), tree_view);
 
       renderer = gtk_cell_renderer_text_new ();
       column = gtk_tree_view_column_new_with_attributes ("Target", renderer,
@@ -9093,7 +8874,7 @@ static int scroll_test_pos = 0.0;
 static gint
 scroll_test_draw (GtkWidget     *widget,
                   cairo_t       *cr,
-                  GtkAdjustment *adj)
+                  GtkAdjustment *adjustment)
 {
   gint i,j;
   gint imin, imax, jmin, jmax;
@@ -9104,13 +8885,13 @@ scroll_test_draw (GtkWidget     *widget,
   imin = (clip.x) / 10;
   imax = (clip.x + clip.width + 9) / 10;
 
-  jmin = ((int)adj->value + clip.y) / 10;
-  jmax = ((int)adj->value + clip.y + clip.height + 9) / 10;
+  jmin = ((int)gtk_adjustment_get_value (adjustment) + clip.y) / 10;
+  jmax = ((int)gtk_adjustment_get_value (adjustment) + clip.y + clip.height + 9) / 10;
 
   for (i=imin; i<imax; i++)
     for (j=jmin; j<jmax; j++)
       if ((i+j) % 2)
-       cairo_rectangle (cr, 10*i, 10*j - (int)adj->value, 1+i%10, 1+j%10);
+       cairo_rectangle (cr, 10*i, 10*j - (int)gtk_adjustment_get_value (adjustment), 1+i%10, 1+j%10);
 
   cairo_fill (cr);
 
@@ -9119,38 +8900,41 @@ scroll_test_draw (GtkWidget     *widget,
 
 static gint
 scroll_test_scroll (GtkWidget *widget, GdkEventScroll *event,
-                   GtkAdjustment *adj)
+                   GtkAdjustment *adjustment)
 {
-  gdouble new_value = adj->value + ((event->direction == GDK_SCROLL_UP) ?
-                                   -adj->page_increment / 2:
-                                   adj->page_increment / 2);
-  new_value = CLAMP (new_value, adj->lower, adj->upper - adj->page_size);
-  gtk_adjustment_set_value (adj, new_value);  
+  gdouble new_value = gtk_adjustment_get_value (adjustment) + ((event->direction == GDK_SCROLL_UP) ?
+                                   -gtk_adjustment_get_page_increment (adjustment) / 2:
+                                   gtk_adjustment_get_page_increment (adjustment) / 2);
+  new_value = CLAMP (new_value, gtk_adjustment_get_lower (adjustment), gtk_adjustment_get_upper (adjustment) - gtk_adjustment_get_page_size (adjustment));
+  gtk_adjustment_set_value (adjustment, new_value);  
   
   return TRUE;
 }
 
 static void
 scroll_test_configure (GtkWidget *widget, GdkEventConfigure *event,
-                      GtkAdjustment *adj)
+                      GtkAdjustment *adjustment)
 {
   GtkAllocation allocation;
 
   gtk_widget_get_allocation (widget, &allocation);
-  adj->page_increment = 0.9 * allocation.height;
-  adj->page_size = allocation.height;
-
-  g_signal_emit_by_name (adj, "changed");
+  gtk_adjustment_configure (adjustment,
+                            gtk_adjustment_get_value (adjustment),
+                            gtk_adjustment_get_lower (adjustment),
+                            gtk_adjustment_get_upper (adjustment),
+                            0.1 * allocation.height,
+                            0.9 * allocation.height,
+                            allocation.height);
 }
 
 static void
-scroll_test_adjustment_changed (GtkAdjustment *adj, GtkWidget *widget)
+scroll_test_adjustment_changed (GtkAdjustment *adjustment, GtkWidget *widget)
 {
   GdkWindow *window;
   gint dy;
 
-  dy = scroll_test_pos - (int)adj->value;
-  scroll_test_pos = adj->value;
+  dy = scroll_test_pos - (int)gtk_adjustment_get_value (adjustment);
+  scroll_test_pos = gtk_adjustment_get_value (adjustment);
 
   if (!gtk_widget_is_drawable (widget))
     return;
@@ -9170,7 +8954,7 @@ create_scroll_test (GtkWidget *widget)
   GtkWidget *drawing_area;
   GtkWidget *scrollbar;
   GtkWidget *button;
-  GtkAdjustment *adj;
+  GtkAdjustment *adjustment;
   GdkGeometry geometry;
   GdkWindowHints geometry_mask;
 
@@ -9191,7 +8975,7 @@ create_scroll_test (GtkWidget *widget)
       gtk_window_set_title (GTK_WINDOW (window), "Scroll Test");
       gtk_container_set_border_width (GTK_CONTAINER (window), 0);
 
-      hbox = gtk_hbox_new (FALSE, 0);
+      hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
       gtk_box_pack_start (GTK_BOX (content_area), hbox, TRUE, TRUE, 0);
       gtk_widget_show (hbox);
 
@@ -9202,21 +8986,21 @@ create_scroll_test (GtkWidget *widget)
 
       gtk_widget_set_events (drawing_area, GDK_EXPOSURE_MASK | GDK_SCROLL_MASK);
 
-      adj = gtk_adjustment_new (0.0, 0.0, 1000.0, 1.0, 180.0, 200.0);
+      adjustment = gtk_adjustment_new (0.0, 0.0, 1000.0, 1.0, 180.0, 200.0);
       scroll_test_pos = 0.0;
 
-      scrollbar = gtk_vscrollbar_new (adj);
+      scrollbar = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL, adjustment);
       gtk_box_pack_start (GTK_BOX (hbox), scrollbar, FALSE, FALSE, 0);
       gtk_widget_show (scrollbar);
 
       g_signal_connect (drawing_area, "draw",
-                       G_CALLBACK (scroll_test_draw), adj);
+                       G_CALLBACK (scroll_test_draw), adjustment);
       g_signal_connect (drawing_area, "configure_event",
-                       G_CALLBACK (scroll_test_configure), adj);
+                       G_CALLBACK (scroll_test_configure), adjustment);
       g_signal_connect (drawing_area, "scroll_event",
-                       G_CALLBACK (scroll_test_scroll), adj);
+                       G_CALLBACK (scroll_test_scroll), adjustment);
       
-      g_signal_connect (adj, "value_changed",
+      g_signal_connect (adjustment, "value_changed",
                        G_CALLBACK (scroll_test_adjustment_changed),
                        drawing_area);
       
@@ -9327,7 +9111,7 @@ create_timeout_test (GtkWidget *widget)
       gtk_container_set_border_width (GTK_CONTAINER (window), 0);
 
       label = gtk_label_new ("count: 0");
-      gtk_misc_set_padding (GTK_MISC (label), 10, 10);
+      g_object_set (label, "margin", 10, NULL);
       gtk_box_pack_start (GTK_BOX (content_area), label, TRUE, TRUE, 0);
       gtk_widget_show (label);
 
@@ -9378,7 +9162,7 @@ idle_test (GtkWidget *label)
   sprintf (buffer, "count: %d", ++count);
   gtk_label_set_text (GTK_LABEL (label), buffer);
 
-  return TRUE;
+  return G_SOURCE_CONTINUE;
 }
 
 static void
@@ -9449,11 +9233,11 @@ create_idle_test (GtkWidget *widget)
       gtk_container_set_border_width (GTK_CONTAINER (window), 0);
 
       label = gtk_label_new ("count: 0");
-      gtk_misc_set_padding (GTK_MISC (label), 10, 10);
+      g_object_set (label, "margin", 10, NULL);
       gtk_widget_show (label);
       
       container =
-       g_object_new (GTK_TYPE_HBOX,
+       g_object_new (GTK_TYPE_BOX,
                        "visible", TRUE,
                        /* "GtkContainer::child", g_object_new (GTK_TYPE_HBOX,
                         * "GtkWidget::visible", TRUE,
@@ -9471,9 +9255,10 @@ create_idle_test (GtkWidget *widget)
                        "parent", content_area,
                        NULL);
       box =
-       g_object_new (GTK_TYPE_VBOX,
+       g_object_new (GTK_TYPE_BOX,
                        "visible", TRUE,
                        "parent", frame,
+                        "orientation", GTK_ORIENTATION_VERTICAL,
                        NULL);
       button =
        g_object_connect (g_object_new (GTK_TYPE_RADIO_BUTTON,
@@ -9543,26 +9328,6 @@ create_idle_test (GtkWidget *widget)
  * rc file test
  */
 
-void
-reload_all_rc_files (void)
-{
-  static GdkAtom atom_rcfiles = GDK_NONE;
-
-  GdkEvent *send_event = gdk_event_new (GDK_CLIENT_EVENT);
-  int i;
-  
-  if (!atom_rcfiles)
-    atom_rcfiles = gdk_atom_intern("_GTK_READ_RCFILES", FALSE);
-
-  for(i = 0; i < 5; i++)
-    send_event->client.data.l[i] = 0;
-  send_event->client.data_format = 32;
-  send_event->client.message_type = atom_rcfiles;
-  gdk_event_send_clientmessage_toall (send_event);
-
-  gdk_event_free (send_event);
-}
-
 void
 create_rc_file (GtkWidget *widget)
 {
@@ -9590,7 +9355,7 @@ create_rc_file (GtkWidget *widget)
       frame = gtk_aspect_frame_new ("Testing RC file prioritization", 0.5, 0.5, 0.0, TRUE);
       gtk_box_pack_start (GTK_BOX (content_area), frame, FALSE, FALSE, 0);
 
-      vbox = gtk_vbox_new (FALSE, 0);
+      vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
       gtk_container_add (GTK_CONTAINER (frame), vbox);
       
       label = gtk_label_new ("This label should be red");
@@ -9609,18 +9374,13 @@ create_rc_file (GtkWidget *widget)
       gtk_container_set_border_width (GTK_CONTAINER (window), 0);
 
       button = gtk_button_new_with_label ("Reload");
-      g_signal_connect (button, "clicked",
-                       G_CALLBACK (gtk_rc_reparse_all), NULL);
+      g_signal_connect_swapped (button, "clicked",
+                                G_CALLBACK (gtk_style_context_reset_widgets),
+                                gtk_widget_get_screen (button));
       gtk_widget_set_can_default (button, TRUE);
       gtk_box_pack_start (GTK_BOX (action_area), button, TRUE, TRUE, 0);
       gtk_widget_grab_default (button);
 
-      button = gtk_button_new_with_label ("Reload All");
-      g_signal_connect (button, "clicked",
-                       G_CALLBACK (reload_all_rc_files), NULL);
-      gtk_widget_set_can_default (button, TRUE);
-      gtk_box_pack_start (GTK_BOX (action_area), button, TRUE, TRUE, 0);
-
       button = gtk_button_new_with_label ("Close");
       g_signal_connect_swapped (button, "clicked",
                                G_CALLBACK (gtk_widget_destroy),
@@ -9671,7 +9431,7 @@ create_mainloop (GtkWidget *widget)
       action_area = gtk_dialog_get_action_area (GTK_DIALOG (window));
 
       label = gtk_label_new ("In recursive main loop...");
-      gtk_misc_set_padding (GTK_MISC(label), 20, 20);
+      g_object_set (label, "margin", 20, NULL);
 
       gtk_box_pack_start (GTK_BOX (content_area), label, TRUE, TRUE, 0);
       gtk_widget_show (label);
@@ -9780,12 +9540,12 @@ void create_layout (GtkWidget *widget)
       /* We set step sizes here since GtkLayout does not set
        * them itself.
        */
-      hadjustment = gtk_layout_get_hadjustment (layout);
-      vadjustment = gtk_layout_get_vadjustment (layout);
+      hadjustment = gtk_scrollable_get_hadjustment (GTK_SCROLLABLE (layout));
+      vadjustment = gtk_scrollable_get_vadjustment (GTK_SCROLLABLE (layout));
       gtk_adjustment_set_step_increment (hadjustment, 10.0);
       gtk_adjustment_set_step_increment (vadjustment, 10.0);
-      gtk_layout_set_hadjustment (layout, hadjustment);
-      gtk_layout_set_vadjustment (layout, vadjustment);
+      gtk_scrollable_set_hadjustment (GTK_SCROLLABLE (layout), hadjustment);
+      gtk_scrollable_set_vadjustment (GTK_SCROLLABLE (layout), vadjustment);
 
       gtk_widget_set_events (layout_widget, GDK_EXPOSURE_MASK);
       g_signal_connect (layout, "draw",
@@ -9823,6 +9583,8 @@ void create_layout (GtkWidget *widget)
     gtk_widget_destroy (window);
 }
 
+#if 0
+/* FIXME: need to completely redo this for GtkStyleContext */
 void
 create_styles (GtkWidget *widget)
 {
@@ -9832,11 +9594,11 @@ create_styles (GtkWidget *widget)
   GtkWidget *button;
   GtkWidget *entry;
   GtkWidget *vbox;
-  static GdkColor red =    { 0, 0xffff, 0,      0      };
-  static GdkColor green =  { 0, 0,      0xffff, 0      };
-  static GdkColor blue =   { 0, 0,      0,      0xffff };
-  static GdkColor yellow = { 0, 0xffff, 0xffff, 0      };
-  static GdkColor cyan =   { 0, 0     , 0xffff, 0xffff };
+  static GdkRGBA red =    { 1,0,0,1 };
+  static GdkRGBA green =  { 0,1,0,1 };
+  static GdkRGBA blue =   { 0,0,1,1 };
+  static GdkRGBA yellow = { 1,1,0,1 };
+  static GdkRGBA cyan =   { 0,1,1,1 };
   PangoFontDescription *font_desc;
 
   GtkRcStyle *rc_style;
@@ -9862,58 +9624,62 @@ create_styles (GtkWidget *widget)
       gtk_box_pack_start (GTK_BOX (action_area), button, TRUE, TRUE, 0);
       gtk_widget_show (button);
 
-      vbox = gtk_vbox_new (FALSE, 5);
+      vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
       gtk_container_set_border_width (GTK_CONTAINER (vbox), 10);
       gtk_box_pack_start (GTK_BOX (content_area), vbox, FALSE, FALSE, 0);
       
       label = gtk_label_new ("Font:");
-      gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+      gtk_widget_set_halign (label, GTK_ALIGN_START);
+      gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
       gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
 
       font_desc = pango_font_description_from_string ("Helvetica,Sans Oblique 18");
 
       button = gtk_button_new_with_label ("Some Text");
-      gtk_widget_modify_font (gtk_bin_get_child (GTK_BIN (button)),
-                              font_desc);
+      gtk_widget_override_font (gtk_bin_get_child (GTK_BIN (button)), font_desc);
       gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
 
       label = gtk_label_new ("Foreground:");
-      gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+      gtk_widget_set_halign (label, GTK_ALIGN_START);
+      gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
       gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
 
       button = gtk_button_new_with_label ("Some Text");
-      gtk_widget_modify_fg (gtk_bin_get_child (GTK_BIN (button)),
-                            GTK_STATE_NORMAL, &red);
+      gtk_widget_override_color (gtk_bin_get_child (GTK_BIN (button)), 0, &red);
       gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
 
       label = gtk_label_new ("Background:");
-      gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+      gtk_widget_set_halign (label, GTK_ALIGN_START);
+      gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
       gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
 
       button = gtk_button_new_with_label ("Some Text");
-      gtk_widget_modify_bg (button, GTK_STATE_NORMAL, &green);
+      gtk_widget_override_background_color (button, 0, &green);
       gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
 
       label = gtk_label_new ("Text:");
-      gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+      gtk_widget_set_halign (label, GTK_ALIGN_START);
+      gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
       gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
 
       entry = gtk_entry_new ();
       gtk_entry_set_text (GTK_ENTRY (entry), "Some Text");
-      gtk_widget_modify_text (entry, GTK_STATE_NORMAL, &blue);
+      gtk_widget_override_color (entry, 0, &blue);
       gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0);
 
       label = gtk_label_new ("Base:");
-      gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+      gtk_widget_set_halign (label, GTK_ALIGN_START);
+      gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
       gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
 
       entry = gtk_entry_new ();
       gtk_entry_set_text (GTK_ENTRY (entry), "Some Text");
-      gtk_widget_modify_base (entry, GTK_STATE_NORMAL, &yellow);
+      gtk_widget_override_background_color (entry, 0, &yellow);
       gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0);
 
       label = gtk_label_new ("Cursor:");
-      gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+      gtk_widget_set_halign (label, GTK_ALIGN_START);
+      gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
       gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
 
       entry = gtk_entry_new ();
@@ -9922,7 +9688,8 @@ create_styles (GtkWidget *widget)
       gtk_box_pack_start (GTK_BOX (vbox), entry, FALSE, FALSE, 0);
 
       label = gtk_label_new ("Multiple:");
-      gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+      gtk_widget_set_halign (label, GTK_ALIGN_START);
+      gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
       gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
 
       button = gtk_button_new_with_label ("Some Text");
@@ -9955,6 +9722,7 @@ create_styles (GtkWidget *widget)
   else
     gtk_widget_destroy (window);
 }
+#endif
 
 /*
  * Main Window and Exit
@@ -9974,6 +9742,7 @@ struct {
 } buttons[] =
 {
   { "alpha window", create_alpha_window },
+  { "alpha widget", create_alpha_widgets },
   { "big windows", create_big_windows },
   { "button box", create_button_box },
   { "buttons", create_buttons },
@@ -9990,7 +9759,6 @@ struct {
   { "flipping", create_flipping },
   { "focus", create_focus },
   { "font selection", create_font_selection },
-  { "handle box", create_handle_box },
   { "image", create_image },
   { "key lookup", create_key_lookup },
   { "labels", create_labels },
@@ -10011,15 +9779,17 @@ struct {
   { "resize grips", create_resize_grips },
   { "rotated label", create_rotated_label },
   { "rotated text", create_rotated_text },
-  { "rulers", create_rulers },
   { "saved position", create_saved_position },
   { "scrolled windows", create_scrolled_windows },
+  { "settings", create_settings },
   { "shapes", create_shapes },
   { "size groups", create_size_groups },
   { "snapshot", create_snapshot },
   { "spinbutton", create_spins },
   { "statusbar", create_statusbar },
+#if 0
   { "styles", create_styles },
+#endif
   { "test idle", create_idle_test },
   { "test mainloop", create_mainloop, TRUE },
   { "test scrolling", create_scroll_test },
@@ -10049,7 +9819,7 @@ create_main_window (void)
   int i;
 
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  gtk_widget_set_name (window, "main window");
+  gtk_widget_set_name (window, "main_window");
   gtk_window_move (GTK_WINDOW (window), 50, 20);
   gtk_window_set_default_size (GTK_WINDOW (window), -1, 400);
 
@@ -10068,7 +9838,7 @@ create_main_window (void)
                    G_CALLBACK (gtk_false),
                    NULL);
 
-  box1 = gtk_vbox_new (FALSE, 0);
+  box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
   gtk_container_add (GTK_CONTAINER (window), box1);
 
   if (gtk_micro_version > 0)
@@ -10094,9 +9864,9 @@ create_main_window (void)
                                   GTK_POLICY_AUTOMATIC);
   gtk_box_pack_start (GTK_BOX (box1), scrolled_window, TRUE, TRUE, 0);
 
-  box2 = gtk_vbox_new (FALSE, 0);
+  box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
   gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
-  gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window), box2);
+  gtk_container_add (GTK_CONTAINER (scrolled_window), box2);
   gtk_container_set_focus_vadjustment (GTK_CONTAINER (box2),
                                       gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (scrolled_window)));
   gtk_widget_show (box2);
@@ -10114,10 +9884,10 @@ create_main_window (void)
       gtk_box_pack_start (GTK_BOX (box2), button, TRUE, TRUE, 0);
     }
 
-  separator = gtk_hseparator_new ();
+  separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
   gtk_box_pack_start (GTK_BOX (box1), separator, FALSE, TRUE, 0);
 
-  box2 = gtk_vbox_new (FALSE, 10);
+  box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
   gtk_container_set_border_width (GTK_CONTAINER (box2), 10);
   gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, TRUE, 0);
 
@@ -10135,12 +9905,8 @@ create_main_window (void)
 static void
 test_init (void)
 {
-  if (g_file_test ("../gdk-pixbuf/libpixbufloader-pnm.la",
-                  G_FILE_TEST_EXISTS))
-    {
-      g_setenv ("GDK_PIXBUF_MODULE_FILE", "../gdk-pixbuf/loaders.cache", TRUE);
-      g_setenv ("GTK_IM_MODULE_FILE", "../modules/input/immodules.cache", TRUE);
-    }
+  if (g_file_test ("../modules/input/immodules.cache", G_FILE_TEST_EXISTS))
+    g_setenv ("GTK_IM_MODULE_FILE", "../modules/input/immodules.cache", TRUE);
 }
 
 static char *
@@ -10252,6 +10018,9 @@ usage (void)
 int
 main (int argc, char *argv[])
 {
+  GtkCssProvider *provider, *memory_provider;
+  GdkDisplay *display;
+  GdkScreen *screen;
   GtkBindingSet *binding_set;
   int i;
   gboolean done_benchmarks = FALSE;
@@ -10260,19 +10029,28 @@ main (int argc, char *argv[])
 
   test_init ();
 
+  g_set_application_name ("GTK+ Test Program");
+
+  gtk_init (&argc, &argv);
+
+  provider = gtk_css_provider_new ();
+
   /* Check to see if we are being run from the correct
    * directory.
    */
-  if (file_exists ("testgtkrc"))
-    gtk_rc_add_default_file ("testgtkrc");
-  else if (file_exists ("tests/testgtkrc"))
-    gtk_rc_add_default_file ("tests/testgtkrc");
+  if (file_exists ("testgtk.css"))
+    gtk_css_provider_load_from_path (provider, "testgtk.css", NULL);
+  else if (file_exists ("tests/testgtk.css"))
+    gtk_css_provider_load_from_path (provider, "tests/testgtk.css", NULL);
   else
-    g_warning ("Couldn't find file \"testgtkrc\".");
+    g_warning ("Couldn't find file \"testgtk.css\".");
 
-  g_set_application_name ("GTK+ Test Program");
+  display = gdk_display_get_default ();
+  screen = gdk_display_get_default_screen (display);
 
-  gtk_init (&argc, &argv);
+  gtk_style_context_add_provider_for_screen (screen, GTK_STYLE_PROVIDER (provider),
+                                             GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+  g_object_unref (provider);
 
   gtk_accelerator_set_default_mod_mask (GDK_SHIFT_MASK |
                                        GDK_CONTROL_MASK |
@@ -10332,17 +10110,17 @@ main (int argc, char *argv[])
                                "debug_msg",
                                1,
                                G_TYPE_STRING, "GtkWidgetClass <ctrl><release>9 test");
-  
-  /* We use gtk_rc_parse_string() here so we can make sure it works across theme
-   * changes
-   */
 
-  gtk_rc_parse_string ("style \"testgtk-version-label\" { "
-                      "   fg[NORMAL] = \"#ff0000\"\n"
-                      "   font = \"Sans 18\"\n"
-                      "}\n"
-                      "widget \"*.testgtk-version-label\" style \"testgtk-version-label\"");
-  
+  memory_provider = gtk_css_provider_new ();
+  gtk_css_provider_load_from_data (memory_provider,
+                                   "#testgtk-version-label {\n"
+                                   "  color: #f00;\n"
+                                   "  font: Sans 18;\n"
+                                   "}",
+                                   -1, NULL);
+  gtk_style_context_add_provider_for_screen (screen, GTK_STYLE_PROVIDER (memory_provider),
+                                             GTK_STYLE_PROVIDER_PRIORITY_APPLICATION + 1);
+
   create_main_window ();
 
   gtk_main ();