From 7507c7ac7fd5f793a4584592202203497a170e95 Mon Sep 17 00:00:00 2001 From: daleclack Date: Fri, 13 Oct 2023 22:52:53 +0800 Subject: [PATCH] Add dark theme icons --- Gtk4/gtk154_mediaplayer3/CMakeLists.txt | 17 +++++++- .../scalable/status/media-eject-dark.svg | 13 ++++++ .../scalable/status/media-mount-dark.svg | 13 ++++++ .../status/media-playback-pause-dark.svg | 13 ++++++ .../status/media-playback-start-dark.svg | 13 ++++++ .../status/media-playback-stop-dark.svg | 13 ++++++ .../status/media-playlist-append-dark.svg | 13 ++++++ .../status/media-playlist-normal-dark.svg | 14 +++++++ .../status/media-playlist-play-dark.svg | 14 +++++++ .../status/media-playlist-repeat-dark.svg | 13 ++++++ .../status/media-playlist-repeat-one-dark.svg | 7 ++++ ...olic.svg => media-playlist-repeat-one.svg} | 0 .../status/media-playlist-shuffle-dark.svg | 13 ++++++ .../status/media-seek-backward-dark.svg | 14 +++++++ .../status/media-seek-forward-dark.svg | 14 +++++++ .../status/media-skip-backward-dark.svg | 14 +++++++ .../status/media-skip-forward-dark.svg | 14 +++++++ .../gtk154_mediaplayer3/src/MyMediaPlayer.cpp | 42 ++++++++++++++----- 18 files changed, 243 insertions(+), 11 deletions(-) create mode 100644 Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-eject-dark.svg create mode 100644 Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-mount-dark.svg create mode 100644 Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playback-pause-dark.svg create mode 100644 Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playback-start-dark.svg create mode 100644 Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playback-stop-dark.svg create mode 100644 Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playlist-append-dark.svg create mode 100644 Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playlist-normal-dark.svg create mode 100644 Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playlist-play-dark.svg create mode 100644 Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playlist-repeat-dark.svg create mode 100644 Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playlist-repeat-one-dark.svg rename Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/{media-playlist-repeat-one-symbolic.svg => media-playlist-repeat-one.svg} (100%) create mode 100644 Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playlist-shuffle-dark.svg create mode 100644 Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-seek-backward-dark.svg create mode 100644 Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-seek-forward-dark.svg create mode 100644 Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-skip-backward-dark.svg create mode 100644 Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-skip-forward-dark.svg diff --git a/Gtk4/gtk154_mediaplayer3/CMakeLists.txt b/Gtk4/gtk154_mediaplayer3/CMakeLists.txt index 97f3307..fbd278d 100644 --- a/Gtk4/gtk154_mediaplayer3/CMakeLists.txt +++ b/Gtk4/gtk154_mediaplayer3/CMakeLists.txt @@ -39,13 +39,28 @@ set(RESOURCE_LIST icons/scalable/status/media-playlist-append.svg icons/scalable/status/media-playlist-normal.svg icons/scalable/status/media-playlist-play.svg - icons/scalable/status/media-playlist-repeat-one-symbolic.svg + icons/scalable/status/media-playlist-repeat-one.svg icons/scalable/status/media-playlist-repeat.svg icons/scalable/status/media-playlist-shuffle.svg icons/scalable/status/media-seek-backward.svg icons/scalable/status/media-seek-forward.svg icons/scalable/status/media-skip-backward.svg icons/scalable/status/media-skip-forward.svg + icons/scalable/status/media-eject-dark.svg + icons/scalable/status/media-mount-dark.svg + icons/scalable/status/media-playback-pause-dark.svg + icons/scalable/status/media-playback-start-dark.svg + icons/scalable/status/media-playback-stop-dark.svg + icons/scalable/status/media-playlist-append-dark.svg + icons/scalable/status/media-playlist-normal-dark.svg + icons/scalable/status/media-playlist-play-dark.svg + icons/scalable/status/media-playlist-repeat-one-dark.svg + icons/scalable/status/media-playlist-repeat-dark.svg + icons/scalable/status/media-playlist-shuffle-dark.svg + icons/scalable/status/media-seek-backward-dark.svg + icons/scalable/status/media-seek-forward-dark.svg + icons/scalable/status/media-skip-backward-dark.svg + icons/scalable/status/media-skip-forward-dark.svg ) compile_gresources(RESOURCE_FILE diff --git a/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-eject-dark.svg b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-eject-dark.svg new file mode 100644 index 0000000..d174abd --- /dev/null +++ b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-eject-dark.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-mount-dark.svg b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-mount-dark.svg new file mode 100644 index 0000000..b1fbe42 --- /dev/null +++ b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-mount-dark.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playback-pause-dark.svg b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playback-pause-dark.svg new file mode 100644 index 0000000..70309bd --- /dev/null +++ b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playback-pause-dark.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playback-start-dark.svg b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playback-start-dark.svg new file mode 100644 index 0000000..8bcc4ad --- /dev/null +++ b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playback-start-dark.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playback-stop-dark.svg b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playback-stop-dark.svg new file mode 100644 index 0000000..6a3528c --- /dev/null +++ b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playback-stop-dark.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playlist-append-dark.svg b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playlist-append-dark.svg new file mode 100644 index 0000000..c363da5 --- /dev/null +++ b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playlist-append-dark.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playlist-normal-dark.svg b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playlist-normal-dark.svg new file mode 100644 index 0000000..aadbd5d --- /dev/null +++ b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playlist-normal-dark.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playlist-play-dark.svg b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playlist-play-dark.svg new file mode 100644 index 0000000..04fc475 --- /dev/null +++ b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playlist-play-dark.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playlist-repeat-dark.svg b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playlist-repeat-dark.svg new file mode 100644 index 0000000..ec8fe6e --- /dev/null +++ b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playlist-repeat-dark.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playlist-repeat-one-dark.svg b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playlist-repeat-one-dark.svg new file mode 100644 index 0000000..bdd668a --- /dev/null +++ b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playlist-repeat-one-dark.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playlist-repeat-one-symbolic.svg b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playlist-repeat-one.svg similarity index 100% rename from Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playlist-repeat-one-symbolic.svg rename to Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playlist-repeat-one.svg diff --git a/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playlist-shuffle-dark.svg b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playlist-shuffle-dark.svg new file mode 100644 index 0000000..3d7cfec --- /dev/null +++ b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-playlist-shuffle-dark.svg @@ -0,0 +1,13 @@ + + + + + + diff --git a/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-seek-backward-dark.svg b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-seek-backward-dark.svg new file mode 100644 index 0000000..82624ac --- /dev/null +++ b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-seek-backward-dark.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-seek-forward-dark.svg b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-seek-forward-dark.svg new file mode 100644 index 0000000..984cae5 --- /dev/null +++ b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-seek-forward-dark.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-skip-backward-dark.svg b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-skip-backward-dark.svg new file mode 100644 index 0000000..683171c --- /dev/null +++ b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-skip-backward-dark.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-skip-forward-dark.svg b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-skip-forward-dark.svg new file mode 100644 index 0000000..bc05c67 --- /dev/null +++ b/Gtk4/gtk154_mediaplayer3/res/icons/scalable/status/media-skip-forward-dark.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/Gtk4/gtk154_mediaplayer3/src/MyMediaPlayer.cpp b/Gtk4/gtk154_mediaplayer3/src/MyMediaPlayer.cpp index a311f28..c9a5c9c 100644 --- a/Gtk4/gtk154_mediaplayer3/src/MyMediaPlayer.cpp +++ b/Gtk4/gtk154_mediaplayer3/src/MyMediaPlayer.cpp @@ -346,6 +346,26 @@ static void my_media_player_expander_activate(GtkExpander *self, MyMediaPlayer * } } +// Set button icon name with dark icon theme support +static void player_button_set_icon_name(GtkButton *button, const char *icon_name, + gboolean dark_mode) +{ + char *icon_name1; + // Change icon name string for dark mode + if (dark_mode) + { + icon_name1 = g_strdup_printf("%s-dark", icon_name); + } + else + { + icon_name1 = g_strdup_printf("%s", icon_name); + } + + // Set icon name and free memory for icon name + gtk_button_set_icon_name(button, icon_name1); + g_free(icon_name1); +} + // Play button static void btnplay_clicked(GtkButton *self, MyMediaPlayer *player) { @@ -357,13 +377,13 @@ static void btnplay_clicked(GtkButton *self, MyMediaPlayer *player) { // Media is playing, pause it gtk_media_stream_pause(stream); - gtk_button_set_icon_name(self, "media-playback-start"); + player_button_set_icon_name(self, "media-playback-start", player->dark_mode); } else { // Media is not playing gtk_media_stream_play(stream); - gtk_button_set_icon_name(self, "media-playback-pause"); + player_button_set_icon_name(self, "media-playback-pause", player->dark_mode); } } } @@ -394,7 +414,8 @@ static void btnstop_clicked(GtkButton *self, MyMediaPlayer *player) GtkMediaStream *stream = gtk_video_get_media_stream(GTK_VIDEO(player->video)); gtk_media_file_clear(GTK_MEDIA_FILE(stream)); gtk_video_set_file(GTK_VIDEO(player->video), NULL); - gtk_button_set_icon_name(GTK_BUTTON(player->btn_play), "media-playback-start"); + player_button_set_icon_name(GTK_BUTTON(player->btn_play), "media-playback-start", + player->dark_mode); gtk_widget_set_sensitive(player->btn_play, FALSE); } @@ -406,19 +427,19 @@ static void btn_playmode_clicked(GtkButton *self, MyMediaPlayer *player) { case PlayMode::List_Once: player->current_play_mode = PlayMode::List_Repeat; - gtk_button_set_icon_name(self, "media-playlist-repeat"); + player_button_set_icon_name(self, "media-playlist-repeat", player->dark_mode); break; case PlayMode::List_Repeat: player->current_play_mode = PlayMode::List_Shuffle; - gtk_button_set_icon_name(self, "media-playlist-shuffle"); + player_button_set_icon_name(self, "media-playlist-shuffle", player->dark_mode); break; case PlayMode::List_Shuffle: player->current_play_mode = PlayMode::One_Repeat; - gtk_button_set_icon_name(self, "media-playlist-repeat-one-symbolic"); + player_button_set_icon_name(self, "media-playlist-repeat-one", player->dark_mode); break; case PlayMode::One_Repeat: player->current_play_mode = PlayMode::List_Once; - gtk_button_set_icon_name(self, "media-playlist-normal"); + player_button_set_icon_name(self, "media-playlist-normal", player->dark_mode); break; } } @@ -444,18 +465,19 @@ static gboolean my_media_player_check_dark_theme(MyMediaPlayer *player) theme_name_length = strlen(theme_name); // Translate string to lower - for(int i = 0; i < theme_name_length; i++) + for (int i = 0; i < theme_name_length; i++) { theme_name[i] = tolower(theme_name[i]); } // Check "dark" string - for(int i = 0; i < 4; i++) + for (int i = 0; i < 4; i++) { temp_string[i] = theme_name[theme_name_length - 4 + i]; } - if(strncmp(temp_string, "dark", 4) == 0){ + if (strncmp(temp_string, "dark", 4) == 0) + { dark_mode = TRUE; } free(theme_name);