<?xml version="1.0" encoding="UTF-8"?>
<interface>
  <requires lib="gtk" version="4.0"/>
  <requires lib="libadwaita" version="1.0"/>
  
  <menu id="context-menu">
    <item>
      <attribute name="label" translatable="yes" comments="Menu item to rotate page to left (anti-clockwise)">Rotate _Left</attribute>
      <attribute name="action">app.rotate_left</attribute>
    </item>
    <item>
      <attribute name="label" translatable="yes" comments="Menu item to rotate page to right (clockwise)">Rotate _Right</attribute>
      <attribute name="action">app.rotate_right</attribute>
    </item>
    <submenu>
      <attribute name="label" translatable="yes" comments="Label for page crop submenu">_Crop</attribute>

      <section>
        <item>
          <attribute name="label" translatable="yes" comments="Radio button for no crop">_None</attribute>
          <attribute name="action">crop.set</attribute>
          <attribute name="target">none</attribute>
        </item>

        <item>
          <attribute name="label" translatable="yes" comments="Radio button for cropping page to A4 size">A_4</attribute>
          <attribute name="action">crop.set</attribute>
          <attribute name="target">A4</attribute>
        </item>

        <item>
          <attribute name="label" translatable="yes" comments="Radio button for cropping page to A5 size">A_5</attribute>
          <attribute name="action">crop.set</attribute>
          <attribute name="target">A5</attribute>
        </item>

        <item>
          <attribute name="label" translatable="yes" comments="Radio button for cropping page to A6 size">A_6</attribute>
          <attribute name="action">crop.set</attribute>
          <attribute name="target">A6</attribute>
        </item>

        <item>
          <attribute name="label" translatable="yes" comments="Radio button for cropping page to US letter size">_Letter</attribute>
          <attribute name="action">crop.set</attribute>
          <attribute name="target">letter</attribute>
        </item>

        <item>
          <attribute name="label" translatable="yes" comments="Radio button for cropping to page to US legal size">Le_gal</attribute>
          <attribute name="action">crop.set</attribute>
          <attribute name="target">legal</attribute>
        </item>

        <item>
          <attribute name="label" translatable="yes" comments="Radio button for cropping page to 4x6 inch">4×6</attribute>
          <attribute name="action">crop.set</attribute>
          <attribute name="target">4x6</attribute>
        </item>

        <item>
          <attribute name="label" translatable="yes" comments="Radio button for cropping page to A3">A_3</attribute>
          <attribute name="action">crop.set</attribute>
          <attribute name="target">A3</attribute>
        </item>

        <item>
          <attribute name="label" translatable="yes" comments="Radio button for cropping to custom page size">_Custom</attribute>
          <attribute name="action">crop.set</attribute>
          <attribute name="target">custom</attribute>
        </item>
      </section>

      <section>
        <item>
          <attribute name="label" translatable="yes" comments="Menu item to rotate the crop area">_Rotate Crop</attribute>
          <attribute name="action">crop.rotate</attribute>
        </item>
      </section>

    </submenu>
    <item>
      <attribute name="label" translatable="yes" comments="Menu item to move the selected page to the left">Move Left</attribute>
      <attribute name="action">app.move_left</attribute>
    </item>
    <item>
      <attribute name="label" translatable="yes" comments="Menu item to move the selected page to the right">Move Right</attribute>
      <attribute name="action">app.move_right</attribute>
    </item>
    <item>
      <attribute name="label" translatable="yes">Copy</attribute>
      <attribute name="action">app.copy_page</attribute>
    </item>
    <item>
      <attribute name="label" translatable="yes">Delete</attribute>
      <attribute name="action">app.delete_page</attribute>
    </item>
  </menu>

  <menu id="scan-menu">
    <section>
      <item>
        <attribute name="label" translatable="yes">_Single Page</attribute>
        <attribute name="action">app.scan_type</attribute>
        <attribute name="target">single</attribute>
      </item>

      <item>
        <attribute name="label" translatable="yes">All Pages From _Feeder</attribute>
        <attribute name="action">app.scan_type</attribute>
        <attribute name="target">adf</attribute>
      </item>

      <item>
        <attribute name="label" translatable="yes">_Multiple Pages From Flatbed</attribute>
        <attribute name="action">app.scan_type</attribute>
        <attribute name="target">batch</attribute>
      </item>
    </section>

    <section>
      <item>
        <attribute name="label" translatable="yes">_Text</attribute>
        <attribute name="action">app.document_hint</attribute>
        <attribute name="target">text</attribute>
      </item>

      <item>
        <attribute name="label" translatable="yes">_Image</attribute>
        <attribute name="action">app.document_hint</attribute>
        <attribute name="target">photo</attribute>
      </item>
    </section>
  </menu>

  <template class="AppWindow" parent="AdwApplicationWindow">
    <property name="width_request">320</property>
    <property name="height_request">480</property>
    <property name="title" translatable="yes" comments="Title of scan window">Document Scanner</property>
    <property name="icon_name">org.gnome.SimpleScan</property>
    <signal name="close-request" handler="window_close_request_cb" swapped="no"/>
    <property name="content">
      <object class="GtkBox">
        <property name="orientation">vertical</property>
        
        <child>
          <object class="GtkPopoverMenu" id="page_menu">
            <property name="menu-model">context-menu</property>
            <property name="has_arrow">false</property>
            <property name="halign">start</property>
          </object>
        </child>

        <child>
          <object class="AdwHeaderBar" id="header_bar">
            <child type="start">
              <object class="GtkBox" id="open_box">
                <property name="valign">center</property>
                <property name="margin-start">6</property>
                <property name="spacing">6</property>
                <child>
                  <object class="GtkButton" id="stop_button">
                    <property name="visible">0</property>
                    <property name="tooltip_text" translatable="yes" comments="Tooltip for stop button">Stop the current scan</property>
                    <property name="use_underline">True</property>
                    <signal name="clicked" handler="stop_scan_button_clicked_cb" swapped="no"/>
                    <child>
                      <object class="GtkBox">
                        <property name="spacing">6</property>
                        <property name="halign">center</property>
                        <child>
                          <object class="GtkSpinner" id="stop_button_spinner">
                            <property name="spinning">True</property>
                          </object>
                        </child>
                        <child>
                          <object class="GtkLabel">
                            <property name="label" translatable="yes">S_top</property>
                            <property name="use_underline">True</property>
                            <property name="width_chars">6</property>
                            <property name="xalign">0.33</property>
                            <property name="halign">center</property>
                          </object>
                        </child>
                      </object>
                    </child>
                    <style>
                      <class name="text-button"/>
                      <class name="destructive-action"/>
                    </style>
                  </object>
                </child>
                <child>
                  <object class="GtkButton" id="scan_button">
                    <property name="sensitive">0</property>
                    <property name="tooltip_text" translatable="yes" comments="Tooltip for scan toolbar button. Replaced by text associated with each scan type."></property>
                    <property name="use_underline">True</property>
                    <signal name="clicked" handler="scan_button_clicked_cb" swapped="no"/>

                    <property name="child">
                      <object class="AdwButtonContent" id="scan_button_content">
                        <property name="icon-name">scanner-symbolic</property>
                        <property name="label" translatable="yes">_Scan</property>
                        <property name="use-underline">True</property>
                      </object>
                    </property>
                  </object>
                </child>
                <child>
                  <object class="GtkMenuButton" id="scan_options_menu">
                    <property name="menu_model">scan-menu</property>
                    <property name="icon_name">emblem-system-symbolic</property>
                  </object>
                </child>
              </object>
            </child>
            <child type="end">
              <object class="GtkMenuButton" id="menu_button">
                <property name="use_underline">True</property>
                <property name="primary">True</property>
                <property name="icon_name">open-menu-symbolic</property>
              </object>
            </child>
            <child type="end">
              <object class="GtkButton" id="save_button">
                <property name="sensitive">0</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>
                <property name="action-name">app.save</property>
                <property name="icon_name">document-save-symbolic</property>
              </object>
            </child>
            <style>
              <class name="titlebar"/>
            </style>
          </object>
        </child>

        <child>
          <object class="GtkStack" id="stack">
            <property name="vexpand">True</property>
            <child>
              <object class="GtkStackPage">
                <property name="name">startup</property>
                <property name="child">
                  <object class="AdwStatusPage" id="status_page">
                    <property name="icon_name">org.gnome.SimpleScan-symbolic</property>
                    <child>
                      <object class="GtkBox">
                        <property name="orientation">vertical</property>
                        <property name="spacing">12</property>

                        <child>
                          <object class="GtkLabel" id="status_secondary_label">
                            <property name="visible">False</property>
                            <property name="wrap">True</property>
                            <property name="wrap-mode">word-char</property>
                            <property name="justify">center</property>
                            <property name="use-markup">True</property>
                            <!-- <property name="track_visited_links">False</property> -->
                            <signal name="activate-link" handler="status_label_activate_link_cb" swapped="no"/>
                            <style>
                              <class name="body"/>
                              <class name="description"/>
                            </style>
                          </object>
                        </child>
                        <child>
                          <object class="GtkBox" id="device_buttons_box">
                            <property name="visible">False</property>
                            <property name="orientation">horizontal</property>
                            <property name="halign">center</property>
                            <property name="spacing">10</property>
                            <child>
                              <object class="GtkDropDown" id="device_drop_down">
                                <property name="width_request">200</property>
                                <signal name="notify::selected" handler="device_drop_down_changed_cb" swapped="no"/>
                              </object>
                            </child>
                            <child>
                              <object class="GtkButton" id="refresh_devices">
                                <property name="tooltip_text" translatable="yes" comments="Tooltip for stop button">Refresh device list</property>
                                <property name="icon_name">view-refresh-symbolic</property>

                                <signal name="clicked" handler="redetect_button_clicked_cb" swapped="no"/>
                              </object>
                            </child>
                          </object>
                        </child>
                      </object>
                    </child>
                  </object>
                </property>
              </object>
            </child>
            <child>
              <object class="GtkStackPage">
                <property name="name">document</property>
                <property name="child">
                  <object class="GtkBox" id="main_vbox">
                    <property name="orientation">vertical</property>
                    <child>
                      <object class="GtkActionBar" id="action_bar">
                        <child type="start">
                          <object class="GtkButton">
                            <property name="margin-start">6</property>
                            <signal name="clicked" handler="new_document_cb" swapped="no"/>

                            <property name="child">
                              <object class="AdwButtonContent">
                                <property name="icon-name">list-add-symbolic</property>
                                <property name="label" translatable="yes">New Document</property>
                              </object>
                            </property>
                          </object>
                        </child>

                        <child type="center">
                          <object class="GtkBox">
                            <property name="orientation">horizontal</property>
                            <property name="spacing">5</property>

                            <child>
                              <object class="GtkButton">
                                <property name="icon-name">object-rotate-left-symbolic</property>
                                <property name="tooltip-text" translatable="yes">Rotate the page to the left (counter-clockwise)</property>
                                <property name="action-name">app.rotate_left</property>
                              </object>
                            </child>

                            <child>
                              <object class="GtkButton">
                                <property name="icon-name">object-rotate-right-symbolic</property>
                                <property name="tooltip-text" translatable="yes">Rotate the page to the right (clockwise)</property>
                                <property name="action-name">app.rotate_right</property>
                              </object>
                            </child>

                            <child>
                              <object class="GtkToggleButton" id="crop_button">
                                <property name="icon-name">crop-symbolic</property>
                                <property name="tooltip-text" translatable="yes">Crop the selected page</property>
                                <signal name="toggled" handler="crop_toggle_cb" swapped="no"/>
                              </object>
                            </child>

                            <child>
                              <object class="GtkButton" id="delete_button">
                                <property name="icon-name">user-trash-symbolic</property>
                                <property name="tooltip-text" translatable="yes">Delete the selected page</property>
                                <property name="action-name">app.delete_page</property>
                              </object>
                            </child>

                          </object>
                        </child>

                      </object>
                    </child>
                  </object>
                </property>
              </object>
            </child>
          </object>
        </child>

      </object>
    </property>
  </template>
</interface>