ekiga r6023 - in trunk: . src/gui



Author: dsandras
Date: Mon Mar  3 21:28:37 2008
New Revision: 6023
URL: http://svn.gnome.org/viewvc/ekiga?rev=6023&view=rev

Log:
Added back possibility to add a contact (through the menu).
Fixed display of the address book. 
Various cleanups.


Modified:
   trunk/ChangeLog
   trunk/src/gui/main.cpp

Modified: trunk/src/gui/main.cpp
==============================================================================
--- trunk/src/gui/main.cpp	(original)
+++ trunk/src/gui/main.cpp	Mon Mar  3 21:28:37 2008
@@ -307,6 +307,22 @@
 static gboolean motion_detection_cb (gpointer data);
 
 
+/** Pull a trigger from a Ekiga::Service
+ *
+ * @param data is a pointer to the Ekiga::Trigger
+ */
+static void pull_trigger_cb (GtkWidget * /*widget*/,
+                             gpointer data);
+
+
+/** Show the widget passed as parameter
+ *
+ * @param data is a pointer to the widget to show
+ */
+static void  show_widget_cb (GtkWidget * /*widget*/,
+                             gpointer data);
+
+
 /* DESCRIPTION  :  /
  * BEHAVIOR     :  Set the current active call on hold.
  * PRE          :  /
@@ -1202,6 +1218,7 @@
   GmMainWindow *mw = NULL;
 
   Ekiga::ServiceCore *services = NULL;
+  Ekiga::Trigger *local_cluster_trigger = NULL;
   GtkFrontend *gtk_frontend = NULL;
   
   GtkWidget *addressbook_window = NULL;
@@ -1215,6 +1232,7 @@
   mw = gm_mw_get_mw (main_window);
 
   services = GnomeMeeting::Process ()->GetServiceCore ();
+  local_cluster_trigger = dynamic_cast<Ekiga::Trigger *>(services->get ("local-cluster"));
   gtk_frontend = dynamic_cast<GtkFrontend *>(services->get ("gtk-frontend"));
   addressbook_window = GTK_WIDGET (gtk_frontend->get_addressbook_window ()); 
   accounts_window = GnomeMeeting::Process ()->GetAccountsWindow ();
@@ -1222,7 +1240,6 @@
 
   mw->main_menu = gtk_menu_bar_new ();
 
-
   /* Default values */
   status = gm_conf_get_int (PERSONAL_DATA_KEY "status"); 
   cps = (PanelSection)
@@ -1231,41 +1248,21 @@
   
   static MenuEntry gnomemeeting_menu [] =
     {
-      GTK_MENU_NEW (_("C_all")),
+      GTK_MENU_NEW (_("C_hat")),
 
       GTK_MENU_ENTRY("connect", _("Ca_ll"), _("Place a new call"), 
 		     GM_STOCK_PHONE_PICK_UP_16, 'o',
 		     GTK_SIGNAL_FUNC (place_call_cb), main_window, TRUE),
       GTK_MENU_ENTRY("disconnect", _("_Hang up"),
 		     _("Terminate the current call"), 
-		     GM_STOCK_PHONE_HANG_UP_16, 'd',
+		     GM_STOCK_PHONE_HANG_UP_16, 0,
 		     GTK_SIGNAL_FUNC (hangup_call_cb), main_window, FALSE),
 
       GTK_MENU_SEPARATOR,
 
-      GTK_MENU_RADIO_ENTRY("online", _("_Online"), NULL,
-			   NULL, 0,
-			   GTK_SIGNAL_FUNC (radio_menu_changed_cb),
-			   (gpointer) PERSONAL_DATA_KEY "status",
-			   (status == CONTACT_ONLINE), TRUE),
-
-      GTK_MENU_RADIO_ENTRY("away", _("_Away"), NULL,
-			   NULL, 0,
-			   GTK_SIGNAL_FUNC (radio_menu_changed_cb),
-			   (gpointer) PERSONAL_DATA_KEY "status",
-			   (status == CONTACT_AWAY), TRUE),
-
-      GTK_MENU_RADIO_ENTRY("dnd", _("Do Not _Disturb"), NULL,
-			   NULL, 0,
-			   GTK_SIGNAL_FUNC (radio_menu_changed_cb),
-			   (gpointer) PERSONAL_DATA_KEY "status",
-			   (status == CONTACT_DND), TRUE),
-
-      GTK_MENU_RADIO_ENTRY("invisible", _("_Invisible"), NULL,
-			   NULL, 0,
-			   GTK_SIGNAL_FUNC (radio_menu_changed_cb),
-			   (gpointer) PERSONAL_DATA_KEY "status",
-			   (status == CONTACT_INVISIBLE), TRUE),
+      GTK_MENU_ENTRY("add_contact", _("_Add Contact"), _("Add a contact to the roster"),
+		     GTK_STOCK_ADD, 'a', 
+		     GTK_SIGNAL_FUNC (pull_trigger_cb), local_cluster_trigger, true),
 
       GTK_MENU_SEPARATOR,
 
@@ -1294,13 +1291,6 @@
 
       GTK_MENU_SEPARATOR,
 
-      GTK_MENU_ENTRY("save_picture", NULL,
-		     _("Save a snapshot of the current video"),
-		     GTK_STOCK_SAVE, 'S',
-		     GTK_SIGNAL_FUNC (save_callback), NULL, FALSE),
-
-      GTK_MENU_SEPARATOR,
-      
       GTK_MENU_ENTRY("close", NULL, _("Close the Ekiga window"),
 		     GTK_STOCK_CLOSE, 'W', 
 		     GTK_SIGNAL_FUNC (window_closed_from_menu_cb),
@@ -1336,8 +1326,6 @@
 
       GTK_MENU_NEW(_("_View")),
 
-      GTK_SUBMENU_NEW("panel", _("Panel")),
-
       GTK_MENU_RADIO_ENTRY("contacts", _("Con_tacts"), _("View the contacts list"),
 			   NULL, 0,
 			   GTK_SIGNAL_FUNC (radio_menu_changed_cb),
@@ -1405,7 +1393,7 @@
       GTK_MENU_THEME_ENTRY("address_book", _("_Find Contacts"),
 			   _("Find contacts"),
 			   GTK_STOCK_FIND, 0,
-			   GTK_SIGNAL_FUNC (gtk_widget_show_all),
+			   GTK_SIGNAL_FUNC (show_widget_cb),
 			   (gpointer) addressbook_window, TRUE),
       
       GTK_MENU_SEPARATOR,
@@ -1418,10 +1406,11 @@
       
       GTK_MENU_NEW(_("_Help")),
 
-       GTK_MENU_ENTRY("help", NULL, 
+      GTK_MENU_ENTRY("help", NULL, 
                      _("Get help by reading the Ekiga manual"),
                      GTK_STOCK_HELP, GDK_F1, 
                      GTK_SIGNAL_FUNC (help_cb), NULL, TRUE),
+
       GTK_MENU_ENTRY("about", NULL,
 		     _("View information about Ekiga"),
 		     GTK_STOCK_ABOUT, 0, 
@@ -2087,6 +2076,28 @@
 
 
 static void 
+pull_trigger_cb (GtkWidget * /*widget*/,
+                 gpointer data)
+{
+  Ekiga::Trigger *trigger = (Ekiga::Trigger *) data;
+
+  g_return_if_fail (trigger != NULL);
+
+  trigger->pull ();
+}
+
+
+static void 
+show_widget_cb (GtkWidget * /*widget*/,
+                gpointer data)
+{
+  g_return_if_fail (data != NULL);
+
+  gtk_widget_show_all (GTK_WIDGET (data));
+}
+
+
+static void 
 hold_current_call_cb (G_GNUC_UNUSED GtkWidget *widget,
 		      gpointer data)
 {
@@ -2896,16 +2907,12 @@
                                         "zoom_out", FALSE);
         gtk_menu_section_set_sensitive (mw->main_menu,
                                         "normal_size", FALSE);
-
-	gtk_menu_set_sensitive (mw->main_menu, "save_picture", FALSE);
       }
       else {
 
 	/* Or activate it as at least something is transmitted or 
 	 * received */
 	gm_mw_zooms_menu_update_sensitivity (main_window, zoom);
-	  
-	gtk_menu_set_sensitive (mw->main_menu, "save_picture", TRUE);
       }
   }
   



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]