From ed04950c54cbfb3b6848117628bdc2cef4daa5a0 Mon Sep 17 00:00:00 2001 From: daleclack Date: Fri, 14 Jan 2022 19:50:55 +0800 Subject: [PATCH] Add more for menu --- Flos_Gtk4/res/start.ui | 230 +++++++++++++++++++++++++++++++-- Flos_Gtk4/res/style.css | 4 + Flos_Gtk4/src/core/MainWin.cpp | 17 ++- Flos_Gtk4/src/core/MainWin.h | 4 +- Flos_Gtk4/src/core/MyDock.cpp | 5 +- Flos_Gtk4/src/core/MyDock.h | 2 +- Flos_Gtk4/src/core/Start.cpp | 9 ++ 7 files changed, 254 insertions(+), 17 deletions(-) diff --git a/Flos_Gtk4/res/start.ui b/Flos_Gtk4/res/start.ui index b6ed2d2..c7e7e67 100644 --- a/Flos_Gtk4/res/start.ui +++ b/Flos_Gtk4/res/start.ui @@ -22,11 +22,182 @@ 1 vertical - + + 1 + 1 + 1 + start + 0 + + + 1 + + + 1 + 32 + 7zFM + + + + + 1 + 7-zip File Manager + 1 + + + + + + + + + 1 + 1 + 1 + start + 0 + + + 1 + + + 1 + 32 + file-manager + + + + + 1 + File Manager + 1 + + + + + + + + + 1 + 1 + 1 + start + 0 + + + 1 + + + 1 + 32 + glade + + + + + 1 + Glade + 1 + + + + + + + + + 1 + 1 + 1 + start + 0 + + + 1 + + + 1 + 32 + qemu-launcher + + + + + 1 + QEMU + 1 + + + + + + + + + 1 + 1 + 1 + start + 0 + + + 1 + + + 1 + 32 + qqmusic + + + + + 1 + QQMusic + 1 + + + + + + + + + 1 + 1 + 1 + start + 0 + + + 1 + + + 1 + 32 + visual-studio-code + + + + + 1 + Visual Studio Code + 1 + + + + + + + + 1 1 + + + 1 @@ -362,22 +533,64 @@ 1 vertical - + + center + 1 + My_GtkUI + 48 + - + + 1 + 1 + 1 + 0 + dale + + + + + 1 + 1 + 1 + 0 + FlMusic + + + + + 1 + 1 + 1 + 0 + Computer + + + + 1 1 + + + 1 + center + 1 + 1 + 0 + Run + + + + + 1 start end - - - 1 @@ -389,6 +602,9 @@ 0 + + + 1 @@ -407,7 +623,6 @@ 1 - 10 @@ -415,7 +630,6 @@ 1 - 10 diff --git a/Flos_Gtk4/res/style.css b/Flos_Gtk4/res/style.css index 6eeee48..0d61a0e 100644 --- a/Flos_Gtk4/res/style.css +++ b/Flos_Gtk4/res/style.css @@ -14,3 +14,7 @@ menubar{ box{ background-color: alpha(white,0.7); } + +separator{ + background-color:white; +} diff --git a/Flos_Gtk4/src/core/MainWin.cpp b/Flos_Gtk4/src/core/MainWin.cpp index 29d377b..d9ef9ab 100644 --- a/Flos_Gtk4/src/core/MainWin.cpp +++ b/Flos_Gtk4/src/core/MainWin.cpp @@ -7,6 +7,7 @@ struct _MainWin GtkApplicationWindow parent_instance; GtkWidget *overlay; GtkWidget *background; + GtkStyleProvider *provider; }; G_DEFINE_TYPE(MainWin, main_win, GTK_TYPE_APPLICATION_WINDOW) @@ -56,9 +57,9 @@ static void main_win_init(MainWin *win) 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); + win->provider = GTK_STYLE_PROVIDER(gtk_css_provider_new()); + gtk_css_provider_load_from_resource(GTK_CSS_PROVIDER(win->provider), "/org/gtk/daleclack/style.css"); + gtk_style_context_add_provider(gtk_widget_get_style_context(menubar), win->provider, G_MAXINT); // Add Label for time GtkWidget *time_label = gtk_label_new("12:21 2022/1/9"); @@ -75,7 +76,7 @@ static void main_win_init(MainWin *win) gtk_overlay_add_overlay(GTK_OVERLAY(win->overlay), time_label); //Add a dock - add_dock(win, provider); + add_dock(win); // Add widgets gtk_overlay_set_child(GTK_OVERLAY(win->overlay), win->background); @@ -91,5 +92,11 @@ MainWin *main_win_new(GtkApplication *app) GtkOverlay *main_win_get_overlay(MainWin * win){ + //Get the Overlay of the window return GTK_OVERLAY(win->overlay); -} \ No newline at end of file +} + +GtkStyleProvider *main_win_get_style(MainWin * win){ + //Get Style Provider + return win->provider; +} diff --git a/Flos_Gtk4/src/core/MainWin.h b/Flos_Gtk4/src/core/MainWin.h index 388d563..4ea0841 100644 --- a/Flos_Gtk4/src/core/MainWin.h +++ b/Flos_Gtk4/src/core/MainWin.h @@ -6,4 +6,6 @@ G_DECLARE_FINAL_TYPE(MainWin,main_win,MAIN,WIN,GtkApplicationWindow) MainWin * main_win_new(GtkApplication * app); -GtkOverlay *main_win_get_overlay(MainWin * win); +GtkOverlay * main_win_get_overlay(MainWin * win); + +GtkStyleProvider * main_win_get_style(MainWin * win); diff --git a/Flos_Gtk4/src/core/MyDock.cpp b/Flos_Gtk4/src/core/MyDock.cpp index 5641dc1..c919f10 100644 --- a/Flos_Gtk4/src/core/MyDock.cpp +++ b/Flos_Gtk4/src/core/MyDock.cpp @@ -1,7 +1,7 @@ #include "MyDock.h" #include "Start.h" -void add_dock(MainWin * win, GtkStyleProvider * provider){ +void add_dock(MainWin * win){ GtkWidget * dock_box, * main_box; //Create a box for layout @@ -25,5 +25,6 @@ void add_dock(MainWin * win, GtkStyleProvider * provider){ gtk_box_append(GTK_BOX(main_box),space); //Set Style - gtk_style_context_add_provider(gtk_widget_get_style_context(dock_box), provider, G_MAXINT); + gtk_style_context_add_provider(gtk_widget_get_style_context(dock_box), + main_win_get_style(win), G_MAXINT); } diff --git a/Flos_Gtk4/src/core/MyDock.h b/Flos_Gtk4/src/core/MyDock.h index ed35a6b..a2e19c8 100644 --- a/Flos_Gtk4/src/core/MyDock.h +++ b/Flos_Gtk4/src/core/MyDock.h @@ -3,4 +3,4 @@ #include #include "MainWin.h" -void add_dock(MainWin * win, GtkStyleProvider * provider); +void add_dock(MainWin * win); diff --git a/Flos_Gtk4/src/core/Start.cpp b/Flos_Gtk4/src/core/Start.cpp index 2e5d38c..73caadf 100644 --- a/Flos_Gtk4/src/core/Start.cpp +++ b/Flos_Gtk4/src/core/Start.cpp @@ -28,6 +28,15 @@ void add_start(MainWin * win, GtkBox * box){ GtkWidget * btnshut = (GtkWidget*)gtk_builder_get_object(startbuilder,"btnshut"); g_signal_connect_swapped(btnshut,"clicked",G_CALLBACK(gtk_window_destroy),win); + //Add Style for separator + GtkWidget * prim_separator, * ext_separator; + prim_separator = (GtkWidget*)gtk_builder_get_object(startbuilder,"prim_separator"); + ext_separator = (GtkWidget*)gtk_builder_get_object(startbuilder,"ext_separator"); + gtk_style_context_add_provider(gtk_widget_get_style_context(prim_separator), + main_win_get_style(win), G_MAXINT); + gtk_style_context_add_provider(gtk_widget_get_style_context(ext_separator), + main_win_get_style(win), G_MAXINT); + //Pack widgets gtk_box_prepend(box,menu_btn); gtk_box_prepend(box,label);