Display attached+un-embedded composer as an additional ConversationViewer stack page, although it realy should be broken as its own top-level widget - there's already too much state in ConversationViewer. * src/client/conversation-viewer/conversation-viewer.vala: Remove old composer boxes code. Add new ViewState enum, property and methods to define and manipulate the current view state - either conversation or composer. (do_conversation): New method to put the viewer in conversation mode. (do_compose): New method to put the viewer in compose mode, hook up the composer widget, and handle ConversationListView selection management for now. (on_folder_selected, on_conversation_count_changed, on_conversations_selected): Ensure these methods do the right thing depending on the viewer's current view state. (set_paned_composer): Replaced by ::do_compose, fixed call sites. (show_multiple_selected): Minor code clean up - moved down to a more appropriate location. * src/client/composer/composer-box.vala (ComposerBox): Don't attempt to up-manage it's parent's state, since the parent has a much better idea of how best to do that. Likewise move code to manage previous ConversationList selection out, provide signal so the a more appropriate class can manage it instead. * src/client/composer/composer-container.vala: Add some method comments. * ui/conversation-viewer.ui: Add new page to the stack for the composer.
105 lines
3.7 KiB
XML
105 lines
3.7 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!-- Generated with glade 3.20.0 -->
|
|
<interface>
|
|
<requires lib="gtk+" version="3.10"/>
|
|
<template class="ConversationViewer" parent="GtkStack">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="transition_type">crossfade</property>
|
|
<child>
|
|
<object class="GtkImage" id="splash_page">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="pixel_size">256</property>
|
|
<property name="icon_name">mail-inbox-symbolic</property>
|
|
</object>
|
|
<packing>
|
|
<property name="name">splash_page</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkSpinner" id="loading_page">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="active">True</property>
|
|
</object>
|
|
<packing>
|
|
<property name="name">loading_page</property>
|
|
<property name="position">1</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkScrolledWindow" id="conversation_page">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">True</property>
|
|
<property name="hscrollbar_policy">never</property>
|
|
<property name="shadow_type">in</property>
|
|
<child>
|
|
<object class="GtkViewport">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<child>
|
|
<object class="GtkListBox" id="conversation_listbox">
|
|
<property name="name">conversation_listbox</property>
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="selection_mode">none</property>
|
|
<style>
|
|
<class name="background"/>
|
|
</style>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="name">conversation_page</property>
|
|
<property name="position">2</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkBox" id="user_message_page">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="orientation">vertical</property>
|
|
<child>
|
|
<object class="GtkLabel" id="user_message_label">
|
|
<property name="name">100</property>
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="xpad">18</property>
|
|
<property name="ypad">18</property>
|
|
<property name="label">🎔</property>
|
|
<style>
|
|
<class name="frame"/>
|
|
<class name="view"/>
|
|
</style>
|
|
</object>
|
|
<packing>
|
|
<property name="expand">True</property>
|
|
<property name="fill">False</property>
|
|
<property name="position">0</property>
|
|
</packing>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="name">user_message_page</property>
|
|
<property name="position">3</property>
|
|
</packing>
|
|
</child>
|
|
<child>
|
|
<object class="GtkBox" id="composer_page">
|
|
<property name="visible">True</property>
|
|
<property name="can_focus">False</property>
|
|
<property name="orientation">vertical</property>
|
|
<child>
|
|
<placeholder/>
|
|
</child>
|
|
</object>
|
|
<packing>
|
|
<property name="name">composer_page</property>
|
|
<property name="position">4</property>
|
|
</packing>
|
|
</child>
|
|
</template>
|
|
</interface>
|