The redundant design here seemed awkward when I was thinking about how to implement support for displaying multiple conflicts as needed by https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/776 and https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1041. This should be more maintainable.
353 lines
17 KiB
XML
353 lines
17 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<interface>
|
|
<requires lib="gtk+" version="3.20"/>
|
|
<template class="CcKeyboardShortcutEditor" parent="GtkDialog">
|
|
<property name="can_focus">False</property>
|
|
<property name="resizable">False</property>
|
|
<property name="modal">True</property>
|
|
<property name="width_request">400</property>
|
|
<property name="height_request">300</property>
|
|
<property name="window_position">center</property>
|
|
<property name="type_hint">dialog</property>
|
|
<signal name="close" handler="cancel_button_clicked_cb" object="CcKeyboardShortcutEditor" swapped="no" />
|
|
<signal name="delete-event" handler="gtk_widget_hide_on_delete" object="CcKeyboardShortcutEditor" swapped="yes"/>
|
|
<child internal-child="vbox">
|
|
<object class="GtkBox">
|
|
<property name="can_focus">False</property>
|
|
<property name="orientation">vertical</property>
|
|
<property name="spacing">18</property>
|
|
<property name="border_width">12</property>
|
|
<child>
|
|
<object class="GtkLabel" id="top_info_label">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="wrap">True</property>
|
|
<property name="wrap_mode">word-char</property>
|
|
<property name="width_chars">15</property>
|
|
<property name="max_width_chars">20</property>
|
|
</object>
|
|
<packing>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkStack" id="stack">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="hexpand">True</property>
|
|
<property name="vexpand">True</property>
|
|
<child>
|
|
<object class="GtkBox" id="edit_box">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="orientation">vertical</property>
|
|
<property name="spacing">18</property>
|
|
<property name="expand">True</property>
|
|
<property name="halign">center</property>
|
|
<property name="valign">center</property>
|
|
<child>
|
|
<object class="GtkImage">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="resource">/org/gnome/control-center/keyboard/enter-keyboard-shortcut.svg</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="wrap">True</property>
|
|
<property name="label" translatable="yes">Press Esc to cancel or Backspace to disable the keyboard shortcut.</property>
|
|
<style>
|
|
<class name="dim-label" />
|
|
</style>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkBox" id="standard_box">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="hexpand">True</property>
|
|
<property name="orientation">vertical</property>
|
|
<property name="spacing">18</property>
|
|
<child>
|
|
<object class="GtkBox">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="spacing">18</property>
|
|
<child type="center">
|
|
<object class="GtkShortcutLabel" id="shortcut_accel_label">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="halign">center</property>
|
|
<property name="disabled-text" translatable="yes">Disabled</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkButton" id="reset_button">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">True</property>
|
|
<property name="relief">none</property>
|
|
<property name="halign">end</property>
|
|
<child>
|
|
<object class="GtkImage">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="icon-name">edit-clear-symbolic</property>
|
|
</object>
|
|
</child>
|
|
<signal name="clicked" handler="reset_item_clicked_cb" object="CcKeyboardShortcutEditor" swapped="yes" />
|
|
</object>
|
|
<packing>
|
|
<property name="pack_type">end</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel" id="shortcut_conflict_label">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="hexpand">True</property>
|
|
<property name="wrap">True</property>
|
|
<property name="wrap_mode">word-char</property>
|
|
<property name="width_chars">15</property>
|
|
<property name="max_width_chars">20</property>
|
|
<property name="xalign">0</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkGrid" id="custom_grid">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="hexpand">True</property>
|
|
<property name="vexpand">True</property>
|
|
<property name="row_spacing">12</property>
|
|
<property name="column_spacing">12</property>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="label" translatable="yes">Name</property>
|
|
<property name="xalign">1</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left_attach">0</property>
|
|
<property name="top_attach">0</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="label" translatable="yes">Command</property>
|
|
<property name="xalign">1</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left_attach">0</property>
|
|
<property name="top_attach">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="label" translatable="yes">Shortcut</property>
|
|
<property name="xalign">1</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left_attach">0</property>
|
|
<property name="top_attach">2</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel" id="new_shortcut_conflict_label">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="hexpand">True</property>
|
|
<property name="wrap">True</property>
|
|
<property name="wrap_mode">word-char</property>
|
|
<property name="width_chars">15</property>
|
|
<property name="max_width_chars">20</property>
|
|
<property name="xalign">0</property>
|
|
</object>
|
|
<packing>
|
|
<property name="left_attach">0</property>
|
|
<property name="top_attach">3</property>
|
|
<property name="width">2</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkEntry" id="name_entry">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">True</property>
|
|
<property name="hexpand">True</property>
|
|
<signal name="notify::text" handler="name_entry_changed_cb" object="CcKeyboardShortcutEditor" swapped="yes" />
|
|
</object>
|
|
<packing>
|
|
<property name="left_attach">1</property>
|
|
<property name="top_attach">0</property>
|
|
<property name="width">2</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkEntry" id="command_entry">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">True</property>
|
|
<property name="hexpand">True</property>
|
|
<signal name="notify::text" handler="command_entry_changed_cb" object="CcKeyboardShortcutEditor" swapped="yes" />
|
|
</object>
|
|
<packing>
|
|
<property name="left_attach">1</property>
|
|
<property name="top_attach">1</property>
|
|
<property name="width">2</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkButton" id="reset_custom_button">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">True</property>
|
|
<property name="relief">none</property>
|
|
<property name="halign">end</property>
|
|
<child>
|
|
<object class="GtkImage">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="icon-name">edit-clear-symbolic</property>
|
|
</object>
|
|
</child>
|
|
<signal name="clicked" handler="reset_custom_clicked_cb" object="CcKeyboardShortcutEditor" swapped="yes" />
|
|
</object>
|
|
<packing>
|
|
<property name="left_attach">2</property>
|
|
<property name="top_attach">2</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkStack" id="custom_shortcut_stack">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<child>
|
|
<object class="GtkButton" id="change_custom_shortcut_button">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">True</property>
|
|
<property name="label" translatable="yes">Set Shortcut…</property>
|
|
<signal name="clicked" handler="change_custom_shortcut_button_clicked_cb" object="CcKeyboardShortcutEditor" swapped="yes" />
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkShortcutLabel" id="custom_shortcut_accel_label">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="halign">start</property>
|
|
<property name="hexpand">True</property>
|
|
<property name="disabled-text" translatable="yes">None</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="left_attach">1</property>
|
|
<property name="top_attach">2</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">False</property>
|
|
<property name="fill">True</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
<child type="titlebar">
|
|
<object class="GtkHeaderBar" id="headerbar">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="show_close_button">True</property>
|
|
<child>
|
|
<object class="GtkButton" id="cancel_button">
|
|
<property name="label" translatable="yes">Cancel</property>
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">True</property>
|
|
<property name="receives_default">True</property>
|
|
<signal name="clicked" handler="cancel_button_clicked_cb" object="CcKeyboardShortcutEditor" swapped="no" />
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkButton" id="remove_button">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="label" translatable="yes">Remove</property>
|
|
<property name="valign">end</property>
|
|
<signal name="clicked" handler="remove_button_clicked_cb" object="CcKeyboardShortcutEditor" swapped="yes" />
|
|
<style>
|
|
<class name="destructive-action" />
|
|
</style>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkButton" id="add_button">
|
|
<property name="label" translatable="yes">Add</property>
|
|
<property name="visible">True</property>
|
|
<property name="sensitive">False</property>
|
|
<property name="can_focus">True</property>
|
|
<property name="can_default">True</property>
|
|
<property name="receives_default">True</property>
|
|
<signal name="clicked" handler="add_button_clicked_cb" object="CcKeyboardShortcutEditor" swapped="yes" />
|
|
</object>
|
|
<packing>
|
|
<property name="pack_type">end</property>
|
|
<property name="position">2</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkButton" id="replace_button">
|
|
<property name="label" translatable="yes">Replace</property>
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">True</property>
|
|
<property name="receives_default">True</property>
|
|
<signal name="clicked" handler="replace_button_clicked_cb" object="CcKeyboardShortcutEditor" swapped="yes" />
|
|
</object>
|
|
<packing>
|
|
<property name="pack_type">end</property>
|
|
<property name="position">2</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkButton" id="set_button">
|
|
<property name="label" translatable="yes">Set</property>
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">True</property>
|
|
<property name="can_default">True</property>
|
|
<property name="receives_default">True</property>
|
|
<signal name="clicked" handler="set_button_clicked_cb" object="CcKeyboardShortcutEditor" swapped="yes" />
|
|
</object>
|
|
<packing>
|
|
<property name="pack_type">end</property>
|
|
<property name="position">3</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
<action-widgets>
|
|
<action-widget response="cancel">cancel_button</action-widget>
|
|
<action-widget response="accept">replace_button</action-widget>
|
|
<action-widget response="apply">set_button</action-widget>
|
|
<action-widget response="ok" default="true">add_button</action-widget>
|
|
</action-widgets>
|
|
</template>
|
|
<object class="GtkSizeGroup">
|
|
<widgets>
|
|
<widget name="cancel_button"/>
|
|
<widget name="add_button"/>
|
|
<widget name="replace_button"/>
|
|
<widget name="reset_button"/>
|
|
</widgets>
|
|
</object>
|
|
</interface>
|