aboutsummaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorMarvin W <git@larma.de>2017-08-29 21:55:15 +0200
committerMarvin W <git@larma.de>2017-08-29 22:09:13 +0200
commitb4b115df48cabd796f0499def22505cb18223787 (patch)
treeaca78f12b280b3294ee6a427604a2334b5578da2 /main
parentb428c3a627e7de45b7a9cde85893dcca06926561 (diff)
downloaddino-b4b115df48cabd796f0499def22505cb18223787.tar.gz
dino-b4b115df48cabd796f0499def22505cb18223787.zip
main: extend theming capabilities
Diffstat (limited to 'main')
-rw-r--r--main/CMakeLists.txt3
-rw-r--r--main/data/conversation_list_titlebar.ui2
-rw-r--r--main/data/conversation_titlebar.ui62
-rw-r--r--main/data/pre_theme.css10
-rw-r--r--main/src/ui/application.vala9
-rw-r--r--main/src/ui/conversation_list_titlebar.vala4
-rw-r--r--main/src/ui/conversation_titlebar/view.vala1
-rw-r--r--main/src/ui/unified_window.vala1
8 files changed, 25 insertions, 67 deletions
diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt
index cebd6d4c..c9fe88f1 100644
--- a/main/CMakeLists.txt
+++ b/main/CMakeLists.txt
@@ -34,7 +34,6 @@ set(RESOURCE_LIST
conversation_selector/conversation_row.ui
conversation_summary/message_item.ui
conversation_summary/view.ui
- conversation_titlebar.ui
manage_accounts/account_row.ui
manage_accounts/add_account_dialog.ui
manage_accounts/dialog.ui
@@ -46,6 +45,8 @@ set(RESOURCE_LIST
occupant_list_item.ui
settings_dialog.ui
unified_window_placeholder.ui
+
+ pre_theme.css
)
compile_gresources(
diff --git a/main/data/conversation_list_titlebar.ui b/main/data/conversation_list_titlebar.ui
index 6c08881c..f8fabedc 100644
--- a/main/data/conversation_list_titlebar.ui
+++ b/main/data/conversation_list_titlebar.ui
@@ -5,7 +5,7 @@
<property name="show_close_button">True</property>
<property name="visible">True</property>
<style>
- <class name="left_toolbar"/>
+ <class name="dino-left"/>
</style>
<child>
<object class="GtkMenuButton" id="add_button">
diff --git a/main/data/conversation_titlebar.ui b/main/data/conversation_titlebar.ui
deleted file mode 100644
index 30779079..00000000
--- a/main/data/conversation_titlebar.ui
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<interface>
- <template class="DinoUiConversationTitlebar" parent="GtkHeaderBar">
- <property name="title"></property>
- <property name="hexpand">True</property>
- <property name="show_close_button">True</property>
- <property name="visible">True</property>
- <child>
- <object class="GtkMenuButton" id="menu_button">
- <property name="visible">True</property>
- <style>
- <class name="image-button"/>
- </style>
- <child>
- <object class="GtkImage">
- <property name="visible">True</property>
- <property name="icon-name">open-menu-symbolic</property>
- <property name="icon-size">1</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="pack_type">end</property>
- </packing>
- </child>
- <child>
- <object class="GtkMenuButton" id="encryption_button">
- <property name="visible">False</property>
- <style>
- <class name="image-button"/>
- </style>
- <child>
- <object class="GtkImage">
- <property name="visible">True</property>
- <property name="icon-size">1</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="pack_type">end</property>
- </packing>
- </child>
- <child>
- <object class="GtkMenuButton" id="groupchat_button">
- <property name="visible">False</property>
- <style>
- <class name="image-button"/>
- </style>
- <child>
- <object class="GtkImage">
- <property name="visible">True</property>
- <property name="icon-name">system-users-symbolic</property>
- <property name="icon-size">1</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="pack_type">end</property>
- </packing>
- </child>
- </template>
-</interface>
diff --git a/main/data/pre_theme.css b/main/data/pre_theme.css
new file mode 100644
index 00000000..392e603f
--- /dev/null
+++ b/main/data/pre_theme.css
@@ -0,0 +1,10 @@
+/**
+ * This theme file is applied before the operating system theme and any user configuration.
+ * It provides sane defaults for things that are very Dino-specific.
+ */
+
+window.dino-main headerbar.dino-left label.title {
+ opacity: 0;
+ font-size: 0;
+ color: transparent;
+} \ No newline at end of file
diff --git a/main/src/ui/application.vala b/main/src/ui/application.vala
index 0183e30d..708c63b0 100644
--- a/main/src/ui/application.vala
+++ b/main/src/ui/application.vala
@@ -14,12 +14,15 @@ public class Dino.Ui.Application : Gtk.Application, Dino.Application {
public SearchPathGenerator? search_path_generator { get; set; }
public Application() throws Error {
- Object(application_id: "im.dino.Dino", flags: ApplicationFlags.HANDLES_OPEN);
+ Object(application_id: "im.dino", flags: ApplicationFlags.HANDLES_OPEN);
init();
Notify.init("dino");
Environment.set_application_name("Dino");
- Gtk.Window.set_default_icon_name("dino");
- IconTheme.get_default().add_resource_path("/im/dino/icons");
+ Window.set_default_icon_name("dino");
+
+ CssProvider provider = new CssProvider();
+ provider.load_from_resource("/im/dino/pre_theme.css");
+ StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), provider, STYLE_PROVIDER_PRIORITY_THEME - 1);
activate.connect(() => {
if (window == null) {
diff --git a/main/src/ui/conversation_list_titlebar.vala b/main/src/ui/conversation_list_titlebar.vala
index b9a902c8..815807f2 100644
--- a/main/src/ui/conversation_list_titlebar.vala
+++ b/main/src/ui/conversation_list_titlebar.vala
@@ -16,6 +16,10 @@ public class ConversationListTitlebar : Gtk.HeaderBar {
public ConversationListTitlebar(StreamInteractor stream_interactor, Window window) {
this.stream_interactor = stream_interactor;
+
+ custom_title = new Label("Dino") { visible = true, hexpand = true, xalign = 0 };
+ custom_title.get_style_context().add_class("title");
+
create_add_menu(window);
}
diff --git a/main/src/ui/conversation_titlebar/view.vala b/main/src/ui/conversation_titlebar/view.vala
index 34191995..9949f4fc 100644
--- a/main/src/ui/conversation_titlebar/view.vala
+++ b/main/src/ui/conversation_titlebar/view.vala
@@ -16,6 +16,7 @@ public class ConversationTitlebar : Gtk.HeaderBar {
this.stream_interactor = stream_interactor;
this.window = window;
+ this.get_style_context().add_class("dino-right");
show_close_button = true;
hexpand = true;
diff --git a/main/src/ui/unified_window.vala b/main/src/ui/unified_window.vala
index 3a419161..b3c02189 100644
--- a/main/src/ui/unified_window.vala
+++ b/main/src/ui/unified_window.vala
@@ -26,6 +26,7 @@ public class UnifiedWindow : Window {
Object(application : application, default_width : 1200, default_height : 700);
this.stream_interactor = stream_interactor;
+ this.get_style_context().add_class("dino-main");
setup_headerbar();
setup_unified();
setup_stack();