]> git.0d.be Git - empathy.git/blobdiff - src/empathy-camera-menu.c
EmpathySmileyManager: use the proper Unicode characters
[empathy.git] / src / empathy-camera-menu.c
index a0e0ca6fab72480cb917de7eede77aa58158ac54..cf18340c4b7ead3d30cc31e2651e133fb9c30213 100644 (file)
  * Thanks guys!
  */
 
-#include <config.h>
-
-#include <gtk/gtk.h>
+#include "config.h"
+#include "empathy-camera-menu.h"
 
-#include <libempathy/empathy-camera-monitor.h>
-#include <libempathy/empathy-gsettings.h>
+#include <tp-account-widgets/tpaw-camera-monitor.h>
 
-#include "empathy-camera-menu.h"
+#include "empathy-gsettings.h"
 
 #define DEBUG_FLAG EMPATHY_DEBUG_VOIP
-#include <libempathy/empathy-debug.h>
+#include "empathy-debug.h"
 
 struct _EmpathyCameraMenuPrivate
 {
@@ -54,7 +52,7 @@ struct _EmpathyCameraMenuPrivate
   /* Queue of GtkRadioActions. */
   GQueue *cameras;
 
-  EmpathyCameraMonitor *camera_monitor;
+  TpawCameraMonitor *camera_monitor;
 
   GSettings *settings;
 };
@@ -157,12 +155,20 @@ static void
 empathy_camera_menu_update (EmpathyCameraMenu *self)
 {
   GList *l;
+  GtkAction *menu;
   GtkUIManager *ui_manager;
   EmpathyGstVideoSrc *video;
+  gboolean show_menu;
   gchar *current_camera = NULL;
+  guint n_cameras;
 
   ui_manager = empathy_call_window_get_ui_manager (self->priv->window);
 
+  menu = gtk_ui_manager_get_action (ui_manager, "/menubar1/edit/menucamera");
+  n_cameras = g_queue_get_length (self->priv->cameras);
+  show_menu = (n_cameras > 1);
+  gtk_action_set_visible (menu, show_menu);
+
   video = empathy_call_window_get_video_src (self->priv->window);
   if (video != NULL)
     current_camera = empathy_video_src_dup_device (video);
@@ -195,7 +201,7 @@ empathy_camera_menu_update (EmpathyCameraMenu *self)
 
 static void
 empathy_camera_menu_add_camera (EmpathyCameraMenu *self,
-    EmpathyCamera *camera)
+    TpawCamera *camera)
 {
   GtkRadioAction *action;
   GSList *group;
@@ -214,8 +220,8 @@ empathy_camera_menu_add_camera (EmpathyCameraMenu *self,
 }
 
 static void
-empathy_camera_menu_camera_added_cb (EmpathyCameraMonitor *monitor,
-    EmpathyCamera *camera,
+empathy_camera_menu_camera_added_cb (TpawCameraMonitor *monitor,
+    TpawCamera *camera,
     EmpathyCameraMenu *self)
 {
   empathy_camera_menu_add_camera (self, camera);
@@ -223,8 +229,8 @@ empathy_camera_menu_camera_added_cb (EmpathyCameraMonitor *monitor,
 }
 
 static void
-empathy_camera_menu_camera_removed_cb (EmpathyCameraMonitor *monitor,
-    EmpathyCamera *camera,
+empathy_camera_menu_camera_removed_cb (TpawCameraMonitor *monitor,
+    TpawCamera *camera,
     EmpathyCameraMenu *self)
 {
   GList *l;
@@ -298,11 +304,11 @@ empathy_camera_menu_get_cameras (EmpathyCameraMenu *self)
 {
   const GList *cameras;
 
-  cameras = empathy_camera_monitor_get_cameras (self->priv->camera_monitor);
+  cameras = tpaw_camera_monitor_get_cameras (self->priv->camera_monitor);
 
   for (; cameras != NULL; cameras = g_list_next (cameras))
     {
-      EmpathyCamera *camera = cameras->data;
+      TpawCamera *camera = cameras->data;
 
       empathy_camera_menu_add_camera (self, camera);
     }
@@ -341,7 +347,7 @@ empathy_camera_menu_constructed (GObject *obj)
       self->priv->anchor_action);
   g_object_unref (self->priv->anchor_action);
 
-  self->priv->camera_monitor = empathy_camera_monitor_new ();
+  self->priv->camera_monitor = tpaw_camera_monitor_new ();
 
   tp_g_signal_connect_object (self->priv->camera_monitor, "added",
       G_CALLBACK (empathy_camera_menu_camera_added_cb), self, 0);