* src/client/conversation-viewer/conversation-viewer.vala: Convert to a GtkStack. Use a GTK template for constructing the UI. Remove WebView and any DOM-related code. Replace the enum DisplayMode and hence the HTML spinner and HTML user message with widgets in the stack. Remove all menus since they're all message specific and will need to be re-implemented for ConversationViewer. Comment out composer related code for the moment. * src/client/application/geary-controller.vala (GearyController::conversations_selected): Make both conversations and current_folder arguments non-nullable, since it doesn't make any sense for there not to be any and simplifies handler impls. (GearyController::on_conversations_selected): Don't fire when there isn't a current folder. * src/client/components/main-window.vala (MainWindow::set_styling): Add CSS theme code for the the conversation message list. (MainWindow::create_layout): Remove GtkFrame, just add the ConversationViewer instance directly. * ui/conversation-viewer.ui: New GtkBuilder template for ConversationViewer, implemented as a GtkStack containing widgets for displaying the loading spinner, conversation as a GtkListBox, and label for user messages. * ui/CMakeLists.txt, po/POTFILES.in: Added new UI files.
83 lines
1.8 KiB
CSS
83 lines
1.8 KiB
CSS
/*
|
|
* Copyright 2016 Software Freedom Conservancy Inc.
|
|
* Copyright 2016 Michael Gratton <mike@vee.net>
|
|
*
|
|
* This software is licensed under the GNU Lesser General Public License
|
|
* (version 2.1 or later). See the COPYING file in this distribution.
|
|
*/
|
|
|
|
.geary-folder-frame, /* GTK < 3.20 */
|
|
.geary-folder-frame > border {
|
|
border-left-width: 0;
|
|
border-top-width: 0;
|
|
border-right-width: 0;
|
|
}
|
|
.geary-conversation-frame, /* GTK < 3.20 */
|
|
.geary-conversation-frame > border {
|
|
border-left-width: 0;
|
|
border-top-width: 0;
|
|
border-right-width: 0;
|
|
}
|
|
/* For 3-pane mode only */
|
|
.geary-sidebar-pane-separator.vertical .conversation-frame, /* GTK < 3.20 */
|
|
.geary-sidebar-pane-separator.vertical .conversation-frame > border {
|
|
border-bottom-width: 0;
|
|
}
|
|
|
|
.geary-composer-box > border {
|
|
border-width: 0px;
|
|
}
|
|
.geary-composer-body > border {
|
|
border-left-width: 0;
|
|
border-right-width: 0;
|
|
border-bottom-width: 0;
|
|
}
|
|
|
|
ComposerEmbed GtkHeaderBar,
|
|
ComposerBox GtkHeaderBar,
|
|
GtkBox.vertical GtkHeaderBar {
|
|
border-radius: 0px;
|
|
}
|
|
.geary-titlebar-left:dir(ltr),
|
|
.geary-titlebar-right:dir(rtl) {
|
|
border-top-right-radius: 0px;
|
|
}
|
|
.geary-titlebar-right:dir(ltr),
|
|
.geary-titlebar-left:dir(rtl) {
|
|
border-top-left-radius: 0px;
|
|
}
|
|
|
|
row.geary-folder-popover-list-row {
|
|
padding: 6px;
|
|
border-color: @borders;
|
|
border-style: groove;
|
|
border-bottom-width: 1px;
|
|
}
|
|
row.geary-folder-popover-list-row > label {
|
|
color: @theme_text_color;
|
|
}
|
|
|
|
#conversation_listbox {
|
|
padding: 18px 18px 0;
|
|
}
|
|
#conversation_listbox > row {
|
|
margin: 0;
|
|
border-width: 1px 1px 0;
|
|
padding: 0;
|
|
box-shadow: 0 4px 8px 1px rgba(0,0,0,0.4);
|
|
transition: margin 0.1s;
|
|
}
|
|
#conversation_listbox > row.show-message {
|
|
margin-bottom: 18px;
|
|
border-bottom-width: 1px;
|
|
}
|
|
|
|
#ConversationMessage {
|
|
padding: 12px;
|
|
}
|
|
#ConversationMessage .header-label {
|
|
margin-right: 6px;
|
|
}
|
|
#ConversationMessage separator {
|
|
margin: 12px 0;
|
|
}
|