From 36d43e601d4591fd5abf33a2036d6b63844f7a66 Mon Sep 17 00:00:00 2001 From: daleclack Date: Fri, 14 Jan 2022 22:04:00 +0800 Subject: [PATCH] Update start menu --- .gitignore | 3 ++ Flos_Gtk4/CMakeLists.txt | 1 + Flos_Gtk4/res/Yanni-Nightingale.mp3.md | 0 Flos_Gtk4/res/start.ui | 48 ++++++++++++++++++-------- Flos_Gtk4/src/core/Start.cpp | 18 ++++++++++ 5 files changed, 55 insertions(+), 15 deletions(-) create mode 100644 Flos_Gtk4/res/Yanni-Nightingale.mp3.md diff --git a/.gitignore b/.gitignore index 0516866..9e150dd 100644 --- a/.gitignore +++ b/.gitignore @@ -28,6 +28,9 @@ Makefile */src/resources.cpp resources.cc +#music files +*.mp3 + #backend source backend/* diff --git a/Flos_Gtk4/CMakeLists.txt b/Flos_Gtk4/CMakeLists.txt index 32a909e..e4a393e 100644 --- a/Flos_Gtk4/CMakeLists.txt +++ b/Flos_Gtk4/CMakeLists.txt @@ -30,6 +30,7 @@ set(RESOURCE_LIST reset.css dock.ui start.ui + Yanni-Nightingale.mp3 icons/16x16/actions/7zFM.png icons/48x48/actions/My_GtkUI.png icons/scalable/status/file-manager.svg diff --git a/Flos_Gtk4/res/Yanni-Nightingale.mp3.md b/Flos_Gtk4/res/Yanni-Nightingale.mp3.md new file mode 100644 index 0000000..e69de29 diff --git a/Flos_Gtk4/res/start.ui b/Flos_Gtk4/res/start.ui index c7e7e67..2561228 100644 --- a/Flos_Gtk4/res/start.ui +++ b/Flos_Gtk4/res/start.ui @@ -26,7 +26,6 @@ 1 1 1 - start 0 @@ -40,6 +39,7 @@ + start 1 7-zip File Manager 1 @@ -54,7 +54,6 @@ 1 1 1 - start 0 @@ -68,6 +67,7 @@ + start 1 File Manager 1 @@ -82,7 +82,6 @@ 1 1 1 - start 0 @@ -96,6 +95,7 @@ + start 1 Glade 1 @@ -110,7 +110,6 @@ 1 1 1 - start 0 @@ -124,6 +123,7 @@ + start 1 QEMU 1 @@ -138,7 +138,6 @@ 1 1 1 - start 0 @@ -152,6 +151,7 @@ + start 1 QQMusic 1 @@ -166,7 +166,6 @@ 1 1 1 - start 0 @@ -180,6 +179,7 @@ + start 1 Visual Studio Code 1 @@ -215,6 +215,7 @@ + start 1 All Programs 1 @@ -241,7 +242,6 @@ 1 1 1 - start 0 @@ -255,6 +255,7 @@ + start 1 7-zip File Manager 1 @@ -269,7 +270,6 @@ 1 1 1 - start 0 @@ -283,6 +283,7 @@ + start 1 BaiduNetDisk 1 @@ -297,7 +298,6 @@ 1 1 1 - start 0 @@ -311,6 +311,7 @@ + start 1 File Manager 1 @@ -324,8 +325,7 @@ 1 1 - 1 - start + 1 0 @@ -339,6 +339,7 @@ + start 1 Glade 1 @@ -353,7 +354,6 @@ 1 1 1 - start 0 @@ -367,6 +367,7 @@ + start 1 QEMU 1 @@ -381,7 +382,6 @@ 1 1 1 - start 0 @@ -395,6 +395,7 @@ + start 1 QQ 1 @@ -409,7 +410,6 @@ 1 1 1 - start 0 @@ -423,6 +423,7 @@ + start 1 QQMusic 1 @@ -437,7 +438,6 @@ 1 1 1 - start 0 @@ -451,6 +451,7 @@ + start 1 Visual Studio Code 1 @@ -480,6 +481,7 @@ + start 1 Back 1 @@ -567,6 +569,22 @@ Computer + + + 0 + vertical + + + Yanni-Nightingale + + + + + 1 + + + + 1 diff --git a/Flos_Gtk4/src/core/Start.cpp b/Flos_Gtk4/src/core/Start.cpp index 73caadf..cd97de0 100644 --- a/Flos_Gtk4/src/core/Start.cpp +++ b/Flos_Gtk4/src/core/Start.cpp @@ -8,6 +8,14 @@ static void btnback_clicked(GtkWidget * widget, GtkStack * stack){ gtk_stack_set_visible_child_name(stack,"page0"); } +static void btnmusic_clicked(GtkWidget * widget, GtkWidget * music_box){ + if(gtk_widget_get_visible(music_box)){ + gtk_widget_set_visible(music_box,FALSE); + }else{ + gtk_widget_set_visible(music_box,TRUE); + } +} + void add_start(MainWin * win, GtkBox * box){ //Create a builder for menu GtkBuilder * startbuilder = gtk_builder_new_from_resource("/org/gtk/daleclack/start.ui"); @@ -37,6 +45,16 @@ void add_start(MainWin * win, GtkBox * box){ gtk_style_context_add_provider(gtk_widget_get_style_context(ext_separator), main_win_get_style(win), G_MAXINT); + //Integrated Media Player + GtkWidget * music_box = (GtkWidget*)gtk_builder_get_object(startbuilder,"music_box"); + GtkWidget * btn_music = (GtkWidget*)gtk_builder_get_object(startbuilder,"btnmusic"); + GtkWidget * media_control = (GtkWidget*)gtk_builder_get_object(startbuilder,"media_ctrl"); + g_signal_connect(btn_music,"clicked",G_CALLBACK(btnmusic_clicked),music_box); + + //Add music resource + GtkMediaStream * media = gtk_media_file_new_for_resource("/org/gtk/daleclack/Yanni-Nightingale.mp3"); + gtk_media_controls_set_media_stream(GTK_MEDIA_CONTROLS(media_control),media); + //Pack widgets gtk_box_prepend(box,menu_btn); gtk_box_prepend(box,label);