Add some icons and support to get icon name

This commit is contained in:
daleclack 2023-10-10 23:31:31 +08:00
parent 182b93d056
commit 293e0dc40c
5 changed files with 59 additions and 3 deletions

View File

@ -37,7 +37,9 @@ set(RESOURCE_LIST
icons/scalable/status/media-playback-start.svg icons/scalable/status/media-playback-start.svg
icons/scalable/status/media-playback-stop.svg icons/scalable/status/media-playback-stop.svg
icons/scalable/status/media-playlist-append.svg 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-play.svg
icons/scalable/status/media-playlist-repeat-one-symbolic.svg
icons/scalable/status/media-playlist-repeat.svg icons/scalable/status/media-playlist-repeat.svg
icons/scalable/status/media-playlist-shuffle.svg icons/scalable/status/media-playlist-shuffle.svg
icons/scalable/status/media-seek-backward.svg icons/scalable/status/media-seek-backward.svg

View File

@ -0,0 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">
<defs id="defs3051">
<style type="text/css" id="current-color-scheme">
.ColorScheme-Text {
color:#363636;
}
</style>
</defs>
<path
style="fill:currentColor;fill-opacity:1;stroke:none"
d="M 16 5 L 16 7 L 3 7 L 3 8 L 16 8 L 16 10 L 19 7.5 L 16 5 z M 16 12 L 16 14 L 3 14 L 3 15 L 16 15 L 16 17 L 19 14.5 L 16 12 z "
class="ColorScheme-Text"
/>
</svg>

After

Width:  |  Height:  |  Size: 465 B

View File

@ -0,0 +1,7 @@
<svg width="16" height="16" version="1.1" xmlns="http://www.w3.org/2000/svg">
<g fill="#363636">
<path d="m3.994 2c-1.258 0.015-2.179-0.03-2.931 0.385a1.88 1.88 0 0 0-0.838 0.998c-0.165 0.437-0.225 0.96-0.225 1.617v6c0 0.658 0.06 1.179 0.225 1.617 0.164 0.439 0.461 0.79 0.838 0.998 0.752 0.416 1.673 0.37 2.931 0.385h8.012c1.258-0.015 2.179 0.03 2.932-0.385a1.88 1.88 0 0 0 0.838-0.998c0.164-0.438 0.224-0.96 0.224-1.617v-6c0-0.658-0.06-1.179-0.225-1.617a1.88 1.88 0 0 0-0.838-0.998c-0.752-0.416-1.673-0.37-2.931-0.385h-1.006v1h1c1.259 0.015 2.087 0.06 2.453 0.262 0.184 0.1 0.29 0.212 0.387 0.472s0.16 0.674 0.16 1.266v6c0 0.592-0.063 1.006-0.16 1.266-0.098 0.26-0.203 0.371-0.387 0.472-0.366 0.202-1.194 0.247-2.453 0.262h-8c-1.259-0.015-2.09-0.06-2.455-0.262-0.183-0.1-0.287-0.212-0.385-0.472-0.097-0.26-0.16-0.674-0.16-1.266v-6c0-0.592 0.063-1.006 0.16-1.266 0.098-0.26 0.202-0.371 0.385-0.472 0.365-0.202 1.195-0.247 2.455-0.262h2.5v-1h-2.502z" color="#000000" font-family="sans-serif" font-weight="400" overflow="visible" style="font-feature-settings:normal;font-variant-alternates:normal;font-variant-caps:normal;font-variant-ligatures:normal;font-variant-numeric:normal;font-variant-position:normal;isolation:auto;mix-blend-mode:normal;shape-padding:0;text-decoration-color:#000000;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-orientation:mixed;text-transform:none"/>
<path d="m5 0 1e-3 5c0.76-0.348 1.535-0.737 2.323-1.166a44.09 44.09 0 0 0 2.259-1.334 51.555 51.555 0 0 0-2.26-1.32 43.088 43.088 0 0 0-2.323-1.18z" color="#000000" overflow="visible"/>
<path d="m6.117 6.247c0.167-0.07 0.34-0.147 0.52-0.234 0.184-0.092 0.363-0.19 0.536-0.294a8.2 8.2 0 0 0 0.494-0.338c0.161-0.121 0.306-0.248 0.433-0.381h0.9v6h-1v-4.652c-0.448 0.347-1.012 0.566-1.494 0.762z" font-family="Ubuntu" font-weight="700" letter-spacing="0" text-anchor="middle" word-spacing="0"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -400,6 +400,26 @@ static void btnstop_clicked(GtkButton *self, MyMediaPlayer *player)
// Switch play mode // Switch play mode
static void btn_playmode_clicked(GtkButton *self, MyMediaPlayer *player) static void btn_playmode_clicked(GtkButton *self, MyMediaPlayer *player)
{ {
// Change play mode
switch (player->current_play_mode)
{
case PlayMode::List_Once:
player->current_play_mode = PlayMode::List_Repeat;
gtk_button_set_icon_name(self, "media-playlist-repeat");
break;
case PlayMode::List_Repeat:
player->current_play_mode = PlayMode::List_Shuffle;
gtk_button_set_icon_name(self, "media-playlist-shuffle");
break;
case PlayMode::List_Shuffle:
player->current_play_mode = PlayMode::One_Repeat;
gtk_button_set_icon_name(self, "media-playlist-repeat-one-symbolic");
break;
case PlayMode::One_Repeat:
player->current_play_mode = PlayMode::List_Once;
gtk_button_set_icon_name(self, "media-playlist-normal");
break;
}
} }
static gboolean my_media_player_close_request(GtkWindow *window) static gboolean my_media_player_close_request(GtkWindow *window)
@ -410,6 +430,17 @@ static gboolean my_media_player_close_request(GtkWindow *window)
return TRUE; return TRUE;
} }
// Get whether use dark icon theme, to match icons with stack icons
static gboolean my_media_player_check_dark_theme(MyMediaPlayer *player)
{
// Get current theme
GtkIconTheme *theme = gtk_icon_theme_get_for_display(
gtk_widget_get_display(GTK_WIDGET(player)));
char *theme_name = gtk_icon_theme_get_theme_name(theme);
g_print("%s\n", theme_name);
free(theme_name);
}
static void my_media_player_init(MyMediaPlayer *self) static void my_media_player_init(MyMediaPlayer *self)
{ {
// Initalize window // Initalize window

View File

@ -3,9 +3,11 @@
#include <gtk/gtk.h> #include <gtk/gtk.h>
enum PlayMode{ enum PlayMode{
List_Once, List_Once, // Play the media with a playlist once
One_Repeat, List_Repeat, // Play the media with a playlist repeatly
List_Repeat List_Shuffle, // Random play a media in the playlist
One_Repeat // Repeat a media file
}; };
G_DECLARE_FINAL_TYPE(MyMediaPlayer, my_media_player, MYMEDIA, PLAYER, GtkApplicationWindow) G_DECLARE_FINAL_TYPE(MyMediaPlayer, my_media_player, MYMEDIA, PLAYER, GtkApplicationWindow)