fractal/fractal-gtk/res/ui/main_window.ui
Christopher Davis 1f5970fa33 room_menu: Use menu model
This menu is simple enough that we can use
a menu model instead of a manual popover menu.
Since MenuModels are private in GTK4, this is
the recommended way to create menus.
2020-11-06 08:12:13 +00:00

669 lines
39 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.20.2 -->
<interface>
<requires lib="gtk+" version="3.20"/>
<object class="HdyApplicationWindow" id="main_window">
<property name="can_focus">False</property>
<property name="default_width">860</property>
<property name="default_height">640</property>
<property name="show_menubar">False</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<child>
<object class="GtkStack" id="main_content_stack">
<property name="can_focus">False</property>
<property name="hhomogeneous">False</property>
<child>
<object class="HdyDeck" id="main_deck">
<property name="visible">True</property>
<property name="expand">True</property>
<property name="can_swipe_back">True</property>
<property name="hhomogeneous">False</property>
<child>
<object class="HdyLeaflet" id="chat_page">
<property name="visible">True</property>
<property name="visible_child">room_list</property>
<property name="can_swipe_back">True</property>
<child>
<object class="GtkBox" id="room_list">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<child>
<object class="HdyHeaderBar" id="left-header"> <!--left titlebar-->
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">fill</property>
<property name="show-close-button">True</property>
<child>
<object class="GtkMenuButton" id="main_menu_button">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="popover">user_popover</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">open-menu-symbolic</property>
</object>
</child>
<accessibility>
</accessibility>
<child internal-child="accessible">
<object class="AtkObject" id="a11y-main_menu_button">
<property name="AtkObject::accessible_name" translatable="yes">User</property>
</object>
</child>
</object>
<packing>
<property name="pack_type">end</property>
</packing>
</child>
<child>
<object class="GtkMenuButton" id="add_room_menu">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="menu_model">add_room_menu_model</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">list-add-symbolic</property>
</object>
</child>
<accessibility>
</accessibility>
<child internal-child="accessible">
<object class="AtkObject" id="a11y-add_room_menu">
<property name="AtkObject::accessible_name" translatable="yes">Add</property>
</object>
</child>
</object>
<packing>
<property name="pack_type">end</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="room_search_button">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">system-search-symbolic</property>
</object>
</child>
<accelerator key="k" signal="activate" modifiers="GDK_CONTROL_MASK"/>
<style>
<class name="room-search-button"/>
</style>
<accessibility>
</accessibility>
<child internal-child="accessible">
<object class="AtkObject" id="a11y-room_search_button">
<property name="AtkObject::accessible_name" translatable="yes">Room search</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox" id="sidebar-box">
<property name="width_request">200</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">fill</property>
<property name="hexpand">False</property>
<property name="vexpand">True</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkSearchBar" id="room_list_searchbar">
<property name="width_request">200</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkSearchEntry" id="room_list_search">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="primary_icon_name">edit-find-symbolic</property>
<property name="primary_icon_activatable">False</property>
<property name="primary_icon_sensitive">False</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkScrolledWindow" id="roomlist_scroll">
<property name="width_request">200</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="vexpand">True</property>
<property name="hscrollbar_policy">never</property>
<child>
<object class="GtkBox" id="room_container">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<style>
<class name="rooms-sidebar"/>
<class name="sidebar"/>
</style>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="name">sidebar</property>
</packing>
</child>
<child>
<object class="GtkSeparator" id="header_separator">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<style>
<class name="sidebar"/>
</style>
</object>
<packing>
<property name="navigatable">False</property>
</packing>
</child>
<child>
<object class="GtkBox" id="room_view">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<child>
<object class="HdyHeaderBar" id="room_header_bar"> <!--right titlebar-->
<property name="show-close-button">True</property>
<property name="has-subtitle">False</property>
<property name="hexpand">true</property>
<property name="width-request">360</property>
<child>
<object class="GtkRevealer">
<property name="reveal-child" bind-source="chat_page" bind-property="folded" bind-flags="sync-create"/>
<property name="transition-duration" bind-source="chat_page" bind-property="mode-transition-duration" bind-flags="bidirectional|sync-create"/>
<property name="transition-type">crossfade</property>
<property name="visible">True</property>
<child>
<object class="GtkButton" id="leaflet_back_button">
<property name="action_name">app.back</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">go-previous-symbolic</property>
</object>
</child>
<accessibility>
</accessibility>
<child internal-child="accessible">
<object class="AtkObject" id="a11y-leaflet_back_button">
<property name="AtkObject::accessible_name" translatable="yes">Back</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child type="title">
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="valign">center</property>
<property name="hscrollbar_policy">never</property>
<property name="vscrollbar_policy">never</property>
<property name="propagate_natural_height">True</property>
<property name="propagate_natural_width">False</property>
<child>
<object class="GtkBox" id="room_info">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel" id="room_name">
<property name="can_focus">False</property>
<!-- Translators: This string is replaced not user-visible -->
<property name="label">Room name</property>
<property name="ellipsize">end</property>
<style>
<class name="title"/>
</style>
</object>
</child>
<child>
<object class="GtkLabel" id="room_topic">
<property name="can_focus">False</property>
<!-- Translators: This string is replaced not user-visible -->
<property name="label">Room topic</property>
<property name="ellipsize">end</property>
<style>
<class name="subtitle"/>
</style>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkMenuButton" id="room_menu_button">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="menu_model">room_menu</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>
<accessibility>
</accessibility>
<child internal-child="accessible">
<object class="AtkObject" id="a11y-room_menu_button">
<property name="AtkObject::accessible_name" translatable="yes">Room Menu</property>
</object>
</child>
</object>
<packing>
<property name="pack_type">end</property>
</packing>
</child>
</object>
</child>
<child>
<object class="GtkOverlay" id="inapp">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkStack" id="room_view_stack">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkBox" id="focused_room">
<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="GtkBox" id="history_container">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
</object>
</child>
<child>
<object class="GtkBox" id="room_parent">
<property name="visible">True</property>
<style>
<class name="message-input-area" />
</style>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="name">room_view</property>
<property name="title">room_view</property>
</packing>
</child>
<child>
<object class="GtkSpinner">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="active">True</property>
</object>
<packing>
<property name="name">loading</property>
<property name="title">loading</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="margin_bottom">30</property>
<property name="valign">center</property>
<property name="expand">True</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_bottom">16</property>
<property name="resource">/org/gnome/Fractal/icons/chat-icon.svg</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">No room selected</property>
<property name="margin_bottom">3</property>
<property name="justify">center</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
<style>
<class name="noroom-title"/>
</style>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Join a room to start chatting</property>
<property name="justify">center</property>
<style>
<class name="noroom-description"/>
</style>
</object>
</child>
</object>
<packing>
<property name="name">noroom</property>
<property name="title" translatable="yes">No room</property>
</packing>
</child>
</object>
<packing>
<property name="index">-1</property>
</packing>
</child>
<child type="overlay">
<object class="GtkOverlay" id="inapp_notify">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="valign">start</property>
<property name="halign">center</property>
<child>
<object class="GtkRevealer" id="inapp_revealer">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">center</property>
<child>
<object class="GtkFrame" id="inapp_frame">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child>
<object class="GtkBox" id="inapp_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">10</property>
<child>
<object class="GtkSpinner" id="inapp_spinner">
<property name="visible">True</property>
<property name="active">True</property>
<property name="can_focus">False</property>
</object>
</child>
<child>
<object class="GtkLabel" id="inapp_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
</child>
</object>
</child>
<style>
<class name="app-notification"/>
</style>
</object>
</child>
</object>
<packing>
<property name="pass_through">True</property>
<property name="index">-1</property>
</packing>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="name">content</property>
</packing>
</child>
</object>
<packing>
<property name="name">chat</property>
</packing>
</child>
<child>
<object class="GtkStack" id="subview_stack">
<property name="can_focus">False</property>
<property name="hhomogeneous">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="HdyHeaderBar">
<property name="can_focus">False</property>
<property name="show_close_button">True</property>
<property name="width_request">360</property>
<property name="centering_policy">HDY_CENTERING_POLICY_STRICT</property>
<child>
<object class="GtkButton" id="back_button">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="action_name">app.deck-back</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">go-previous-symbolic</property>
</object>
</child>
<child internal-child="accessible">
<object class="AtkObject" id="back_button-atkobject">
<property name="AtkObject::accessible-name" translatable="yes">Back</property>
</object>
</child>
</object>
</child>
<child type="title">
<object class="HdyClamp">
<property name="can_focus">False</property>
<property name="visible">True</property>
<property name="maximum_size">288</property>
<property name="tightening_threshold">288</property>
<child>
<object class="GtkSearchEntry" id="directory_search_entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="primary_icon_name">edit-find-symbolic</property>
<property name="primary_icon_activatable">False</property>
<property name="primary_icon_sensitive">False</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkMenuButton" id="server_chooser_menu">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="popover">server_chooser_popover</property>
<child>
<object class="HdySqueezer">
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="directory_choice_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Default Matrix Server</property>
</object>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">pan-down-symbolic</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">6</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">network-server-symbolic</property>
</object>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">pan-down-symbolic</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="pack_type">end</property>
</packing>
</child>
</object>
</child>
<child>
<object class="GtkBox" id="directory_state">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow" id="directory_scroll">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hscrollbar_policy">never</property>
<property name="expand">True</property>
<property name="halign">fill</property>
<property name="valign">fill</property>
<child>
<object class="GtkStack" id="directory_stack">
<property name="can_focus">False</property>
<child>
<object class="GtkBox" id="directory_spinner">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkSpinner">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="active">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="name">directory</property>
</packing>
</child>
</object>
<packing>
<property name="name">subview</property>
</packing>
</child>
</object>
<packing>
<property name="name">main_view</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="HdyHeaderBar">
<property name="can_focus">False</property>
<property name="show-close-button">True</property>
<property name="title">Fractal</property>
</object>
</child>
<child>
<object class="GtkBox" id="loading_state">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkSpinner">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="active">True</property>
<property name="expand">True</property>
<property name="valign">fill</property>
<property name="halign">fill</property>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="name">loading</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<style>
<class name="main-window"/>
</style>
</object>
<object class="HdyHeaderGroup">
<headerbars>
<headerbar name="left-header"/>
<headerbar name="room_header_bar"/>
</headerbars>
</object>
</interface>