[simple-scan] Add Preferences option to Scan Options.



commit d22db799dfce14f33afd10e05942896536aa01d4
Author: Bartosz Kosiorek <gang65 poczta onet pl>
Date:   Sat Nov 30 01:16:10 2019 +0100

    Add Preferences option to Scan Options.
    
    All changes are made according to design, taken from:
    
https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/document-scanner/document-scanner.png

 src/app-window.ui   | 613 +++++++++++++++++++++++++++++++++++-----------------
 src/app-window.vala |   6 +
 2 files changed, 421 insertions(+), 198 deletions(-)
---
diff --git a/src/app-window.ui b/src/app-window.ui
index b34c07e..4dee3d6 100644
--- a/src/app-window.ui
+++ b/src/app-window.ui
@@ -1,12 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.20.0 -->
+<!-- Generated with glade 3.22.1 -->
 <interface>
   <requires lib="gtk+" version="3.12"/>
   <object class="GtkMenu" id="page_menu">
     <property name="visible">True</property>
+    <property name="can_focus">False</property>
     <child>
       <object class="GtkMenuItem" id="rotate_left_menuitem">
         <property name="visible">True</property>
+        <property name="can_focus">False</property>
         <property name="label" translatable="yes" comments="Menu item to rotate page to left 
(anti-clockwise)">Rotate _Left</property>
         <property name="use_underline">True</property>
         <signal name="activate" handler="rotate_left_button_clicked_cb" swapped="no"/>
@@ -16,6 +18,7 @@
     <child>
       <object class="GtkMenuItem" id="rotate_right_menuitem">
         <property name="visible">True</property>
+        <property name="can_focus">False</property>
         <property name="label" translatable="yes" comments="Menu item to rotate page to right 
(clockwise)">Rotate _Right</property>
         <property name="use_underline">True</property>
         <signal name="activate" handler="rotate_right_button_clicked_cb" swapped="no"/>
@@ -25,14 +28,17 @@
     <child>
       <object class="GtkMenuItem" id="crop_menuitem">
         <property name="visible">True</property>
+        <property name="can_focus">False</property>
         <property name="label" translatable="yes" comments="Label for page crop submenu">_Crop</property>
         <property name="use_underline">True</property>
         <child type="submenu">
           <object class="GtkMenu" id="crop_menu">
             <property name="visible">True</property>
+            <property name="can_focus">False</property>
             <child>
               <object class="GtkRadioMenuItem" id="no_crop_menuitem">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="label" translatable="yes" comments="Radio button for no 
crop">_None</property>
                 <property name="use_underline">True</property>
                 <property name="active">True</property>
@@ -43,6 +49,7 @@
             <child>
               <object class="GtkRadioMenuItem" id="a4_menuitem">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="label" translatable="yes" comments="Radio button for cropping page to A4 
size">A_4</property>
                 <property name="use_underline">True</property>
                 <property name="draw_as_radio">True</property>
@@ -53,6 +60,7 @@
             <child>
               <object class="GtkRadioMenuItem" id="a5_menuitem">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="label" translatable="yes" comments="Radio button for cropping page to A5 
size">A_5</property>
                 <property name="use_underline">True</property>
                 <property name="draw_as_radio">True</property>
@@ -63,6 +71,7 @@
             <child>
               <object class="GtkRadioMenuItem" id="a6_menuitem">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="label" translatable="yes" comments="Radio button for cropping page to A6 
size">A_6</property>
                 <property name="use_underline">True</property>
                 <property name="draw_as_radio">True</property>
@@ -73,6 +82,7 @@
             <child>
               <object class="GtkRadioMenuItem" id="letter_menuitem">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="label" translatable="yes" comments="Radio button for cropping page to US 
letter size">_Letter</property>
                 <property name="use_underline">True</property>
                 <property name="draw_as_radio">True</property>
@@ -83,6 +93,7 @@
             <child>
               <object class="GtkRadioMenuItem" id="legal_menuitem">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="label" translatable="yes" comments="Radio button for cropping to page to US 
legal size">Le_gal</property>
                 <property name="use_underline">True</property>
                 <property name="draw_as_radio">True</property>
@@ -93,6 +104,7 @@
             <child>
               <object class="GtkRadioMenuItem" id="four_by_six_menuitem">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="label" translatable="yes" comments="Radio button for cropping page to 4x6 
inch">4×6</property>
                 <property name="use_underline">True</property>
                 <property name="draw_as_radio">True</property>
@@ -103,6 +115,7 @@
             <child>
               <object class="GtkRadioMenuItem" id="a3_menuitem">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="label" translatable="yes" comments="Radio button for cropping page to 
A3">A_3</property>
                 <property name="use_underline">True</property>
                 <property name="draw_as_radio">True</property>
@@ -113,6 +126,7 @@
             <child>
               <object class="GtkRadioMenuItem" id="custom_crop_menuitem">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="label" translatable="yes" comments="Radio button for cropping to custom page 
size">_Custom</property>
                 <property name="use_underline">True</property>
                 <property name="draw_as_radio">True</property>
@@ -123,12 +137,14 @@
             <child>
               <object class="GtkSeparatorMenuItem" id="crop_sep_menuitem">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
               </object>
             </child>
             <child>
               <object class="GtkMenuItem" id="crop_rotate_menuitem">
                 <property name="visible">True</property>
                 <property name="sensitive">False</property>
+                <property name="can_focus">False</property>
                 <property name="label" translatable="yes" comments="Menu item to rotate the crop 
area">_Rotate Crop</property>
                 <property name="use_underline">True</property>
                 <signal name="activate" handler="crop_rotate_menuitem_activate_cb" swapped="no"/>
@@ -141,6 +157,7 @@
     <child>
       <object class="GtkMenuItem" id="page_move_left_menuitem">
         <property name="visible">True</property>
+        <property name="can_focus">False</property>
         <property name="label" translatable="yes" comments="Menu item to move the selected page to the 
left">Move Left</property>
         <signal name="activate" handler="page_move_left_menuitem_activate_cb" swapped="no"/>
         <accelerator key="less" signal="activate"/>
@@ -149,6 +166,7 @@
     <child>
       <object class="GtkMenuItem" id="page_move_right_menuitem">
         <property name="visible">True</property>
+        <property name="can_focus">False</property>
         <property name="label" translatable="yes" comments="Menu item to move the selected page to the 
right">Move Right</property>
         <property name="use_underline">True</property>
         <signal name="activate" handler="page_move_right_menuitem_activate_cb" swapped="no"/>
@@ -160,6 +178,7 @@
         <property name="label">gtk-copy</property>
         <property name="visible">True</property>
         <property name="sensitive">False</property>
+        <property name="can_focus">False</property>
         <property name="use_underline">True</property>
         <property name="use_stock">True</property>
         <signal name="activate" handler="copy_to_clipboard_button_clicked_cb" swapped="no"/>
@@ -170,6 +189,7 @@
       <object class="GtkImageMenuItem" id="page_delete_menuitem">
         <property name="label">gtk-delete</property>
         <property name="visible">True</property>
+        <property name="can_focus">False</property>
         <property name="use_underline">True</property>
         <property name="use_stock">True</property>
         <signal name="activate" handler="page_delete_menuitem_activate_cb" swapped="no"/>
@@ -177,99 +197,312 @@
       </object>
     </child>
   </object>
-  <template class="AppWindow" parent="GtkApplicationWindow">
-    <property name="title" translatable="yes" comments="Title of scan window">Document Scanner</property>
-    <property name="icon_name">org.gnome.SimpleScan</property>
-    <signal name="delete-event" handler="window_delete_event_cb" swapped="no"/>
+  <object class="GtkPopover" id="scan_options_popover">
+    <property name="can_focus">False</property>
     <child>
       <object class="GtkBox">
         <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="margin_left">12</property>
+        <property name="margin_right">12</property>
+        <property name="margin_top">12</property>
+        <property name="margin_bottom">12</property>
         <property name="orientation">vertical</property>
+        <property name="spacing">6</property>
         <child>
-          <object class="GtkStack" id="stack">
+          <object class="GtkRadioButton" id="scan_single_radio">
             <property name="visible">True</property>
-            <property name="vexpand">True</property>
+            <property name="can_focus">False</property>
+            <property name="receives_default">False</property>
+            <property name="draw_indicator">False</property>
+            <signal name="toggled" handler="scan_single_radio_toggled_cb" swapped="no"/>
             <child>
-              <object class="GtkAlignment">
+              <object class="GtkBox">
                 <property name="visible">True</property>
-                <property name="xscale">0</property>
-                <property name="yscale">0</property>
+                <property name="can_focus">False</property>
+                <property name="margin_start">12</property>
+                <property name="margin_end">12</property>
+                <property name="margin_top">6</property>
+                <property name="margin_bottom">6</property>
+                <property name="spacing">12</property>
                 <child>
-                  <object class="GtkBox">
+                  <object class="GtkImage">
                     <property name="visible">True</property>
-                    <property name="orientation">vertical</property>
-                    <property name="spacing">10</property>
-                    <child>
-                      <object class="GtkImage">
-                        <property name="visible">True</property>
-                        <property name="opacity">0.5</property>
-                        <property name="pixel_size">120</property>
-                        <property name="icon_name">org.gnome.SimpleScan-symbolic</property>
-                        <property name="icon_size">6</property>
-                      </object>
-                    </child>
-                    <child>
-                      <object class="GtkLabel" id="status_primary_label">
-                        <property name="visible">True</property>
-                        <attributes>
-                          <attribute name="weight" value="bold"/>
-                          <attribute name="scale" value="1.5"/>
-                        </attributes>
-                        <style>
-                          <class name="dim-label"/>
-                        </style>
-                      </object>
-                    </child>
-                    <child>
-                      <object class="GtkLabel" id="status_secondary_label">
-                        <property name="visible">False</property>
-                        <property name="track_visited_links">False</property>
-                        <signal name="activate_link" handler="status_label_activate_link_cb" swapped="no"/>
-                        <style>
-                          <class name="dim-label"/>
-                        </style>
-                      </object>
-                    </child>
+                    <property name="can_focus">False</property>
+                    <property name="icon_name">scanner-symbolic</property>
                   </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">_Single Page</property>
+                    <property name="use_underline">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
                 </child>
               </object>
-              <packing>
-                <property name="name">startup</property>
-              </packing>
             </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkRadioButton" id="scan_adf_radio">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="receives_default">False</property>
+            <property name="draw_indicator">False</property>
+            <property name="group">scan_single_radio</property>
+            <signal name="toggled" handler="scan_adf_radio_toggled_cb" swapped="no"/>
             <child>
-              <object class="GtkBox" id="main_vbox">
+              <object class="GtkBox">
                 <property name="visible">True</property>
-                <property name="orientation">vertical</property>
+                <property name="can_focus">False</property>
+                <property name="margin_start">12</property>
+                <property name="margin_end">12</property>
+                <property name="margin_top">6</property>
+                <property name="margin_bottom">6</property>
+                <property name="spacing">12</property>
                 <child>
-                  <object class="GtkActionBar" id="action_bar">
+                  <object class="GtkImage">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="icon_name">scan-type-adf-symbolic</property>
                   </object>
                   <packing>
-                    <property name="pack_type">end</property>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">All Pages From _Feeder</property>
+                    <property name="use_underline">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
                   </packing>
                 </child>
               </object>
-              <packing>
-                <property name="name">document</property>
-              </packing>
             </child>
           </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkRadioButton" id="scan_batch_radio">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="receives_default">False</property>
+            <property name="draw_indicator">False</property>
+            <property name="group">scan_single_radio</property>
+            <signal name="toggled" handler="scan_batch_radio_toggled_cb" swapped="no"/>
+            <child>
+              <object class="GtkBox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="margin_start">12</property>
+                <property name="margin_end">12</property>
+                <property name="margin_top">6</property>
+                <property name="margin_bottom">6</property>
+                <property name="spacing">12</property>
+                <child>
+                  <object class="GtkImage">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="icon_name">scan-type-batch-symbolic</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">_Multiple Pages From Flatbed</property>
+                    <property name="use_underline">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">2</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkRadioButton" id="text_radio">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="receives_default">False</property>
+            <property name="margin_top">12</property>
+            <property name="draw_indicator">False</property>
+            <signal name="toggled" handler="text_radio_toggled_cb" swapped="no"/>
+            <child>
+              <object class="GtkBox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="margin_start">12</property>
+                <property name="margin_end">12</property>
+                <property name="margin_top">6</property>
+                <property name="margin_bottom">6</property>
+                <property name="spacing">12</property>
+                <child>
+                  <object class="GtkImage">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="icon_name">text-x-generic-symbolic</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">_Text</property>
+                    <property name="use_underline">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">3</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkRadioButton" id="photo_radio">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="receives_default">False</property>
+            <property name="draw_indicator">False</property>
+            <property name="group">text_radio</property>
+            <signal name="toggled" handler="photo_radio_toggled_cb" swapped="no"/>
+            <child>
+              <object class="GtkBox">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="margin_start">12</property>
+                <property name="margin_end">12</property>
+                <property name="margin_top">6</property>
+                <property name="margin_bottom">6</property>
+                <property name="spacing">12</property>
+                <child>
+                  <object class="GtkImage">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="icon_name">image-x-generic-symbolic</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">_Image</property>
+                    <property name="use_underline">True</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">4</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkButton" id="preferences_button">
+            <property name="label" translatable="yes">_Preferences</property>
+            <property name="height_request">40</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="margin_top">12</property>
+            <property name="use_underline">True</property>
+            <signal name="clicked" handler="preferences_button_clicked_cb" swapped="no"/>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">5</property>
+          </packing>
         </child>
       </object>
     </child>
+  </object>
+  <template class="AppWindow" parent="GtkApplicationWindow">
+    <property name="can_focus">False</property>
+    <property name="title" translatable="yes" comments="Title of scan window">Document Scanner</property>
+    <property name="icon_name">org.gnome.SimpleScan</property>
+    <signal name="delete-event" handler="window_delete_event_cb" swapped="no"/>
     <child type="titlebar">
       <object class="GtkHeaderBar" id="header_bar">
         <property name="visible">True</property>
+        <property name="can_focus">False</property>
         <property name="vexpand">True</property>
         <property name="show_close_button">True</property>
         <child>
           <object class="GtkBox" id="open_box">
             <property name="visible">True</property>
+            <property name="can_focus">False</property>
             <property name="valign">center</property>
             <child>
               <object class="GtkButton" id="stop_button">
                 <property name="label" translatable="yes">Stop</property>
+                <property name="can_focus">False</property>
                 <property name="receives_default">False</property>
                 <property name="tooltip_text" translatable="yes" comments="Tooltip for stop button">Stop the 
current scan</property>
                 <property name="use_underline">True</property>
@@ -279,11 +512,17 @@
                   <class name="destructive-action"/>
                 </style>
               </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
             </child>
             <child>
               <object class="GtkButton" id="scan_button">
                 <property name="label" translatable="yes" comments="Label on scan toolbar 
item">Scan</property>
                 <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 scan toolbar 
button">Scan a single page from the scanner</property>
                 <property name="use_underline">True</property>
@@ -293,31 +532,55 @@
                   <class name="suggested-action"/>
                 </style>
               </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
             </child>
             <child>
               <object class="GtkMenuButton">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="receives_default">False</property>
                 <property name="popover">scan_options_popover</property>
                 <child>
                   <object class="GtkBox">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="spacing">6</property>
                     <child>
-                      <object class="GtkImage" id="scan_options_image">
+                      <object class="GtkImage">
                         <property name="visible">True</property>
-                        <property name="icon_name">scanner-symbolic</property>
+                        <property name="can_focus">False</property>
+                        <property name="icon_name">pan-down-symbolic</property>
                       </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
                     </child>
                     <child>
-                      <object class="GtkImage">
+                      <object class="GtkImage" id="scan_options_image">
                         <property name="visible">True</property>
-                        <property name="icon_name">pan-down-symbolic</property>
+                        <property name="can_focus">False</property>
+                        <property name="icon_name">scanner-symbolic</property>
                       </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
                     </child>
                   </object>
                 </child>
               </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">2</property>
+              </packing>
             </child>
             <style>
               <class name="linked"/>
@@ -327,11 +590,13 @@
         <child>
           <object class="GtkMenuButton" id="menu_button">
             <property name="visible">True</property>
+            <property name="can_focus">False</property>
             <property name="receives_default">False</property>
             <property name="use_underline">True</property>
             <child>
               <object class="GtkImage">
                 <property name="visible">True</property>
+                <property name="can_focus">False</property>
                 <property name="icon_name">open-menu-symbolic</property>
                 <property name="icon_size">1</property>
               </object>
@@ -342,12 +607,14 @@
           </object>
           <packing>
             <property name="pack_type">end</property>
+            <property name="position">1</property>
           </packing>
         </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>
@@ -355,6 +622,7 @@
             <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>
@@ -365,6 +633,7 @@
           </object>
           <packing>
             <property name="pack_type">end</property>
+            <property name="position">2</property>
           </packing>
         </child>
         <style>
@@ -372,170 +641,118 @@
         </style>
       </object>
     </child>
-  </template>
-  <object class="GtkPopover" id="scan_options_popover">
     <child>
       <object class="GtkBox">
         <property name="visible">True</property>
+        <property name="can_focus">False</property>
         <property name="orientation">vertical</property>
-        <property name="margin">12</property>
-        <property name="spacing">6</property>
-        <child>
-          <object class="GtkRadioButton" id="scan_single_radio">
-            <property name="visible">True</property>
-            <property name="draw_indicator">False</property>
-            <signal name="toggled" handler="scan_single_radio_toggled_cb" swapped="no"/>
-            <child>
-              <object class="GtkBox">
-                <property name="visible">True</property>
-                <property name="spacing">12</property>
-                <property name="margin_start">12</property>
-                <property name="margin_end">12</property>
-                <property name="margin_top">6</property>
-                <property name="margin_bottom">6</property>
-                <child>
-                  <object class="GtkImage">
-                    <property name="visible">True</property>
-                    <property name="icon_name">scanner-symbolic</property>
-                  </object>
-                </child>
-                <child>
-                  <object class="GtkLabel">
-                    <property name="visible">True</property>
-                    <property name="label" translatable="yes">_Single Page</property>
-                    <property name="use_underline">True</property>
-                  </object>
-                </child>
-              </object>
-            </child>
-          </object>
-        </child>
-        <child>
-          <object class="GtkRadioButton" id="scan_adf_radio">
-            <property name="visible">True</property>
-            <property name="draw_indicator">False</property>
-            <property name="group">scan_single_radio</property>
-            <signal name="toggled" handler="scan_adf_radio_toggled_cb" swapped="no"/>
-            <child>
-              <object class="GtkBox">
-                <property name="visible">True</property>
-                <property name="spacing">12</property>
-                <property name="margin_start">12</property>
-                <property name="margin_end">12</property>
-                <property name="margin_top">6</property>
-                <property name="margin_bottom">6</property>
-                <child>
-                  <object class="GtkImage">
-                    <property name="visible">True</property>
-                    <property name="icon_name">scan-type-adf-symbolic</property>
-                  </object>
-                </child>
-                <child>
-                  <object class="GtkLabel">
-                    <property name="visible">True</property>
-                    <property name="label" translatable="yes">All Pages From _Feeder</property>
-                    <property name="use_underline">True</property>
-                  </object>
-                </child>
-              </object>
-            </child>
-          </object>
-        </child>
-        <child>
-          <object class="GtkRadioButton" id="scan_batch_radio">
-            <property name="visible">True</property>
-            <property name="draw_indicator">False</property>
-            <property name="group">scan_single_radio</property>
-            <signal name="toggled" handler="scan_batch_radio_toggled_cb" swapped="no"/>
-            <child>
-              <object class="GtkBox">
-                <property name="visible">True</property>
-                <property name="spacing">12</property>
-                <property name="margin_start">12</property>
-                <property name="margin_end">12</property>
-                <property name="margin_top">6</property>
-                <property name="margin_bottom">6</property>
-                <child>
-                  <object class="GtkImage">
-                    <property name="visible">True</property>
-                    <property name="icon_name">scan-type-batch-symbolic</property>
-                  </object>
-                </child>
-                <child>
-                  <object class="GtkLabel">
-                    <property name="visible">True</property>
-                    <property name="label" translatable="yes">_Multiple Pages From Flatbed</property>
-                    <property name="use_underline">True</property>
-                  </object>
-                </child>
-              </object>
-            </child>
-          </object>
-        </child>
         <child>
-          <object class="GtkRadioButton" id="text_radio">
+          <object class="GtkStack" id="stack">
             <property name="visible">True</property>
-            <property name="draw_indicator">False</property>
-            <property name="margin_top">12</property>
-            <signal name="toggled" handler="text_radio_toggled_cb" swapped="no"/>
+            <property name="can_focus">False</property>
+            <property name="vexpand">True</property>
             <child>
-              <object class="GtkBox">
+              <object class="GtkAlignment">
                 <property name="visible">True</property>
-                <property name="spacing">12</property>
-                <property name="margin_start">12</property>
-                <property name="margin_end">12</property>
-                <property name="margin_top">6</property>
-                <property name="margin_bottom">6</property>
-                <child>
-                  <object class="GtkImage">
-                    <property name="visible">True</property>
-                    <property name="icon_name">text-x-generic-symbolic</property>
-                  </object>
-                </child>
+                <property name="can_focus">False</property>
+                <property name="xscale">0</property>
+                <property name="yscale">0</property>
                 <child>
-                  <object class="GtkLabel">
+                  <object class="GtkBox">
                     <property name="visible">True</property>
-                    <property name="label" translatable="yes">_Text</property>
-                    <property name="use_underline">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="orientation">vertical</property>
+                    <property name="spacing">10</property>
+                    <child>
+                      <object class="GtkImage">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="has_focus">True</property>
+                        <property name="is_focus">True</property>
+                        <property name="can_default">True</property>
+                        <property name="has_default">True</property>
+                        <property name="opacity">0.5</property>
+                        <property name="pixel_size">120</property>
+                        <property name="icon_name">org.gnome.SimpleScan-symbolic</property>
+                        <property name="icon_size">6</property>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="status_primary_label">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <attributes>
+                          <attribute name="weight" value="bold"/>
+                          <attribute name="scale" value="1.5"/>
+                        </attributes>
+                        <style>
+                          <class name="dim-label"/>
+                        </style>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="status_secondary_label">
+                        <property name="can_focus">False</property>
+                        <property name="track_visited_links">False</property>
+                        <signal name="activate-link" handler="status_label_activate_link_cb" swapped="no"/>
+                        <style>
+                          <class name="dim-label"/>
+                        </style>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">2</property>
+                      </packing>
+                    </child>
                   </object>
                 </child>
               </object>
+              <packing>
+                <property name="name">startup</property>
+              </packing>
             </child>
-          </object>
-        </child>
-        <child>
-          <object class="GtkRadioButton" id="photo_radio">
-            <property name="visible">True</property>
-            <property name="draw_indicator">False</property>
-            <property name="group">text_radio</property>
-            <signal name="toggled" handler="photo_radio_toggled_cb" swapped="no"/>
             <child>
-              <object class="GtkBox">
+              <object class="GtkBox" id="main_vbox">
                 <property name="visible">True</property>
-                <property name="spacing">12</property>
-                <property name="margin_start">12</property>
-                <property name="margin_end">12</property>
-                <property name="margin_top">6</property>
-                <property name="margin_bottom">6</property>
-                <child>
-                  <object class="GtkImage">
-                    <property name="visible">True</property>
-                    <property name="icon_name">image-x-generic-symbolic</property>
-                  </object>
-                </child>
+                <property name="can_focus">False</property>
+                <property name="orientation">vertical</property>
                 <child>
-                  <object class="GtkLabel">
+                  <object class="GtkActionBar" id="action_bar">
                     <property name="visible">True</property>
-                    <property name="label" translatable="yes">_Image</property>
-                    <property name="use_underline">True</property>
+                    <property name="can_focus">False</property>
                   </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>
               </object>
+              <packing>
+                <property name="name">document</property>
+                <property name="position">1</property>
+              </packing>
             </child>
           </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
         </child>
       </object>
     </child>
-  </object>
+  </template>
 </interface>
-
diff --git a/src/app-window.vala b/src/app-window.vala
index 16f10b7..0729026 100644
--- a/src/app-window.vala
+++ b/src/app-window.vala
@@ -722,6 +722,12 @@ public class AppWindow : Gtk.ApplicationWindow
             set_document_hint ("photo", true);
     }
 
+    [GtkCallback]
+    private void preferences_button_clicked_cb (Gtk.Button button)
+    {
+        preferences_dialog.present ();
+    }
+
     private ScanOptions make_scan_options ()
     {
         var options = new ScanOptions ();



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