Add color dialog for lyrics
This commit is contained in:
parent
caed2e183e
commit
7e50730570
|
@ -242,6 +242,7 @@ static void lyric_line_process(char *lyrics_line,
|
||||||
static void lyrics_label_update(gint64 &curr_time, MyMediaPlayer *player)
|
static void lyrics_label_update(gint64 &curr_time, MyMediaPlayer *player)
|
||||||
{
|
{
|
||||||
char label_string[lyrics_max_length];
|
char label_string[lyrics_max_length];
|
||||||
|
char *color_str;
|
||||||
|
|
||||||
// if time is on a lyrics, update the label
|
// if time is on a lyrics, update the label
|
||||||
if (curr_time >= lyric_time - 100 && curr_time <= lyric_time + 100 &&
|
if (curr_time >= lyric_time - 100 && curr_time <= lyric_time + 100 &&
|
||||||
|
@ -249,12 +250,14 @@ static void lyrics_label_update(gint64 &curr_time, MyMediaPlayer *player)
|
||||||
lyric_time == 0)
|
lyric_time == 0)
|
||||||
{
|
{
|
||||||
// Since a new line is read and time match, load lyrics
|
// Since a new line is read and time match, load lyrics
|
||||||
|
color_str = my_media_player_get_color(player);
|
||||||
snprintf(label_string, lyrics_max_length,
|
snprintf(label_string, lyrics_max_length,
|
||||||
"<span color=\"green\" size='12pt'>%s</span>", current_lyrics);
|
"<span color=\"%s\" size='12pt'>%s</span>", color_str, current_lyrics);
|
||||||
gtk_label_set_markup(my_media_player_get_lyrics_widget(player),
|
gtk_label_set_markup(my_media_player_get_lyrics_widget(player),
|
||||||
label_string);
|
label_string);
|
||||||
line_read = FALSE;
|
line_read = FALSE;
|
||||||
}
|
}
|
||||||
|
// free(color_str);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get lyrics for a specfied time
|
// Get lyrics for a specfied time
|
||||||
|
|
|
@ -21,6 +21,8 @@ struct _MyMediaPlayer
|
||||||
GtkWidget *btn_add, *btn_remove;
|
GtkWidget *btn_add, *btn_remove;
|
||||||
GtkWidget *btn_load, *btn_save;
|
GtkWidget *btn_load, *btn_save;
|
||||||
GtkWidget *list_expander, *list_box;
|
GtkWidget *list_expander, *list_box;
|
||||||
|
GtkWidget *btn_color;
|
||||||
|
GtkColorDialog *dialog_color;
|
||||||
GtkWidget *column_view;
|
GtkWidget *column_view;
|
||||||
GtkWidget *scrolled_window, *scrolled_lyrics;
|
GtkWidget *scrolled_window, *scrolled_lyrics;
|
||||||
GListStore *music_store;
|
GListStore *music_store;
|
||||||
|
@ -638,6 +640,18 @@ static gboolean my_media_player_check_dark_theme(MyMediaPlayer *player)
|
||||||
return dark_mode;
|
return dark_mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char *my_media_player_get_color(MyMediaPlayer *player)
|
||||||
|
{
|
||||||
|
const GdkRGBA *color_rgba;
|
||||||
|
color_rgba = gtk_color_dialog_button_get_rgba(
|
||||||
|
GTK_COLOR_DIALOG_BUTTON(player->btn_color));
|
||||||
|
char *color_str = g_strdup_printf("#%02X%02X%02X",
|
||||||
|
(int)(color_rgba->red * 256),
|
||||||
|
(int)(color_rgba->green * 256),
|
||||||
|
(int)(color_rgba->blue * 256));
|
||||||
|
return color_str;
|
||||||
|
}
|
||||||
|
|
||||||
static void my_media_player_init(MyMediaPlayer *self)
|
static void my_media_player_init(MyMediaPlayer *self)
|
||||||
{
|
{
|
||||||
// Initalize window
|
// Initalize window
|
||||||
|
@ -659,6 +673,8 @@ static void my_media_player_init(MyMediaPlayer *self)
|
||||||
self->btn_next = player_button_new("media-skip-forward", self->dark_mode);
|
self->btn_next = player_button_new("media-skip-forward", self->dark_mode);
|
||||||
self->btn_stop = player_button_new("media-playback-stop", self->dark_mode);
|
self->btn_stop = player_button_new("media-playback-stop", self->dark_mode);
|
||||||
self->btn_playmode = player_button_new("media-playlist-repeat", self->dark_mode);
|
self->btn_playmode = player_button_new("media-playlist-repeat", self->dark_mode);
|
||||||
|
self->dialog_color = gtk_color_dialog_new();
|
||||||
|
self->btn_color = gtk_color_dialog_button_new(self->dialog_color);
|
||||||
self->btn_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
|
self->btn_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
|
||||||
self->btn_add = gtk_button_new_from_icon_name("list-add");
|
self->btn_add = gtk_button_new_from_icon_name("list-add");
|
||||||
self->scrolled_window = gtk_scrolled_window_new();
|
self->scrolled_window = gtk_scrolled_window_new();
|
||||||
|
@ -735,6 +751,7 @@ static void my_media_player_init(MyMediaPlayer *self)
|
||||||
gtk_box_append(GTK_BOX(self->ctrl_box), self->btn_next);
|
gtk_box_append(GTK_BOX(self->ctrl_box), self->btn_next);
|
||||||
gtk_box_append(GTK_BOX(self->ctrl_box), self->btn_stop);
|
gtk_box_append(GTK_BOX(self->ctrl_box), self->btn_stop);
|
||||||
gtk_box_append(GTK_BOX(self->ctrl_box), self->btn_playmode);
|
gtk_box_append(GTK_BOX(self->ctrl_box), self->btn_playmode);
|
||||||
|
gtk_box_append(GTK_BOX(self->ctrl_box), self->btn_color);
|
||||||
gtk_box_append(GTK_BOX(self->main_box), self->ctrl_box);
|
gtk_box_append(GTK_BOX(self->main_box), self->ctrl_box);
|
||||||
gtk_box_append(GTK_BOX(self->btn_box), self->btn_add);
|
gtk_box_append(GTK_BOX(self->btn_box), self->btn_add);
|
||||||
gtk_box_append(GTK_BOX(self->btn_box), self->btn_remove);
|
gtk_box_append(GTK_BOX(self->btn_box), self->btn_remove);
|
||||||
|
|
|
@ -34,4 +34,6 @@ void my_media_player_load_random_audio(MyMediaPlayer *player);
|
||||||
|
|
||||||
void my_media_player_reload_audio(MyMediaPlayer *player);
|
void my_media_player_reload_audio(MyMediaPlayer *player);
|
||||||
|
|
||||||
|
char *my_media_player_get_color(MyMediaPlayer *player);
|
||||||
|
|
||||||
MyMediaPlayer *my_media_player_new(GtkApplication *app);
|
MyMediaPlayer *my_media_player_new(GtkApplication *app);
|
||||||
|
|
Loading…
Reference in New Issue