[snappy] ui: switch between active and inactive subtitles icons



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]