fractal/fractal-gtk/res/ui/main_window.ui
Christopher Davis 66e95aa151 fractal-gtk: Redesign Login Flow
This is a complete overhaul over the interface for login.

* widgetifies the login view (removes app/connect/login.rs)
* Instead of asking for the identity server, uses .well-known
* No longer assumes a homeserver

Closes #448
2019-04-15 10:30:58 -04:00

761 lines
38 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.20.2 -->
<interface>
<requires lib="gtk+" version="3.20"/>
<object class="GtkApplicationWindow" 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="GtkStack" id="main_content_stack">
<property name="can_focus">False</property>
<property name="hhomogeneous">False</property>
<child>
<object class="HdyLeaflet" id="chat_state_leaflet">
<property name="child-transition-duration" bind-source="header_leaflet" bind-property="child-transition-duration" bind-flags="bidirectional|sync-create"/>
<property name="child-transition-type" bind-source="header_leaflet" bind-property="child-transition-type" bind-flags="bidirectional|sync-create"/>
<property name="mode-transition-duration" bind-source="header_leaflet" bind-property="mode-transition-duration" bind-flags="bidirectional|sync-create"/>
<property name="mode-transition-type" bind-source="header_leaflet" bind-property="mode-transition-type" bind-flags="bidirectional|sync-create"/>
<property name="visible-child-name" bind-source="header_leaflet" bind-property="visible-child-name" bind-flags="bidirectional|sync-create"/>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hhomogeneous-folded">True</property>
<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="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>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="width_request">200</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hscrollbar_policy">never</property>
<child>
<object class="GtkViewport">
<property name="width_request">200</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="shadow_type">none</property>
<child>
<object class="GtkBox" id="room_container">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
<style>
<class name="rooms-sidebar"/>
<class name="sidebar"/>
</style>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="name">sidebar</property>
</packing>
</child>
<child>
<object class="GtkSeparator" id="content_separator">
<property name="visible">True</property>
<property name="can_focus">False</property>
<style>
<class name="sidebar"/>
</style>
</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="name">room</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="GtkBox" id="history_container">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox" id="room_parent">
<property name="visible">True</property>
<style>
<class name="message-input-area" />
</style>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</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>
<property name="position">1</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>
<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>
<property name="position">2</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>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="inapp_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack_type">end</property>
<property name="position">0</property>
</packing>
</child>
</object>
</child>
<child type="label_item">
<placeholder/>
</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>
<packing>
<property name="name">content</property>
</packing>
</child>
</object>
<packing>
<property name="name">chat</property>
<property name="title" translatable="yes">Chat</property>
</packing>
</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>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can_focus">False</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>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="name">directory</property>
<property name="title" translatable="yes">Directory</property>
<property name="position">1</property>
</packing>
</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>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="name">loading</property>
<property name="title" translatable="yes">Loading</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
<child type="titlebar">
<object class="HdyTitleBar">
<property name="visible">True</property>
<child>
<object class="GtkStack" id="headerbar_stack">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="hhomogeneous">False</property>
<child>
<object class="HdyLeaflet" id="header_leaflet"> <!--message view-->
<property name="visible">True</property>
<property name="child-transition-type">slide</property>
<property name="mode-transition-type">slide</property>
<property name="hhomogeneous-folded">True</property>
<child>
<object class="GtkHeaderBar" 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>
<property name="position">0</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="popover">add_room_popover</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>
<property name="position">1</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>
<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>
</child>
<child>
<object class="GtkHeaderBar" 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="header_leaflet" bind-property="folded" bind-flags="sync-create"/>
<property name="transition-duration" bind-source="header_leaflet" 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="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>
<property name="label" translatable="yes">Room name</property>
<property name="ellipsize">end</property>
<style>
<class name="title"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="room_topic">
<property name="can_focus">False</property>
<property name="label" translatable="yes">Room topic</property>
<property name="ellipsize">end</property>
<style>
<class name="subtitle"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</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="popover">room_popover</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>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="name">content</property>
</packing>
</child>
</object>
<packing>
<property name="name">normal</property>
<property name="title">normal</property>
<property name="position">1</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="GtkHeaderBar">
<property name="can_focus">False</property>
<property name="show-close-button">True</property>
<property name="title">Fractal</property>
</object>
</child>
</object>
<packing>
<property name="name">loading</property>
<property name="title">loading</property>
<property name="position">1</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="GtkHeaderBar">
<property name="can_focus">False</property>
<property name="show_close_button">True</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.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="GtkSearchEntry" id="directory_search_entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="width_chars">30</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>
<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="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>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</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>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
<packing>
<property name="pack_type">end</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="name">back</property>
<property name="title" translatable="yes">Back</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<style>
<class name="main-window"/>
</style>
</object>
<!-- Synchronize left header and sidebar -->
<object class="GtkSizeGroup">
<property name="mode">horizontal</property>
<widgets>
<widget name="left-header"/>
<widget name="sidebar-box"/>
</widgets>
</object>
<object class="GtkSizeGroup">
<property name="mode">horizontal</property>
<widgets>
<widget name="inapp"/>
<widget name="room_header_bar"/>
</widgets>
</object>
<object class="GtkSizeGroup">
<property name="mode">horizontal</property>
<widgets>
<widget name="header_separator"/>
<widget name="content_separator"/>
</widgets>
</object>
<object class="HdyHeaderGroup">
<headerbars>
<headerbar name="left-header"/>
<headerbar name="room_header_bar"/>
</headerbars>
</object>
</interface>