[snappy] ui: switch between active and inactive subtitles icons
- From: Luis de Bethencourt <luisbg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [snappy] ui: switch between active and inactive subtitles icons
- Date: Fri, 14 Dec 2012 19:42:27 +0000 (UTC)
commit c8c24b4dce440badf79705939bc8c1f08167e5b0
Author: Luis de Bethencourt <luis debethencourt com>
Date: Fri Dec 14 14:42:20 2012 -0500
ui: switch between active and inactive subtitles icons
src/gst_engine.c | 9 +++++----
src/gst_engine.h | 2 +-
src/user_interface.c | 38 +++++++++++++++++++++++++++++---------
src/user_interface.h | 2 +-
4 files changed, 36 insertions(+), 15 deletions(-)
---
diff --git a/src/gst_engine.c b/src/gst_engine.c
index b1208a8..3e26927 100644
--- a/src/gst_engine.c
+++ b/src/gst_engine.c
@@ -667,8 +667,6 @@ cycle_streams (GstEngine * engine, guint streamid)
}
g_object_set (G_OBJECT (engine->player), c, current, NULL);
-
- return;
}
@@ -942,7 +940,7 @@ set_subtitle_uri (GstEngine * engine, gchar * suburi)
/* Toggle subtitles */
-void
+gboolean
toggle_subtitles (GstEngine * engine)
{
gint flags;
@@ -961,7 +959,10 @@ toggle_subtitles (GstEngine * engine)
g_object_set (G_OBJECT (engine->player), "flags", flags, NULL);
}
- return;
+ g_object_get (G_OBJECT (engine->player), "flags", &flags, NULL);
+ sub_state = flags & (1 << 2);
+
+ return sub_state;
}
diff --git a/src/gst_engine.h b/src/gst_engine.h
index ba098ab..bb720d4 100644
--- a/src/gst_engine.h
+++ b/src/gst_engine.h
@@ -76,7 +76,7 @@ gchar **get_recently_viewed ();
GstState get_state (GstEngine * engine);
gint64 query_position (GstEngine * engine);
void set_subtitle_uri (GstEngine * engine, gchar *suburi);
-void toggle_subtitles (GstEngine * engine);
+gboolean toggle_subtitles (GstEngine * engine);
gboolean update_media_duration (GstEngine * engine);
G_END_DECLS
diff --git a/src/user_interface.c b/src/user_interface.c
index e035cf8..544aca6 100644
--- a/src/user_interface.c
+++ b/src/user_interface.c
@@ -245,7 +245,15 @@ event_cb (ClutterStage * stage, ClutterEvent * event, UserInterface * ui)
case CLUTTER_v:
{
// toggle subtitles
- toggle_subtitles (ui->engine);
+ if (toggle_subtitles (ui->engine)) {
+ gtk_clutter_texture_set_from_pixbuf (GTK_CLUTTER_TEXTURE
+ (ui->subtitle_toggle),
+ gdk_pixbuf_new_from_file (ui->subtitle_active_png, NULL), NULL);
+ } else {
+ gtk_clutter_texture_set_from_pixbuf (GTK_CLUTTER_TEXTURE
+ (ui->subtitle_toggle),
+ gdk_pixbuf_new_from_file (ui->subtitle_inactive_png, NULL), NULL);
+ }
handled = TRUE;
break;
@@ -354,7 +362,15 @@ event_cb (ClutterStage * stage, ClutterEvent * event, UserInterface * ui)
cycle_streams (ui->engine, STREAM_AUDIO);
} else if (actor == ui->subtitle_toggle) {
- toggle_subtitles (ui->engine);
+ if (toggle_subtitles (ui->engine)) {
+ gtk_clutter_texture_set_from_pixbuf (GTK_CLUTTER_TEXTURE
+ (ui->subtitle_toggle),
+ gdk_pixbuf_new_from_file (ui->subtitle_active_png, NULL), NULL);
+ } else {
+ gtk_clutter_texture_set_from_pixbuf (GTK_CLUTTER_TEXTURE
+ (ui->subtitle_toggle),
+ gdk_pixbuf_new_from_file (ui->subtitle_inactive_png, NULL), NULL);
+ }
} else if (actor == ui->video_stream_toggle) {
cycle_streams (ui->engine, STREAM_VIDEO);
@@ -409,8 +425,10 @@ load_controls (UserInterface * ui)
"audio-volume-low.png", NULL);
ui->volume_high_png = g_build_filename (ui->data_dir,
"audio-volume-high.png", NULL);
- ui->subtitle_toggle_png = g_build_filename (ui->data_dir,
+ ui->subtitle_active_png = g_build_filename (ui->data_dir,
"subtitles-active.png", NULL);
+ ui->subtitle_inactive_png = g_build_filename (ui->data_dir,
+ "subtitles-inactive.png", NULL);
ui->video_stream_toggle_png = g_build_filename (ui->data_dir,
"video-stream-toggle.png", NULL);
ui->audio_stream_toggle_png = g_build_filename (ui->data_dir,
@@ -421,11 +439,12 @@ load_controls (UserInterface * ui)
icon_files[2] = ui->pause_png;
icon_files[3] = ui->volume_low_png;
icon_files[4] = ui->volume_high_png;
- icon_files[5] = ui->subtitle_toggle_png;
- icon_files[6] = ui->video_stream_toggle_png;
- icon_files[7] = ui->audio_stream_toggle_png;
+ icon_files[5] = ui->subtitle_active_png;
+ icon_files[6] = ui->subtitle_inactive_png;
+ icon_files[7] = ui->video_stream_toggle_png;
+ icon_files[8] = ui->audio_stream_toggle_png;
- for (c = 0; c < 8; c++) {
+ for (c = 0; c < 9; c++) {
if (!g_file_test (icon_files[c], G_FILE_TEST_EXISTS)) {
g_print ("Icon file doesn't exist, are you sure you have "
" installed snappy correctly?\nThis file needed is: %s\n",
@@ -680,7 +699,7 @@ load_controls (UserInterface * ui)
ui->subtitle_toggle = gtk_clutter_texture_new ();
gtk_clutter_texture_set_from_pixbuf (GTK_CLUTTER_TEXTURE
(ui->subtitle_toggle),
- gdk_pixbuf_new_from_file (ui->subtitle_toggle_png, NULL), &error);
+ gdk_pixbuf_new_from_file (ui->subtitle_active_png, NULL), &error);
if (!ui->subtitle_toggle && error)
g_debug ("Clutter error: %s", error->message);
if (error) {
@@ -1060,7 +1079,8 @@ interface_init (UserInterface * ui)
ui->volume_low_png = NULL;
ui->volume_high_png = NULL;
- ui->subtitle_toggle_png = NULL;
+ ui->subtitle_active_png = NULL;
+ ui->subtitle_inactive_png = NULL;
ui->subtitles_available = FALSE;
ui->video_stream_toggle_png = NULL;
ui->audio_stream_toggle_png = NULL;
diff --git a/src/user_interface.h b/src/user_interface.h
index 3c8266b..1bf09c7 100644
--- a/src/user_interface.h
+++ b/src/user_interface.h
@@ -92,7 +92,7 @@ struct _UserInterface
gchar *play_png, *pause_png;
gchar *segment_png;
gchar *volume_low_png, *volume_high_png;
- gchar *subtitle_toggle_png;
+ gchar *subtitle_active_png, *subtitle_inactive_png;
gchar *video_stream_toggle_png, *audio_stream_toggle_png;
gchar *data_dir;
gchar *duration_str;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]