Port to GTK4 (WIP)

This commit is contained in:
Jason Francis
2020-03-07 10:37:19 -05:00
parent ba331cab53
commit 58dec1391f
8 changed files with 543 additions and 905 deletions

View File

@@ -1,5 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.0 -->
<interface>
<requires lib="gtk+" version="3.22"/>
<object class="GtkAdjustment" id="height_adjustment">
@@ -7,23 +6,6 @@
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkPopover" id="modes">
<property name="can_focus">False</property>
<child>
<object class="GtkBox" id="mode_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_start">10</property>
<property name="margin_end">10</property>
<property name="margin_top">10</property>
<property name="margin_bottom">10</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
</object>
</child>
</object>
<object class="GtkAdjustment" id="pos_x_adjustment">
<property name="upper">16383</property>
<property name="step_increment">1</property>
@@ -51,430 +33,278 @@
<property name="page_increment">10</property>
</object>
<object class="GtkGrid" id="form">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_start">8</property>
<property name="margin_end">8</property>
<property name="margin_top">8</property>
<property name="margin_bottom">8</property>
<property name="row_spacing">8</property>
<property name="column_spacing">16</property>
<property name="row_homogeneous">True</property>
<property name="row_homogeneous">1</property>
<child>
<object class="GtkCheckButton" id="enabled">
<property name="label" translatable="yes">_Enabled</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="can_focus">1</property>
<property name="halign">start</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="enabled" swapped="no"/>
<property name="use_underline">1</property>
<layout>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
</layout>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="description">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="wrap">True</property>
<property name="wrap">1</property>
<property name="wrap_mode">word-char</property>
<property name="ellipsize">end</property>
<property name="xalign">0</property>
<layout>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
</layout>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="scale">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_focus">1</property>
<property name="halign">start</property>
<property name="width_chars">9</property>
<property name="adjustment">scale_adjustment</property>
<property name="digits">2</property>
<property name="value">1</property>
<signal name="change-value" handler="scale" swapped="no"/>
<layout>
<property name="left_attach">1</property>
<property name="top_attach">3</property>
</layout>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">3</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">DPI _Scale</property>
<property name="use_underline">True</property>
<property name="use_underline">1</property>
<property name="mnemonic_widget">scale</property>
<property name="xalign">1</property>
<layout>
<property name="left_attach">0</property>
<property name="top_attach">3</property>
</layout>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">3</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">_Position</property>
<property name="use_underline">True</property>
<property name="use_underline">1</property>
<property name="mnemonic_widget">pos_x</property>
<property name="xalign">1</property>
<layout>
<property name="left_attach">0</property>
<property name="top_attach">4</property>
</layout>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">4</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Description</property>
<property name="xalign">1</property>
<layout>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</layout>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="physical_size">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="wrap">True</property>
<property name="wrap">1</property>
<property name="wrap_mode">word-char</property>
<property name="ellipsize">end</property>
<property name="xalign">0</property>
<layout>
<property name="left_attach">1</property>
<property name="top_attach">2</property>
</layout>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Physical Size</property>
<property name="xalign">1</property>
<layout>
<property name="left_attach">0</property>
<property name="top_attach">2</property>
</layout>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">2</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Si_ze</property>
<property name="use_underline">True</property>
<property name="use_underline">1</property>
<property name="mnemonic_widget">width</property>
<property name="xalign">1</property>
<layout>
<property name="left_attach">0</property>
<property name="top_attach">5</property>
</layout>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">5</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="spacing">8</property>
<child>
<object class="GtkSpinButton" id="refresh">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="name">refresh</property>
<property name="can_focus">1</property>
<property name="width_chars">9</property>
<property name="input_purpose">number</property>
<property name="adjustment">refresh_adjustment</property>
<property name="digits">3</property>
<property name="numeric">True</property>
<property name="numeric">1</property>
<property name="update_policy">if-valid</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">Hz</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<layout>
<property name="left_attach">1</property>
<property name="top_attach">6</property>
</layout>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">6</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">_Refresh Rate</property>
<property name="use_underline">True</property>
<property name="use_underline">1</property>
<property name="xalign">1</property>
<layout>
<property name="left_attach">0</property>
<property name="top_attach">6</property>
</layout>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">6</property>
</packing>
</child>
<child>
<object class="GtkMenuButton" id="rotate_button">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="popover">transforms</property>
<child>
<placeholder/>
</child>
<property name="can_focus">1</property>
<property name="receives_default">1</property>
<layout>
<property name="left_attach">1</property>
<property name="top_attach">7</property>
</layout>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">7</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">_Transform</property>
<property name="use_underline">True</property>
<property name="use_underline">1</property>
<property name="xalign">1</property>
<layout>
<property name="left_attach">0</property>
<property name="top_attach">7</property>
</layout>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">7</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="flipped">
<property name="label" translatable="yes">_Flipped</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="can_focus">1</property>
<property name="halign">start</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
<signal name="toggled" handler="flipped" swapped="no"/>
<property name="use_underline">1</property>
<layout>
<property name="left_attach">1</property>
<property name="top_attach">8</property>
</layout>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">8</property>
</packing>
</child>
<child>
<object class="GtkGrid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="row_spacing">8</property>
<child>
<object class="GtkSpinButton" id="pos_x">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_focus">1</property>
<property name="width_chars">6</property>
<property name="text" translatable="yes">0</property>
<property name="input_purpose">number</property>
<property name="adjustment">pos_x_adjustment</property>
<property name="numeric">True</property>
<property name="numeric">1</property>
<property name="update_policy">if-valid</property>
<layout>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</layout>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="pos_y">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_focus">1</property>
<property name="width_chars">6</property>
<property name="text" translatable="yes">0</property>
<property name="input_purpose">number</property>
<property name="adjustment">pos_y_adjustment</property>
<property name="numeric">True</property>
<property name="numeric">1</property>
<property name="update_policy">if-valid</property>
<layout>
<property name="left_attach">2</property>
<property name="top_attach">0</property>
</layout>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="width">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="name">width</property>
<property name="can_focus">1</property>
<property name="width_chars">4</property>
<property name="text" translatable="yes">0</property>
<property name="input_purpose">number</property>
<property name="adjustment">width_adjustment</property>
<property name="numeric">True</property>
<property name="numeric">1</property>
<property name="update_policy">if-valid</property>
<layout>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</layout>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="width_request">20</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">×</property>
<layout>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
</layout>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="height">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="name">height</property>
<property name="can_focus">1</property>
<property name="width_chars">4</property>
<property name="text" translatable="yes">0</property>
<property name="input_purpose">number</property>
<property name="adjustment">height_adjustment</property>
<property name="numeric">True</property>
<property name="numeric">1</property>
<property name="update_policy">if-valid</property>
<layout>
<property name="left_attach">2</property>
<property name="top_attach">1</property>
</layout>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkMenuButton" id="mode_button">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="can_focus">1</property>
<property name="receives_default">1</property>
<property name="tooltip_text" translatable="yes">Select Mode Preset</property>
<property name="margin_left">8</property>
<property name="margin_start">8</property>
<property name="popover">modes</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">view-more-symbolic</property>
</object>
</child>
<property name="icon_name">view-more-symbolic</property>
<layout>
<property name="left_attach">3</property>
<property name="top_attach">1</property>
</layout>
</object>
<packing>
<property name="left_attach">3</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">4</property>
<property name="height">2</property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
</child>
</object>
<object class="GtkPopover" id="transforms">
<property name="can_focus">False</property>
<property name="relative_to">rotate_button</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_start">10</property>
<property name="margin_end">10</property>
<property name="margin_top">10</property>
<property name="margin_bottom">10</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkModelButton" id="rotate_0">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="action_name">transform.rotate_0</property>
<property name="text" translatable="yes">Don't Rotate</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkModelButton" id="rotate_90">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="action_name">transform.rotate_90</property>
<property name="text" translatable="yes">Rotate 90°</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkModelButton" id="rotate_180">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="action_name">transform.rotate_180</property>
<property name="text" translatable="yes">Rotate 180°</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkModelButton" id="rotate_270">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="action_name">transform.rotate_270</property>
<property name="text" translatable="yes">Rotate 270°</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<layout>
<property name="left_attach">1</property>
<property name="top_attach">4</property>
<property name="row_span">2</property>
</layout>
</object>
</child>
</object>

View File

@@ -1,9 +1,9 @@
gnome = import('gnome')
resources = gnome.compile_resources(
'waydisplay-resources', 'resources.xml',
'wdisplays-resources', 'resources.xml',
source_dir : '.',
c_name : 'waydisplay_resources')
c_name : 'wdisplays_resources')
scour = find_program('scour', required: false)

View File

@@ -1,8 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.0 -->
<interface>
<requires lib="gtk+" version="3.22"/>
<!-- interface-css-provider-path style.css -->
<object class="GtkAdjustment" id="canvas_horiz">
<property name="step_increment">1</property>
<property name="page_increment">10</property>
@@ -11,143 +9,56 @@
<property name="step_increment">1</property>
<property name="page_increment">10</property>
</object>
<object class="GtkPopover" id="main_menu">
<property name="can_focus">False</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_start">10</property>
<property name="margin_end">10</property>
<property name="margin_top">10</property>
<property name="margin_bottom">10</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkModelButton">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="action_name">app.auto-apply</property>
<property name="text" translatable="yes">_Automatically Apply Changes</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkModelButton">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="action_name">app.capture-screens</property>
<property name="text" translatable="yes">Show Screen Contents</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkModelButton">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="action_name">app.show-overlay</property>
<property name="text" translatable="yes">Overlay Screen Names</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
</object>
<object class="GtkWindow" id="heads_window">
<property name="can_focus">False</property>
<property name="title" translatable="yes">wdisplays</property>
<signal name="destroy" handler="destroy" swapped="no"/>
<child>
<object class="GtkOverlay" id="overlay">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkInfoBar" id="heads_info">
<property name="can_focus">False</property>
<property name="no_show_all">True</property>
<property name="visible">0</property>
<property name="valign">start</property>
<property name="message_type">error</property>
<property name="show_close_button">True</property>
<property name="revealed">False</property>
<signal name="response" handler="info_response" swapped="no"/>
<child internal-child="action_area">
<object class="GtkButtonBox">
<property name="can_focus">False</property>
<property name="show_close_button">1</property>
<property name="revealed">0</property>
<child type="action">
<object class="GtkBox">
<property name="spacing">6</property>
<property name="layout_style">end</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child internal-child="content_area">
<child>
<object class="GtkBox">
<property name="can_focus">False</property>
<property name="visible">0</property>
<property name="spacing">16</property>
<child>
<object class="GtkLabel" id="heads_info_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="wrap">True</property>
<property name="wrap">1</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkPaned">
<property name="visible">True</property>
<property name="can_focus">True</property>
<object class="GtkPaned" id="paned">
<property name="resize_child2">0</property>
<property name="shrink_child1">0</property>
<property name="shrink_child2">0</property>
<property name="can_focus">1</property>
<property name="position">400</property>
<property name="position_set">True</property>
<property name="position_set">1</property>
<child>
<object class="GtkScrolledWindow" id="heads_scroll">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_focus">1</property>
<property name="hadjustment">canvas_horiz</property>
<property name="vadjustment">canvas_vert</property>
<property name="min_content_width">400</property>
@@ -156,232 +67,136 @@
<placeholder/>
</child>
</object>
<packing>
<property name="resize">True</property>
<property name="shrink">False</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkStackSwitcher" id="heads_stack_switcher">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">center</property>
<property name="margin_left">8</property>
<property name="margin_right">8</property>
<property name="margin_start">8</property>
<property name="margin_end">8</property>
<property name="margin_top">8</property>
<property name="hexpand">True</property>
<property name="hexpand">1</property>
<property name="stack">heads_stack</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkStack" id="heads_stack">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="transition_type">crossfade</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="resize">False</property>
<property name="shrink">False</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="index">-1</property>
</packing>
</child>
<child type="overlay">
<object class="GtkSpinner" id="spinner">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="no_show_all">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="visible">0</property>
<property name="hexpand">1</property>
<property name="vexpand">1</property>
<property name="can_target">0</property>
</object>
<packing>
<property name="pass_through">True</property>
</packing>
</child>
</object>
</child>
<child type="titlebar">
<object class="GtkStack" id="header_stack">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="transition_type">crossfade</property>
<child>
<object class="GtkHeaderBar">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="title" translatable="yes">wdisplays</property>
<property name="has_subtitle">False</property>
<property name="show_close_button">True</property>
<child>
<object class="GtkButtonBox" id="zoom_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="layout_style">expand</property>
<object class="GtkStackPage">
<property name="name">title</property>
<property name="child">
<object class="GtkHeaderBar">
<property name="title" translatable="yes">wdisplays</property>
<property name="has_subtitle">0</property>
<property name="show_title_buttons">1</property>
<child>
<object class="GtkButton" id="zoom_out">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Zoom Out</property>
<signal name="clicked" handler="zoom_out" swapped="yes"/>
<object class="GtkBox" id="zoom_box">
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<object class="GtkButton" id="zoom_out">
<property name="can_focus">1</property>
<property name="receives_default">1</property>
<property name="tooltip_text" translatable="yes">Zoom Out</property>
<property name="action_name">app.zoom-out</property>
<property name="icon_name">zoom-out-symbolic</property>
<accelerator key="minus" signal="clicked" modifiers="GDK_CONTROL_MASK"/>
</object>
</child>
<accelerator key="minus" signal="clicked" modifiers="GDK_CONTROL_MASK"/>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
<property name="non_homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkButton" id="zoom_reset">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Zoom Reset</property>
<signal name="clicked" handler="zoom_reset" swapped="yes"/>
<accelerator key="0" signal="clicked" modifiers="GDK_CONTROL_MASK"/>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
<property name="non_homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkButton" id="zoom_in">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Zoom In</property>
<signal name="clicked" handler="zoom_in" swapped="yes"/>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">zoom-in-symbolic</property>
<object class="GtkButton" id="zoom_reset">
<property name="can_focus">1</property>
<property name="receives_default">1</property>
<property name="tooltip_text" translatable="yes">Zoom Reset</property>
<property name="action_name">app.zoom-reset</property>
<accelerator key="0" signal="clicked" modifiers="GDK_CONTROL_MASK"/>
</object>
</child>
<accelerator key="equal" signal="clicked" modifiers="GDK_CONTROL_MASK"/>
<child>
<object class="GtkButton" id="zoom_in">
<property name="can_focus">1</property>
<property name="receives_default">1</property>
<property name="tooltip_text" translatable="yes">Zoom In</property>
<property name="action_name">app.zoom-in</property>
<property name="icon_name">zoom-in-symbolic</property>
<accelerator key="equal" signal="clicked" modifiers="GDK_CONTROL_MASK"/>
</object>
</child>
<style>
<class name="linked"/>
</style>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
<property name="non_homogeneous">True</property>
</packing>
</child>
</object>
</child>
<child>
<object class="GtkMenuButton" id="menu_button">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="popover">main_menu</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child type="end">
<object class="GtkMenuButton" id="menu_button">
<property name="can_focus">1</property>
<property name="receives_default">1</property>
<property name="icon_name">open-menu-symbolic</property>
</object>
</child>
</object>
<packing>
<property name="pack_type">end</property>
<property name="position">1</property>
</packing>
</child>
</property>
</object>
<packing>
<property name="name">title</property>
</packing>
</child>
<child>
<object class="GtkHeaderBar">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child type="title">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Apply Changes?</property>
</object>
</child>
<child>
<object class="GtkButton">
<property name="label" translatable="yes">_Apply</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_underline">True</property>
<signal name="clicked" handler="apply_changes" swapped="no"/>
<style>
<class name="suggested-action"/>
</style>
</object>
<packing>
<property name="pack_type">end</property>
</packing>
</child>
<child>
<object class="GtkButton">
<property name="label" translatable="yes">_Cancel</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_underline">True</property>
<signal name="clicked" handler="cancel_changes" swapped="no"/>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<object class="GtkStackPage">
<property name="name">apply</property>
<property name="position">1</property>
</packing>
<property name="child">
<object class="GtkHeaderBar">
<child type="title">
<object class="GtkLabel">
<property name="label" translatable="yes">Apply Changes?</property>
</object>
</child>
<child>
<object class="GtkButton">
<property name="label" translatable="yes">_Apply</property>
<property name="can_focus">1</property>
<property name="receives_default">1</property>
<property name="use_underline">1</property>
<property name="action_name">app.apply-changes</property>
<style>
<class name="suggested-action"/>
</style>
</object>
</child>
<child type="end">
<object class="GtkButton">
<property name="label" translatable="yes">_Cancel</property>
<property name="can_focus">1</property>
<property name="receives_default">1</property>
<property name="use_underline">1</property>
<property name="action_name">app.cancel-changes</property>
</object>
</child>
</object>
</property>
</object>
</child>
</object>
</child>