forked from AuroraMiddleware/gtk
c63087a563
To build a better world sometimes means having to tear the old one down. -- Alexander Pierce, "Captain America: The Winter Soldier" ATK served us well for nearly 20 years, but the world has changed, and GTK has changed with it. Now ATK is mostly a hindrance towards improving the accessibility stack: - it maps to a very specific implementation, AT-SPI, which is Linux and Unix specific - it requires implementing the same functionality in three different layers of the stack: AT-SPI, ATK, and GTK - only GTK uses it; every other Linux and Unix toolkit and application talks to AT-SPI directly, including assistive technologies Sadly, we cannot incrementally port GTK to a new accessibility stack; since ATK insulates us entirely from the underlying implementation, we cannot replace it piecemeal. Instead, we're going to remove everything and then incrementally build on a clean slate: - add an "accessible" interface, implemented by GTK objects directly, which describe the accessible role and state changes for every UI element - add an "assistive technology context" to proxy a native accessibility API, and assign it to every widget - implement the AT context depending on the platform For more information, see: https://gitlab.gnome.org/GNOME/gtk/-/issues/2833
489 lines
27 KiB
XML
489 lines
27 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<interface domain="gtk40">
|
|
<template class="GtkFileChooserWidget" parent="GtkWidget">
|
|
<child>
|
|
<object class="GtkBox" id="box">
|
|
<property name="orientation">vertical</property>
|
|
<child>
|
|
<object class="GtkBox" id="browse_widgets_box">
|
|
<property name="orientation">vertical</property>
|
|
<property name="vexpand">1</property>
|
|
<child>
|
|
<object class="GtkPaned" id="browse_widgets_hpaned">
|
|
<property name="shrink-end-child">0</property>
|
|
<property name="shrink-start-child">0</property>
|
|
<property name="resize-start-child">0</property>
|
|
<property name="vexpand">1</property>
|
|
<child>
|
|
<object class="GtkPlacesSidebar" id="places_sidebar">
|
|
<property name="show-other-locations">1</property>
|
|
<style>
|
|
<class name="sidebar"/>
|
|
</style>
|
|
<signal name="open-location" handler="places_sidebar_open_location_cb" swapped="no"/>
|
|
<signal name="show-error-message" handler="places_sidebar_show_error_message_cb" swapped="no"/>
|
|
<signal name="show-other-locations-with-flags" handler="places_sidebar_show_other_locations_with_flags_cb" swapped="no"/>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkBox">
|
|
<property name="orientation">vertical</property>
|
|
<child>
|
|
<object class="GtkRevealer" id="browse_header_revealer">
|
|
<property name="hexpand">1</property>
|
|
<child>
|
|
<object class="GtkBox">
|
|
<property name="name">pathbarbox</property>
|
|
<property name="orientation">vertical</property>
|
|
<property name="spacing">12</property>
|
|
<style>
|
|
<class name="view"/>
|
|
</style>
|
|
<child>
|
|
<object class="GtkStack" id="browse_header_stack">
|
|
<property name="transition-type">crossfade</property>
|
|
<child>
|
|
<object class="GtkStackPage">
|
|
<property name="name">pathbar</property>
|
|
<property name="child">
|
|
<object class="GtkBox">
|
|
<property name="spacing">6</property>
|
|
<property name="margin-start">6</property>
|
|
<property name="margin-end">6</property>
|
|
<property name="margin-top">6</property>
|
|
<property name="margin-bottom">6</property>
|
|
<child>
|
|
<object class="GtkPathBar" id="browse_path_bar">
|
|
<property name="hexpand">1</property>
|
|
<signal name="path-clicked" handler="path_bar_clicked" after="yes" swapped="no"/>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkMenuButton" id="browse_new_folder_button">
|
|
<property name="tooltip-text" translatable="yes">Create Folder</property>
|
|
<property name="popover">new_folder_popover</property>
|
|
<property name="icon-name">folder-new-symbolic</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkStackPage">
|
|
<property name="name">location</property>
|
|
<property name="child">
|
|
<object class="GtkBox" id="location_entry_box">
|
|
<property name="spacing">6</property>
|
|
<property name="margin-start">6</property>
|
|
<property name="margin-end">6</property>
|
|
<property name="margin-top">6</property>
|
|
<property name="margin-bottom">6</property>
|
|
</object>
|
|
</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkStackPage">
|
|
<property name="name">search</property>
|
|
<property name="child">
|
|
<object class="GtkCenterBox" id="search_entry_box">
|
|
<property name="margin-start">6</property>
|
|
<property name="margin-end">6</property>
|
|
<property name="margin-top">6</property>
|
|
<property name="margin-bottom">6</property>
|
|
<child type="center">
|
|
<object class="GtkSearchEntry" id="search_entry">
|
|
<property name="width-chars">45</property>
|
|
<property name="hexpand">1</property>
|
|
<property name="halign">center</property>
|
|
<signal name="search-changed" handler="search_entry_activate_cb" swapped="yes"/>
|
|
<signal name="stop-search" handler="search_entry_stop_cb" swapped="yes"/>
|
|
</object>
|
|
</child>
|
|
<child type="end">
|
|
<object class="GtkSpinner" id="search_spinner">
|
|
<property name="visible">0</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkBox" id="list_box">
|
|
<property name="spacing">12</property>
|
|
<property name="vexpand">1</property>
|
|
<child>
|
|
<object class="GtkStack" id="browse_files_stack">
|
|
<property name="transition-type">crossfade</property>
|
|
<property name="hexpand">1</property>
|
|
<property name="vexpand">1</property>
|
|
<style>
|
|
<class name="view"/>
|
|
</style>
|
|
<child>
|
|
<object class="GtkStackPage">
|
|
<property name="name">list</property>
|
|
<property name="child">
|
|
<object class="GtkBox">
|
|
<property name="orientation">vertical</property>
|
|
<child>
|
|
<object class="GtkScrolledWindow" id="browse_files_swin">
|
|
<property name="hscrollbar-policy">never</property>
|
|
<property name="vexpand">1</property>
|
|
<child>
|
|
<object class="GtkTreeView" id="browse_files_tree_view">
|
|
<property name="has-tooltip">1</property>
|
|
<property name="enable-search">0</property>
|
|
<child>
|
|
<object class="GtkGestureLongPress">
|
|
<property name="touch-only">1</property>
|
|
<signal name="pressed" handler="long_press_cb" swapped="no"/>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkGestureClick">
|
|
<property name="button">3</property>
|
|
<signal name="pressed" handler="click_cb" swapped="no"/>
|
|
</object>
|
|
</child>
|
|
<signal name="query-tooltip" handler="file_list_query_tooltip_cb" swapped="no"/>
|
|
<signal name="row-activated" handler="list_row_activated" swapped="no"/>
|
|
<signal name="keynav-failed" handler="browse_files_tree_view_keynav_failed_cb"/>
|
|
<child internal-child="selection">
|
|
<object class="GtkTreeSelection" id="treeview-selection2">
|
|
<signal name="changed" handler="list_selection_changed" swapped="no"/>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkTreeViewColumn" id="list_name_column">
|
|
<property name="title" translatable="yes">Name</property>
|
|
<property name="resizable">1</property>
|
|
<property name="expand">1</property>
|
|
<child>
|
|
<object class="GtkCellRendererPixbuf" id="list_pixbuf_renderer">
|
|
<property name="xpad">6</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkCellRendererText" id="list_name_renderer">
|
|
<property name="width-chars">10</property>
|
|
<property name="ellipsize">end</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkTreeViewColumn" id="list_location_column">
|
|
<property name="title" translatable="yes">Location</property>
|
|
<property name="resizable">1</property>
|
|
<property name="visible">0</property>
|
|
<property name="expand">1</property>
|
|
<child>
|
|
<object class="GtkCellRendererText" id="list_location_renderer">
|
|
<property name="xalign">0</property>
|
|
<property name="width-chars">10</property>
|
|
<property name="ellipsize">start</property>
|
|
<property name="xpad">6</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkTreeViewColumn" id="list_size_column">
|
|
<property name="title" translatable="yes">Size</property>
|
|
<property name="sizing">fixed</property>
|
|
<child>
|
|
<object class="GtkCellRendererText" id="list_size_renderer">
|
|
<property name="xalign">0</property>
|
|
<property name="xpad">6</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkTreeViewColumn" id="list_type_column">
|
|
<property name="title" translatable="yes">Type</property>
|
|
<property name="resizable">1</property>
|
|
<child>
|
|
<object class="GtkCellRendererText" id="list_type_renderer">
|
|
<property name="xalign">0</property>
|
|
<property name="xpad">6</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkTreeViewColumn" id="list_time_column">
|
|
<property name="title" translatable="yes">Modified</property>
|
|
<property name="sizing">fixed</property>
|
|
<child>
|
|
<object class="GtkCellRendererText" id="list_date_renderer">
|
|
<property name="xpad">6</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkCellRendererText" id="list_time_renderer">
|
|
<property name="xpad">6</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkActionBar" id="remote_warning_bar">
|
|
<property name="visible">0</property>
|
|
<child type="center">
|
|
<object class="GtkLabel">
|
|
<property name="label" translatable="yes">Remote location — only searching the current folder</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkStackPage">
|
|
<property name="name">other_locations</property>
|
|
<property name="child">
|
|
<object class="GtkPlacesView" id="places_view">
|
|
<signal name="open-location" handler="places_sidebar_open_location_cb" swapped="no"/>
|
|
<signal name="show-error-message" handler="places_sidebar_show_error_message_cb" swapped="no"/>
|
|
</object>
|
|
</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkStackPage">
|
|
<property name="name">empty</property>
|
|
<property name="child">
|
|
<object class="GtkGrid">
|
|
<property name="row-spacing">12</property>
|
|
<property name="hexpand">1</property>
|
|
<property name="vexpand">1</property>
|
|
<property name="halign">center</property>
|
|
<property name="valign">center</property>
|
|
<style>
|
|
<class name="dim-label"/>
|
|
</style>
|
|
<child>
|
|
<object class="GtkImage">
|
|
<property name="icon-name">edit-find-symbolic</property>
|
|
<property name="pixel-size">72</property>
|
|
<style>
|
|
<class name="dim-label"/>
|
|
</style>
|
|
<layout>
|
|
<property name="left-attach">0</property>
|
|
<property name="top-attach">0</property>
|
|
</layout>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="label" translatable="yes">No Results Found</property>
|
|
<attributes>
|
|
<attribute name="weight" value="bold"></attribute>
|
|
<attribute name="scale" value="1.44"></attribute>
|
|
</attributes>
|
|
<layout>
|
|
<property name="left-attach">0</property>
|
|
<property name="top-attach">1</property>
|
|
</layout>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="label" translatable="yes">Try a different search</property>
|
|
<style>
|
|
<class name="dim-label"/>
|
|
</style>
|
|
<layout>
|
|
<property name="left-attach">0</property>
|
|
<property name="top-attach">2</property>
|
|
</layout>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkActionBar" id="extra_and_filters">
|
|
<property name="visible">0</property>
|
|
<child>
|
|
<object class="GtkBox" id="extra_align">
|
|
<property name="spacing">12</property>
|
|
</object>
|
|
</child>
|
|
<child type="end">
|
|
<object class="GtkBox" id="filter_combo_hbox">
|
|
<child>
|
|
<object class="GtkDropDown" id="filter_combo">
|
|
<property name="tooltip-text" translatable="yes">Select which types of files are shown</property>
|
|
<property name="focus-on-click">0</property>
|
|
<property name="valign">start</property>
|
|
<signal name="notify::selected" handler="filter_combo_changed" swapped="no"/>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</template>
|
|
<object class="GtkSizeGroup" id="browse_path_bar_size_group">
|
|
<property name="mode">vertical</property>
|
|
<widgets>
|
|
<widget name="browse_path_bar"/>
|
|
<widget name="browse_new_folder_button"/>
|
|
</widgets>
|
|
</object>
|
|
<object class="GtkPopover" id="new_folder_popover">
|
|
<signal name="notify::visible" handler="new_folder_popover_active"/>
|
|
<child>
|
|
<object class="GtkGrid">
|
|
<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="column-spacing">6</property>
|
|
<property name="row-spacing">6</property>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="label" translatable="yes">Folder Name</property>
|
|
<property name="halign">start</property>
|
|
<property name="mnemonic-widget">new_folder_name_entry</property>
|
|
<attributes>
|
|
<attribute name="weight" value="bold"></attribute>
|
|
</attributes>
|
|
<layout>
|
|
<property name="column-span">2</property>
|
|
</layout>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkEntry" id="new_folder_name_entry">
|
|
<property name="width-chars">25</property>
|
|
<property name="activates-default">1</property>
|
|
<property name="hexpand">1</property>
|
|
<signal name="changed" handler="new_folder_name_changed"/>
|
|
<layout>
|
|
<property name="left-attach">0</property>
|
|
<property name="top-attach">1</property>
|
|
</layout>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkButton" id="new_folder_create_button">
|
|
<property name="sensitive">0</property>
|
|
<property name="label" translatable="yes">_Create</property>
|
|
<property name="use-underline">1</property>
|
|
<signal name="clicked" handler="new_folder_create_clicked"/>
|
|
<style>
|
|
<class name="suggested-action"/>
|
|
</style>
|
|
<layout>
|
|
<property name="left-attach">1</property>
|
|
<property name="top-attach">1</property>
|
|
</layout>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkFileChooserErrorStack" id="new_folder_error_stack">
|
|
<layout>
|
|
<property name="left-attach">0</property>
|
|
<property name="top-attach">2</property>
|
|
<property name="column-span">2</property>
|
|
</layout>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
<object class="GtkPopover" id="rename_file_popover">
|
|
<signal name="closed" handler="rename_file_end"/>
|
|
<child>
|
|
<object class="GtkGrid">
|
|
<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="row-spacing">6</property>
|
|
<property name="column-spacing">6</property>
|
|
<child>
|
|
<object class="GtkLabel">
|
|
<property name="label" translatable="yes">Name</property>
|
|
<property name="halign">start</property>
|
|
<property name="mnemonic-widget">rename_file_name_entry</property>
|
|
<attributes>
|
|
<attribute name="weight" value="bold"></attribute>
|
|
</attributes>
|
|
<layout>
|
|
<property name="column-span">2</property>
|
|
</layout>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkEntry" id="rename_file_name_entry">
|
|
<property name="activates-default">1</property>
|
|
<property name="hexpand">1</property>
|
|
<signal name="changed" handler="rename_file_name_changed"/>
|
|
<layout>
|
|
<property name="left-attach">0</property>
|
|
<property name="top-attach">1</property>
|
|
</layout>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkButton" id="rename_file_rename_button">
|
|
<property name="sensitive">0</property>
|
|
<property name="label" translatable="yes">_Rename</property>
|
|
<property name="use-underline">1</property>
|
|
<signal name="clicked" handler="rename_file_rename_clicked"/>
|
|
<style>
|
|
<class name="suggested-action"/>
|
|
</style>
|
|
<layout>
|
|
<property name="left-attach">1</property>
|
|
<property name="top-attach">1</property>
|
|
</layout>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkFileChooserErrorStack" id="rename_file_error_stack">
|
|
<layout>
|
|
<property name="left-attach">0</property>
|
|
<property name="top-attach">2</property>
|
|
<property name="column-span">2</property>
|
|
</layout>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</interface>
|