[simple-scan] Use a GtkActionBar as per the new design



commit 793ee3956b255aee35d20d03c4e0316d30a2c9f5
Author: Robert Ancell <robert ancell canonical com>
Date:   Fri May 19 15:53:58 2017 +1200

    Use a GtkActionBar as per the new design

 meson.build         |    2 +-
 src/app-window.ui   |  324 +++++++++++++++++++++------------------------------
 src/app-window.vala |   19 +---
 3 files changed, 136 insertions(+), 209 deletions(-)
---
diff --git a/meson.build b/meson.build
index 694bbc5..3cb8de7 100644
--- a/meson.build
+++ b/meson.build
@@ -18,7 +18,7 @@ icondir = join_paths (datadir, 'simple-scan', 'icons')
 
 # Dependencies
 glib_dep = dependency ('glib-2.0', version: '>= 2.38')
-gtk_dep = dependency ('gtk+-3.0')
+gtk_dep = dependency ('gtk+-3.0', version: '>=3.12')
 gmodule_dep = dependency ('gmodule-export-2.0')
 gthread_dep = dependency ('gthread-2.0')
 zlib_dep = dependency ('zlib')
diff --git a/src/app-window.ui b/src/app-window.ui
index 5878d69..9c9cfeb 100644
--- a/src/app-window.ui
+++ b/src/app-window.ui
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Generated with glade 3.20.0 -->
 <interface>
-  <requires lib="gtk+" version="3.10"/>
+  <requires lib="gtk+" version="3.12"/>
   <object class="GtkImage" id="email_image">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
@@ -265,8 +265,8 @@
                         <property name="use_underline">True</property>
                         <property name="use_stock">True</property>
                         <signal name="activate" handler="quit_menuitem_activate_cb" swapped="no"/>
-                        <accelerator key="w" signal="activate" modifiers="GDK_CONTROL_MASK"/>
                         <accelerator key="q" signal="activate" modifiers="GDK_CONTROL_MASK"/>
+                        <accelerator key="w" signal="activate" modifiers="GDK_CONTROL_MASK"/>
                       </object>
                     </child>
                   </object>
@@ -514,21 +514,6 @@
           <object class="GtkToolbar" id="toolbar">
             <property name="can_focus">False</property>
             <child>
-              <object class="GtkToolButton" id="new_toolbutton">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="tooltip_text" translatable="yes" comments="Tooltip for new document 
button">Start a new document</property>
-                <property name="label" translatable="yes">New</property>
-                <property name="use_underline">True</property>
-                <property name="stock_id">gtk-new</property>
-                <signal name="clicked" handler="new_button_clicked_cb" swapped="no"/>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="homogeneous">True</property>
-              </packing>
-            </child>
-            <child>
               <object class="GtkMenuToolButton" id="scan_toolbutton">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
@@ -577,75 +562,148 @@
                 <property name="homogeneous">True</property>
               </packing>
             </child>
+            <style>
+              <class name="primary-toolbar"/>
+            </style>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child>
+          <placeholder/>
+        </child>
+        <child>
+          <object class="GtkActionBar">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
             <child>
-              <object class="GtkSeparatorToolItem" id="toolbutton2">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="homogeneous">True</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkToolButton" id="rotate_left_toolbutton">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="tooltip_text" translatable="yes" comments="Tooltip for rotate left 
(counter-clockwise) button">Rotate the page to the left (counter-clockwise)</property>
-                <property name="label" translatable="yes" comments="Label on rotate page left 
(anti-clockwise) item">Rotate Left</property>
-                <property name="use_underline">True</property>
-                <property name="icon_name">object-rotate-left</property>
-                <signal name="clicked" handler="rotate_left_button_clicked_cb" swapped="no"/>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="homogeneous">True</property>
-              </packing>
-            </child>
-            <child>
-              <object class="GtkToolButton" id="rotate_right_toolbutton">
+              <object class="GtkButton" id="new_toolbutton">
+                <property name="label" translatable="yes" comments="Label on new document button">Start 
Again…</property>
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="tooltip_text" translatable="yes" comments="Tooltip for rotate right 
(clockwise) button">Rotate the page to the right (clockwise)</property>
-                <property name="label" translatable="yes" comments="Label on rotate page right (clockwise) 
item">Rotate Right</property>
-                <property name="use_underline">True</property>
-                <property name="icon_name">object-rotate-right</property>
-                <signal name="clicked" handler="rotate_right_button_clicked_cb" swapped="no"/>
+                <property name="tooltip_text" translatable="yes" comments="Tooltip for new document 
button">Start a new document</property>
+                <signal name="clicked" handler="new_button_clicked_cb" swapped="no"/>
+                <style>
+                  <class name="text-button"/>
+                </style>
               </object>
               <packing>
-                <property name="expand">False</property>
-                <property name="homogeneous">True</property>
+                <property name="position">1</property>
               </packing>
             </child>
-            <child>
-              <object class="GtkToggleToolButton" id="crop_toolbutton">
+            <child type="center">
+              <object class="GtkBox">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="tooltip_text" translatable="yes">Crop the selected page</property>
-                <property name="is_important">True</property>
-                <property name="label" translatable="yes">Crop</property>
-                <property name="use_underline">True</property>
-                <property name="icon_name">object-crop</property>
-                <signal name="toggled" handler="crop_toolbutton_toggled_cb" swapped="no"/>
+                <property name="valign">center</property>
+                <property name="spacing">10</property>
+                <child>
+                  <object class="GtkBox" id="rotate_box">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="valign">center</property>
+                    <child>
+                      <object class="GtkButton" id="rotate_right_button">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="receives_default">False</property>
+                        <property name="tooltip_text" translatable="yes" comments="Tooltip for rotate right 
(clockwise) button">Rotate the page to the right (clockwise)</property>
+                        <property name="use_underline">True</property>
+                        <signal name="clicked" handler="rotate_right_button_clicked_cb" swapped="no"/>
+                        <child>
+                          <object class="GtkImage" id="objectrotateright-button">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="icon_name">object-rotate-right-symbolic</property>
+                            <property name="icon_size">1</property>
+                          </object>
+                        </child>
+                        <style>
+                          <class name="image-button"/>
+                        </style>
+                      </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>
+                    <child>
+                      <object class="GtkButton" id="rotate_left_button">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="receives_default">False</property>
+                        <property name="tooltip_text" translatable="yes" comments="Tooltip for rotate left 
(counter-clockwise) button">Rotate the page to the left (counter-clockwise)</property>
+                        <property name="use_underline">True</property>
+                        <signal name="clicked" handler="rotate_left_button_clicked_cb" swapped="no"/>
+                        <child>
+                          <object class="GtkImage" id="objectrotateleft-button">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="icon_name">object-rotate-left-symbolic</property>
+                            <property name="icon_size">1</property>
+                          </object>
+                        </child>
+                        <style>
+                          <class name="image-button"/>
+                        </style>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="pack_type">end</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                    <style>
+                      <class name="linked"/>
+                    </style>
+                  </object>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkToggleButton" id="crop_button">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="receives_default">False</property>
+                    <property name="tooltip_text" translatable="yes">Crop the selected page</property>
+                    <property name="use_underline">True</property>
+                    <signal name="toggled" handler="crop_button_toggled_cb" swapped="no"/>
+                    <child>
+                      <object class="GtkImage" id="objectcrop-button">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="icon_name">edit-cut-symbolic</property>
+                        <property name="icon_size">1</property>
+                      </object>
+                    </child>
+                    <style>
+                      <class name="image-button"/>
+                    </style>
+                  </object>
+                  <packing>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
               </object>
               <packing>
-                <property name="expand">False</property>
-                <property name="homogeneous">True</property>
+                <property name="position">0</property>
               </packing>
             </child>
-            <style>
-              <class name="primary-toolbar"/>
-            </style>
           </object>
           <packing>
             <property name="expand">False</property>
             <property name="fill">True</property>
-            <property name="position">1</property>
+            <property name="pack_type">end</property>
+            <property name="position">3</property>
           </packing>
         </child>
-        <child>
-          <placeholder/>
-        </child>
       </object>
     </child>
     <child type="titlebar">
@@ -722,55 +780,6 @@
           </object>
         </child>
         <child>
-          <object class="GtkButton" id="save_button">
-            <property name="visible">True</property>
-            <property name="sensitive">False</property>
-            <property name="can_focus">False</property>
-            <property name="receives_default">False</property>
-            <property name="tooltip_text" translatable="yes" comments="Tooltip for save toolbar button">Save 
document to a file</property>
-            <property name="use_underline">True</property>
-            <signal name="clicked" handler="save_file_button_clicked_cb" swapped="no"/>
-            <child>
-              <object class="GtkImage" id="save_image">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="icon_name">document-save-symbolic</property>
-                <property name="icon_size">1</property>
-              </object>
-            </child>
-            <style>
-              <class name="image-button"/>
-            </style>
-          </object>
-          <packing>
-            <property name="position">1</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkButton" id="new_button">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="receives_default">False</property>
-            <property name="tooltip_text" translatable="yes" comments="Tooltip for new document 
button">Start a new document</property>
-            <property name="use_underline">True</property>
-            <signal name="clicked" handler="new_button_clicked_cb" swapped="no"/>
-            <child>
-              <object class="GtkImage" id="new_image">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="icon_name">document-new-symbolic</property>
-                <property name="icon_size">1</property>
-              </object>
-            </child>
-            <style>
-              <class name="image-button"/>
-            </style>
-          </object>
-          <packing>
-            <property name="position">2</property>
-          </packing>
-        </child>
-        <child>
           <object class="GtkMenuButton" id="menu_button">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
@@ -790,90 +799,23 @@
           </object>
           <packing>
             <property name="pack_type">end</property>
-            <property name="position">3</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkBox" id="rotate_box">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="valign">center</property>
-            <child>
-              <object class="GtkButton" id="rotate_right_button">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="receives_default">False</property>
-                <property name="tooltip_text" translatable="yes" comments="Tooltip for rotate right 
(clockwise) button">Rotate the page to the right (clockwise)</property>
-                <property name="use_underline">True</property>
-                <signal name="clicked" handler="rotate_right_button_clicked_cb" swapped="no"/>
-                <child>
-                  <object class="GtkImage" id="objectrotateright-button">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="icon_name">object-rotate-right-symbolic</property>
-                    <property name="icon_size">1</property>
-                  </object>
-                </child>
-                <style>
-                  <class name="image-button"/>
-                </style>
-              </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>
-            <child>
-              <object class="GtkButton" id="rotate_left_button">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="receives_default">False</property>
-                <property name="tooltip_text" translatable="yes" comments="Tooltip for rotate left 
(counter-clockwise) button">Rotate the page to the left (counter-clockwise)</property>
-                <property name="use_underline">True</property>
-                <signal name="clicked" handler="rotate_left_button_clicked_cb" swapped="no"/>
-                <child>
-                  <object class="GtkImage" id="objectrotateleft-button">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="icon_name">object-rotate-left-symbolic</property>
-                    <property name="icon_size">1</property>
-                  </object>
-                </child>
-                <style>
-                  <class name="image-button"/>
-                </style>
-              </object>
-              <packing>
-                <property name="expand">False</property>
-                <property name="fill">True</property>
-                <property name="pack_type">end</property>
-                <property name="position">1</property>
-              </packing>
-            </child>
-            <style>
-              <class name="linked"/>
-            </style>
-          </object>
-          <packing>
-            <property name="pack_type">end</property>
-            <property name="position">4</property>
+            <property name="position">2</property>
           </packing>
         </child>
         <child>
-          <object class="GtkToggleButton" id="crop_button">
+          <object class="GtkButton" id="save_button">
             <property name="visible">True</property>
+            <property name="sensitive">False</property>
             <property name="can_focus">False</property>
             <property name="receives_default">False</property>
-            <property name="tooltip_text" translatable="yes">Crop the selected page</property>
+            <property name="tooltip_text" translatable="yes" comments="Tooltip for save toolbar button">Save 
document to a file</property>
             <property name="use_underline">True</property>
-            <signal name="toggled" handler="crop_button_toggled_cb" swapped="no"/>
+            <signal name="clicked" handler="save_file_button_clicked_cb" swapped="no"/>
             <child>
-              <object class="GtkImage" id="objectcrop-button">
+              <object class="GtkImage" id="save_image">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="icon_name">edit-cut-symbolic</property>
+                <property name="icon_name">document-save-symbolic</property>
                 <property name="icon_size">1</property>
               </object>
             </child>
@@ -883,7 +825,7 @@
           </object>
           <packing>
             <property name="pack_type">end</property>
-            <property name="position">5</property>
+            <property name="position">3</property>
           </packing>
         </child>
         <style>
diff --git a/src/app-window.vala b/src/app-window.vala
index 1ba1ea1..ca1369d 100644
--- a/src/app-window.vala
+++ b/src/app-window.vala
@@ -90,8 +90,6 @@ public class AppWindow : Gtk.ApplicationWindow
     [GtkChild]
     private Gtk.ToggleButton crop_button;
     [GtkChild]
-    private Gtk.ToggleToolButton crop_toolbutton;
-    [GtkChild]
     private Gtk.Button stop_button;
     [GtkChild]
     private Gtk.Button scan_button;
@@ -762,7 +760,6 @@ public class AppWindow : Gtk.ApplicationWindow
 
         menuitem.active = true;
         crop_button.active = page.has_crop;
-        crop_toolbutton.active = page.has_crop;
 
         updating_page_menu = false;
     }
@@ -879,18 +876,6 @@ public class AppWindow : Gtk.ApplicationWindow
     }
 
     [GtkCallback]
-    private void crop_toolbutton_toggled_cb (Gtk.ToggleToolButton widget)
-    {
-        if (updating_page_menu)
-            return;
-
-        if (widget.active)
-            custom_crop_menuitem.active = true;
-        else
-            no_crop_menuitem.active = true;
-    }
-
-    [GtkCallback]
     private void four_by_six_menuitem_toggled_cb (Gtk.CheckMenuItem widget)
     {
         if (widget.active)
@@ -1649,7 +1634,7 @@ public class AppWindow : Gtk.ApplicationWindow
             var appmenu = new Menu ();
             var section = new Menu ();
             appmenu.append_section (null, section);
-            section.append (_("New Document"), "app.new_document");
+            section.append (_("Start Again…"), "app.new_document");
 
             section = new Menu ();
             appmenu.append_section (null, section);
@@ -1709,7 +1694,7 @@ public class AppWindow : Gtk.ApplicationWindow
 
         book_view = new BookView (book);
         book_view.border_width = 18;
-        main_vbox.pack_end (book_view, true, true, 0);
+        main_vbox.pack_start (book_view, true, true, 0);
         book_view.page_selected.connect (page_selected_cb);
         book_view.show_page.connect (show_page_cb);
         book_view.show_menu.connect (show_page_menu_cb);


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