From bad0e48b10497418a6481787834cc1bac623f89b Mon Sep 17 00:00:00 2001 From: daleclack Date: Thu, 9 Nov 2023 10:52:06 +0800 Subject: [PATCH] Improve style for launchpad and finder --- Gtk4_Reset/res/mydock.ui | 1146 ++++++++++++++++---------------- Gtk4_Reset/res/style.css | 25 +- Gtk4_Reset/src/ui/MyDock.cpp | 47 +- Gtk4_Reset/src/ui/MyFinder.cpp | 56 +- 4 files changed, 631 insertions(+), 643 deletions(-) diff --git a/Gtk4_Reset/res/mydock.ui b/Gtk4_Reset/res/mydock.ui index 4f02488..3c7d38f 100644 --- a/Gtk4_Reset/res/mydock.ui +++ b/Gtk4_Reset/res/mydock.ui @@ -288,599 +288,607 @@ page1 - + - - 0 - 0 - center - start - 1 - 1 + - - 64 - 64 - 1 - 1 - win.about - - - vertical - - - 0 - 0 - 48 - btnabout + + 0 + 0 + center + start + 1 + 1 + + + 64 + 64 + 1 + 1 + win.about + + + vertical + + + 0 + 0 + 48 + btnabout + + + + + about + + - - - - about - - + + 0 + + 1 + 0 + - - 0 - - 1 - 0 - - - - - - 64 - 64 - 1 - 1 - - - vertical - - - 48 - audacious_whitesur + + + + 64 + 64 + 1 + 1 + + + vertical + + + 48 + audacious_whitesur + + + + + audacious + + - - - - audacious - - + + 0 + + 2 + 0 + - - 0 - - 2 - 0 - - - - - - 1 - 1 - - - vertical - - - 48 - drawing_app + + + + 1 + 1 + + + vertical + + + 48 + drawing_app + + + + + Drawing + + - - - - Drawing - - + + 0 + + 4 + 0 + - - 0 - - 4 - 0 - - - - - - 1 - 1 - - - vertical - - - 48 - file-app + + + + 1 + 1 + + + vertical + + + 48 + file-app + + + + + MyFinder + + - - - - MyFinder - - + + 0 + + 5 + 0 + - - 0 - - 5 - 0 - - - - - - 1 - 1 - - - vertical - - - 48 - my_textedit + + + + 1 + 1 + + + vertical + + + 48 + my_textedit + + + + + Gedit + + - - - - Gedit - - + + 0 + + 6 + 0 + - - 0 - - 6 - 0 - - - - - - 1 - 1 - - - vertical - - - 48 - game + + + + 1 + 1 + + + vertical + + + 48 + game + + + + + Guess game + + - - - - Guess game - - + + 0 + + 0 + 1 + - - 0 - - 0 - 1 - - - - - - 1 - 1 - - - vertical - - - 48 - image_app + + + + 1 + 1 + + + vertical + + + 48 + image_app + + + + + Image Viewer + + - - - - Image Viewer - - + + 0 + + 1 + 1 + - - 0 + + + + 1 + 1 + + + vertical + + + 48 + my_textedit + + + + + Notepad(win) + + + + + 0 + + 4 + 1 + + + + + + 1 + 1 + + + vertical + + + 48 + my_textedit + + + + + TextEditor + + + + + 0 + + 5 + 1 + + + + + + 1 + 1 + + + vertical + + + 48 + vlc_whitesur + + + + + VLC(linux) + + + + + 0 + + 6 + 1 + + + + + + 1 + 1 + + + vertical + + + 48 + vlc_whitesur + + + + + VLC(win32) + + + + + 0 + + 0 + 2 + + + + + + 1 + 1 + + + vertical + + + 48 + myrunner + + + + + Run App + + + + + 0 + + 3 + 1 + + + + + + 1 + 1 + + + vertical + + + 48 + my_prefs + + + + + Preferences + + + + + 0 + + 2 + 1 + + + + + + 1 + 1 + + + vertical + + + 48 + 24game + + + + + 24Game + + + + + 0 + + 0 + 0 + + + + + + 1 + 1 + + + vertical + + + 48 + calcapp + + + + + Calculator + + + + + 0 + + 3 + 0 + + + + + + 1 + 1 + + + vertical + + + mines_app + 48 + + + + + MineSweeper + + + + + 0 + + 1 + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 1 - - - 1 - 1 - - - vertical - - - 48 - my_textedit - - - - - Notepad(win) - - - - - 0 - - 4 - 1 - - - - - - 1 - 1 - - - vertical - - - 48 - my_textedit - - - - - TextEditor - - - - - 0 - - 5 - 1 - - - - - - 1 - 1 - - - vertical - - - 48 - vlc_whitesur - - - - - VLC(linux) - - - - - 0 - - 6 - 1 - - - - - - 1 - 1 - - - vertical - - - 48 - vlc_whitesur - - - - - VLC(win32) - - - - - 0 - - 0 - 2 - - - - - - 1 - 1 - - - vertical - - - 48 - myrunner - - - - - Run App - - - - - 0 - - 3 - 1 - - - - - - 1 - 1 - - - vertical - - - 48 - my_prefs - - - - - Preferences - - - - - 0 - - 2 - 1 - - - - - - 1 - 1 - - - vertical - - - 48 - 24game - - - - - 24Game - - - - - 0 - - 0 - 0 - - - - - - 1 - 1 - - - vertical - - - 48 - calcapp - - - - - Calculator - - - - - 0 - - 3 - 0 - - - - - - 1 - 1 - - - vertical - - - mines_app - 48 - - - - - MineSweeper - - - - - 0 - - 1 - 2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - 1 - + + + 1 + 1 + + 0 + 2 + + + + + + 1 + 1 + + 2 + 2 + + + + + + + 1 + 0 + + + + + + + + + + + + + + + + + + + + 0 + 0 + - - - 1 - 1 - - 0 - 2 - - - - - - 1 - 1 - - 2 - 2 - - - - - - - 1 - 0 - - - - - - - - - - - - - - - - - - diff --git a/Gtk4_Reset/res/style.css b/Gtk4_Reset/res/style.css index 8cc9d8f..ed80cdd 100644 --- a/Gtk4_Reset/res/style.css +++ b/Gtk4_Reset/res/style.css @@ -11,15 +11,20 @@ background-color:alpha(white,0.55); } -/* Background color in the box should be transparent*/ -.finder_buttons box{ - background-color: transparent; -} - -.finder_buttons separator{ - background-color: transparent; -} - -.dock_style box{ +.dock_style grid{ background-color: alpha(white, 0.5); } + +/* Background color in the box should be transparent*/ +.default_style box{ + background-color: transparent; +} + +.default_style separator{ + background-color: transparent; +} + +.default_style grid{ + background-color: transparent; +} + diff --git a/Gtk4_Reset/src/ui/MyDock.cpp b/Gtk4_Reset/src/ui/MyDock.cpp index 2184a4e..1a2872d 100644 --- a/Gtk4_Reset/src/ui/MyDock.cpp +++ b/Gtk4_Reset/src/ui/MyDock.cpp @@ -16,6 +16,9 @@ struct _MyDock GtkWidget *main_pic, *finder; GtkWidget *btnlaunch, *launchpad_stack, // launchpad *default_page, *launchpad_page; + GtkWidget *padabout, *padaud, *paddraw, *padfile, *padgedit, // Launchpad icons + *padgame, *padimage, *padnote, *padedit, *padvlc, *padvlc_win32, + *padrun, *padset, *padgame24, *padcalc, *padmine; PadPage current_page; GtkBuilder *menu_builder; GMenuModel *menu_model; @@ -59,14 +62,6 @@ static void pressed(GtkGesture *gesture, int n_press, gtk_popover_popup(GTK_POPOVER(dock->context_menu)); } -static void my_dock_add_style(MyDock *self, GtkStyleProvider *provider) -{ - gtk_widget_add_css_class(self->launchpad_page, "finder_buttons"); - gtk_style_context_add_provider_for_display(gtk_widget_get_display(self->launchpad_page), - GTK_STYLE_PROVIDER(provider), - GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); -} - static void my_dock_init(MyDock *self) { // Builder for the main dock @@ -82,6 +77,22 @@ static void my_dock_init(MyDock *self) self->launchpad_stack = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "launchpad_stack")); self->default_page = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "default_page")); self->launchpad_page = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "launchpad_page")); + self->padaud = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "padaud")); + self->padabout = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "padabout")); + self->padcalc = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "padcalc")); + self->paddraw = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "paddraw")); + self->padedit = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "padedit")); + self->padfile = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "padfile")); + self->padgame24 = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "padgame24")); + self->padgame = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "padgame")); + self->padgedit = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "padgedit")); + self->padimage = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "padimage")); + self->padmine = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "padmine")); + self->padnote = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "padnote")); + self->padrun = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "padrun")); + self->padset = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "padset")); + self->padvlc = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "padvlc")); + self->padvlc_win32 = GTK_WIDGET(gtk_builder_get_object(self->dock_builder, "padvlc_win32")); // Launchpad default self->current_page = MainPage; @@ -117,22 +128,26 @@ static void my_dock_init(MyDock *self) // Link Signals g_signal_connect(self->btnlaunch, "clicked", G_CALLBACK(btnlaunch_clicked), self); - // Add Style for finder + // Create Css Provider for styling GtkCssProvider *provider = gtk_css_provider_new(); gtk_css_provider_load_from_resource(provider, "/org/gtk/daleclack/style.css"); - gtk_widget_add_css_class(self->finder_box, "finder_box"); - gtk_style_context_add_provider_for_display(gtk_widget_get_display(self->finder_box), - GTK_STYLE_PROVIDER(provider), - GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + // Add Style for finder my_finder_add_style(MY_FINDER(self->finder), provider); // Add Style to launchpad page - GtkWidget *parent = gtk_widget_get_parent(self->launchpad_page); - gtk_widget_add_css_class(parent, "dock_style"); - gtk_style_context_add_provider_for_display(gtk_widget_get_display(parent), + gtk_widget_add_css_class(self->launchpad_page, "dock_style"); + gtk_style_context_add_provider_for_display(gtk_widget_get_display(self->launchpad_page), GTK_STYLE_PROVIDER(provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + + // The widget in the launchpad page should use default style + GtkWidget *child = gtk_grid_get_child_at(GTK_GRID(self->launchpad_page), 0, 0); + gtk_widget_add_css_class(child, "default_style"); + gtk_style_context_add_provider_for_display(gtk_widget_get_display(child), + GTK_STYLE_PROVIDER(provider), + GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + // Pack widgets // Dock position and mode, will be changable soon diff --git a/Gtk4_Reset/src/ui/MyFinder.cpp b/Gtk4_Reset/src/ui/MyFinder.cpp index b0d0785..ac247ff 100644 --- a/Gtk4_Reset/src/ui/MyFinder.cpp +++ b/Gtk4_Reset/src/ui/MyFinder.cpp @@ -135,57 +135,17 @@ static void my_finder_init(MyFinder *self) void my_finder_add_style(MyFinder *finder, GtkCssProvider *provider) { + // Main finder style + GtkWidget *parent = gtk_widget_get_parent(GTK_WIDGET(finder)); + gtk_widget_add_css_class(parent, "finder_box"); + gtk_style_context_add_provider_for_display(gtk_widget_get_display(parent), + GTK_STYLE_PROVIDER(provider), + GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); // Make box in the buttons transparent - gtk_widget_add_css_class(finder->btn_icon, "finder_buttons"); - gtk_style_context_add_provider_for_display(gtk_widget_get_display(finder->btn_icon), + gtk_widget_add_css_class(GTK_WIDGET(finder), "default_style"); + gtk_style_context_add_provider_for_display(gtk_widget_get_display(GTK_WIDGET(finder)), GTK_STYLE_PROVIDER(provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); - - gtk_widget_add_css_class(finder->btntitle, "finder_buttons"); - gtk_style_context_add_provider_for_display(gtk_widget_get_display(finder->btntitle), - GTK_STYLE_PROVIDER(provider), - GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); - - gtk_widget_add_css_class(finder->btnfile, "finder_buttons"); - gtk_style_context_add_provider_for_display(gtk_widget_get_display(finder->btnfile), - GTK_STYLE_PROVIDER(provider), - GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); - - gtk_widget_add_css_class(finder->btnedit, "finder_buttons"); - gtk_style_context_add_provider_for_display(gtk_widget_get_display(finder->btnedit), - GTK_STYLE_PROVIDER(provider), - GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); - - gtk_widget_add_css_class(finder->btnshow, "finder_buttons"); - gtk_style_context_add_provider_for_display(gtk_widget_get_display(finder->btnshow), - GTK_STYLE_PROVIDER(provider), - GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); - - gtk_widget_add_css_class(finder->btngoto, "finder_buttons"); - gtk_style_context_add_provider_for_display(gtk_widget_get_display(finder->btngoto), - GTK_STYLE_PROVIDER(provider), - GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); - - gtk_widget_add_css_class(finder->btnwin, "finder_buttons"); - gtk_style_context_add_provider_for_display(gtk_widget_get_display(finder->btnwin), - GTK_STYLE_PROVIDER(provider), - GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); - - gtk_widget_add_css_class(finder->btnhelp, "finder_buttons"); - gtk_style_context_add_provider_for_display(gtk_widget_get_display(finder->btnhelp), - GTK_STYLE_PROVIDER(provider), - GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); - - gtk_widget_add_css_class(finder->time_button, "finder_buttons"); - gtk_style_context_add_provider_for_display(gtk_widget_get_display(finder->time_button), - GTK_STYLE_PROVIDER(provider), - GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); - - gtk_widget_add_css_class(finder->menu_button, "finder_buttons"); - gtk_style_context_add_provider_for_display(gtk_widget_get_display(finder->menu_button), - GTK_STYLE_PROVIDER(provider), - GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); - } static void my_finder_class_init(MyFinderClass *klass)