[gtk+/resolution-independence: 19/24] port all remaining widgets to RI



commit b2a5e870df420eb32d21aa9330885115882de191
Author: David Zeuthen <davidz redhat com>
Date:   Wed Aug 13 16:19:14 2008 -0400

    port all remaining widgets to RI
    
    This mostly consists of replacing hardcoded pixel values with usage of
    the GTK_SIZE_EM_ONE_TWELFTH macro.
    
    min/max for GtkDialog
    
    min/max for GtkMessageDialog
    
    fixed gtkdialog.c
    
    fixed gtkmessagedialog.c
    
    fix compile
---
 gtk/gtkaboutdialog.c          |   30 ++++++------
 gtk/gtkcolorbutton.c          |   25 +++++++++-
 gtk/gtkcolorsel.c             |   30 ++++++-----
 gtk/gtkcolorseldialog.c       |   10 ++--
 gtk/gtkdialog.c               |   70 ++++++++++++--------------
 gtk/gtkfilechooserbutton.c    |   21 +++++++-
 gtk/gtkfilechooserdefault.c   |   50 +++++++++++++------
 gtk/gtkfilechooserdialog.c    |    8 ++--
 gtk/gtkfilesel.c              |   34 ++++++------
 gtk/gtkfontbutton.c           |    4 +-
 gtk/gtkfontsel.c              |   40 ++++++++-------
 gtk/gtkinputdialog.c          |   47 +++++++++---------
 gtk/gtkmessagedialog.c        |   26 +++++-----
 gtk/gtkmountoperation.c       |   22 ++++----
 gtk/gtkpagesetupunixdialog.c  |   50 +++++++++---------
 gtk/gtkpathbar.c              |   21 +++++++-
 gtk/gtkprinteroptionwidget.c  |    8 ++--
 gtk/gtkprintunixdialog.c      |  110 +++++++++++++++++++++--------------------
 gtk/gtkrecentchooserdefault.c |    4 +-
 gtk/gtkrecentchooserdialog.c  |    8 ++--
 20 files changed, 342 insertions(+), 276 deletions(-)

diff --git a/gtk/gtkaboutdialog.c b/gtk/gtkaboutdialog.c
index 5b5dbab..d0b99a0 100644
--- a/gtk/gtkaboutdialog.c
+++ b/gtk/gtkaboutdialog.c
@@ -489,15 +489,15 @@ gtk_about_dialog_init (GtkAboutDialog *about)
   priv->wrap_license = FALSE;
 
   gtk_dialog_set_has_separator (dialog, FALSE);
-  gtk_container_set_border_width (GTK_CONTAINER (dialog), 5);
-  gtk_box_set_spacing (GTK_BOX (dialog->vbox), 2); /* 2 * 5 + 2 = 12 */
-  gtk_container_set_border_width (GTK_CONTAINER (dialog->action_area), 5);
+  gtk_container_set_border_width (GTK_CONTAINER (dialog), GTK_SIZE_ONE_TWELFTH_EM (5));
+  gtk_box_set_spacing (GTK_BOX (dialog->vbox), GTK_SIZE_ONE_TWELFTH_EM (2)); /* 2 * 5 + 2 = 12 */
+  gtk_container_set_border_width (GTK_CONTAINER (dialog->action_area), GTK_SIZE_ONE_TWELFTH_EM (5));
 
   /* Widgets */
   gtk_widget_push_composite_child ();
 
-  vbox = gtk_vbox_new (FALSE, 8);
-  gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
+  vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (8));
+  gtk_container_set_border_width (GTK_CONTAINER (vbox), GTK_SIZE_ONE_TWELFTH_EM (5));
   gtk_box_pack_start (GTK_BOX (dialog->vbox), vbox, TRUE, TRUE, 0);
 
   priv->logo_image = gtk_image_new ();
@@ -2129,12 +2129,12 @@ display_credits_dialog (GtkWidget *button,
 					NULL);
   credits_dialog = GTK_DIALOG (dialog);
   gtk_dialog_set_has_separator (credits_dialog, FALSE);
-  gtk_container_set_border_width (GTK_CONTAINER (credits_dialog), 5);
-  gtk_box_set_spacing (GTK_BOX (credits_dialog->vbox), 2); /* 2 * 5 + 2 = 12 */
-  gtk_container_set_border_width (GTK_CONTAINER (credits_dialog->action_area), 5);
+  gtk_container_set_border_width (GTK_CONTAINER (credits_dialog), GTK_SIZE_ONE_TWELFTH_EM (5));
+  gtk_box_set_spacing (GTK_BOX (credits_dialog->vbox), GTK_SIZE_ONE_TWELFTH_EM (2)); /* 2 * 5 + 2 = 12 */
+  gtk_container_set_border_width (GTK_CONTAINER (credits_dialog->action_area), GTK_SIZE_ONE_TWELFTH_EM (5));
 
   priv->credits_dialog = dialog;
-  gtk_window_set_default_size (GTK_WINDOW (dialog), 360, 260);
+  gtk_window_set_default_size (GTK_WINDOW (dialog), GTK_SIZE_ONE_TWELFTH_EM (360), GTK_SIZE_ONE_TWELFTH_EM (260));
   gtk_dialog_set_default_response (credits_dialog, GTK_RESPONSE_CANCEL);
 
   gtk_window_set_modal (GTK_WINDOW (dialog), 
@@ -2147,7 +2147,7 @@ display_credits_dialog (GtkWidget *button,
 		    &(priv->credits_dialog));
 
   notebook = gtk_notebook_new ();
-  gtk_container_set_border_width (GTK_CONTAINER (notebook), 5);
+  gtk_container_set_border_width (GTK_CONTAINER (notebook), GTK_SIZE_ONE_TWELFTH_EM (5));
   gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), notebook, TRUE, TRUE, 0);
 
   if (priv->authors != NULL) 
@@ -2206,12 +2206,12 @@ display_license_dialog (GtkWidget *button,
 					NULL);
   licence_dialog = GTK_DIALOG (dialog);
   gtk_dialog_set_has_separator (licence_dialog, FALSE);
-  gtk_container_set_border_width (GTK_CONTAINER (licence_dialog), 5);
-  gtk_box_set_spacing (GTK_BOX (licence_dialog->vbox), 2); /* 2 * 5 + 2 = 12 */
-  gtk_container_set_border_width (GTK_CONTAINER (licence_dialog->action_area), 5);
+  gtk_container_set_border_width (GTK_CONTAINER (licence_dialog), GTK_SIZE_ONE_TWELFTH_EM (5));
+  gtk_box_set_spacing (GTK_BOX (licence_dialog->vbox), GTK_SIZE_ONE_TWELFTH_EM (2)); /* 2 * 5 + 2 = 12 */
+  gtk_container_set_border_width (GTK_CONTAINER (licence_dialog->action_area), GTK_SIZE_ONE_TWELFTH_EM (5));
 
   priv->license_dialog = dialog;
-  gtk_window_set_default_size (GTK_WINDOW (dialog), 420, 320);
+  gtk_window_set_default_size (GTK_WINDOW (dialog), GTK_SIZE_ONE_TWELFTH_EM (420), GTK_SIZE_ONE_TWELFTH_EM (320));
   gtk_dialog_set_default_response (licence_dialog, GTK_RESPONSE_CANCEL);
 
   gtk_window_set_modal (GTK_WINDOW (dialog), 
@@ -2224,7 +2224,7 @@ display_license_dialog (GtkWidget *button,
 		    &(priv->license_dialog));
 
   sw = gtk_scrolled_window_new (NULL, NULL);
-  gtk_container_set_border_width (GTK_CONTAINER (sw), 5);
+  gtk_container_set_border_width (GTK_CONTAINER (sw), GTK_SIZE_ONE_TWELFTH_EM (5));
   gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw),
 				       GTK_SHADOW_IN);
   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
diff --git a/gtk/gtkcolorbutton.c b/gtk/gtkcolorbutton.c
index 081e687..474c0ae 100644
--- a/gtk/gtkcolorbutton.c
+++ b/gtk/gtkcolorbutton.c
@@ -129,6 +129,7 @@ static void gtk_color_button_drag_data_received (GtkWidget        *widget,
 						 guint32           time,
 						 GtkColorButton   *color_button);
 
+static void gtk_color_button_unit_changed (GtkWidget *widget);
 
 static guint color_button_signals[LAST_SIGNAL] = { 0 };
 
@@ -154,6 +155,7 @@ gtk_color_button_class_init (GtkColorButtonClass *klass)
   widget_class->realize = gtk_color_button_realize;
   widget_class->unrealize = gtk_color_button_unrealize;
   widget_class->style_set = gtk_color_button_style_set;
+  widget_class->unit_changed = gtk_color_button_unit_changed;
   button_class->clicked = gtk_color_button_clicked;
   klass->color_set = NULL;
 
@@ -534,7 +536,7 @@ gtk_color_button_init (GtkColorButton *color_button)
   gtk_widget_push_composite_child ();
 
   alignment = gtk_alignment_new (0.5, 0.5, 0.5, 1.0);
-  gtk_container_set_border_width (GTK_CONTAINER (alignment), 1);
+  gtk_container_set_border_width (GTK_CONTAINER (alignment), GTK_SIZE_ONE_TWELFTH_EM (1));
   gtk_container_add (GTK_CONTAINER (color_button), alignment);
   gtk_widget_show (alignment);
 
@@ -550,7 +552,9 @@ gtk_color_button_init (GtkColorButton *color_button)
   pango_layout_get_pixel_extents (layout, NULL, &rect);
   g_object_unref (layout);
 
-  gtk_widget_set_size_request (color_button->priv->draw_area, rect.width - 2, rect.height - 2);
+  gtk_widget_set_size_request (color_button->priv->draw_area,
+                               GTK_SIZE_ONE_TWELFTH_EM (rect.width - 2),
+                               GTK_SIZE_ONE_TWELFTH_EM (rect.height - 2));
   g_signal_connect (color_button->priv->draw_area, "expose-event",
                     G_CALLBACK (expose_event), color_button);
   gtk_container_add (GTK_CONTAINER (frame), color_button->priv->draw_area);
@@ -993,5 +997,22 @@ gtk_color_button_get_property (GObject    *object,
     }
 }
 
+static void
+gtk_color_button_unit_changed (GtkWidget *widget)
+{
+  GtkColorButton *color_button = GTK_COLOR_BUTTON (widget);
+
+  if (GTK_WIDGET_REALIZED (widget))
+    {
+      if (color_button->priv->pixbuf != NULL)
+	g_object_unref (color_button->priv->pixbuf);
+      color_button->priv->pixbuf = NULL;
+    }
+
+  /* must chain up */
+  if (GTK_WIDGET_CLASS (gtk_color_button_parent_class)->unit_changed != NULL)
+    GTK_WIDGET_CLASS (gtk_color_button_parent_class)->unit_changed (widget);
+}
+
 #define __GTK_COLOR_BUTTON_C__
 #include "gtkaliasdef.c"
diff --git a/gtk/gtkcolorsel.c b/gtk/gtkcolorsel.c
index a23ff5e..06e8f1e 100644
--- a/gtk/gtkcolorsel.c
+++ b/gtk/gtkcolorsel.c
@@ -65,8 +65,8 @@
 #define GTK_CUSTOM_PALETTE_WIDTH 10
 #define GTK_CUSTOM_PALETTE_HEIGHT 2
 
-#define CUSTOM_PALETTE_ENTRY_WIDTH   20
-#define CUSTOM_PALETTE_ENTRY_HEIGHT  20
+#define CUSTOM_PALETTE_ENTRY_WIDTH   GTK_SIZE_ONE_TWELFTH_EM(20)
+#define CUSTOM_PALETTE_ENTRY_HEIGHT  GTK_SIZE_ONE_TWELFTH_EM(20)
 
 /* The cursor for the dropper */
 #define DROPPER_WIDTH 17
@@ -340,24 +340,26 @@ gtk_color_selection_init (GtkColorSelection *colorsel)
   priv->default_set = FALSE;
   priv->default_alpha_set = FALSE;
   
-  top_hbox = gtk_hbox_new (FALSE, 12);
+  top_hbox = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (12));
   gtk_box_pack_start (GTK_BOX (colorsel), top_hbox, FALSE, FALSE, 0);
   
-  vbox = gtk_vbox_new (FALSE, 6);
+  vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (6));
   priv->triangle_colorsel = gtk_hsv_new ();
   g_signal_connect (priv->triangle_colorsel, "changed",
                     G_CALLBACK (hsv_changed), colorsel);
-  gtk_hsv_set_metrics (GTK_HSV (priv->triangle_colorsel), 174, 15);
+  gtk_hsv_set_metrics (GTK_HSV (priv->triangle_colorsel),
+                       GTK_SIZE_ONE_TWELFTH_EM (174),
+                       GTK_SIZE_ONE_TWELFTH_EM (15));
   gtk_box_pack_start (GTK_BOX (top_hbox), vbox, FALSE, FALSE, 0);
   gtk_box_pack_start (GTK_BOX (vbox), priv->triangle_colorsel, FALSE, FALSE, 0);
   gtk_widget_set_tooltip_text (priv->triangle_colorsel,
                         _("Select the color you want from the outer ring. Select the darkness or lightness of that color using the inner triangle."));
   
-  hbox = gtk_hbox_new (FALSE, 6);
+  hbox = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (6));
   gtk_box_pack_end (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
   
   frame = gtk_frame_new (NULL);
-  gtk_widget_set_size_request (frame, -1, 30);
+  gtk_widget_set_size_request (frame, -1, GTK_SIZE_ONE_TWELFTH_EM (30));
   gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
   color_sample_new (colorsel);
   gtk_container_add (GTK_CONTAINER (frame), priv->sample_area);
@@ -377,12 +379,12 @@ gtk_color_selection_init (GtkColorSelection *colorsel)
   gtk_widget_set_tooltip_text (button,
                         _("Click the eyedropper, then click a color anywhere on your screen to select that color."));
   
-  top_right_vbox = gtk_vbox_new (FALSE, 6);
+  top_right_vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (6));
   gtk_box_pack_start (GTK_BOX (top_hbox), top_right_vbox, FALSE, FALSE, 0);
   table = gtk_table_new (8, 6, FALSE);
   gtk_box_pack_start (GTK_BOX (top_right_vbox), table, FALSE, FALSE, 0);
-  gtk_table_set_row_spacings (GTK_TABLE (table), 6);
-  gtk_table_set_col_spacings (GTK_TABLE (table), 12);
+  gtk_table_set_row_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (6));
+  gtk_table_set_col_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (12));
   
   make_label_spinbutton (colorsel, &priv->hue_spinbutton, _("_Hue:"), table, 0, 0, COLORSEL_HUE,
                          _("Position on the color wheel."));
@@ -417,7 +419,7 @@ gtk_color_selection_init (GtkColorSelection *colorsel)
   priv->opacity_entry = gtk_entry_new (); 
   gtk_widget_set_tooltip_text (priv->opacity_entry,
                         _("Transparency of the color."));
-  gtk_widget_set_size_request (priv->opacity_entry, 40, -1); 
+  gtk_widget_set_size_request (priv->opacity_entry, gtk_widget_size_to_pixel (colorsel, GTK_SIZE_ONE_TWELFTH_EM (40)), -1); 
 
   g_signal_connect (priv->opacity_entry, "activate",
                     G_CALLBACK (opacity_entry_changed), colorsel);
@@ -456,8 +458,8 @@ gtk_color_selection_init (GtkColorSelection *colorsel)
 
   /* Set up the palette */
   table = gtk_table_new (GTK_CUSTOM_PALETTE_HEIGHT, GTK_CUSTOM_PALETTE_WIDTH, TRUE);
-  gtk_table_set_row_spacings (GTK_TABLE (table), 1);
-  gtk_table_set_col_spacings (GTK_TABLE (table), 1);
+  gtk_table_set_row_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (1));
+  gtk_table_set_col_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (1));
   for (i = 0; i < GTK_CUSTOM_PALETTE_WIDTH; i++)
     {
       for (j = 0; j < GTK_CUSTOM_PALETTE_HEIGHT; j++)
@@ -466,7 +468,7 @@ gtk_color_selection_init (GtkColorSelection *colorsel)
 	}
     }
   set_selected_palette (colorsel, 0, 0);
-  priv->palette_frame = gtk_vbox_new (FALSE, 6);
+  priv->palette_frame = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (6));
   label = gtk_label_new_with_mnemonic (_("_Palette:"));
   gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
   gtk_box_pack_start (GTK_BOX (priv->palette_frame), label, FALSE, FALSE, 0);
diff --git a/gtk/gtkcolorseldialog.c b/gtk/gtkcolorseldialog.c
index 977cb15..06e4ed5 100644
--- a/gtk/gtkcolorseldialog.c
+++ b/gtk/gtkcolorseldialog.c
@@ -132,13 +132,13 @@ gtk_color_selection_dialog_init (GtkColorSelectionDialog *colorseldiag)
   GtkDialog *dialog = GTK_DIALOG (colorseldiag);
 
   gtk_dialog_set_has_separator (dialog, FALSE);
-  gtk_container_set_border_width (GTK_CONTAINER (dialog), 5);
-  gtk_box_set_spacing (GTK_BOX (dialog->vbox), 2); /* 2 * 5 + 2 = 12 */
-  gtk_container_set_border_width (GTK_CONTAINER (dialog->action_area), 5);
-  gtk_box_set_spacing (GTK_BOX (dialog->action_area), 6);
+  gtk_container_set_border_width (GTK_CONTAINER (dialog), GTK_SIZE_ONE_TWELFTH_EM (5));
+  gtk_box_set_spacing (GTK_BOX (dialog->vbox), GTK_SIZE_ONE_TWELFTH_EM (2)); /* 2 * 5 + 2 = 12 */
+  gtk_container_set_border_width (GTK_CONTAINER (dialog->action_area), GTK_SIZE_ONE_TWELFTH_EM (5));
+  gtk_box_set_spacing (GTK_BOX (dialog->action_area), GTK_SIZE_ONE_TWELFTH_EM (6));
 
   colorseldiag->colorsel = gtk_color_selection_new ();
-  gtk_container_set_border_width (GTK_CONTAINER (colorseldiag->colorsel), 5);
+  gtk_container_set_border_width (GTK_CONTAINER (colorseldiag->colorsel), GTK_SIZE_ONE_TWELFTH_EM (5));
   gtk_color_selection_set_has_palette (GTK_COLOR_SELECTION(colorseldiag->colorsel), FALSE); 
   gtk_color_selection_set_has_opacity_control (GTK_COLOR_SELECTION(colorseldiag->colorsel), FALSE);
   gtk_container_add (GTK_CONTAINER (GTK_DIALOG (colorseldiag)->vbox), colorseldiag->colorsel);
diff --git a/gtk/gtkdialog.c b/gtk/gtkdialog.c
index 05be93f..fb794a4 100644
--- a/gtk/gtkdialog.c
+++ b/gtk/gtkdialog.c
@@ -187,13 +187,11 @@ gtk_dialog_class_init (GtkDialogClass *class)
 		  G_TYPE_NONE, 0);
   
   gtk_widget_class_install_style_property (widget_class,
-					   g_param_spec_int ("content-area-border",
-                                                             P_("Content area border"),
-                                                             P_("Width of border around the main dialog area"),
-                                                             0,
-                                                             G_MAXINT,
-                                                             2,
-                                                             GTK_PARAM_READABLE));
+					   gtk_param_spec_size ("content-area-border",
+                                                                P_("Content area border"),
+                                                                P_("Width of border around the main dialog area"),
+                                                                0, G_MAXINT, GTK_SIZE_ONE_TWELFTH_EM (2),
+                                                                GTK_PARAM_READABLE));
   /**
    * GtkDialog:content-area-spacing:
    *
@@ -205,30 +203,24 @@ gtk_dialog_class_init (GtkDialogClass *class)
    * Since: 2.16
    */
   gtk_widget_class_install_style_property (widget_class,
-                                           g_param_spec_int ("content-area-spacing",
-                                                             P_("Content area spacing"),
-                                                             P_("Spacing between elements of the main dialog area"),
-                                                             0,
-                                                             G_MAXINT,
-                                                             0,
-                                                             GTK_PARAM_READABLE));
+                                           gtk_param_spec_size ("content-area-spacing",
+                                                                P_("Content area spacing"),
+                                                                P_("Spacing between elements of the main dialog area"),
+                                                                0, G_MAXINT, 0,
+                                                                GTK_PARAM_READABLE));
   gtk_widget_class_install_style_property (widget_class,
-                                           g_param_spec_int ("button-spacing",
-                                                             P_("Button spacing"),
-                                                             P_("Spacing between buttons"),
-                                                             0,
-                                                             G_MAXINT,
-                                                             6,
-                                                             GTK_PARAM_READABLE));
+                                           gtk_param_spec_size ("button-spacing",
+                                                                P_("Button spacing"),
+                                                                P_("Spacing between buttons"),
+                                                                0, G_MAXINT, GTK_SIZE_ONE_TWELFTH_EM (6),
+                                                                GTK_PARAM_READABLE));
   
   gtk_widget_class_install_style_property (widget_class,
-                                           g_param_spec_int ("action-area-border",
-                                                             P_("Action area border"),
-                                                             P_("Width of border around the button area at the bottom of the dialog"),
-                                                             0,
-                                                             G_MAXINT,
-                                                             5,
-                                                             GTK_PARAM_READABLE));
+                                           gtk_param_spec_size ("action-area-border",
+                                                                P_("Action area border"),
+                                                                P_("Width of border around the button area at the bottom of the dialog"),
+                                                                0, G_MAXINT, GTK_SIZE_ONE_TWELFTH_EM (5),
+                                                                GTK_PARAM_READABLE));
 
   binding_set = gtk_binding_set_by_class (class);
   
@@ -238,17 +230,17 @@ gtk_dialog_class_init (GtkDialogClass *class)
 static void
 update_spacings (GtkDialog *dialog)
 {
-  gint content_area_border;
-  gint content_area_spacing;
-  gint button_spacing;
-  gint action_area_border;
-
-  gtk_widget_style_get (GTK_WIDGET (dialog),
-                        "content-area-border", &content_area_border,
-                        "content-area-spacing", &content_area_spacing,
-                        "button-spacing", &button_spacing,
-                        "action-area-border", &action_area_border,
-                        NULL);
+  GtkSize content_area_border;
+  GtkSize content_area_spacing;
+  GtkSize button_spacing;
+  GtkSize action_area_border;
+
+  gtk_widget_style_get_unit (GTK_WIDGET (dialog),
+                             "content-area-border", &content_area_border,
+                             "content-area-spacing", &content_area_spacing,
+                             "button-spacing", &button_spacing,
+                             "action-area-border", &action_area_border,
+                             NULL);
 
   gtk_container_set_border_width (GTK_CONTAINER (dialog->vbox),
                                   content_area_border);
diff --git a/gtk/gtkfilechooserbutton.c b/gtk/gtkfilechooserbutton.c
index 3b95ade..d60cb93 100644
--- a/gtk/gtkfilechooserbutton.c
+++ b/gtk/gtkfilechooserbutton.c
@@ -232,6 +232,7 @@ static void     gtk_file_chooser_button_style_set          (GtkWidget        *wi
 							    GtkStyle         *old_style);
 static void     gtk_file_chooser_button_screen_changed     (GtkWidget        *widget,
 							    GdkScreen        *old_screen);
+static void     gtk_file_chooser_button_unit_changed       (GtkWidget        *widget);
 
 /* Utility Functions */
 static GtkIconTheme *get_icon_theme               (GtkWidget            *widget);
@@ -342,6 +343,7 @@ gtk_file_chooser_button_class_init (GtkFileChooserButtonClass * class)
   widget_class->map = gtk_file_chooser_button_map;
   widget_class->style_set = gtk_file_chooser_button_style_set;
   widget_class->screen_changed = gtk_file_chooser_button_screen_changed;
+  widget_class->unit_changed = gtk_file_chooser_button_unit_changed;
   widget_class->mnemonic_activate = gtk_file_chooser_button_mnemonic_activate;
 
   /**
@@ -449,7 +451,7 @@ gtk_file_chooser_button_init (GtkFileChooserButton *button)
   gtk_container_add (GTK_CONTAINER (button), priv->button);
   gtk_widget_show (priv->button);
 
-  box = gtk_hbox_new (FALSE, 4);
+  box = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (4));
   gtk_container_add (GTK_CONTAINER (priv->button), box);
   gtk_widget_show (box);
 
@@ -1269,8 +1271,10 @@ change_icon_theme (GtkFileChooserButton *button)
 
   settings = gtk_settings_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (button)));
 
-  if (gtk_icon_size_lookup_for_settings (settings, GTK_ICON_SIZE_MENU,
-					 &width, &height))
+  if (gtk_icon_size_lookup_for_settings_for_monitor (settings,
+						     gtk_widget_get_monitor_num (GTK_WIDGET (button)),
+						     GTK_ICON_SIZE_MENU,
+						     &width, &height))
     priv->icon_size = MAX (width, height);
   else
     priv->icon_size = FALLBACK_ICON_SIZE;
@@ -2916,5 +2920,16 @@ gtk_file_chooser_button_get_focus_on_click (GtkFileChooserButton *button)
   return button->priv->focus_on_click;
 }
 
+static void
+gtk_file_chooser_button_unit_changed (GtkWidget *widget)
+{
+  /* must chain up */
+  if (GTK_WIDGET_CLASS (gtk_file_chooser_button_parent_class)->unit_changed != NULL)
+    GTK_WIDGET_CLASS (gtk_file_chooser_button_parent_class)->unit_changed (widget);
+
+  if (gtk_widget_has_screen (widget))
+    change_icon_theme (GTK_FILE_CHOOSER_BUTTON (widget));
+}
+
 #define __GTK_FILE_CHOOSER_BUTTON_C__
 #include "gtkaliasdef.c"
diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c
index b70af42..ef2e23a 100644
--- a/gtk/gtkfilechooserdefault.c
+++ b/gtk/gtkfilechooserdefault.c
@@ -254,7 +254,7 @@ typedef enum {
 /* Icon size for if we can't get it from the theme */
 #define FALLBACK_ICON_SIZE 16
 
-#define PREVIEW_HBOX_SPACING 12
+#define PREVIEW_HBOX_SPACING GTK_SIZE_ONE_TWELFTH_EM(12)
 #define NUM_LINES 45
 #define NUM_CHARS 60
 
@@ -284,6 +284,7 @@ static void     gtk_file_chooser_default_style_set      (GtkWidget             *
 							 GtkStyle              *previous_style);
 static void     gtk_file_chooser_default_screen_changed (GtkWidget             *widget,
 							 GdkScreen             *previous_screen);
+static void     gtk_file_chooser_default_unit_changed   (GtkWidget             *widget);
 static void     gtk_file_chooser_default_size_allocate  (GtkWidget             *widget,
 							 GtkAllocation         *allocation);
 
@@ -573,6 +574,7 @@ _gtk_file_chooser_default_class_init (GtkFileChooserDefaultClass *class)
   widget_class->style_set = gtk_file_chooser_default_style_set;
   widget_class->screen_changed = gtk_file_chooser_default_screen_changed;
   widget_class->size_allocate = gtk_file_chooser_default_size_allocate;
+  widget_class->unit_changed = gtk_file_chooser_default_unit_changed;
 
   signals[LOCATION_POPUP] =
     g_signal_new_class_handler (I_("location-popup"),
@@ -806,7 +808,7 @@ _gtk_file_chooser_default_init (GtkFileChooserDefault *impl)
   impl->operation_mode = OPERATION_MODE_BROWSE;
   impl->recent_manager = gtk_recent_manager_get_default ();
 
-  gtk_box_set_spacing (GTK_BOX (impl), 12);
+  gtk_box_set_spacing (GTK_BOX (impl), GTK_SIZE_ONE_TWELFTH_EM (12));
 
   set_file_system_backend (impl);
 
@@ -3987,7 +3989,7 @@ shortcuts_pane_create (GtkFileChooserDefault *impl,
   GtkWidget *hbox;
   GtkWidget *widget;
 
-  vbox = gtk_vbox_new (FALSE, 6);
+  vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (6));
   gtk_widget_show (vbox);
 
   /* Shortcuts tree */
@@ -3997,7 +3999,7 @@ shortcuts_pane_create (GtkFileChooserDefault *impl,
 
   /* Box for buttons */
 
-  hbox = gtk_hbox_new (TRUE, 6);
+  hbox = gtk_hbox_new (TRUE, GTK_SIZE_ONE_TWELFTH_EM (6));
   gtk_size_group_add_widget (size_group, hbox);
   gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
   gtk_widget_show (hbox);
@@ -4708,7 +4710,7 @@ file_pane_create (GtkFileChooserDefault *impl,
   GtkWidget *hbox;
   GtkWidget *widget;
 
-  vbox = gtk_vbox_new (FALSE, 6);
+  vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (6));
   gtk_widget_show (vbox);
 
   /* Box for lists and preview */
@@ -4724,13 +4726,13 @@ file_pane_create (GtkFileChooserDefault *impl,
 
   /* Preview */
 
-  impl->preview_box = gtk_vbox_new (FALSE, 12);
+  impl->preview_box = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (12));
   gtk_box_pack_start (GTK_BOX (hbox), impl->preview_box, FALSE, FALSE, 0);
   /* Don't show preview box initially */
 
   /* Filter combo */
 
-  impl->filter_combo_hbox = gtk_hbox_new (FALSE, 12);
+  impl->filter_combo_hbox = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (12));
 
   widget = filter_create (impl);
 
@@ -4882,13 +4884,13 @@ save_widgets_create (GtkFileChooserDefault *impl)
 
   location_switch_to_path_bar (impl);
 
-  vbox = gtk_vbox_new (FALSE, 12);
+  vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (12));
 
   table = gtk_table_new (2, 2, FALSE);
   gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, FALSE, 0);
   gtk_widget_show (table);
-  gtk_table_set_row_spacings (GTK_TABLE (table), 12);
-  gtk_table_set_col_spacings (GTK_TABLE (table), 12);
+  gtk_table_set_row_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (12));
+  gtk_table_set_col_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (12));
 
   /* Label */
 
@@ -5223,10 +5225,10 @@ browse_widgets_create (GtkFileChooserDefault *impl)
 
   /* size group is used by the [+][-] buttons and the filter combo */
   size_group = gtk_size_group_new (GTK_SIZE_GROUP_VERTICAL);
-  vbox = gtk_vbox_new (FALSE, 12);
+  vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (12));
 
   /* Location widgets */
-  hbox = gtk_hbox_new (FALSE, 12);
+  hbox = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (12));
   gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
   gtk_widget_show (hbox);
   impl->browse_path_bar_hbox = hbox;
@@ -5249,7 +5251,7 @@ browse_widgets_create (GtkFileChooserDefault *impl)
 
   /* Box for the location label and entry */
 
-  impl->location_entry_box = gtk_hbox_new (FALSE, 12);
+  impl->location_entry_box = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (12));
   gtk_box_pack_start (GTK_BOX (vbox), impl->location_entry_box, FALSE, FALSE, 0);
 
   impl->location_label = gtk_label_new_with_mnemonic (_("_Location:"));
@@ -5850,7 +5852,10 @@ change_icon_theme (GtkFileChooserDefault *impl)
 
   settings = gtk_settings_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (impl)));
 
-  if (gtk_icon_size_lookup_for_settings (settings, GTK_ICON_SIZE_MENU, &width, &height))
+  if (gtk_icon_size_lookup_for_settings_for_monitor (settings,
+                                                     gtk_widget_get_monitor_num (GTK_WIDGET (impl)),
+                                                     GTK_ICON_SIZE_MENU,
+                                                     &width, &height))
     impl->icon_size = MAX (width, height);
   else
     impl->icon_size = FALLBACK_ICON_SIZE;
@@ -7935,6 +7940,8 @@ gtk_file_chooser_default_list_shortcut_folders (GtkFileChooser *chooser)
   return g_slist_reverse (list);
 }
 
+/* RI TODO: find_good_size_from_style() probably needs to be removed; just use em's instead */
+
 /* Guesses a size based upon font sizes */
 static void
 find_good_size_from_style (GtkWidget *widget,
@@ -8001,7 +8008,7 @@ gtk_file_chooser_default_get_default_size (GtkFileChooserEmbed *chooser_embed,
 	  GTK_WIDGET_VISIBLE (impl->preview_widget))
 	{
 	  gtk_widget_size_request (impl->preview_box, &req);
-	  *default_width += PREVIEW_HBOX_SPACING + req.width;
+	  *default_width += gtk_widget_size_to_pixel (impl, PREVIEW_HBOX_SPACING) + req.width;
 	}
 
       if (impl->extra_widget &&
@@ -9389,7 +9396,7 @@ search_setup_widgets (GtkFileChooserDefault *impl)
 {
   GtkWidget *label;
 
-  impl->search_hbox = gtk_hbox_new (FALSE, 12);
+  impl->search_hbox = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (12));
 
   /* Label */
 
@@ -11741,3 +11748,14 @@ search_model_sort_new (GtkFileChooserDefault *impl,
 
   return GTK_TREE_MODEL (model);
 }
+
+static void
+gtk_file_chooser_default_unit_changed (GtkWidget *widget)
+{
+  /* must chain up */
+  if (GTK_WIDGET_CLASS (_gtk_file_chooser_default_parent_class)->unit_changed != NULL)
+    GTK_WIDGET_CLASS (_gtk_file_chooser_default_parent_class)->unit_changed (widget);
+
+  if (gtk_widget_has_screen (widget))
+    change_icon_theme (GTK_FILE_CHOOSER_DEFAULT (widget));
+}
diff --git a/gtk/gtkfilechooserdialog.c b/gtk/gtkfilechooserdialog.c
index cfa836d..e87ea93 100644
--- a/gtk/gtkfilechooserdialog.c
+++ b/gtk/gtkfilechooserdialog.c
@@ -90,9 +90,9 @@ gtk_file_chooser_dialog_init (GtkFileChooserDialog *dialog)
   dialog->priv->response_requested = FALSE;
 
   gtk_dialog_set_has_separator (fc_dialog, FALSE);
-  gtk_container_set_border_width (GTK_CONTAINER (fc_dialog), 5);
-  gtk_box_set_spacing (GTK_BOX (fc_dialog->vbox), 2); /* 2 * 5 + 2 = 12 */
-  gtk_container_set_border_width (GTK_CONTAINER (fc_dialog->action_area), 5);
+  gtk_container_set_border_width (GTK_CONTAINER (fc_dialog), GTK_SIZE_ONE_TWELFTH_EM (5));
+  gtk_box_set_spacing (GTK_BOX (fc_dialog->vbox), GTK_SIZE_ONE_TWELFTH_EM (2)); /* 2 * 5 + 2 = 12 */
+  gtk_container_set_border_width (GTK_CONTAINER (fc_dialog->action_area), GTK_SIZE_ONE_TWELFTH_EM (5));
 
   /* We do a signal connection here rather than overriding the method in
    * class_init because GtkDialog::response is a RUN_LAST signal.  We want *our*
@@ -278,7 +278,7 @@ gtk_file_chooser_dialog_constructor (GType                  type,
   g_signal_connect (priv->widget, "response-requested",
 		    G_CALLBACK (file_chooser_widget_response_requested), object);
 
-  gtk_container_set_border_width (GTK_CONTAINER (priv->widget), 5);
+  gtk_container_set_border_width (GTK_CONTAINER (priv->widget), GTK_SIZE_ONE_TWELFTH_EM (5));
   gtk_box_pack_start (GTK_BOX (GTK_DIALOG (object)->vbox), priv->widget, TRUE, TRUE, 0);
 
   gtk_widget_show (priv->widget);
diff --git a/gtk/gtkfilesel.c b/gtk/gtkfilesel.c
index 0aa9f17..5058aa8 100644
--- a/gtk/gtkfilesel.c
+++ b/gtk/gtkfilesel.c
@@ -97,10 +97,10 @@
 #include <sys/cygwin.h>		/* For cygwin_conv_to_posix_path */
 #endif
 
-#define DIR_LIST_WIDTH   180
-#define DIR_LIST_HEIGHT  180
-#define FILE_LIST_WIDTH  180
-#define FILE_LIST_HEIGHT 180
+#define DIR_LIST_WIDTH   GTK_SIZE_ONE_TWELFTH_EM(180)
+#define DIR_LIST_HEIGHT  GTK_SIZE_ONE_TWELFTH_EM(180)
+#define FILE_LIST_WIDTH  GTK_SIZE_ONE_TWELFTH_EM(180)
+#define FILE_LIST_HEIGHT GTK_SIZE_ONE_TWELFTH_EM(180)
 
 /* The Hurd doesn't define either PATH_MAX or MAXPATHLEN, so we put this
  * in here, since the rest of the code in the file does require some
@@ -638,7 +638,7 @@ gtk_file_selection_init (GtkFileSelection *filesel)
 
   /* The dialog-sized vertical box  */
   filesel->main_vbox = dialog->vbox;
-  gtk_container_set_border_width (GTK_CONTAINER (filesel), 10);
+  gtk_container_set_border_width (GTK_CONTAINER (filesel), GTK_SIZE_ONE_TWELFTH_EM (10));
 
   /* The horizontal box containing create, rename etc. buttons */
   filesel->button_area = gtk_hbutton_box_new ();
@@ -651,7 +651,7 @@ gtk_file_selection_init (GtkFileSelection *filesel)
   gtk_file_selection_show_fileop_buttons (filesel);
 
   /* hbox for pulldown menu */
-  pulldown_hbox = gtk_hbox_new (TRUE, 5);
+  pulldown_hbox = gtk_hbox_new (TRUE, GTK_SIZE_ONE_TWELFTH_EM (5));
   gtk_box_pack_start (GTK_BOX (filesel->main_vbox), pulldown_hbox, FALSE, FALSE, 0);
   gtk_widget_show (pulldown_hbox);
   
@@ -664,11 +664,11 @@ gtk_file_selection_init (GtkFileSelection *filesel)
   /*  The horizontal box containing the directory and file listboxes  */
 
   spacer = gtk_hbox_new (FALSE, 0);
-  gtk_widget_set_size_request (spacer, -1, 5);
+  gtk_widget_set_size_request (spacer, -1, GTK_SIZE_ONE_TWELFTH_EM (5));
   gtk_box_pack_start (GTK_BOX (filesel->main_vbox), spacer, FALSE, FALSE, 0);
   gtk_widget_show (spacer);
   
-  list_hbox = gtk_hbox_new (FALSE, 5);
+  list_hbox = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (5));
   gtk_box_pack_start (GTK_BOX (filesel->main_vbox), list_hbox, TRUE, TRUE, 0);
   gtk_widget_show (list_hbox);
   if (WANT_HPANED)
@@ -681,7 +681,7 @@ gtk_file_selection_init (GtkFileSelection *filesel)
     list_container = list_hbox;
 
   spacer = gtk_hbox_new (FALSE, 0);
-  gtk_widget_set_size_request (spacer, -1, 5);
+  gtk_widget_set_size_request (spacer, -1, GTK_SIZE_ONE_TWELFTH_EM (5));
   gtk_box_pack_start (GTK_BOX (filesel->main_vbox), spacer, FALSE, FALSE, 0);  
   gtk_widget_show (spacer);
   
@@ -782,8 +782,8 @@ gtk_file_selection_init (GtkFileSelection *filesel)
   gtk_widget_grab_default (filesel->ok_button);
 
   /*  The selection entry widget  */
-  entry_vbox = gtk_vbox_new (FALSE, 2);
-  gtk_box_pack_end (GTK_BOX (filesel->main_vbox), entry_vbox, FALSE, FALSE, 2);
+  entry_vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (2));
+  gtk_box_pack_end (GTK_BOX (filesel->main_vbox), entry_vbox, FALSE, FALSE, GTK_SIZE_ONE_TWELFTH_EM (2));
   gtk_widget_show (entry_vbox);
   
   eventbox = gtk_event_box_new ();
@@ -1399,21 +1399,21 @@ gtk_file_selection_create_dir (GtkWidget *widget,
       gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
 
   vbox = gtk_vbox_new (FALSE, 0);
-  gtk_container_set_border_width (GTK_CONTAINER (vbox), 8);
+  gtk_container_set_border_width (GTK_CONTAINER (vbox), GTK_SIZE_ONE_TWELFTH_EM (8));
   gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), vbox,
 		     FALSE, FALSE, 0);
   gtk_widget_show( vbox);
   
   label = gtk_label_new_with_mnemonic (_("_Folder name:"));
   gtk_misc_set_alignment(GTK_MISC (label), 0.0, 0.0);
-  gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 5);
+  gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, GTK_SIZE_ONE_TWELFTH_EM (5));
   gtk_widget_show (label);
 
   /*  The directory entry widget  */
   fs->fileop_entry = gtk_entry_new ();
   gtk_label_set_mnemonic_widget (GTK_LABEL (label), fs->fileop_entry);
   gtk_box_pack_start (GTK_BOX (vbox), fs->fileop_entry, 
-		      TRUE, TRUE, 5);
+		      TRUE, TRUE, GTK_SIZE_ONE_TWELFTH_EM (5));
   GTK_WIDGET_SET_FLAGS (fs->fileop_entry, GTK_CAN_DEFAULT);
   gtk_entry_set_activates_default (GTK_ENTRY (fs->fileop_entry), TRUE); 
   gtk_widget_show (fs->fileop_entry);
@@ -1659,7 +1659,7 @@ gtk_file_selection_rename_file (GtkWidget *widget,
     gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
   
   vbox = gtk_vbox_new (FALSE, 0);
-  gtk_container_set_border_width (GTK_CONTAINER (vbox), 8);
+  gtk_container_set_border_width (GTK_CONTAINER (vbox), GTK_SIZE_ONE_TWELFTH_EM (8));
   gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), vbox,
 		      FALSE, FALSE, 0);
   gtk_widget_show(vbox);
@@ -1667,14 +1667,14 @@ gtk_file_selection_rename_file (GtkWidget *widget,
   buf = g_strdup_printf (_("Rename file \"%s\" to:"), fs->fileop_file);
   label = gtk_label_new (buf);
   gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.0);
-  gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 5);
+  gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, GTK_SIZE_ONE_TWELFTH_EM (5));
   gtk_widget_show (label);
   g_free (buf);
 
   /* New filename entry */
   fs->fileop_entry = gtk_entry_new ();
   gtk_box_pack_start (GTK_BOX (vbox), fs->fileop_entry, 
-		      TRUE, TRUE, 5);
+		      TRUE, TRUE, GTK_SIZE_ONE_TWELFTH_EM (5));
   GTK_WIDGET_SET_FLAGS (fs->fileop_entry, GTK_CAN_DEFAULT);
   gtk_entry_set_activates_default (GTK_ENTRY (fs->fileop_entry), TRUE); 
   gtk_widget_show (fs->fileop_entry);
diff --git a/gtk/gtkfontbutton.c b/gtk/gtkfontbutton.c
index 3628602..8c6e556 100644
--- a/gtk/gtkfontbutton.c
+++ b/gtk/gtkfontbutton.c
@@ -785,13 +785,13 @@ gtk_font_button_create_inside (GtkFontButton *font_button)
   font_button->priv->font_label = gtk_label_new (_("Font"));
   
   gtk_label_set_justify (GTK_LABEL (font_button->priv->font_label), GTK_JUSTIFY_LEFT);
-  gtk_box_pack_start (GTK_BOX (widget), font_button->priv->font_label, TRUE, TRUE, 5);
+  gtk_box_pack_start (GTK_BOX (widget), font_button->priv->font_label, TRUE, TRUE, GTK_SIZE_ONE_TWELFTH_EM (5));
 
   if (font_button->priv->show_size) 
     {
       gtk_box_pack_start (GTK_BOX (widget), gtk_vseparator_new (), FALSE, FALSE, 0);
       font_button->priv->size_label = gtk_label_new ("14");
-      gtk_box_pack_start (GTK_BOX (widget), font_button->priv->size_label, FALSE, FALSE, 5);
+      gtk_box_pack_start (GTK_BOX (widget), font_button->priv->size_label, FALSE, FALSE, GTK_SIZE_ONE_TWELFTH_EM (5));
     }
 
   gtk_widget_show_all (widget);
diff --git a/gtk/gtkfontsel.c b/gtk/gtkfontsel.c
index 84ee9dc..3ddc07e 100644
--- a/gtk/gtkfontsel.c
+++ b/gtk/gtkfontsel.c
@@ -78,14 +78,14 @@
 
 /* This is the initial and maximum height of the preview entry (it expands
    when large font sizes are selected). Initial height is also the minimum. */
-#define INITIAL_PREVIEW_HEIGHT 44
-#define MAX_PREVIEW_HEIGHT 300
+#define INITIAL_PREVIEW_HEIGHT GTK_SIZE_ONE_TWELFTH_EM(44)
+#define MAX_PREVIEW_HEIGHT GTK_SIZE_ONE_TWELFTH_EM(300)
 
 /* These are the sizes of the font, style & size lists. */
-#define FONT_LIST_HEIGHT	136
-#define FONT_LIST_WIDTH		190
-#define FONT_STYLE_LIST_WIDTH	170
-#define FONT_SIZE_LIST_WIDTH	60
+#define FONT_LIST_HEIGHT	GTK_SIZE_ONE_TWELFTH_EM(136)
+#define FONT_LIST_WIDTH		GTK_SIZE_ONE_TWELFTH_EM(190)
+#define FONT_STYLE_LIST_WIDTH	GTK_SIZE_ONE_TWELFTH_EM(170)
+#define FONT_SIZE_LIST_WIDTH	GTK_SIZE_ONE_TWELFTH_EM(60)
 
 /* These are what we use as the standard font sizes, for the size list.
  */
@@ -302,34 +302,34 @@ gtk_font_selection_init (GtkFontSelection *fontsel)
 
   gtk_widget_push_composite_child ();
 
-  gtk_box_set_spacing (GTK_BOX (fontsel), 12);
+  gtk_box_set_spacing (GTK_BOX (fontsel), GTK_SIZE_ONE_TWELFTH_EM (12));
   fontsel->size = 12 * PANGO_SCALE;
   
   /* Create the table of font, style & size. */
   table = gtk_table_new (3, 3, FALSE);
   gtk_widget_show (table);
-  gtk_table_set_row_spacings (GTK_TABLE (table), 6);
-  gtk_table_set_col_spacings (GTK_TABLE (table), 12);
+  gtk_table_set_row_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (6));
+  gtk_table_set_col_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (12));
   gtk_box_pack_start (GTK_BOX (fontsel), table, TRUE, TRUE, 0);
 
 #ifdef INCLUDE_FONT_ENTRIES
   fontsel->font_entry = gtk_entry_new ();
   gtk_editable_set_editable (GTK_EDITABLE (fontsel->font_entry), FALSE);
-  gtk_widget_set_size_request (fontsel->font_entry, 20, -1);
+  gtk_widget_set_size_request (fontsel->font_entry, GTK_SIZE_ONE_TWELFTH_EM (20), -1);
   gtk_widget_show (fontsel->font_entry);
   gtk_table_attach (GTK_TABLE (table), fontsel->font_entry, 0, 1, 1, 2,
 		    GTK_FILL, 0, 0, 0);
   
   fontsel->font_style_entry = gtk_entry_new ();
   gtk_editable_set_editable (GTK_EDITABLE (fontsel->font_style_entry), FALSE);
-  gtk_widget_set_size_request (fontsel->font_style_entry, 20, -1);
+  gtk_widget_set_size_request (fontsel->font_style_entry, GTK_SIZE_ONE_TWELFTH_EM (20), -1);
   gtk_widget_show (fontsel->font_style_entry);
   gtk_table_attach (GTK_TABLE (table), fontsel->font_style_entry, 1, 2, 1, 2,
 		    GTK_FILL, 0, 0, 0);
 #endif /* INCLUDE_FONT_ENTRIES */
   
   fontsel->size_entry = gtk_entry_new ();
-  gtk_widget_set_size_request (fontsel->size_entry, 20, -1);
+  gtk_widget_set_size_request (fontsel->size_entry, GTK_SIZE_ONE_TWELFTH_EM (20), -1);
   gtk_widget_show (fontsel->size_entry);
   gtk_table_attach (GTK_TABLE (table), fontsel->size_entry, 2, 3, 1, 2,
 		    GTK_FILL, 0, 0, 0);
@@ -524,7 +524,7 @@ gtk_font_selection_init (GtkFontSelection *fontsel)
     }    
       
 
-  vbox = gtk_vbox_new (FALSE, 6);
+  vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (6));
   gtk_widget_show (vbox);
   gtk_box_pack_start (GTK_BOX (fontsel), vbox, FALSE, TRUE, 0);
   
@@ -1155,7 +1155,9 @@ gtk_font_selection_update_preview (GtkFontSelection *fontsel)
   gtk_widget_size_request (preview_entry, NULL);
   
   /* We don't ever want to be over MAX_PREVIEW_HEIGHT pixels high. */
-  new_height = CLAMP (preview_entry->requisition.height, INITIAL_PREVIEW_HEIGHT, MAX_PREVIEW_HEIGHT);
+  new_height = CLAMP (preview_entry->requisition.height,
+                      gtk_widget_size_to_pixel (fontsel, INITIAL_PREVIEW_HEIGHT),
+                      gtk_widget_size_to_pixel (fontsel, MAX_PREVIEW_HEIGHT));
 
   if (new_height > old_requisition.height || new_height < old_requisition.height - 30)
     gtk_widget_set_size_request (preview_entry, -1, new_height);
@@ -1605,10 +1607,10 @@ gtk_font_selection_dialog_init (GtkFontSelectionDialog *fontseldiag)
   GtkDialog *dialog = GTK_DIALOG (fontseldiag);
   
   gtk_dialog_set_has_separator (dialog, FALSE);
-  gtk_container_set_border_width (GTK_CONTAINER (dialog), 5);
-  gtk_box_set_spacing (GTK_BOX (dialog->vbox), 2); /* 2 * 5 + 2 = 12 */
-  gtk_container_set_border_width (GTK_CONTAINER (dialog->action_area), 5);
-  gtk_box_set_spacing (GTK_BOX (dialog->action_area), 6);
+  gtk_container_set_border_width (GTK_CONTAINER (dialog), GTK_SIZE_ONE_TWELFTH_EM (5));
+  gtk_box_set_spacing (GTK_BOX (dialog->vbox), GTK_SIZE_ONE_TWELFTH_EM (2)); /* 2 * 5 + 2 = 12 */
+  gtk_container_set_border_width (GTK_CONTAINER (dialog->action_area), GTK_SIZE_ONE_TWELFTH_EM (5));
+  gtk_box_set_spacing (GTK_BOX (dialog->action_area), GTK_SIZE_ONE_TWELFTH_EM (6));
 
   gtk_widget_push_composite_child ();
 
@@ -1617,7 +1619,7 @@ gtk_font_selection_dialog_init (GtkFontSelectionDialog *fontseldiag)
   fontseldiag->main_vbox = dialog->vbox;
   
   fontseldiag->fontsel = gtk_font_selection_new ();
-  gtk_container_set_border_width (GTK_CONTAINER (fontseldiag->fontsel), 5);
+  gtk_container_set_border_width (GTK_CONTAINER (fontseldiag->fontsel), GTK_SIZE_ONE_TWELFTH_EM (5));
   gtk_widget_show (fontseldiag->fontsel);
   gtk_box_pack_start (GTK_BOX (fontseldiag->main_vbox),
 		      fontseldiag->fontsel, TRUE, TRUE, 0);
diff --git a/gtk/gtkinputdialog.c b/gtk/gtkinputdialog.c
index a023e19..ede2841 100644
--- a/gtk/gtkinputdialog.c
+++ b/gtk/gtkinputdialog.c
@@ -84,11 +84,11 @@ enum
 };
 
 
-#define AXIS_LIST_WIDTH 160
-#define AXIS_LIST_HEIGHT 175
+#define AXIS_LIST_WIDTH GTK_SIZE_ONE_TWELFTH_EM (160)
+#define AXIS_LIST_HEIGHT GTK_SIZE_ONE_TWELFTH_EM (175)
 
-#define KEYS_LIST_WIDTH 200
-#define KEYS_LIST_HEIGHT 175
+#define KEYS_LIST_WIDTH GTK_SIZE_ONE_TWELFTH_EM (200)
+#define KEYS_LIST_HEIGHT GTK_SIZE_ONE_TWELFTH_EM (175)
 
 /* Forward declarations */
 
@@ -192,20 +192,20 @@ gtk_input_dialog_init (GtkInputDialog *inputd)
   gtk_window_set_title (GTK_WINDOW (inputd), _("Input"));
 
   gtk_dialog_set_has_separator (dialog, FALSE);
-  gtk_container_set_border_width (GTK_CONTAINER (dialog), 5);
-  gtk_box_set_spacing (GTK_BOX (dialog->vbox), 2); /* 2 * 5 + 2 = 12 */
-  gtk_container_set_border_width (GTK_CONTAINER (dialog->action_area), 5);
-  gtk_box_set_spacing (GTK_BOX (dialog->action_area), 6);
+  gtk_container_set_border_width (GTK_CONTAINER (dialog), GTK_SIZE_ONE_TWELFTH_EM (5));
+  gtk_box_set_spacing (GTK_BOX (dialog->vbox), GTK_SIZE_ONE_TWELFTH_EM (2)); /* 2 * 5 + 2 = 12 */
+  gtk_container_set_border_width (GTK_CONTAINER (dialog->action_area), GTK_SIZE_ONE_TWELFTH_EM (5));
+  gtk_box_set_spacing (GTK_BOX (dialog->action_area), GTK_SIZE_ONE_TWELFTH_EM (6));
 
   /* main vbox */
 
-  private->main_vbox = gtk_vbox_new (FALSE, 12);
-  gtk_container_set_border_width (GTK_CONTAINER (private->main_vbox), 5);
+  private->main_vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (12));
+  gtk_container_set_border_width (GTK_CONTAINER (private->main_vbox), GTK_SIZE_ONE_TWELFTH_EM (5));
   gtk_box_pack_start (GTK_BOX (GTK_DIALOG (inputd)->vbox), private->main_vbox,
 		      TRUE, TRUE, 0);
 
   private->no_devices_label = gtk_label_new (_("No extended input devices"));
-  gtk_container_set_border_width (GTK_CONTAINER (private->main_vbox), 5);
+  gtk_container_set_border_width (GTK_CONTAINER (private->main_vbox), GTK_SIZE_ONE_TWELFTH_EM (5));
   gtk_box_pack_start (GTK_BOX (GTK_DIALOG (inputd)->vbox),
 		      private->no_devices_label,
 		      TRUE, TRUE, 0);
@@ -214,7 +214,7 @@ gtk_input_dialog_init (GtkInputDialog *inputd)
 
   private->device_menu = gtk_menu_new ();
 
-  util_box = gtk_hbox_new (FALSE, 12);
+  util_box = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (12));
   gtk_box_pack_start (GTK_BOX (private->main_vbox), util_box, FALSE, FALSE, 0);
 
   label = gtk_label_new_with_mnemonic (_("_Device:"));
@@ -279,7 +279,7 @@ gtk_input_dialog_init (GtkInputDialog *inputd)
   label = gtk_label_new (_("Axes"));
 
   inputd->axis_listbox = gtk_scrolled_window_new (NULL, NULL);
-  gtk_container_set_border_width (GTK_CONTAINER (inputd->axis_listbox), 12);
+  gtk_container_set_border_width (GTK_CONTAINER (inputd->axis_listbox), GTK_SIZE_ONE_TWELFTH_EM (12));
   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(inputd->axis_listbox),
 				  GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
       
@@ -297,7 +297,7 @@ gtk_input_dialog_init (GtkInputDialog *inputd)
   label = gtk_label_new (_("Keys"));
 
   inputd->keys_listbox = gtk_scrolled_window_new (NULL, NULL);
-  gtk_container_set_border_width (GTK_CONTAINER (inputd->keys_listbox), 12);
+  gtk_container_set_border_width (GTK_CONTAINER (inputd->keys_listbox), GTK_SIZE_ONE_TWELFTH_EM (12));
   gtk_widget_set_size_request (inputd->keys_listbox,
 			       KEYS_LIST_WIDTH, KEYS_LIST_HEIGHT);
   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (inputd->keys_listbox),
@@ -543,8 +543,8 @@ gtk_input_dialog_fill_axes(GtkInputDialog *inputd, GdkDevice *info)
       gtk_widget_destroy (inputd->axis_list);
     }
   inputd->axis_list = gtk_table_new (GDK_AXIS_LAST, 2, 0);
-  gtk_table_set_row_spacings (GTK_TABLE (inputd->axis_list), 6);
-  gtk_table_set_col_spacings (GTK_TABLE (inputd->axis_list), 12);
+  gtk_table_set_row_spacings (GTK_TABLE (inputd->axis_list), GTK_SIZE_ONE_TWELFTH_EM (6));
+  gtk_table_set_col_spacings (GTK_TABLE (inputd->axis_list), GTK_SIZE_ONE_TWELFTH_EM (12));
   
   viewport = gtk_viewport_new (NULL, NULL);
   old_child = gtk_bin_get_child (GTK_BIN (inputd->axis_listbox));
@@ -567,7 +567,7 @@ gtk_input_dialog_fill_axes(GtkInputDialog *inputd, GdkDevice *info)
       label = gtk_label_new_with_mnemonic (_(axis_use_strings[i]));
       gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
       gtk_table_attach (GTK_TABLE (inputd->axis_list), label, 0, 1, i, i+1, 
-                        GTK_FILL, 0, 2, 2);
+                        GTK_FILL, 0, GTK_SIZE_ONE_TWELFTH_EM (2), GTK_SIZE_ONE_TWELFTH_EM (2));
 
       /* and the use option menu */
       menu = gtk_menu_new();
@@ -594,7 +594,8 @@ gtk_input_dialog_fill_axes(GtkInputDialog *inputd, GdkDevice *info)
       inputd->axis_items[i] = option_menu = gtk_option_menu_new ();
       gtk_label_set_mnemonic_widget (GTK_LABEL (label), option_menu);
       gtk_table_attach (GTK_TABLE (inputd->axis_list), option_menu, 
-			1, 2, i, i+1, GTK_EXPAND | GTK_FILL, 0, 2, 2);
+			1, 2, i, i+1, GTK_EXPAND | GTK_FILL, 0,
+                        GTK_SIZE_ONE_TWELFTH_EM (2), GTK_SIZE_ONE_TWELFTH_EM (2));
 
       gtk_widget_show (option_menu);
       gtk_option_menu_set_menu (GTK_OPTION_MENU (option_menu), menu);
@@ -698,8 +699,8 @@ gtk_input_dialog_fill_keys(GtkInputDialog *inputd, GdkDevice *info)
     }
 
   inputd->keys_list = gtk_table_new (info->num_keys, 2, FALSE);
-  gtk_table_set_row_spacings (GTK_TABLE (inputd->keys_list), 6);
-  gtk_table_set_col_spacings (GTK_TABLE (inputd->keys_list), 12);
+  gtk_table_set_row_spacings (GTK_TABLE (inputd->keys_list), GTK_SIZE_ONE_TWELFTH_EM (6));
+  gtk_table_set_col_spacings (GTK_TABLE (inputd->keys_list), GTK_SIZE_ONE_TWELFTH_EM (12));
   
   viewport = gtk_viewport_new (NULL, NULL);
   old_child = gtk_bin_get_child (GTK_BIN (inputd->keys_listbox));
@@ -726,14 +727,14 @@ gtk_input_dialog_fill_keys(GtkInputDialog *inputd, GdkDevice *info)
       g_snprintf (buffer, sizeof (buffer), "_%d:", i+1);
       label = gtk_label_new_with_mnemonic (buffer);
       gtk_table_attach (GTK_TABLE (inputd->keys_list), label, 0, 1, i, i+1, 
-			GTK_FILL, 0, 2, 2);
+			GTK_FILL, 0, GTK_SIZE_ONE_TWELFTH_EM (2), GTK_SIZE_ONE_TWELFTH_EM (2));
       gtk_widget_show (label);
 
       /* the entry */
 
-      hbox = gtk_hbox_new (FALSE, 6);
+      hbox = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (6));
       gtk_table_attach (GTK_TABLE (inputd->keys_list), hbox, 1, 2, i, i+1, 
-                        GTK_EXPAND | GTK_FILL, 0, 2, 2);
+                        GTK_EXPAND | GTK_FILL, 0, GTK_SIZE_ONE_TWELFTH_EM (2), GTK_SIZE_ONE_TWELFTH_EM (2));
       gtk_widget_show (hbox);
 
       key->entry = gtk_entry_new ();
diff --git a/gtk/gtkmessagedialog.c b/gtk/gtkmessagedialog.c
index ecae119..c9b19d9 100644
--- a/gtk/gtkmessagedialog.c
+++ b/gtk/gtkmessagedialog.c
@@ -94,13 +94,11 @@ gtk_message_dialog_class_init (GtkMessageDialogClass *class)
   gobject_class->get_property = gtk_message_dialog_get_property;
   
   gtk_widget_class_install_style_property (widget_class,
-					   g_param_spec_int ("message-border",
-                                                             P_("Image/label border"),
-                                                             P_("Width of border around the label and image in the message dialog"),
-                                                             0,
-                                                             G_MAXINT,
-                                                             12,
-                                                             GTK_PARAM_READABLE));
+					   gtk_param_spec_size ("message-border",
+								P_("Image/label border"),
+								P_("Width of border around the label and image in the message dialog"),
+								0, G_MAXINT, GTK_SIZE_ONE_TWELFTH_EM (12),
+								GTK_PARAM_READABLE));
   /**
    * GtkMessageDialog:use-separator:
    *
@@ -250,8 +248,8 @@ gtk_message_dialog_init (GtkMessageDialog *dialog)
   gtk_label_set_selectable (GTK_LABEL (priv->secondary_label), TRUE);
   gtk_misc_set_alignment   (GTK_MISC  (priv->secondary_label), 0.0, 0.0);
 
-  hbox = gtk_hbox_new (FALSE, 12);
-  vbox = gtk_vbox_new (FALSE, 12);
+  hbox = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (12));
+  vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (12));
 
   gtk_box_pack_start (GTK_BOX (vbox), dialog->label,
                       FALSE, FALSE, 0);
@@ -269,11 +267,11 @@ gtk_message_dialog_init (GtkMessageDialog *dialog)
                       hbox,
                       FALSE, FALSE, 0);
 
-  gtk_container_set_border_width (GTK_CONTAINER (dialog), 5);
-  gtk_container_set_border_width (GTK_CONTAINER (hbox), 5);
-  gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->vbox), 14); /* 14 + 2 * 5 = 24 */
-  gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (dialog)->action_area), 5);
-  gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->action_area), 6);
+  gtk_container_set_border_width (GTK_CONTAINER (dialog), GTK_SIZE_ONE_TWELFTH_EM (5));
+  gtk_container_set_border_width (GTK_CONTAINER (hbox), GTK_SIZE_ONE_TWELFTH_EM (5));
+  gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->vbox), GTK_SIZE_ONE_TWELFTH_EM (14)); /* 14 + 2 * 5 = 24 */
+  gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (dialog)->action_area), GTK_SIZE_ONE_TWELFTH_EM (5));
+  gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->action_area), GTK_SIZE_ONE_TWELFTH_EM (6));
 
   gtk_widget_show_all (hbox);
 
diff --git a/gtk/gtkmountoperation.c b/gtk/gtkmountoperation.c
index ace58ed..214facb 100644
--- a/gtk/gtkmountoperation.c
+++ b/gtk/gtkmountoperation.c
@@ -454,10 +454,10 @@ gtk_mount_operation_ask_password (GMountOperation   *mount_op,
 
   /* Set the dialog up with HIG properties */
   gtk_dialog_set_has_separator (dialog, FALSE);
-  gtk_container_set_border_width (GTK_CONTAINER (dialog), 5);
-  gtk_box_set_spacing (GTK_BOX (dialog->vbox), 2); /* 2 * 5 + 2 = 12 */
-  gtk_container_set_border_width (GTK_CONTAINER (dialog->action_area), 5);
-  gtk_box_set_spacing (GTK_BOX (dialog->action_area), 6);
+  gtk_container_set_border_width (GTK_CONTAINER (dialog), GTK_SIZE_ONE_TWELFTH_EM (5));
+  gtk_box_set_spacing (GTK_BOX (dialog->vbox), GTK_SIZE_ONE_TWELFTH_EM (2)); /* 2 * 5 + 2 = 12 */
+  gtk_container_set_border_width (GTK_CONTAINER (dialog->action_area), GTK_SIZE_ONE_TWELFTH_EM (5));
+  gtk_box_set_spacing (GTK_BOX (dialog->action_area), GTK_SIZE_ONE_TWELFTH_EM (6));
 
   gtk_window_set_resizable (window, FALSE);
   gtk_window_set_title (window, "");
@@ -476,7 +476,7 @@ gtk_mount_operation_ask_password (GMountOperation   *mount_op,
 
   /* Build contents */
   hbox = gtk_hbox_new (FALSE, 12);
-  gtk_container_set_border_width (GTK_CONTAINER (hbox), 5);
+  gtk_container_set_border_width (GTK_CONTAINER (hbox), GTK_SIZE_ONE_TWELFTH_EM (5));
   gtk_box_pack_start (GTK_BOX (dialog->vbox), hbox, TRUE, TRUE, 0);
 
   icon = gtk_image_new_from_stock (GTK_STOCK_DIALOG_AUTHENTICATION,
@@ -485,7 +485,7 @@ gtk_mount_operation_ask_password (GMountOperation   *mount_op,
   gtk_misc_set_alignment (GTK_MISC (icon), 0.5, 0.0);
   gtk_box_pack_start (GTK_BOX (hbox), icon, FALSE, FALSE, 0);
 
-  main_vbox = gtk_vbox_new (FALSE, 18);
+  main_vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (18));
   gtk_box_pack_start (GTK_BOX (hbox), main_vbox, TRUE, TRUE, 0);
 
   secondary = strstr (message, "\n");
@@ -516,7 +516,7 @@ gtk_mount_operation_ask_password (GMountOperation   *mount_op,
                           FALSE, FALSE, 0);
     }
 
-  vbox = gtk_vbox_new (FALSE, 6);
+  vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (6));
   gtk_box_pack_start (GTK_BOX (main_vbox), vbox, FALSE, FALSE, 0);
 
   can_anonymous = flags & G_ASK_PASSWORD_ANONYMOUS_SUPPORTED;
@@ -528,7 +528,7 @@ gtk_mount_operation_ask_password (GMountOperation   *mount_op,
       GtkWidget *choice;
       GSList    *group;
 
-      anon_box = gtk_vbox_new (FALSE, 6);
+      anon_box = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (6));
       gtk_box_pack_start (GTK_BOX (vbox), anon_box,
                           FALSE, FALSE, 0);
 
@@ -571,8 +571,8 @@ gtk_mount_operation_ask_password (GMountOperation   *mount_op,
   priv->entry_container = entry_container;
 
   table = gtk_table_new (rows, 2, FALSE);
-  gtk_table_set_col_spacings (GTK_TABLE (table), 12);
-  gtk_table_set_row_spacings (GTK_TABLE (table), 6);
+  gtk_table_set_col_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (12));
+  gtk_table_set_row_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (6));
   gtk_container_add (GTK_CONTAINER (entry_container), table);
 
   rows = 0;
@@ -602,7 +602,7 @@ gtk_mount_operation_ask_password (GMountOperation   *mount_op,
       GSList       *group;
       GPasswordSave password_save;
 
-      remember_box = gtk_vbox_new (FALSE, 6);
+      remember_box = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (6));
       gtk_box_pack_start (GTK_BOX (vbox), remember_box,
                           FALSE, FALSE, 0);
 
diff --git a/gtk/gtkpagesetupunixdialog.c b/gtk/gtkpagesetupunixdialog.c
index 8d9cbc7..b4010ff 100644
--- a/gtk/gtkpagesetupunixdialog.c
+++ b/gtk/gtkpagesetupunixdialog.c
@@ -976,7 +976,7 @@ create_radio_button (GSList      *group,
   image = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_LARGE_TOOLBAR);
   gtk_stock_lookup (stock_id, &item);
   label = gtk_label_new (item.label);
-  hbox = gtk_hbox_new (0, 6);
+  hbox = gtk_hbox_new (0, GTK_SIZE_ONE_TWELFTH_EM (6));
   gtk_container_add (GTK_CONTAINER (radio_button), hbox);
   gtk_container_add (GTK_CONTAINER (hbox), image);
   gtk_container_add (GTK_CONTAINER (hbox), label);
@@ -997,15 +997,15 @@ populate_dialog (GtkPageSetupUnixDialog *ps_dialog)
   gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE);
 
   gtk_dialog_set_has_separator (dialog, FALSE);
-  gtk_container_set_border_width (GTK_CONTAINER (dialog), 5);
-  gtk_box_set_spacing (GTK_BOX (dialog->vbox), 2); /* 2 * 5 + 2 = 12 */
-  gtk_container_set_border_width (GTK_CONTAINER (dialog->action_area), 5);
-  gtk_box_set_spacing (GTK_BOX (dialog->action_area), 6);
+  gtk_container_set_border_width (GTK_CONTAINER (dialog), GTK_SIZE_ONE_TWELFTH_EM (5));
+  gtk_box_set_spacing (GTK_BOX (dialog->vbox), GTK_SIZE_ONE_TWELFTH_EM (2)); /* 2 * 5 + 2 = 12 */
+  gtk_container_set_border_width (GTK_CONTAINER (dialog->action_area), GTK_SIZE_ONE_TWELFTH_EM (5));
+  gtk_box_set_spacing (GTK_BOX (dialog->action_area), GTK_SIZE_ONE_TWELFTH_EM (6));
 
   table = gtk_table_new (5, 4, FALSE);
-  gtk_table_set_row_spacings (GTK_TABLE (table), 6);
-  gtk_table_set_col_spacings (GTK_TABLE (table), 12);
-  gtk_container_set_border_width (GTK_CONTAINER (table), 5);
+  gtk_table_set_row_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (6));
+  gtk_table_set_col_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (12));
+  gtk_container_set_border_width (GTK_CONTAINER (table), GTK_SIZE_ONE_TWELFTH_EM (5));
   gtk_box_pack_start (GTK_BOX (dialog->vbox), table, TRUE, TRUE, 0);
   gtk_widget_show (table);
 
@@ -1326,12 +1326,12 @@ wrap_in_frame (const gchar *label,
   gtk_label_set_markup (GTK_LABEL (label_widget), bold_text);
   g_free (bold_text);
   
-  frame = gtk_vbox_new (FALSE, 6);
+  frame = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (6));
   gtk_box_pack_start (GTK_BOX (frame), label_widget, FALSE, FALSE, 0);
   
   alignment = gtk_alignment_new (0.0, 0.0, 1.0, 1.0);
   gtk_alignment_set_padding (GTK_ALIGNMENT (alignment),
-			     0, 0, 12, 0);
+			     0, 0, GTK_SIZE_ONE_TWELFTH_EM (12), 0);
   gtk_box_pack_start (GTK_BOX (frame), alignment, FALSE, FALSE, 0);
 
   gtk_container_add (GTK_CONTAINER (alignment), child);
@@ -1381,7 +1381,7 @@ new_unit_widget (CustomPaperDialog *dialog,
   data = g_new0 (UnitWidget, 1);
   data->display_unit = unit;
   
-  hbox = gtk_hbox_new (FALSE, 6);
+  hbox = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (6));
 
   button = gtk_spin_button_new_with_range (0.0, 9999.0, 1);
   if (unit == GTK_UNIT_INCH)
@@ -1850,17 +1850,17 @@ show_custom_paper_dialog (GtkPageSetupUnixDialog *ps_dialog)
 		    G_CALLBACK (custom_paper_dialog_response_cb), data);
 
   gtk_dialog_set_has_separator (dialog, FALSE);
-  gtk_container_set_border_width (GTK_CONTAINER (dialog), 5);
-  gtk_box_set_spacing (GTK_BOX (dialog->vbox), 2); /* 2 * 5 + 2 = 12 */
-  gtk_container_set_border_width (GTK_CONTAINER (dialog->action_area), 5);
-  gtk_box_set_spacing (GTK_BOX (dialog->action_area), 6);
+  gtk_container_set_border_width (GTK_CONTAINER (dialog), GTK_SIZE_ONE_TWELFTH_EM (5));
+  gtk_box_set_spacing (GTK_BOX (dialog->vbox), GTK_SIZE_ONE_TWELFTH_EM (2)); /* 2 * 5 + 2 = 12 */
+  gtk_container_set_border_width (GTK_CONTAINER (dialog->action_area), GTK_SIZE_ONE_TWELFTH_EM (5));
+  gtk_box_set_spacing (GTK_BOX (dialog->action_area), GTK_SIZE_ONE_TWELFTH_EM (6));
 
-  hbox = gtk_hbox_new (FALSE, 18);
-  gtk_container_set_border_width (GTK_CONTAINER (hbox), 5);
+  hbox = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (18));
+  gtk_container_set_border_width (GTK_CONTAINER (hbox), GTK_SIZE_ONE_TWELFTH_EM (5));
   gtk_box_pack_start (GTK_BOX (dialog->vbox), hbox, TRUE, TRUE, 0);
   gtk_widget_show (hbox);
 
-  vbox = gtk_vbox_new (FALSE, 6);
+  vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (6));
   gtk_box_pack_start (GTK_BOX (hbox), vbox, TRUE, TRUE, 0);
   gtk_widget_show (vbox);
   
@@ -1876,7 +1876,7 @@ show_custom_paper_dialog (GtkPageSetupUnixDialog *ps_dialog)
   treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL (priv->custom_paper_list));
   data->treeview = treeview;
   gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (treeview), FALSE);
-  gtk_widget_set_size_request (treeview, 140, -1);
+  gtk_widget_set_size_request (treeview, GTK_SIZE_ONE_TWELFTH_EM (140), -1);
   
   selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
   gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE);
@@ -1896,7 +1896,7 @@ show_custom_paper_dialog (GtkPageSetupUnixDialog *ps_dialog)
   gtk_container_add (GTK_CONTAINER (scrolled), treeview);
   gtk_widget_show (treeview);
 
-  button_box = gtk_hbox_new (FALSE, 6);
+  button_box = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (6));
   gtk_box_pack_start (GTK_BOX (vbox), button_box, FALSE, FALSE, 0);
   gtk_widget_show (button_box);
 
@@ -1920,15 +1920,15 @@ show_custom_paper_dialog (GtkPageSetupUnixDialog *ps_dialog)
 
   user_units = get_default_user_units ();
   
-  vbox = gtk_vbox_new (FALSE, 18);
+  vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (18));
   data->values_box = vbox;
   gtk_box_pack_start (GTK_BOX (hbox), vbox, TRUE, TRUE, 0);
   gtk_widget_show (vbox);
   
   table = gtk_table_new (2, 2, FALSE);
   
-  gtk_table_set_row_spacings (GTK_TABLE (table), 6);
-  gtk_table_set_col_spacings (GTK_TABLE (table), 12);
+  gtk_table_set_row_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (6));
+  gtk_table_set_col_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (12));
 
   label = gtk_label_new_with_mnemonic (_("_Width:"));
   gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
@@ -1961,8 +1961,8 @@ show_custom_paper_dialog (GtkPageSetupUnixDialog *ps_dialog)
   
 
   table = gtk_table_new (5, 2, FALSE);
-  gtk_table_set_row_spacings (GTK_TABLE (table), 6);
-  gtk_table_set_col_spacings (GTK_TABLE (table), 12);
+  gtk_table_set_row_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (6));
+  gtk_table_set_col_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (12));
 
   label = gtk_label_new_with_mnemonic (_("_Top:"));
   gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
diff --git a/gtk/gtkpathbar.c b/gtk/gtkpathbar.c
index a1a5093..25501bf 100644
--- a/gtk/gtkpathbar.c
+++ b/gtk/gtkpathbar.c
@@ -121,6 +121,7 @@ static void gtk_path_bar_style_set                (GtkWidget        *widget,
 						   GtkStyle         *previous_style);
 static void gtk_path_bar_screen_changed           (GtkWidget        *widget,
 						   GdkScreen        *previous_screen);
+static void gtk_path_bar_unit_changed             (GtkWidget        *widget);
 static void gtk_path_bar_check_icon_theme         (GtkPathBar       *path_bar);
 static void gtk_path_bar_update_button_appearance (GtkPathBar       *path_bar,
 						   ButtonData       *button_data,
@@ -223,6 +224,7 @@ gtk_path_bar_class_init (GtkPathBarClass *path_bar_class)
   widget_class->size_allocate = gtk_path_bar_size_allocate;
   widget_class->style_set = gtk_path_bar_style_set;
   widget_class->screen_changed = gtk_path_bar_screen_changed;
+  widget_class->unit_changed = gtk_path_bar_unit_changed;
   widget_class->grab_notify = gtk_path_bar_grab_notify;
   widget_class->state_changed = gtk_path_bar_state_changed;
   widget_class->scroll_event = gtk_path_bar_scroll;
@@ -338,7 +340,7 @@ gtk_path_bar_size_request (GtkWidget      *widget,
   /* Theoretically, the slider could be bigger than the other button.  But we're
    * not going to worry about that now.
    */
-  path_bar->slider_width = MIN(requisition->height * 2 / 3 + 5, requisition->height);
+  path_bar->slider_width = MIN(requisition->height * 2 / 3 + gtk_widget_size_to_pixel (widget, GTK_SIZE_ONE_TWELFTH_EM (5)), requisition->height);
   if (path_bar->button_list && path_bar->button_list->next != NULL)
     requisition->width += (path_bar->spacing + path_bar->slider_width) * 2;
 
@@ -1089,7 +1091,10 @@ change_icon_theme (GtkPathBar *path_bar)
 
   settings = gtk_settings_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (path_bar)));
 
-  if (gtk_icon_size_lookup_for_settings (settings, GTK_ICON_SIZE_MENU, &width, &height))
+  if (gtk_icon_size_lookup_for_settings_for_monitor (settings,
+                                                     gtk_widget_get_monitor_num (GTK_WIDGET (path_bar)),
+                                                     GTK_ICON_SIZE_MENU,
+                                                     &width, &height))
     path_bar->icon_size = MAX (width, height);
   else
     path_bar->icon_size = FALLBACK_ICON_SIZE;
@@ -1477,7 +1482,7 @@ make_directory_button (GtkPathBar  *path_bar,
       button_data->label = gtk_label_new (NULL);
       label_alignment = gtk_alignment_new (0.5, 0.5, 1.0, 1.0);
       gtk_container_add (GTK_CONTAINER (label_alignment), button_data->label);
-      child = gtk_hbox_new (FALSE, 2);
+      child = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (2));
       gtk_box_pack_start (GTK_BOX (child), button_data->image, FALSE, FALSE, 0);
       gtk_box_pack_start (GTK_BOX (child), label_alignment, FALSE, FALSE, 0);
       break;
@@ -1826,5 +1831,15 @@ _gtk_path_bar_down (GtkPathBar *path_bar)
     }
 }
 
+static void
+gtk_path_bar_unit_changed (GtkWidget *widget)
+{
+  /* must chain up */
+  if (GTK_WIDGET_CLASS (gtk_path_bar_parent_class)->unit_changed != NULL)
+    GTK_WIDGET_CLASS (gtk_path_bar_parent_class)->unit_changed (widget);
+
+  change_icon_theme (GTK_PATH_BAR (widget));
+}
+
 #define __GTK_PATH_BAR_C__
 #include "gtkaliasdef.c"
diff --git a/gtk/gtkprinteroptionwidget.c b/gtk/gtkprinteroptionwidget.c
index 38cdf00..b823483 100644
--- a/gtk/gtkprinteroptionwidget.c
+++ b/gtk/gtkprinteroptionwidget.c
@@ -132,7 +132,7 @@ gtk_printer_option_widget_init (GtkPrinterOptionWidget *widget)
 {
   widget->priv = GTK_PRINTER_OPTION_WIDGET_GET_PRIVATE (widget); 
 
-  gtk_box_set_spacing (GTK_BOX (widget), 12);
+  gtk_box_set_spacing (GTK_BOX (widget), GTK_SIZE_ONE_TWELFTH_EM (12));
 }
 
 static void
@@ -746,7 +746,7 @@ construct_widgets (GtkPrinterOptionWidget *widget)
 
     case GTK_PRINTER_OPTION_TYPE_ALTERNATIVE:
       group = NULL;
-      priv->box = gtk_hbox_new (FALSE, 12);
+      priv->box = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (12));
       gtk_widget_show (priv->box);
       gtk_box_pack_start (GTK_BOX (widget), priv->box, TRUE, TRUE, 0);
       for (i = 0; i < source->num_choices; i++)
@@ -783,8 +783,8 @@ construct_widgets (GtkPrinterOptionWidget *widget)
         GtkWidget *label;
         
         priv->filechooser = gtk_table_new (2, 2, FALSE);
-        gtk_table_set_row_spacings (GTK_TABLE (priv->filechooser), 6);
-        gtk_table_set_col_spacings (GTK_TABLE (priv->filechooser), 12);
+        gtk_table_set_row_spacings (GTK_TABLE (priv->filechooser), GTK_SIZE_ONE_TWELFTH_EM (6));
+        gtk_table_set_col_spacings (GTK_TABLE (priv->filechooser), GTK_SIZE_ONE_TWELFTH_EM (12));
 
         /* TODO: make this a gtkfilechooserentry once we move to GTK */
         priv->entry = gtk_entry_new ();
diff --git a/gtk/gtkprintunixdialog.c b/gtk/gtkprintunixdialog.c
index fbb2d40..2f79198 100644
--- a/gtk/gtkprintunixdialog.c
+++ b/gtk/gtkprintunixdialog.c
@@ -959,12 +959,12 @@ wrap_in_frame (const gchar *label,
   gtk_label_set_markup (GTK_LABEL (label_widget), bold_text);
   g_free (bold_text);
   
-  frame = gtk_vbox_new (FALSE, 6);
+  frame = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (6));
   gtk_box_pack_start (GTK_BOX (frame), label_widget, FALSE, FALSE, 0);
   
   alignment = gtk_alignment_new (0.0, 0.0, 1.0, 1.0);
   gtk_alignment_set_padding (GTK_ALIGNMENT (alignment),
-			     0, 0, 12, 0);
+			     0, 0, GTK_SIZE_ONE_TWELFTH_EM (12), 0);
   gtk_box_pack_start (GTK_BOX (frame), alignment, FALSE, FALSE, 0);
 
   gtk_container_add (GTK_CONTAINER (alignment), child);
@@ -1008,7 +1008,7 @@ add_option_to_extension_point (GtkPrinterOption *option,
       gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
       gtk_label_set_mnemonic_widget (GTK_LABEL (label), widget);
       
-      hbox = gtk_hbox_new (FALSE, 12);
+      hbox = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (12));
       gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
       gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
       gtk_widget_show (hbox);
@@ -1233,8 +1233,8 @@ update_dialog_from_settings (GtkPrintUnixDialog *dialog)
 	continue;
 
       table = gtk_table_new (1, 2, FALSE);
-      gtk_table_set_row_spacings (GTK_TABLE (table), 6);
-      gtk_table_set_col_spacings (GTK_TABLE (table), 12);
+      gtk_table_set_row_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (6));
+      gtk_table_set_col_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (12));
       
       gtk_printer_option_set_foreach_in_group (priv->options,
 					       group,
@@ -1626,10 +1626,11 @@ draw_collate_cb (GtkWidget	    *widget,
   rtl = (gtk_widget_get_direction (GTK_WIDGET (widget)) == GTK_TEXT_DIR_RTL);
 
   settings = gtk_widget_get_settings (widget);
-  gtk_icon_size_lookup_for_settings (settings,
-				     GTK_ICON_SIZE_DIALOG,
-				     &size,
-				     NULL);
+  gtk_icon_size_lookup_for_settings_for_monitor (settings,
+                                                 gtk_widget_get_monitor_num (widget),
+                                                 GTK_ICON_SIZE_DIALOG,
+                                                 &size,
+                                                 NULL);
   scale = size / 48.0;
   text_x = rtl ? 4 : 11;
 
@@ -1671,10 +1672,11 @@ gtk_print_unix_dialog_style_set (GtkWidget *widget,
       gfloat scale;
       
       settings = gtk_widget_get_settings (widget);
-      gtk_icon_size_lookup_for_settings (settings,
-					 GTK_ICON_SIZE_DIALOG,
-					 &size,
-					 NULL);
+      gtk_icon_size_lookup_for_settings_for_monitor (settings,
+                                                     gtk_widget_get_monitor_num (widget),
+                                                     GTK_ICON_SIZE_DIALOG,
+                                                     &size,
+                                                     NULL);
       scale = size / 48.0;
 
       gtk_widget_set_size_request (priv->collate_image,
@@ -1724,11 +1726,11 @@ create_main_page (GtkPrintUnixDialog *dialog)
   GtkWidget *custom_input;
   const gchar *range_tooltip;
 
-  main_vbox = gtk_vbox_new (FALSE, 18);
-  gtk_container_set_border_width (GTK_CONTAINER (main_vbox), 12);
+  main_vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (18));
+  gtk_container_set_border_width (GTK_CONTAINER (main_vbox), GTK_SIZE_ONE_TWELFTH_EM (12));
   gtk_widget_show (main_vbox);
 
-  vbox = gtk_vbox_new (FALSE, 6);
+  vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (6));
   gtk_box_pack_start (GTK_BOX (main_vbox), vbox, TRUE, TRUE, 0);
   gtk_widget_show (vbox);
 
@@ -1794,18 +1796,18 @@ create_main_page (GtkPrintUnixDialog *dialog)
   gtk_widget_show (treeview);
   gtk_container_add (GTK_CONTAINER (scrolled), treeview);
 
-  custom_input = gtk_hbox_new (FALSE, 18);
+  custom_input = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (18));
   gtk_widget_show (custom_input);
   gtk_box_pack_start (GTK_BOX (vbox), custom_input, FALSE, FALSE, 0);
   priv->extension_point = custom_input;
 
-  hbox = gtk_hbox_new (FALSE, 18);
+  hbox = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (18));
   gtk_widget_show (hbox);
   gtk_box_pack_start (GTK_BOX (main_vbox), hbox, FALSE, FALSE, 0);
 
   table = gtk_table_new (3, 2, FALSE);
-  gtk_table_set_row_spacings (GTK_TABLE (table), 6);
-  gtk_table_set_col_spacings (GTK_TABLE (table), 12);
+  gtk_table_set_row_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (6));
+  gtk_table_set_col_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (12));
   frame = wrap_in_frame (_("Range"), table);
   gtk_box_pack_start (GTK_BOX (hbox), frame, TRUE, TRUE, 0);
   gtk_widget_show (table);
@@ -1848,8 +1850,8 @@ create_main_page (GtkPrintUnixDialog *dialog)
   update_entry_sensitivity (radio, entry);
 
   table = gtk_table_new (3, 2, FALSE);
-  gtk_table_set_row_spacings (GTK_TABLE (table), 6);
-  gtk_table_set_col_spacings (GTK_TABLE (table), 12);
+  gtk_table_set_row_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (6));
+  gtk_table_set_col_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (12));
   frame = wrap_in_frame (_("Copies"), table);
   gtk_box_pack_start (GTK_BOX (hbox), frame, TRUE, TRUE, 0);
   gtk_widget_show (table);
@@ -1894,7 +1896,7 @@ create_main_page (GtkPrintUnixDialog *dialog)
 
   priv->collate_image = image;
   gtk_widget_show (image);
-  gtk_widget_set_size_request (image, 70, 90);
+  gtk_widget_set_size_request (image, GTK_SIZE_ONE_TWELFTH_EM (70), GTK_SIZE_ONE_TWELFTH_EM (90));
   gtk_table_attach (GTK_TABLE (table), image,
 		    1, 2, 1, 3, GTK_FILL, 0,
 		    0, 0);
@@ -2506,17 +2508,17 @@ create_page_setup_page (GtkPrintUnixDialog *dialog)
   GtkWidget *frame, *table, *widget;
   GtkWidget *combo, *spinbutton, *draw;
 
-  main_vbox = gtk_vbox_new (FALSE, 18);
-  gtk_container_set_border_width (GTK_CONTAINER (main_vbox), 12);
+  main_vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (18));
+  gtk_container_set_border_width (GTK_CONTAINER (main_vbox), GTK_SIZE_ONE_TWELFTH_EM (12));
   gtk_widget_show (main_vbox);
 
-  hbox = gtk_hbox_new (FALSE, 18);
+  hbox = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (18));
   gtk_widget_show (hbox);
   gtk_box_pack_start (GTK_BOX (main_vbox), hbox, FALSE, FALSE, 0);
 
   table = gtk_table_new (5, 2, FALSE);
-  gtk_table_set_row_spacings (GTK_TABLE (table), 6);
-  gtk_table_set_col_spacings (GTK_TABLE (table), 12);
+  gtk_table_set_row_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (6));
+  gtk_table_set_col_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (12));
   frame = wrap_in_frame (_("Layout"), table);
   gtk_box_pack_start (GTK_BOX (hbox), frame, TRUE, TRUE, 0);
   gtk_widget_show (table);
@@ -2597,7 +2599,7 @@ create_page_setup_page (GtkPrintUnixDialog *dialog)
 		    0, 1, 4, 5,  GTK_FILL, 0,
 		    0, 0);
 
-  hbox2 = gtk_hbox_new (FALSE, 6);
+  hbox2 = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (6));
   gtk_widget_show (hbox2);
   gtk_table_attach (GTK_TABLE (table), hbox2,
 		    1, 2, 4, 5,  GTK_FILL, 0,
@@ -2615,10 +2617,10 @@ create_page_setup_page (GtkPrintUnixDialog *dialog)
   gtk_box_pack_start (GTK_BOX (hbox2), label, FALSE, FALSE, 0);
 
   table = gtk_table_new (4, 2, FALSE);
-  gtk_table_set_row_spacings (GTK_TABLE (table), 6);
-  gtk_table_set_col_spacings (GTK_TABLE (table), 12);
+  gtk_table_set_row_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (6));
+  gtk_table_set_col_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (12));
   frame = wrap_in_frame (_("Paper"), table);
-  gtk_box_pack_start (GTK_BOX (hbox), frame, TRUE, TRUE, 6);
+  gtk_box_pack_start (GTK_BOX (hbox), frame, TRUE, TRUE, GTK_SIZE_ONE_TWELFTH_EM (6));
   gtk_widget_show (table);
 
   label = gtk_label_new_with_mnemonic (_("Paper _type:"));
@@ -2674,7 +2676,7 @@ create_page_setup_page (GtkPrintUnixDialog *dialog)
   draw = gtk_drawing_area_new ();
   GTK_WIDGET_SET_FLAGS (draw, GTK_NO_WINDOW);
   priv->page_layout_preview = draw;
-  gtk_widget_set_size_request (draw, 200, 200);
+  gtk_widget_set_size_request (draw, GTK_SIZE_ONE_TWELFTH_EM (200), GTK_SIZE_ONE_TWELFTH_EM (200));
   g_signal_connect (draw, "expose-event", G_CALLBACK (draw_page_cb), dialog);
   gtk_widget_show (draw);
 
@@ -2698,13 +2700,13 @@ create_job_page (GtkPrintUnixDialog *dialog)
   const gchar *on_hold_tooltip;
 
   main_table = gtk_table_new (2, 2, FALSE);
-  gtk_container_set_border_width (GTK_CONTAINER (main_table), 12);
-  gtk_table_set_row_spacings (GTK_TABLE (main_table), 18);
-  gtk_table_set_col_spacings (GTK_TABLE (main_table), 18);
+  gtk_container_set_border_width (GTK_CONTAINER (main_table), GTK_SIZE_ONE_TWELFTH_EM (12));
+  gtk_table_set_row_spacings (GTK_TABLE (main_table), GTK_SIZE_ONE_TWELFTH_EM (18));
+  gtk_table_set_col_spacings (GTK_TABLE (main_table), GTK_SIZE_ONE_TWELFTH_EM (18));
 
   table = gtk_table_new (2, 2, FALSE);
-  gtk_table_set_row_spacings (GTK_TABLE (table), 6);
-  gtk_table_set_col_spacings (GTK_TABLE (table), 12);
+  gtk_table_set_row_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (6));
+  gtk_table_set_col_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (12));
   frame = wrap_in_frame (_("Job Details"), table);
   gtk_table_attach (GTK_TABLE (main_table), frame,
 		    0, 1, 0, 1,  GTK_FILL, 0,
@@ -2742,8 +2744,8 @@ create_job_page (GtkPrintUnixDialog *dialog)
   gtk_label_set_mnemonic_widget (GTK_LABEL (label), widget);
 
   table = gtk_table_new (2, 2, FALSE);
-  gtk_table_set_row_spacings (GTK_TABLE (table), 6);
-  gtk_table_set_col_spacings (GTK_TABLE (table), 12);
+  gtk_table_set_row_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (6));
+  gtk_table_set_col_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (12));
   frame = wrap_in_frame (_("Print Document"), table);
   gtk_table_attach (GTK_TABLE (main_table), frame,
 		    0, 1, 1, 2,  GTK_FILL, 0,
@@ -2815,8 +2817,8 @@ create_job_page (GtkPrintUnixDialog *dialog)
 			    G_CALLBACK (update_print_at_option), dialog);
 
   table = gtk_table_new (2, 2, FALSE);
-  gtk_table_set_row_spacings (GTK_TABLE (table), 6);
-  gtk_table_set_col_spacings (GTK_TABLE (table), 12);
+  gtk_table_set_row_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (6));
+  gtk_table_set_col_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (12));
   frame = wrap_in_frame (_("Add Cover Page"), table);
   gtk_table_attach (GTK_TABLE (main_table), frame,
 		    1, 2, 0, 1,  GTK_FILL, 0,
@@ -2885,9 +2887,9 @@ create_optional_page (GtkPrintUnixDialog  *dialog,
 				  GTK_POLICY_AUTOMATIC);
   
   table = gtk_table_new (1, 2, FALSE);
-  gtk_table_set_row_spacings (GTK_TABLE (table), 6);
-  gtk_table_set_col_spacings (GTK_TABLE (table), 12);
-  gtk_container_set_border_width (GTK_CONTAINER (table), 12);
+  gtk_table_set_row_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (6));
+  gtk_table_set_col_spacings (GTK_TABLE (table), GTK_SIZE_ONE_TWELFTH_EM (12));
+  gtk_container_set_border_width (GTK_CONTAINER (table), GTK_SIZE_ONE_TWELFTH_EM (12));
   gtk_widget_show (table);
 
   gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled),
@@ -2917,8 +2919,8 @@ create_advanced_page (GtkPrintUnixDialog *dialog)
 				  GTK_POLICY_NEVER,
 				  GTK_POLICY_AUTOMATIC);
 
-  main_vbox = gtk_vbox_new (FALSE, 18);
-  gtk_container_set_border_width (GTK_CONTAINER (main_vbox), 12);
+  main_vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (18));
+  gtk_container_set_border_width (GTK_CONTAINER (main_vbox), GTK_SIZE_ONE_TWELFTH_EM (12));
   gtk_widget_show (main_vbox);
 
   gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled),
@@ -2944,13 +2946,13 @@ populate_dialog (GtkPrintUnixDialog *print_dialog)
   GtkWidget *vbox, *conflict_hbox, *image, *label;
 
   gtk_dialog_set_has_separator (dialog, FALSE);
-  gtk_container_set_border_width (GTK_CONTAINER (dialog), 5);
-  gtk_box_set_spacing (GTK_BOX (dialog->vbox), 2); /* 2 * 5 + 2 = 12 */
-  gtk_container_set_border_width (GTK_CONTAINER (dialog->action_area), 5);
-  gtk_box_set_spacing (GTK_BOX (dialog->action_area), 6);
+  gtk_container_set_border_width (GTK_CONTAINER (dialog), GTK_SIZE_ONE_TWELFTH_EM (5));
+  gtk_box_set_spacing (GTK_BOX (dialog->vbox), GTK_SIZE_ONE_TWELFTH_EM (2)); /* 2 * 5 + 2 = 12 */
+  gtk_container_set_border_width (GTK_CONTAINER (dialog->action_area), GTK_SIZE_ONE_TWELFTH_EM (5));
+  gtk_box_set_spacing (GTK_BOX (dialog->action_area), GTK_SIZE_ONE_TWELFTH_EM (6));
 
-  vbox = gtk_vbox_new (FALSE, 6);
-  gtk_container_set_border_width (GTK_CONTAINER (vbox), 5);
+  vbox = gtk_vbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (6));
+  gtk_container_set_border_width (GTK_CONTAINER (vbox), GTK_SIZE_ONE_TWELFTH_EM (5));
   gtk_box_pack_start (GTK_BOX (dialog->vbox), vbox, TRUE, TRUE, 0);
   gtk_widget_show (vbox);
 
@@ -2974,7 +2976,7 @@ populate_dialog (GtkPrintUnixDialog *print_dialog)
 			&priv->finishing_page);
   create_advanced_page (print_dialog);
 
-  priv->conflicts_widget = conflict_hbox = gtk_hbox_new (FALSE, 12);
+  priv->conflicts_widget = conflict_hbox = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (12));
   gtk_box_pack_end (GTK_BOX (vbox), conflict_hbox, FALSE, FALSE, 0);
   image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_MENU);
   gtk_widget_show (image);
diff --git a/gtk/gtkrecentchooserdefault.c b/gtk/gtkrecentchooserdefault.c
index f46bd9e..946bbfb 100644
--- a/gtk/gtkrecentchooserdefault.c
+++ b/gtk/gtkrecentchooserdefault.c
@@ -350,7 +350,7 @@ _gtk_recent_chooser_default_class_init (GtkRecentChooserDefaultClass *klass)
 static void
 _gtk_recent_chooser_default_init (GtkRecentChooserDefault *impl)
 {
-  gtk_box_set_spacing (GTK_BOX (impl), 6);
+  gtk_box_set_spacing (GTK_BOX (impl), GTK_SIZE_ONE_TWELFTH_EM (6));
 
   /* by default, we use the global manager */
   impl->local_manager = FALSE;
@@ -471,7 +471,7 @@ gtk_recent_chooser_default_constructor (GType                  type,
 		       GDK_ACTION_COPY);
   gtk_drag_source_add_uri_targets (impl->recent_view);
 
-  impl->filter_combo_hbox = gtk_hbox_new (FALSE, 12);
+  impl->filter_combo_hbox = gtk_hbox_new (FALSE, GTK_SIZE_ONE_TWELFTH_EM (12));
   
   impl->filter_combo = gtk_combo_box_new_text ();
   gtk_combo_box_set_focus_on_click (GTK_COMBO_BOX (impl->filter_combo), FALSE);
diff --git a/gtk/gtkrecentchooserdialog.c b/gtk/gtkrecentchooserdialog.c
index 0991014..15a69b6 100644
--- a/gtk/gtkrecentchooserdialog.c
+++ b/gtk/gtkrecentchooserdialog.c
@@ -94,9 +94,9 @@ gtk_recent_chooser_dialog_init (GtkRecentChooserDialog *dialog)
   dialog->priv = priv;
 
   gtk_dialog_set_has_separator (rc_dialog, FALSE);
-  gtk_container_set_border_width (GTK_CONTAINER (rc_dialog), 5);
-  gtk_box_set_spacing (GTK_BOX (rc_dialog->vbox), 2); /* 2 * 5 + 2 = 12 */
-  gtk_container_set_border_width (GTK_CONTAINER (rc_dialog->action_area), 5);
+  gtk_container_set_border_width (GTK_CONTAINER (rc_dialog), GTK_SIZE_ONE_TWELFTH_EM (5));
+  gtk_box_set_spacing (GTK_BOX (rc_dialog->vbox), GTK_SIZE_ONE_TWELFTH_EM (2)); /* 2 * 5 + 2 = 12 */
+  gtk_container_set_border_width (GTK_CONTAINER (rc_dialog->action_area), GTK_SIZE_ONE_TWELFTH_EM (5));
 
 }
 
@@ -167,7 +167,7 @@ gtk_recent_chooser_dialog_constructor (GType                  type,
   		    G_CALLBACK (gtk_recent_chooser_item_activated_cb),
   		    object);
 
-  gtk_container_set_border_width (GTK_CONTAINER (priv->chooser), 5);
+  gtk_container_set_border_width (GTK_CONTAINER (priv->chooser), GTK_SIZE_ONE_TWELFTH_EM (5));
   gtk_box_pack_start (GTK_BOX (GTK_DIALOG (object)->vbox),
                       priv->chooser, TRUE, TRUE, 0);
   gtk_widget_show (priv->chooser);



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