main: extend theming capabilities
This commit is contained in:
parent
b428c3a627
commit
b4b115df48
|
@ -34,7 +34,6 @@ set(RESOURCE_LIST
|
||||||
conversation_selector/conversation_row.ui
|
conversation_selector/conversation_row.ui
|
||||||
conversation_summary/message_item.ui
|
conversation_summary/message_item.ui
|
||||||
conversation_summary/view.ui
|
conversation_summary/view.ui
|
||||||
conversation_titlebar.ui
|
|
||||||
manage_accounts/account_row.ui
|
manage_accounts/account_row.ui
|
||||||
manage_accounts/add_account_dialog.ui
|
manage_accounts/add_account_dialog.ui
|
||||||
manage_accounts/dialog.ui
|
manage_accounts/dialog.ui
|
||||||
|
@ -46,6 +45,8 @@ set(RESOURCE_LIST
|
||||||
occupant_list_item.ui
|
occupant_list_item.ui
|
||||||
settings_dialog.ui
|
settings_dialog.ui
|
||||||
unified_window_placeholder.ui
|
unified_window_placeholder.ui
|
||||||
|
|
||||||
|
pre_theme.css
|
||||||
)
|
)
|
||||||
|
|
||||||
compile_gresources(
|
compile_gresources(
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<property name="show_close_button">True</property>
|
<property name="show_close_button">True</property>
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<style>
|
<style>
|
||||||
<class name="left_toolbar"/>
|
<class name="dino-left"/>
|
||||||
</style>
|
</style>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkMenuButton" id="add_button">
|
<object class="GtkMenuButton" id="add_button">
|
||||||
|
|
|
@ -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>
|
|
10
main/data/pre_theme.css
Normal file
10
main/data/pre_theme.css
Normal file
|
@ -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;
|
||||||
|
}
|
|
@ -14,12 +14,15 @@ public class Dino.Ui.Application : Gtk.Application, Dino.Application {
|
||||||
public SearchPathGenerator? search_path_generator { get; set; }
|
public SearchPathGenerator? search_path_generator { get; set; }
|
||||||
|
|
||||||
public Application() throws Error {
|
public Application() throws Error {
|
||||||
Object(application_id: "im.dino.Dino", flags: ApplicationFlags.HANDLES_OPEN);
|
Object(application_id: "im.dino", flags: ApplicationFlags.HANDLES_OPEN);
|
||||||
init();
|
init();
|
||||||
Notify.init("dino");
|
Notify.init("dino");
|
||||||
Environment.set_application_name("Dino");
|
Environment.set_application_name("Dino");
|
||||||
Gtk.Window.set_default_icon_name("dino");
|
Window.set_default_icon_name("dino");
|
||||||
IconTheme.get_default().add_resource_path("/im/dino/icons");
|
|
||||||
|
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(() => {
|
activate.connect(() => {
|
||||||
if (window == null) {
|
if (window == null) {
|
||||||
|
|
|
@ -16,6 +16,10 @@ public class ConversationListTitlebar : Gtk.HeaderBar {
|
||||||
|
|
||||||
public ConversationListTitlebar(StreamInteractor stream_interactor, Window window) {
|
public ConversationListTitlebar(StreamInteractor stream_interactor, Window window) {
|
||||||
this.stream_interactor = stream_interactor;
|
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);
|
create_add_menu(window);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@ public class ConversationTitlebar : Gtk.HeaderBar {
|
||||||
this.stream_interactor = stream_interactor;
|
this.stream_interactor = stream_interactor;
|
||||||
this.window = window;
|
this.window = window;
|
||||||
|
|
||||||
|
this.get_style_context().add_class("dino-right");
|
||||||
show_close_button = true;
|
show_close_button = true;
|
||||||
hexpand = true;
|
hexpand = true;
|
||||||
|
|
||||||
|
|
|
@ -26,6 +26,7 @@ public class UnifiedWindow : Window {
|
||||||
Object(application : application, default_width : 1200, default_height : 700);
|
Object(application : application, default_width : 1200, default_height : 700);
|
||||||
this.stream_interactor = stream_interactor;
|
this.stream_interactor = stream_interactor;
|
||||||
|
|
||||||
|
this.get_style_context().add_class("dino-main");
|
||||||
setup_headerbar();
|
setup_headerbar();
|
||||||
setup_unified();
|
setup_unified();
|
||||||
setup_stack();
|
setup_stack();
|
||||||
|
|
Loading…
Reference in a new issue