[shotwell] UI refresh: Update dialogs to modern GTK+ look: Bug #742326



commit 31bb622d5f2444cfb0ac4301af17dcb4c79b9da2
Author: Trinh Anh Ngoc <atw1990 gmail com>
Date:   Mon Jan 5 18:55:11 2015 -0800

    UI refresh: Update dialogs to modern GTK+ look: Bug #742326

 src/Dialogs.vala                    |   95 +++++++++++++++++------------------
 src/Properties.vala                 |   24 +--------
 src/data_imports/DataImportsUI.vala |   35 ++-----------
 src/publishing/PublishingUI.vala    |   35 ++-----------
 ui/shotwell.glade                   |   74 +++++----------------------
 5 files changed, 74 insertions(+), 189 deletions(-)
---
diff --git a/src/Dialogs.vala b/src/Dialogs.vala
index a20177b..69ad82f 100644
--- a/src/Dialogs.vala
+++ b/src/Dialogs.vala
@@ -168,6 +168,8 @@ public class ExportDialog : Gtk.Dialog {
     private bool in_insert = false;
     
     public ExportDialog(string title) {
+        Object (use_header_bar: 1);
+        
         this.title = title;
         resizable = false;
 
@@ -198,7 +200,6 @@ public class ExportDialog : Gtk.Dialog {
 
         pixels_entry = new Gtk.Entry();
         pixels_entry.set_max_length(6);
-        pixels_entry.set_size_request(60, -1);
         pixels_entry.set_text("%d".printf(current_scale));
         
         // register after preparation to avoid signals during init
@@ -218,30 +219,23 @@ public class ExportDialog : Gtk.Dialog {
         add_label(_("_Scaling constraint:"), 0, 2, constraint_combo);
         add_control(constraint_combo, 1, 2);
 
-        Gtk.Label pixels_label = new Gtk.Label.with_mnemonic(_(" _pixels"));
-        pixels_label.set_mnemonic_widget(pixels_entry);
-        
-        Gtk.Box pixels_box = new Gtk.Box(Gtk.Orientation.HORIZONTAL, 0);
-        pixels_box.pack_start(pixels_entry, false, false, 0);
-        pixels_box.pack_end(pixels_label, false, false, 0);
-        add_control(pixels_box, 1, 3);
+        add_label(_("_Pixels:"), 0, 3, pixels_entry);
+        add_control(pixels_entry, 1, 3);
         
         export_metadata = new Gtk.CheckButton.with_label(_("Export metadata"));
         add_control(export_metadata, 1, 4);
         export_metadata.active = true;
         
-        table.set_row_spacing(4);
-        table.set_column_spacing(4);
-        table.set_margin_top(4);
-        table.set_margin_bottom(4);
-        table.set_margin_left(4);
-        table.set_margin_right(4);
+        table.set_row_spacing(5);
+        table.set_column_spacing(5);
+        table.set_border_width(3);
         
         ((Gtk.Box) get_content_area()).add(table);
         
         // add buttons to action area
         add_button(Gtk.Stock.CANCEL, Gtk.ResponseType.CANCEL);
         ok_button = add_button(Gtk.Stock.OK, Gtk.ResponseType.OK);
+        set_default_response(Gtk.ResponseType.OK);
         
         ok_button.set_can_default(true);
         ok_button.has_default = true;
@@ -357,7 +351,7 @@ public class ExportDialog : Gtk.Dialog {
     }
     
     private void add_label(string text, int x, int y, Gtk.Widget? widget = null) {
-        Gtk.Alignment left_aligned = new Gtk.Alignment(0.0f, 0.5f, 0, 0);
+        Gtk.Alignment left_aligned = new Gtk.Alignment(1, 0.5f, 0, 0);
         
         Gtk.Label new_label = new Gtk.Label.with_mnemonic(text);
         new_label.set_use_underline(true);
@@ -371,7 +365,7 @@ public class ExportDialog : Gtk.Dialog {
     }
     
     private void add_control(Gtk.Widget widget, int x, int y) {
-        Gtk.Alignment left_aligned = new Gtk.Alignment(0, 0.5f, 0, 0);
+        Gtk.Alignment left_aligned = new Gtk.Alignment(0, 0.5f, 1, 0);
         left_aligned.add(widget);
         
         table.attach(left_aligned, x, y, 1, 1);
@@ -1196,6 +1190,10 @@ public class TextEntryDialog : Gtk.Dialog {
     private Gtk.Button button2;
     private Gtk.ButtonBox action_area_box;
     
+    public TextEntryDialog() {
+        Object (use_header_bar: 1);
+    }
+    
     public void set_builder(Gtk.Builder builder) {
         this.builder = builder;
     }
@@ -1204,7 +1202,6 @@ public class TextEntryDialog : Gtk.Dialog {
         string? initial_text, Gee.Collection<string>? completion_list, string? completion_delimiter) {
         set_title(title);
         set_resizable(true);
-        set_default_size (350, 104);
         set_parent_window(AppWindow.get_instance().get_parent_window());
         set_transient_for(AppWindow.get_instance());
         on_modify_validate = modify_validate;
@@ -1266,6 +1263,10 @@ public class MultiTextEntryDialog : Gtk.Dialog {
     private Gtk.Button button2;
     private Gtk.ButtonBox action_area_box;
     
+    public MultiTextEntryDialog() {
+        Object (use_header_bar: 1);
+    }
+    
     public void set_builder(Gtk.Builder builder) {
         this.builder = builder;
     }
@@ -1278,12 +1279,6 @@ public class MultiTextEntryDialog : Gtk.Dialog {
         set_transient_for(AppWindow.get_instance());
         on_modify_validate = modify_validate;
         
-        Gtk.Label name_label = builder.get_object("label9") as Gtk.Label;
-        name_label.set_text(label);
-        
-        Gtk.ScrolledWindow scrolled = builder.get_object("scrolledwindow1") as Gtk.ScrolledWindow;
-        scrolled.set_shadow_type (Gtk.ShadowType.ETCHED_IN);
-        
         entry = builder.get_object("textview1") as Gtk.TextView;
         entry.set_wrap_mode (Gtk.WrapMode.WORD);
         entry.buffer = new Gtk.TextBuffer(null);
@@ -1296,6 +1291,7 @@ public class MultiTextEntryDialog : Gtk.Dialog {
         
         button1 = (Gtk.Button) add_button(Gtk.Stock.CANCEL, Gtk.ResponseType.CANCEL);
         button2 = (Gtk.Button) add_button(Gtk.Stock.SAVE, Gtk.ResponseType.OK);
+        set_default_response(Gtk.ResponseType.OK);
         
         set_has_resize_grip(true);
     }
@@ -1653,6 +1649,8 @@ public class AdjustDateTimeDialog : Gtk.Dialog {
         bool contains_video = false, bool only_video = false) {
         assert(source != null);
 
+        Object(use_header_bar: 1);
+        
         set_modal(true);
         set_resizable(false);
         set_transient_for(AppWindow.get_instance());
@@ -1674,13 +1672,16 @@ public class AdjustDateTimeDialog : Gtk.Dialog {
 
         hour.output.connect(on_spin_button_output);
         hour.set_width_chars(2);  
+        hour.set_max_width_chars(2);
 
         minute = new Gtk.SpinButton.with_range(0, 59, 1);
         minute.set_width_chars(2);
+        minute.set_max_width_chars(2);
         minute.output.connect(on_spin_button_output);
 
         second = new Gtk.SpinButton.with_range(0, 59, 1);
         second.set_width_chars(2);
+        second.set_max_width_chars(2);
         second.output.connect(on_spin_button_output);
 
         system = new Gtk.ComboBoxText();
@@ -1689,14 +1690,14 @@ public class AdjustDateTimeDialog : Gtk.Dialog {
         system.append_text(_("24 Hr"));
         system.changed.connect(on_time_system_changed);
 
-        Gtk.Box clock = new Gtk.Box(Gtk.Orientation.HORIZONTAL, 0);
+        Gtk.Box clock = new Gtk.Box(Gtk.Orientation.HORIZONTAL, 3);
 
-        clock.pack_start(hour, false, false, 3);
-        clock.pack_start(new Gtk.Label(":"), false, false, 3); // internationalize?
-        clock.pack_start(minute, false, false, 3);
-        clock.pack_start(new Gtk.Label(":"), false, false, 3);
-        clock.pack_start(second, false, false, 3);
-        clock.pack_start(system, false, false, 3);
+        clock.pack_start(hour, false, false, 0);
+        clock.pack_start(new Gtk.Label(":"), false, false, 0); // internationalize?
+        clock.pack_start(minute, false, false, 0);
+        clock.pack_start(new Gtk.Label(":"), false, false, 0);
+        clock.pack_start(second, false, false, 0);
+        clock.pack_start(system, false, false, 0);
 
         set_default_response(Gtk.ResponseType.OK);
         
@@ -1724,15 +1725,15 @@ public class AdjustDateTimeDialog : Gtk.Dialog {
         modify_originals_check_button.sensitive = (!only_video) &&
             (!Config.Facade.get_instance().get_commit_metadata_to_masters() && display_options);
 
-        Gtk.Box time_content = new Gtk.Box(Gtk.Orientation.VERTICAL, 0);
+        Gtk.Box time_content = new Gtk.Box(Gtk.Orientation.VERTICAL, 5);
 
-        time_content.pack_start(calendar, true, false, 3);
-        time_content.pack_start(clock, true, false, 3);
+        time_content.pack_start(calendar, true, false, 0);
+        time_content.pack_start(clock, true, false, 0);
 
         if (display_options) {
-            time_content.pack_start(relativity_radio_button, true, false, 3);
-            time_content.pack_start(batch_radio_button, true, false, 3);
-            time_content.pack_start(modify_originals_check_button, true, false, 3);
+            time_content.pack_start(relativity_radio_button, true, false, 0);
+            time_content.pack_start(batch_radio_button, true, false, 0);
+            time_content.pack_start(modify_originals_check_button, true, false, 0);
         }
 
         Gdk.Pixbuf preview = null;
@@ -1745,26 +1746,26 @@ public class AdjustDateTimeDialog : Gtk.Dialog {
         }
         
         Gtk.Box image_content = new Gtk.Box(Gtk.Orientation.VERTICAL, 0);
+        image_content.set_valign(Gtk.Align.START);
+        image_content.set_homogeneous(true);
         Gtk.Image image = (preview != null) ? new Gtk.Image.from_pixbuf(preview) : new Gtk.Image();
         original_time_label = new Gtk.Label(null);
-        image_content.pack_start(image, true, false, 3);
-        image_content.pack_start(original_time_label, true, false, 3);
+        image_content.pack_start(image, true, false, 0);
+        image_content.pack_start(original_time_label, true, false, 0);
 
-        Gtk.Box hbox = new Gtk.Box(Gtk.Orientation.HORIZONTAL, 0);
-        hbox.pack_start(image_content, true, false, 6);
-        hbox.pack_start(time_content, true, false, 6);
+        Gtk.Box hbox = new Gtk.Box(Gtk.Orientation.HORIZONTAL, 10);
+        hbox.set_border_width(3);
+        hbox.pack_start(image_content, true, false, 0);
+        hbox.pack_start(time_content, true, false, 0);
 
         Gtk.Alignment hbox_alignment = new Gtk.Alignment(0.5f, 0.5f, 0, 0);
-        hbox_alignment.set_padding(6, 3, 6, 6);
         hbox_alignment.add(hbox);
 
-        ((Gtk.Box) get_content_area()).pack_start(hbox_alignment, true, false, 6);
+        ((Gtk.Box) get_content_area()).pack_start(hbox_alignment, true, false, 0);
 
         notification = new Gtk.Label("");
         notification.set_line_wrap(true);
         notification.set_justify(Gtk.Justification.CENTER);
-        notification.set_size_request(-1, -1);
-        notification.set_padding(12, 6);
 
         ((Gtk.Box) get_content_area()).pack_start(notification, true, true, 0);
         
@@ -2270,7 +2271,6 @@ public class PreferencesDialog {
     private Gee.ArrayList<PathFormat> path_formats = new Gee.ArrayList<PathFormat>();
     private GLib.DateTime example_date = new GLib.DateTime.local(2009, 3, 10, 18, 16, 11);
     private Gtk.CheckButton lowercase;
-    private Gtk.Button close_button;
     private Plugins.ManifestWidgetMediator plugins_mediator = new Plugins.ManifestWidgetMediator();
     private Gtk.ComboBoxText default_raw_developer_combo;
 
@@ -2294,8 +2294,6 @@ public class PreferencesDialog {
 
         library_dir_button = builder.get_object("library_dir_button") as Gtk.FileChooserButton;
         
-        close_button = builder.get_object("close_button") as Gtk.Button;
-        
         photo_editor_combo = builder.get_object("external_photo_editor_combo") as Gtk.ComboBox;
         raw_editor_combo = builder.get_object("external_raw_editor_combo") as Gtk.ComboBox;
         
@@ -2581,7 +2579,6 @@ public class PreferencesDialog {
     
     private void set_allow_closing(bool allow) {
         dialog.set_deletable(allow);
-        close_button.set_sensitive(allow);
         allow_closing = allow;
     }
     
diff --git a/src/Properties.vala b/src/Properties.vala
index 9edb4fb..4a86308 100644
--- a/src/Properties.vala
+++ b/src/Properties.vala
@@ -453,8 +453,6 @@ private class BasicProperties : Properties {
 
 private class ExtendedPropertiesWindow : Gtk.Dialog {
     private ExtendedProperties properties = null;
-    private const int FRAME_BORDER = 6;
-    private Gtk.Button close_button;
 
     private class ExtendedProperties : Properties {
         private const string NO_VALUE = "";
@@ -632,13 +630,13 @@ private class ExtendedPropertiesWindow : Gtk.Dialog {
     }
 
     public ExtendedPropertiesWindow(Gtk.Window owner) {
+        Object(use_header_bar: 1);
+        
         add_events(Gdk.EventMask.BUTTON_PRESS_MASK | Gdk.EventMask.KEY_PRESS_MASK);
         focus_on_map = true;
         set_accept_focus(true);
         set_can_focus(true);
         set_title(_("Extended Information"));
-        set_size_request(300,-1);
-        set_default_size(520, -1);
         set_position(Gtk.WindowPosition.CENTER);
         set_transient_for(owner);
         set_type_hint(Gdk.WindowTypeHint.DIALOG);
@@ -648,20 +646,8 @@ private class ExtendedPropertiesWindow : Gtk.Dialog {
         properties = new ExtendedProperties();
         Gtk.Alignment alignment = new Gtk.Alignment(0.5f,0.5f,1,1);
         alignment.add(properties);
-        alignment.set_padding(4, 4, 4, 4);
+        alignment.set_border_width(3);
         ((Gtk.Box) get_content_area()).add(alignment);
-        close_button = new Gtk.Button.from_stock(Gtk.Stock.CLOSE);
-        close_button.clicked.connect(on_close_clicked);
-    
-        Gtk.Alignment action_alignment = new Gtk.Alignment(1, 0.5f, 1, 1);
-        action_alignment.add(close_button);
-        ((Gtk.Container) get_action_area()).add(action_alignment);
-        
-        set_has_resize_grip(false);
-    }
-
-    ~ExtendedPropertiesWindow() {
-        close_button.clicked.disconnect(on_close_clicked);
     }
 
     public override bool button_press_event(Gdk.EventButton event) {
@@ -674,10 +660,6 @@ private class ExtendedPropertiesWindow : Gtk.Dialog {
         return true;
     }
 
-    private void on_close_clicked() {
-        hide();
-    }
-
     public override bool key_press_event(Gdk.EventKey event) {
         // hide properties
         if (Gdk.keyval_name(event.keyval) == "Escape") {
diff --git a/src/data_imports/DataImportsUI.vala b/src/data_imports/DataImportsUI.vala
index 9b171b1..565f9ec 100644
--- a/src/data_imports/DataImportsUI.vala
+++ b/src/data_imports/DataImportsUI.vala
@@ -202,19 +202,19 @@ public class DataImportsDialog : Gtk.Dialog {
     public const int STANDARD_ACTION_BUTTON_WIDTH = 128;
 
     private Gtk.ComboBoxText service_selector_box;
-    private Gtk.Label service_selector_box_label;
     private Gtk.Box central_area_layouter;
     private Gtk.Button close_cancel_button;
     private Spit.DataImports.DialogPane active_pane;
     private Spit.DataImports.ConcreteDataImportsHost host;
 
     protected DataImportsDialog() {
+        Object(use_header_bar: 1);
+        ((Gtk.HeaderBar) get_header_bar()).set_show_close_button(false);
 
         resizable = false;
         delete_event.connect(on_window_close);
         
         string title = _("Import From Application");
-        string label = _("Import media _from:");
         
         set_title(title);
 
@@ -225,9 +225,6 @@ public class DataImportsDialog : Gtk.Dialog {
             // service to select from
             service_selector_box = new Gtk.ComboBoxText();
             service_selector_box.set_active(0);
-            service_selector_box_label = new Gtk.Label.with_mnemonic(label);
-            service_selector_box_label.set_mnemonic_widget(service_selector_box);
-            service_selector_box_label.set_alignment(0.0f, 0.5f);
 
             // get the name of the service the user last used
             string? last_used_service = Config.Facade.get_instance().get_last_used_dataimports_service();
@@ -248,30 +245,6 @@ public class DataImportsDialog : Gtk.Dialog {
                 service_selector_box.set_active(0);
 
             service_selector_box.changed.connect(on_service_changed);
-
-            /* the wrapper is not an extraneous widget -- it's necessary to prevent the service
-               selection box from growing and shrinking whenever its parent's size changes.
-               When wrapped inside a Gtk.Alignment, the Alignment grows and shrinks instead of
-               the service selection box. */
-            Gtk.Alignment service_selector_box_wrapper = new Gtk.Alignment(1.0f, 0.5f, 0.0f, 0.0f);
-            service_selector_box_wrapper.add(service_selector_box);
-
-            Gtk.Box service_selector_layouter = new Gtk.Box(Gtk.Orientation.HORIZONTAL, 8);
-            service_selector_layouter.set_border_width(12);
-            service_selector_layouter.add(service_selector_box_label);
-            service_selector_layouter.pack_start(service_selector_box_wrapper, true, true, 0);
-            
-            /* 'service area' is the selector assembly plus the horizontal rule dividing it from the
-               rest of the dialog */
-            Gtk.Box service_area_layouter = new Gtk.Box(Gtk.Orientation.VERTICAL, 0);
-            service_area_layouter.pack_start(service_selector_layouter, true, true, 0);
-            Gtk.Separator service_central_separator = new Gtk.Separator(Gtk.Orientation.HORIZONTAL);
-            service_area_layouter.add(service_central_separator);
-            
-            Gtk.Alignment service_area_wrapper = new Gtk.Alignment(0.0f, 0.0f, 1.0f, 0.0f);
-            service_area_wrapper.add(service_area_layouter);
-
-            ((Gtk.Box) get_content_area()).pack_start(service_area_wrapper, false, false, 0);
         }
         
         // Intall the central area in all cases
@@ -281,7 +254,9 @@ public class DataImportsDialog : Gtk.Dialog {
         close_cancel_button = new Gtk.Button.with_mnemonic("_Cancel");
         close_cancel_button.set_can_default(true);
         close_cancel_button.clicked.connect(on_close_cancel_clicked);
-        ((Gtk.Box) get_action_area()).add(close_cancel_button);
+
+        ((Gtk.HeaderBar) get_header_bar()).pack_start(close_cancel_button);
+        ((Gtk.HeaderBar) get_header_bar()).pack_end(service_selector_box);
 
         set_standard_window_mode();
         
diff --git a/src/publishing/PublishingUI.vala b/src/publishing/PublishingUI.vala
index 4f63f55..f6f569e 100644
--- a/src/publishing/PublishingUI.vala
+++ b/src/publishing/PublishingUI.vala
@@ -146,7 +146,6 @@ public class PublishingDialog : Gtk.Dialog {
     
     private Gtk.ListStore service_selector_box_model;
     private Gtk.ComboBox service_selector_box;
-    private Gtk.Label service_selector_box_label;
     private Gtk.Box central_area_layouter;
     private Gtk.Button close_cancel_button;
     private Spit.Publishing.DialogPane active_pane;
@@ -157,6 +156,9 @@ public class PublishingDialog : Gtk.Dialog {
     protected PublishingDialog(Gee.Collection<MediaSource> to_publish) {
         assert(to_publish.size > 0);
 
+        Object(use_header_bar: 1);
+        ((Gtk.HeaderBar) get_header_bar()).set_show_close_button(false);
+        
         resizable = false;
         delete_event.connect(on_window_close);
         
@@ -180,7 +182,7 @@ public class PublishingDialog : Gtk.Dialog {
         string label = null;
         
         if (has_photos && !has_videos) {
-            title = null;_("Publish Photos");
+            title = _("Publish Photos");
             label = _("Publish photos _to:");
         } else if (!has_photos && has_videos) {
             title = _("Publish Videos");
@@ -203,10 +205,6 @@ public class PublishingDialog : Gtk.Dialog {
         service_selector_box.add_attribute(renderer_text, "text", 1);
 
         service_selector_box.set_active(0);
-        
-        service_selector_box_label = new Gtk.Label.with_mnemonic(label);
-        service_selector_box_label.set_mnemonic_widget(service_selector_box);
-        service_selector_box_label.set_alignment(0.0f, 0.5f);
 
         // get the name of the service the user last used
         string? last_used_service = Config.Facade.get_instance().get_last_used_service();
@@ -244,37 +242,16 @@ public class PublishingDialog : Gtk.Dialog {
         }
 
         service_selector_box.changed.connect(on_service_changed);
-
-        /* the wrapper is not an extraneous widget -- it's necessary to prevent the service
-           selection box from growing and shrinking whenever its parent's size changes.
-           When wrapped inside a Gtk.Alignment, the Alignment grows and shrinks instead of
-           the service selection box. */
-        Gtk.Alignment service_selector_box_wrapper = new Gtk.Alignment(1.0f, 0.5f, 0.0f, 0.0f);
-        service_selector_box_wrapper.add(service_selector_box);
-
-        Gtk.Box service_selector_layouter = new Gtk.Box(Gtk.Orientation.HORIZONTAL, 8);
-        service_selector_layouter.set_border_width(12);
-        service_selector_layouter.add(service_selector_box_label);
-        service_selector_layouter.pack_start(service_selector_box_wrapper, true, true, 0);
-        
-        /* 'service area' is the selector assembly plus the horizontal rule dividing it from the
-           rest of the dialog */
-        Gtk.Box service_area_layouter = new Gtk.Box(Gtk.Orientation.VERTICAL, 0);
-        service_area_layouter.add(service_selector_layouter);
-        service_area_layouter.add(new Gtk.Separator(Gtk.Orientation.HORIZONTAL));
-
-        Gtk.Alignment service_area_wrapper = new Gtk.Alignment(0.0f, 0.0f, 1.0f, 0.0f);
-        service_area_wrapper.add(service_area_layouter);
         
         central_area_layouter = new Gtk.Box(Gtk.Orientation.VERTICAL, 0);
 
-        get_content_area().pack_start(service_area_wrapper, false, false, 0);
         get_content_area().pack_start(central_area_layouter, true, true, 0);
         
         close_cancel_button = new Gtk.Button.with_mnemonic("_Cancel");
         close_cancel_button.set_can_default(true);
         close_cancel_button.clicked.connect(on_close_cancel_clicked);
-        ((Gtk.Container) get_action_area()).add(close_cancel_button);
+        ((Gtk.HeaderBar) get_header_bar()).pack_start(close_cancel_button);
+        ((Gtk.HeaderBar) get_header_bar()).pack_end(service_selector_box);
 
         set_standard_window_mode();
         
diff --git a/ui/shotwell.glade b/ui/shotwell.glade
index 435152d..7c223bc 100644
--- a/ui/shotwell.glade
+++ b/ui/shotwell.glade
@@ -572,18 +572,18 @@
     <property name="visible">True</property>
     <property name="can_focus">False</property>
     <property name="orientation">vertical</property>
+    <property name="border_width">3</property>
+    <property name="spacing">3</property>
     <child>
       <object class="GtkLabel" id="label">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
         <property name="xalign">0</property>
-        <property name="xpad">4</property>
         <property name="label" translatable="yes">label</property>
       </object>
       <packing>
         <property name="expand">False</property>
         <property name="fill">True</property>
-        <property name="padding">4</property>
         <property name="position">0</property>
       </packing>
     </child>
@@ -591,16 +591,12 @@
       <object class="GtkEntry" id="entry">
         <property name="visible">True</property>
         <property name="can_focus">True</property>
-        <property name="margin_left">7</property>
-        <property name="margin_right">7</property>
-        <property name="margin_bottom">2</property>
         <property name="invisible_char">●</property>
         <property name="activates_default">True</property>
       </object>
       <packing>
         <property name="expand">False</property>
         <property name="fill">True</property>
-        <property name="padding">1</property>
         <property name="position">1</property>
       </packing>
     </child>
@@ -614,21 +610,7 @@
     <property name="hexpand">True</property>
     <property name="vexpand">True</property>
     <property name="orientation">vertical</property>
-    <child>
-      <object class="GtkLabel" id="label9">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="xalign">0</property>
-        <property name="xpad">4</property>
-        <property name="label" translatable="yes">label</property>
-      </object>
-      <packing>
-        <property name="expand">False</property>
-        <property name="fill">True</property>
-        <property name="padding">4</property>
-        <property name="position">0</property>
-      </packing>
-    </child>
+    <property name="border_width">3</property>
     <child>
       <object class="GtkScrolledWindow" id="scrolledwindow1">
         <property name="visible">True</property>
@@ -638,12 +620,8 @@
           <object class="GtkTextView" id="textview1">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
-            <property name="margin_left">7</property>
-            <property name="margin_right">7</property>
-            <property name="margin_bottom">2</property>
             <property name="hexpand">True</property>
             <property name="vexpand">True</property>
-            <property name="border_width">1</property>
             <property name="wrap_mode">word</property>
             <property name="accepts_tab">False</property>
           </object>
@@ -663,6 +641,7 @@
     <property name="visible">True</property>
     <property name="can_focus">False</property>
     <property name="orientation">vertical</property>
+    <property name="spacing">12</property>
     <child>
       <object class="GtkAlignment" id="plugin-list-alignment">
         <property name="visible">True</property>
@@ -708,56 +687,34 @@
       <packing>
         <property name="expand">False</property>
         <property name="fill">False</property>
-        <property name="padding">6</property>
         <property name="position">1</property>
       </packing>
     </child>
   </object>
   <object class="GtkDialog" id="preferences_dialog">
     <property name="can_focus">False</property>
-    <property name="border_width">5</property>
-    <property name="title" translatable="yes">Shotwell Preferences</property>
     <property name="destroy_with_parent">True</property>
     <property name="type_hint">dialog</property>
     <property name="skip_taskbar_hint">True</property>
+    <child type="titlebar">
+      <object class="GtkHeaderBar" id="headerbar">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="show-close-button">True</property>
+        <property name="title" translatable="yes">Shotwell Preferences</property>
+      </object>
+    </child>
     <child internal-child="vbox">
       <object class="GtkBox" id="dialog-vbox3">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
         <property name="orientation">vertical</property>
-        <child internal-child="action_area">
-          <object class="GtkButtonBox" id="dialog-action_area3">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="layout_style">end</property>
-            <child>
-              <object class="GtkButton" id="close_button">
-                <property name="label">gtk-close</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="can_default">True</property>
-                <property name="has_default">True</property>
-                <property name="receives_default">True</property>
-                <property name="use_stock">True</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">False</property>
-                <property name="position">0</property>
-              </packing>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="pack_type">end</property>
-            <property name="position">0</property>
-          </packing>
-        </child>
+        <property name="border_width">0</property>
         <child>
           <object class="GtkNotebook" id="notebook1">
             <property name="visible">True</property>
             <property name="can_focus">True</property>
+            <property name="show_border">False</property>
             <child>
               <object class="GtkAlignment" id="alignment1">
                 <property name="visible">True</property>
@@ -1419,9 +1376,6 @@
         </child>
       </object>
     </child>
-    <action-widgets>
-      <action-widget response="-5">close_button</action-widget>
-    </action-widgets>
   </object>
   <object class="GtkBox" id="progress_pane_widget">
     <property name="visible">True</property>


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