Add css style

This commit is contained in:
daleclack 2022-01-09 11:57:39 +08:00
parent 56fb75979c
commit 2baabb3ee9
4 changed files with 33 additions and 9 deletions

View File

@ -25,7 +25,9 @@ link_directories (${GTK4_LIBRARY_DIRS})
set(RESOURCE_LIST
flos.png
menubar.xml)
menubar.xml
style.css
reset.css)
compile_gresources(RESOURCE_FILE
XML_OUT

12
Flos_Gtk4/res/reset.css Normal file
View File

@ -0,0 +1,12 @@
/* @import this colorsheet to get the default values for every property.
* This is useful when writing special CSS tests that should not be
* inluenced by themes - not even the default ones.
* Keep in mind that the output will be very ugly and not look like
* anything GTK.
* Also, when adding new style properties, please add them here.
*/
* {
all: unset;
}

12
Flos_Gtk4/res/style.css Normal file
View File

@ -0,0 +1,12 @@
/*
您可以在这里输入任何 GTK 可识别的 CSS 规则
您可以点击上面的暂停按钮来暂时停用这个自定义 CSS
变更会立即应用到全局影响整个应用程序
*/
@import url("resource://org/gtk/daleclack/reset.css");
/*Style for menubar*/
menubar{
background-color:#FFFA;
}

View File

@ -25,22 +25,20 @@ static void main_win_init(MainWin * win){
g_object_unref(pixbuf);
g_object_unref(sized);
//Add button for menubar
GtkWidget * back_button = gtk_button_new_with_label(" ");
gtk_widget_set_valign(back_button,GTK_ALIGN_START);
gtk_widget_set_halign(back_button,GTK_ALIGN_FILL);
gtk_widget_set_sensitive(back_button,FALSE);
gtk_widget_set_opacity(back_button,0.7);
gtk_overlay_add_overlay(GTK_OVERLAY(win->overlay),back_button);
//Add MenuBar
GtkBuilder * builder = gtk_builder_new_from_resource("/org/gtk/daleclack/menubar.xml");
GMenuModel * model = G_MENU_MODEL(gtk_builder_get_object(builder,"model"));
GtkWidget * menubar = gtk_popover_menu_bar_new_from_model(model);
//gtk_button_set_child(GTK_BUTTON(back_button),menubar);
gtk_widget_set_valign(menubar,GTK_ALIGN_START);
gtk_widget_set_halign(menubar,GTK_ALIGN_FILL);
gtk_overlay_add_overlay(GTK_OVERLAY(win->overlay),menubar);
//Apply Style for menubar
GtkStyleProvider * provider = GTK_STYLE_PROVIDER(gtk_css_provider_new());
gtk_css_provider_load_from_resource(GTK_CSS_PROVIDER(provider),"/org/gtk/daleclack/style.css");
gtk_style_context_add_provider(gtk_widget_get_style_context(menubar),provider,G_MAXINT);
//Add widgets
gtk_overlay_set_child(GTK_OVERLAY(win->overlay),win->background);
gtk_window_set_child(GTK_WINDOW(win),win->overlay);