[ekiga] Call Window: Reimplemented call control functions.
- From: Damien Sandras <dsandras src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [ekiga] Call Window: Reimplemented call control functions.
- Date: Sun, 29 Jan 2012 11:28:00 +0000 (UTC)
commit 8d84d157f06816f0a917dc25def35ea4d76c858a
Author: Damien Sandras <dsandras beip be>
Date: Sun Jan 29 12:26:52 2012 +0100
Call Window: Reimplemented call control functions.
This one more step toward a functional call window
as all call control functions are now moved in that
window.
src/gui/call_window.cpp | 386 ++++++++++++++++++++++++++++++++---------------
src/gui/main_window.cpp | 326 +---------------------------------------
2 files changed, 264 insertions(+), 448 deletions(-)
---
diff --git a/src/gui/call_window.cpp b/src/gui/call_window.cpp
index 885b87a..67d7d65 100644
--- a/src/gui/call_window.cpp
+++ b/src/gui/call_window.cpp
@@ -120,8 +120,6 @@ struct _EkigaCallWindowPrivate
boost::shared_ptr<Ekiga::Call> current_call;
unsigned calling_state;
- GtkWidget *main_menu;
-
GtkWidget *main_video_image;
GtkWidget *info_text;
@@ -130,6 +128,7 @@ struct _EkigaCallWindowPrivate
GtkTextTag *call_duration_tag;
GtkTextTag *bandwidth_tag;
+ GtkWidget *main_menu;
GtkWidget *main_toolbar;
GtkWidget *call_panel_toolbar;
GtkWidget *preview_button;
@@ -269,7 +268,7 @@ static void toggle_video_stream_pause_cb (GtkWidget * /*widget*/,
gpointer data);
static void transfer_current_call_cb (GtkWidget *widget,
- gpointer data);
+ gpointer data);
static void audio_volume_changed_cb (GtkAdjustment * /*adjustment*/,
gpointer data);
@@ -367,6 +366,28 @@ static void on_cleared_call_cb (boost::shared_ptr<Ekiga::CallManager> /*manager
std::string reason,
gpointer self);
+static void on_held_call_cb (boost::shared_ptr<Ekiga::CallManager> /*manager*/,
+ boost::shared_ptr<Ekiga::Call> /*call*/,
+ gpointer self);
+
+static void on_retrieved_call_cb (boost::shared_ptr<Ekiga::CallManager> /*manager*/,
+ boost::shared_ptr<Ekiga::Call> /*call*/,
+ gpointer self);
+
+
+static void on_stream_paused_cb (boost::shared_ptr<Ekiga::CallManager> /*manager*/,
+ boost::shared_ptr<Ekiga::Call> /*call*/,
+ std::string /*name*/,
+ Ekiga::Call::StreamType type,
+ gpointer self);
+
+
+static void on_stream_resumed_cb (boost::shared_ptr<Ekiga::CallManager> /*manager*/,
+ boost::shared_ptr<Ekiga::Call> /*call*/,
+ std::string /*name*/,
+ Ekiga::Call::StreamType type,
+ gpointer self);
+
static gboolean on_stats_refresh_cb (gpointer self);
/**/
@@ -410,6 +431,13 @@ static void ekiga_call_window_set_bandwidth (EkigaCallWindow *cw,
int tfps,
int rfps);
+static void ekiga_call_window_set_call_hold (EkigaCallWindow *cw,
+ bool is_on_hold);
+
+static void ekiga_call_window_set_channel_pause (EkigaCallWindow *cw,
+ gboolean pause,
+ gboolean is_video);
+
static void ekiga_call_window_set_call_url (EkigaCallWindow *cw,
const char *url);
@@ -418,6 +446,8 @@ G_GNUC_UNUSED static void ekiga_call_window_append_call_url (EkigaCallWindow *cw
static const std::string ekiga_call_window_get_call_url (EkigaCallWindow *cw);
+static void ekiga_call_window_init_menu (EkigaCallWindow *cw);
+
static void ekiga_call_window_init_uri_toolbar (EkigaCallWindow *cw);
static GtkWidget * gm_cw_audio_settings_window_new (EkigaCallWindow *cw);
@@ -662,7 +692,8 @@ place_call_cb (GtkWidget * /*widget*/,
} else {
- //FIXME ekiga_main_window_flash_message (cw, _("Could not connect to remote host"));
+ //FIXME
+ gm_statusbar_flash_message (GM_STATUSBAR (cw->priv->statusbar), _("Could not connect to remote host"));
ekiga_call_window_update_calling_state (cw, Standby);
}
}
@@ -1235,6 +1266,52 @@ on_cleared_call_cb (G_GNUC_UNUSED boost::shared_ptr<Ekiga::CallManager> manager,
ekiga_call_window_clear_signal_levels (cw);
}
+static void
+on_held_call_cb (boost::shared_ptr<Ekiga::CallManager> /*manager*/,
+ boost::shared_ptr<Ekiga::Call> /*call*/,
+ gpointer self)
+{
+ EkigaCallWindow *cw = EKIGA_CALL_WINDOW (self);
+
+ ekiga_call_window_set_call_hold (cw, true);
+ gm_statusbar_flash_message (GM_STATUSBAR (cw->priv->statusbar), _("Call on hold"));
+}
+
+static void
+on_retrieved_call_cb (boost::shared_ptr<Ekiga::CallManager> /*manager*/,
+ boost::shared_ptr<Ekiga::Call> /*call*/,
+ gpointer self)
+{
+ EkigaCallWindow *cw = EKIGA_CALL_WINDOW (self);
+
+ ekiga_call_window_set_call_hold (cw, false);
+ gm_statusbar_flash_message (GM_STATUSBAR (cw->priv->statusbar), _("Call retrieved"));
+}
+
+static void
+on_stream_paused_cb (boost::shared_ptr<Ekiga::CallManager> /*manager*/,
+ boost::shared_ptr<Ekiga::Call> /*call*/,
+ std::string /*name*/,
+ Ekiga::Call::StreamType type,
+ gpointer self)
+{
+ EkigaCallWindow *cw = EKIGA_CALL_WINDOW (self);
+
+ ekiga_call_window_set_channel_pause (cw, true, (type == Ekiga::Call::Video));
+}
+
+static void
+on_stream_resumed_cb (boost::shared_ptr<Ekiga::CallManager> /*manager*/,
+ boost::shared_ptr<Ekiga::Call> /*call*/,
+ std::string /*name*/,
+ Ekiga::Call::StreamType type,
+ gpointer self)
+{
+ EkigaCallWindow *cw = EKIGA_CALL_WINDOW (self);
+
+ ekiga_call_window_set_channel_pause (cw, false, (type == Ekiga::Call::Video));
+}
+
static gboolean
on_stats_refresh_cb (gpointer self)
{
@@ -1281,14 +1358,13 @@ ekiga_call_window_update_calling_state (EkigaCallWindow *cw,
case Standby:
/* Update the hold state */
-// ekiga_call_window_set_call_hold (cw, FALSE);
+ ekiga_call_window_set_call_hold (cw, FALSE);
/* Update the sensitivity, all channels are closed */
ekiga_call_window_channels_menu_update_sensitivity (cw, TRUE, FALSE, FALSE);
ekiga_call_window_channels_menu_update_sensitivity (cw, FALSE, FALSE, FALSE);
/* Update the menus and toolbar items */
- gtk_menu_set_sensitive (cw->priv->main_menu, "connect", TRUE);
gtk_menu_set_sensitive (cw->priv->main_menu, "disconnect", FALSE);
gtk_menu_section_set_sensitive (cw->priv->main_menu, "hold_call", FALSE);
gtk_widget_set_sensitive (GTK_WIDGET (cw->priv->hold_button), FALSE);
@@ -1307,7 +1383,6 @@ ekiga_call_window_update_calling_state (EkigaCallWindow *cw,
case Calling:
/* Update the menus and toolbar items */
- gtk_menu_set_sensitive (cw->priv->main_menu, "connect", FALSE);
gtk_menu_set_sensitive (cw->priv->main_menu, "disconnect", TRUE);
gtk_widget_set_sensitive (GTK_WIDGET (cw->priv->preview_button), FALSE);
@@ -1319,7 +1394,6 @@ ekiga_call_window_update_calling_state (EkigaCallWindow *cw,
case Connected:
/* Update the menus and toolbar items */
- gtk_menu_set_sensitive (cw->priv->main_menu, "connect", FALSE);
gtk_menu_set_sensitive (cw->priv->main_menu, "disconnect", TRUE);
gtk_menu_section_set_sensitive (cw->priv->main_menu, "hold_call", TRUE);
gtk_widget_set_sensitive (GTK_WIDGET (cw->priv->hold_button), TRUE);
@@ -1585,6 +1659,80 @@ ekiga_call_window_set_bandwidth (EkigaCallWindow *cw,
}
static void
+ekiga_call_window_set_call_hold (EkigaCallWindow *cw,
+ bool is_on_hold)
+{
+ GtkWidget *child = NULL;
+
+ g_return_if_fail (EKIGA_IS_CALL_WINDOW (cw));
+
+ child = GTK_BIN (gtk_menu_get_widget (cw->priv->main_menu, "hold_call"))->child;
+
+ if (is_on_hold) {
+
+ if (GTK_IS_LABEL (child))
+ gtk_label_set_text_with_mnemonic (GTK_LABEL (child),
+ _("_Retrieve Call"));
+
+ /* Set the audio and video menu to unsensitive */
+ gtk_menu_set_sensitive (cw->priv->main_menu, "suspend_audio", FALSE);
+ gtk_menu_set_sensitive (cw->priv->main_menu, "suspend_video", FALSE);
+
+ ekiga_call_window_set_channel_pause (cw, TRUE, FALSE);
+ ekiga_call_window_set_channel_pause (cw, TRUE, TRUE);
+ }
+ else {
+
+ if (GTK_IS_LABEL (child))
+ gtk_label_set_text_with_mnemonic (GTK_LABEL (child),
+ _("H_old Call"));
+
+ gtk_menu_set_sensitive (cw->priv->main_menu, "suspend_audio", TRUE);
+ gtk_menu_set_sensitive (cw->priv->main_menu, "suspend_video", TRUE);
+
+ ekiga_call_window_set_channel_pause (cw, FALSE, FALSE);
+ ekiga_call_window_set_channel_pause (cw, FALSE, TRUE);
+ }
+
+ g_signal_handlers_block_by_func (cw->priv->hold_button,
+ (gpointer) hold_current_call_cb,
+ cw);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cw->priv->hold_button),
+ is_on_hold);
+ g_signal_handlers_unblock_by_func (cw->priv->hold_button,
+ (gpointer) hold_current_call_cb,
+ cw);
+}
+
+static void
+ekiga_call_window_set_channel_pause (EkigaCallWindow *cw,
+ gboolean pause,
+ gboolean is_video)
+{
+ GtkWidget *widget = NULL;
+ GtkWidget *child = NULL;
+ gchar *msg = NULL;
+
+ g_return_if_fail (EKIGA_IS_CALL_WINDOW (cw));
+
+ if (!pause && !is_video)
+ msg = _("Suspend _Audio");
+ else if (!pause && is_video)
+ msg = _("Suspend _Video");
+ else if (pause && !is_video)
+ msg = _("Resume _Audio");
+ else if (pause && is_video)
+ msg = _("Resume _Video");
+
+ widget = gtk_menu_get_widget (cw->priv->main_menu,
+ is_video ? "suspend_video" : "suspend_audio");
+ child = GTK_BIN (widget)->child;
+
+ if (GTK_IS_LABEL (child))
+ gtk_label_set_text_with_mnemonic (GTK_LABEL (child), msg);
+}
+
+static void
ekiga_call_window_set_call_url (EkigaCallWindow *cw,
const char *url)
{
@@ -1874,6 +2022,105 @@ gm_cw_audio_settings_window_new (EkigaCallWindow *cw)
}
static void
+ekiga_call_window_init_menu (EkigaCallWindow *cw)
+{
+ g_return_if_fail (cw != NULL);
+
+ cw->priv->main_menu = gtk_menu_bar_new ();
+
+ static MenuEntry gnomemeeting_menu [] =
+ {
+ GTK_MENU_NEW (_("_Call")),
+
+ GTK_MENU_ENTRY("disconnect", _("_Hangup"), _("Hangup the current call"),
+ GM_STOCK_PHONE_HANG_UP_16, 'd',
+ G_CALLBACK (show_window_cb), NULL, FALSE), // FIXME
+
+ GTK_MENU_SEPARATOR,
+
+ GTK_MENU_ENTRY("hold_call", _("H_old Call"), _("Hold the current call"),
+ NULL, GDK_h,
+ G_CALLBACK (hold_current_call_cb), cw,
+ FALSE),
+ GTK_MENU_ENTRY("transfer_call", _("_Transfer Call"),
+ _("Transfer the current call"),
+ NULL, GDK_t,
+ G_CALLBACK (transfer_current_call_cb), cw,
+ FALSE),
+
+ GTK_MENU_SEPARATOR,
+
+ GTK_MENU_ENTRY("suspend_audio", _("Suspend _Audio"),
+ _("Suspend or resume the audio transmission"),
+ NULL, GDK_m,
+ G_CALLBACK (toggle_audio_stream_pause_cb),
+ cw, FALSE),
+ GTK_MENU_ENTRY("suspend_video", _("Suspend _Video"),
+ _("Suspend or resume the video transmission"),
+ NULL, GDK_p,
+ G_CALLBACK (toggle_video_stream_pause_cb),
+ cw, FALSE),
+
+ GTK_MENU_SEPARATOR,
+
+ GTK_MENU_NEW(_("_View")),
+
+ GTK_MENU_RADIO_ENTRY("local_video", _("_Local Video"),
+ _("Local video image"),
+ NULL, '1',
+ G_CALLBACK (display_changed_cb),
+ (gpointer) VIDEO_DISPLAY_KEY "video_view",
+ TRUE, FALSE),
+ GTK_MENU_RADIO_ENTRY("remote_video", _("_Remote Video"),
+ _("Remote video image"),
+ NULL, '2',
+ G_CALLBACK (display_changed_cb),
+ (gpointer) VIDEO_DISPLAY_KEY "video_view",
+ FALSE, FALSE),
+ GTK_MENU_RADIO_ENTRY("both_incrusted", _("_Picture-in-Picture"),
+ _("Both video images"),
+ NULL, '3',
+ G_CALLBACK (display_changed_cb),
+ (gpointer) VIDEO_DISPLAY_KEY "video_view",
+ FALSE, FALSE),
+ GTK_MENU_RADIO_ENTRY("both_incrusted_window", _("Picture-in-Picture in Separate _Window"),
+ _("Both video images"),
+ NULL, '4',
+ G_CALLBACK (display_changed_cb),
+ (gpointer) VIDEO_DISPLAY_KEY "video_view",
+ FALSE, FALSE),
+ GTK_MENU_SEPARATOR,
+
+ GTK_MENU_ENTRY("zoom_in", NULL, _("Zoom in"),
+ GTK_STOCK_ZOOM_IN, '+',
+ G_CALLBACK (zoom_in_changed_cb),
+ (gpointer) VIDEO_DISPLAY_KEY "zoom", FALSE),
+ GTK_MENU_ENTRY("zoom_out", NULL, _("Zoom out"),
+ GTK_STOCK_ZOOM_OUT, '-',
+ G_CALLBACK (zoom_out_changed_cb),
+ (gpointer) VIDEO_DISPLAY_KEY "zoom", FALSE),
+ GTK_MENU_ENTRY("normal_size", NULL, _("Normal size"),
+ GTK_STOCK_ZOOM_100, '0',
+ G_CALLBACK (zoom_normal_changed_cb),
+ (gpointer) VIDEO_DISPLAY_KEY "zoom", FALSE),
+ GTK_MENU_ENTRY("fullscreen", _("_Fullscreen"), _("Switch to fullscreen"),
+ GTK_STOCK_ZOOM_IN, GDK_F11,
+ G_CALLBACK (fullscreen_changed_cb),
+ (gpointer) cw, FALSE),
+
+ GTK_MENU_END
+ };
+
+
+ gtk_build_menu (cw->priv->main_menu,
+ gnomemeeting_menu,
+ cw->priv->accel,
+ cw->priv->statusbar);
+
+ gtk_widget_show_all (GTK_WIDGET (cw->priv->main_menu));
+}
+
+static void
ekiga_call_window_init_uri_toolbar (EkigaCallWindow *cw)
{
GtkToolItem *item = NULL;
@@ -2047,7 +2294,8 @@ ekiga_call_window_call_button_set_connected (EkigaCallWindow *cw,
cw->priv->ekiga_call_window_call_button_connected = state;
image = gtk_button_get_image (GTK_BUTTON (cw->priv->call_button));
- gtk_image_set_from_stock (GTK_IMAGE (image), state ? GM_STOCK_PHONE_HANG_UP_24 : GM_STOCK_PHONE_PICK_UP_24, GTK_ICON_SIZE_LARGE_TOOLBAR);
+ gtk_image_set_from_stock (GTK_IMAGE (image), state ? GM_STOCK_PHONE_HANG_UP_24 : GM_STOCK_PHONE_PICK_UP_24,
+ GTK_ICON_SIZE_LARGE_TOOLBAR);
}
static gboolean
@@ -2179,13 +2427,13 @@ ekiga_call_window_connect_engine_signals (EkigaCallWindow *cw)
conn = call_core->cleared_call.connect (boost::bind (&on_cleared_call_cb, _1, _2, _3, (gpointer) cw));
cw->priv->connections.push_back (conn);
-/*
+
conn = call_core->held_call.connect (boost::bind (&on_held_call_cb, _1, _2, (gpointer) cw));
cw->priv->connections.push_back (conn);
-
+
conn = call_core->retrieved_call.connect (boost::bind (&on_retrieved_call_cb, _1, _2, (gpointer) cw));
cw->priv->connections.push_back (conn);
-
+/*
conn = call_core->missed_call.connect (boost::bind (&on_missed_call_cb, _1, _2, (gpointer) cw));
cw->priv->connections.push_back (conn);
@@ -2194,124 +2442,12 @@ ekiga_call_window_connect_engine_signals (EkigaCallWindow *cw)
conn = call_core->stream_closed.connect (boost::bind (&on_stream_closed_cb, _1, _2, _3, _4, _5, (gpointer) cw));
cw->priv->connections.push_back (conn);
-
+*/
conn = call_core->stream_paused.connect (boost::bind (&on_stream_paused_cb, _1, _2, _3, _4, (gpointer) cw));
cw->priv->connections.push_back (conn);
conn = call_core->stream_resumed.connect (boost::bind (&on_stream_resumed_cb, _1, _2, _3, _4, (gpointer) cw));
cw->priv->connections.push_back (conn);
-
- conn = call_core->errors.connect (boost::bind (&on_handle_errors, _1, (gpointer) cw));
- cw->priv->connections.push_back (conn);
-*/
-}
-
-static void
-ekiga_call_window_init_menu (EkigaCallWindow *cw)
-{
- g_return_if_fail (cw != NULL);
-
- cw->priv->main_menu = gtk_menu_bar_new ();
-
- static MenuEntry gnomemeeting_menu [] =
- {
- GTK_MENU_NEW (_("_Chat")),
-
- GTK_MENU_ENTRY("connect", _("Ca_ll"), _("Place a new call"),
- GM_STOCK_PHONE_PICK_UP_16, 'o',
- G_CALLBACK (show_window_cb), NULL, TRUE),
-
- GTK_MENU_ENTRY("disconnect", _("_Hangup"), _("Hangup the current call"),
- GM_STOCK_PHONE_HANG_UP_16, 'd',
- G_CALLBACK (show_window_cb), NULL, FALSE),
-
- GTK_MENU_SEPARATOR,
-
- GTK_MENU_ENTRY("hold_call", _("H_old Call"), _("Hold the current call"),
- NULL, GDK_h,
- G_CALLBACK (hold_current_call_cb), cw,
- FALSE),
- GTK_MENU_ENTRY("transfer_call", _("_Transfer Call"),
- _("Transfer the current call"),
- NULL, GDK_t,
- G_CALLBACK (transfer_current_call_cb), cw,
- FALSE),
-
- GTK_MENU_SEPARATOR,
-
- GTK_MENU_ENTRY("suspend_audio", _("Suspend _Audio"),
- _("Suspend or resume the audio transmission"),
- NULL, GDK_m,
- G_CALLBACK (toggle_audio_stream_pause_cb),
- cw, FALSE),
- GTK_MENU_ENTRY("suspend_video", _("Suspend _Video"),
- _("Suspend or resume the video transmission"),
- NULL, GDK_p,
- G_CALLBACK (toggle_video_stream_pause_cb),
- cw, FALSE),
-
- GTK_MENU_SEPARATOR,
-
- GTK_MENU_ENTRY("close", NULL, _("Close the call window"),
- GTK_STOCK_CLOSE, 'W',
- G_CALLBACK (window_closed_from_menu_cb),
- (gpointer) cw, TRUE),
-
- GTK_MENU_NEW(_("_View")),
-
- GTK_MENU_RADIO_ENTRY("local_video", _("_Local Video"),
- _("Local video image"),
- NULL, '1',
- G_CALLBACK (display_changed_cb),
- (gpointer) VIDEO_DISPLAY_KEY "video_view",
- TRUE, FALSE),
- GTK_MENU_RADIO_ENTRY("remote_video", _("_Remote Video"),
- _("Remote video image"),
- NULL, '2',
- G_CALLBACK (display_changed_cb),
- (gpointer) VIDEO_DISPLAY_KEY "video_view",
- FALSE, FALSE),
- GTK_MENU_RADIO_ENTRY("both_incrusted", _("_Picture-in-Picture"),
- _("Both video images"),
- NULL, '3',
- G_CALLBACK (display_changed_cb),
- (gpointer) VIDEO_DISPLAY_KEY "video_view",
- FALSE, FALSE),
- GTK_MENU_RADIO_ENTRY("both_incrusted_window", _("Picture-in-Picture in Separate _Window"),
- _("Both video images"),
- NULL, '4',
- G_CALLBACK (display_changed_cb),
- (gpointer) VIDEO_DISPLAY_KEY "video_view",
- FALSE, FALSE),
- GTK_MENU_SEPARATOR,
-
- GTK_MENU_ENTRY("zoom_in", NULL, _("Zoom in"),
- GTK_STOCK_ZOOM_IN, '+',
- G_CALLBACK (zoom_in_changed_cb),
- (gpointer) VIDEO_DISPLAY_KEY "zoom", FALSE),
- GTK_MENU_ENTRY("zoom_out", NULL, _("Zoom out"),
- GTK_STOCK_ZOOM_OUT, '-',
- G_CALLBACK (zoom_out_changed_cb),
- (gpointer) VIDEO_DISPLAY_KEY "zoom", FALSE),
- GTK_MENU_ENTRY("normal_size", NULL, _("Normal size"),
- GTK_STOCK_ZOOM_100, '0',
- G_CALLBACK (zoom_normal_changed_cb),
- (gpointer) VIDEO_DISPLAY_KEY "zoom", FALSE),
- GTK_MENU_ENTRY("fullscreen", _("_Fullscreen"), _("Switch to fullscreen"),
- GTK_STOCK_ZOOM_IN, GDK_F11,
- G_CALLBACK (fullscreen_changed_cb),
- (gpointer) cw, FALSE),
-
- GTK_MENU_END
- };
-
-
- gtk_build_menu (cw->priv->main_menu,
- gnomemeeting_menu,
- cw->priv->accel,
- cw->priv->statusbar);
-
- gtk_widget_show_all (GTK_WIDGET (cw->priv->main_menu));
}
static void
diff --git a/src/gui/main_window.cpp b/src/gui/main_window.cpp
index 560a584..984bbe8 100644
--- a/src/gui/main_window.cpp
+++ b/src/gui/main_window.cpp
@@ -139,9 +139,6 @@ struct _EkigaMainWindowPrivate
GtkWidget *statusbar;
GtkWidget *statusbar_ebox;
- /* Misc Dialogs */
- GtkWidget *transfer_call_popup;
-
/* Calls */
boost::shared_ptr<Ekiga::Call> current_call;
unsigned calling_state;
@@ -174,6 +171,7 @@ enum {
/* Non-GUI functions */
+//FIXME Does not seem to be used anymore
struct name_from_uri_helper
{
name_from_uri_helper (boost::shared_ptr<Ekiga::PresenceCore> presence_core_,
@@ -271,39 +269,6 @@ static void show_widget_cb (GtkWidget * /*widget*/,
gpointer data);
-/* DESCRIPTION : /
- * BEHAVIOR : Set the current active call on hold.
- * PRE : /
- */
-static void hold_current_call_cb (GtkWidget *,
- gpointer);
-
-
-/* DESCRIPTION : /
- * BEHAVIOR : Set the current active call audio channel on pause or not
- * PRE : a pointer to the main window
- */
-static void toggle_audio_stream_pause_cb (GtkWidget *,
- gpointer);
-
-
-/* DESCRIPTION : /
- * BEHAVIOR : Set the current active call video channel on pause or not
- * PRE : a pointer to the main window
- */
-static void toggle_video_stream_pause_cb (GtkWidget *,
- gpointer);
-
-
-/* DESCRIPTION : /
- * BEHAVIOR : Creates a dialog to transfer the current call and transfer
- * it if required.
- * PRE : The parent window.
- */
-static void transfer_current_call_cb (GtkWidget *,
- gpointer);
-
-
/* DESCRIPTION : This callback is called when the user changes the
* page in the main notebook.
* BEHAVIOR : Update the config key accordingly.
@@ -369,27 +334,6 @@ static void ekiga_main_window_add_device_dialog_show (EkigaMainWindow *main_wind
/* DESCRIPTION : /
- * BEHAVIOR : Update the main window hold call menu and toolbar items
- * following the call is on hold (TRUE) or not (FALSE).
- * PRE : The main window GMObject.
- */
-static void ekiga_main_window_set_call_hold (EkigaMainWindow *main_window,
- bool is_on_hold);
-
-
-/* DESCRIPTION : /
- * BEHAVIOR : Update the main window pause channel menu and toolbar items
- * following the channel is paused (TRUE) or not (FALSE). The
- * last argument is true if we are modifying a video channel
- * item.
- * PRE : The main window GMObject.
- */
-static void ekiga_main_window_set_channel_pause (EkigaMainWindow *main_window,
- gboolean pause,
- gboolean is_video);
-
-
-/* DESCRIPTION : /
* BEHAVIOR : Update the main window sensitivity following the opened
* and closed audio and video channels. It also updates
* the state of the video preview button.
@@ -406,17 +350,6 @@ static void ekiga_main_window_update_sensitivity (EkigaMainWindow *main_window,
bool is_transmitting);
-/* DESCRIPTION : /
- * BEHAVIOR : Runs a dialog to transfer a call.
- * Returns TRUE if the user chose to transfer.
- * PRE : The main window GMObject, the parent window, the URL
- * to put in the dialog as default.
- */
-static gboolean ekiga_main_window_transfer_dialog_run (EkigaMainWindow *main_window,
- GtkWidget *parent_window,
- const char *u);
-
-
/* DESCRIPTION : /
* BEHAVIOR : Flashes a message on the statusbar during a few seconds.
* Removes the previous message.
@@ -731,28 +664,6 @@ static void on_incoming_call_gone_cb (gpointer self)
}
-static void on_held_call_cb (boost::shared_ptr<Ekiga::CallManager> /*manager*/,
- boost::shared_ptr<Ekiga::Call> /*call*/,
- gpointer self)
-{
- EkigaMainWindow *mw = EKIGA_MAIN_WINDOW (self);
-
- ekiga_main_window_set_call_hold (mw, true);
- ekiga_main_window_flash_message (mw, "%s", _("Call on hold"));
-}
-
-
-static void on_retrieved_call_cb (boost::shared_ptr<Ekiga::CallManager> /*manager*/,
- boost::shared_ptr<Ekiga::Call> /*call*/,
- gpointer self)
-{
- EkigaMainWindow *mw = EKIGA_MAIN_WINDOW (self);
-
- ekiga_main_window_set_call_hold (mw, false);
- ekiga_main_window_flash_message (mw, "%s", _("Call retrieved"));
-}
-
-
static void on_missed_call_cb (boost::shared_ptr<Ekiga::CallManager> /*manager*/,
boost::shared_ptr<Ekiga::Call> call,
gpointer self)
@@ -858,27 +769,6 @@ static void on_stream_closed_cb (boost::shared_ptr<Ekiga::CallManager> /*manage
is_video ? mw->priv->video_transmission_active : mw->priv->audio_transmission_active);
}
-
-static void on_stream_paused_cb (boost::shared_ptr<Ekiga::CallManager> /*manager*/,
- boost::shared_ptr<Ekiga::Call> /*call*/,
- std::string /*name*/,
- Ekiga::Call::StreamType type,
- gpointer self)
-{
- ekiga_main_window_set_channel_pause (EKIGA_MAIN_WINDOW (self), true, (type == Ekiga::Call::Video));
-}
-
-
-static void on_stream_resumed_cb (boost::shared_ptr<Ekiga::CallManager> /*manager*/,
- boost::shared_ptr<Ekiga::Call> /*call*/,
- std::string /*name*/,
- Ekiga::Call::StreamType type,
- gpointer self)
-{
- ekiga_main_window_set_channel_pause (EKIGA_MAIN_WINDOW (self), false, (type == Ekiga::Call::Video));
-}
-
-
static bool on_handle_errors (std::string error,
gpointer data)
{
@@ -1204,7 +1094,7 @@ panel_section_changed_nt (G_GNUC_UNUSED gpointer id,
}
-static void
+static void
pull_trigger_cb (GtkWidget * /*widget*/,
gpointer data)
{
@@ -1216,7 +1106,7 @@ pull_trigger_cb (GtkWidget * /*widget*/,
}
-static void
+static void
show_widget_cb (GtkWidget * /*widget*/,
gpointer data)
{
@@ -1226,52 +1116,6 @@ show_widget_cb (GtkWidget * /*widget*/,
}
-static void
-hold_current_call_cb (G_GNUC_UNUSED GtkWidget *widget,
- gpointer data)
-{
- EkigaMainWindow *mw = EKIGA_MAIN_WINDOW (data);
-
- if (mw->priv->current_call)
- mw->priv->current_call->toggle_hold ();
-}
-
-
-static void
-toggle_audio_stream_pause_cb (GtkWidget * /*widget*/,
- gpointer data)
-{
- EkigaMainWindow *mw = EKIGA_MAIN_WINDOW (data);
-
- if (mw->priv->current_call)
- mw->priv->current_call->toggle_stream_pause (Ekiga::Call::Audio);
-}
-
-
-static void
-toggle_video_stream_pause_cb (GtkWidget * /*widget*/,
- gpointer data)
-{
- EkigaMainWindow *mw = EKIGA_MAIN_WINDOW (data);
-
- if (mw->priv->current_call)
- mw->priv->current_call->toggle_stream_pause (Ekiga::Call::Video);
-}
-
-
-static void
-transfer_current_call_cb (G_GNUC_UNUSED GtkWidget *widget,
- gpointer data)
-{
- GtkWidget *mw = NULL;
-
- g_return_if_fail (data != NULL);
-
- mw = GnomeMeeting::Process ()->GetMainWindow ();
-
- ekiga_main_window_transfer_dialog_run (EKIGA_MAIN_WINDOW (mw), GTK_WIDGET (data), NULL);
-}
-
static void
panel_section_changed_cb (G_GNUC_UNUSED GtkNotebook *notebook,
G_GNUC_UNUSED gpointer page,
@@ -1351,82 +1195,6 @@ statusbar_clicked_cb (G_GNUC_UNUSED GtkWidget *widget,
return FALSE;
}
-static void
-ekiga_main_window_set_call_hold (EkigaMainWindow *mw,
- bool is_on_hold)
-{
- GtkWidget *child = NULL;
-
- g_return_if_fail (EKIGA_IS_MAIN_WINDOW (mw));
-
- child = GTK_BIN (gtk_menu_get_widget (mw->priv->main_menu, "hold_call"))->child;
-
- if (is_on_hold) {
-
- if (GTK_IS_LABEL (child))
- gtk_label_set_text_with_mnemonic (GTK_LABEL (child),
- _("_Retrieve Call"));
-
- /* Set the audio and video menu to unsensitive */
- gtk_menu_set_sensitive (mw->priv->main_menu, "suspend_audio", FALSE);
- gtk_menu_set_sensitive (mw->priv->main_menu, "suspend_video", FALSE);
-
- ekiga_main_window_set_channel_pause (mw, TRUE, FALSE);
- ekiga_main_window_set_channel_pause (mw, TRUE, TRUE);
- }
- else {
-
- if (GTK_IS_LABEL (child))
- gtk_label_set_text_with_mnemonic (GTK_LABEL (child),
- _("H_old Call"));
-
- gtk_menu_set_sensitive (mw->priv->main_menu, "suspend_audio", TRUE);
- gtk_menu_set_sensitive (mw->priv->main_menu, "suspend_video", TRUE);
-
- ekiga_main_window_set_channel_pause (mw, FALSE, FALSE);
- ekiga_main_window_set_channel_pause (mw, FALSE, TRUE);
- }
-
-/* g_signal_handlers_block_by_func (mw->priv->hold_button,
- (gpointer) hold_current_call_cb,
- mw);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (mw->priv->hold_button),
- is_on_hold);
- g_signal_handlers_unblock_by_func (mw->priv->hold_button,
- (gpointer) hold_current_call_cb,
- mw);
- */ //FIXME
-}
-
-
-static void
-ekiga_main_window_set_channel_pause (EkigaMainWindow *mw,
- gboolean pause,
- gboolean is_video)
-{
- GtkWidget *widget = NULL;
- GtkWidget *child = NULL;
- gchar *msg = NULL;
-
- g_return_if_fail (EKIGA_IS_MAIN_WINDOW (mw));
-
- if (!pause && !is_video)
- msg = _("Suspend _Audio");
- else if (!pause && is_video)
- msg = _("Suspend _Video");
- else if (pause && !is_video)
- msg = _("Resume _Audio");
- else if (pause && is_video)
- msg = _("Resume _Video");
-
- widget = gtk_menu_get_widget (mw->priv->main_menu,
- is_video ? "suspend_video" : "suspend_audio");
- child = GTK_BIN (widget)->child;
-
- if (GTK_IS_LABEL (child))
- gtk_label_set_text_with_mnemonic (GTK_LABEL (child), msg);
-}
-
static void
ekiga_main_window_update_sensitivity (EkigaMainWindow *mw,
@@ -1650,56 +1418,6 @@ ekiga_main_window_incoming_call_notify (EkigaMainWindow *mw,
}
#endif
-static gboolean
-ekiga_main_window_transfer_dialog_run (EkigaMainWindow *mw,
- GtkWidget *parent_window,
- const char *u)
-{
- gint answer = 0;
-
- const char *forward_url = NULL;
-
- g_return_val_if_fail (EKIGA_IS_MAIN_WINDOW (mw), FALSE);
- g_return_val_if_fail (GTK_IS_WINDOW (parent_window), FALSE);
-
- mw->priv->transfer_call_popup =
- gm_entry_dialog_new (_("Transfer call to:"),
- _("Transfer"));
-
- gtk_window_set_transient_for (GTK_WINDOW (mw->priv->transfer_call_popup),
- GTK_WINDOW (parent_window));
-
- gtk_dialog_set_default_response (GTK_DIALOG (mw->priv->transfer_call_popup),
- GTK_RESPONSE_ACCEPT);
-
- if (u && !strcmp (u, ""))
- gm_entry_dialog_set_text (GM_ENTRY_DIALOG (mw->priv->transfer_call_popup), u);
- else
- gm_entry_dialog_set_text (GM_ENTRY_DIALOG (mw->priv->transfer_call_popup), "sip:");
-
- gm_window_show (mw->priv->transfer_call_popup);
-
- answer = gtk_dialog_run (GTK_DIALOG (mw->priv->transfer_call_popup));
- switch (answer) {
-
- case GTK_RESPONSE_ACCEPT:
-
- forward_url = gm_entry_dialog_get_text (GM_ENTRY_DIALOG (mw->priv->transfer_call_popup));
- if (strcmp (forward_url, "") && mw->priv->current_call)
- mw->priv->current_call->transfer (forward_url);
- break;
-
- default:
- break;
- }
-
- gtk_widget_destroy (mw->priv->transfer_call_popup);
- mw->priv->transfer_call_popup = NULL;
-
- return (answer == GTK_RESPONSE_ACCEPT);
-}
-
-
static void
ekiga_main_window_add_device_dialog_show (EkigaMainWindow *mw,
const Ekiga::Device & device,
@@ -1851,31 +1569,6 @@ ekiga_main_window_init_menu (EkigaMainWindow *mw)
GTK_MENU_SEPARATOR,
- GTK_MENU_ENTRY("hold_call", _("H_old Call"), _("Hold the current call"),
- NULL, GDK_h,
- G_CALLBACK (hold_current_call_cb), mw,
- FALSE),
- GTK_MENU_ENTRY("transfer_call", _("_Transfer Call"),
- _("Transfer the current call"),
- NULL, GDK_t,
- G_CALLBACK (transfer_current_call_cb), mw,
- FALSE),
-
- GTK_MENU_SEPARATOR,
-
- GTK_MENU_ENTRY("suspend_audio", _("Suspend _Audio"),
- _("Suspend or resume the audio transmission"),
- NULL, GDK_m,
- G_CALLBACK (toggle_audio_stream_pause_cb),
- mw, FALSE),
- GTK_MENU_ENTRY("suspend_video", _("Suspend _Video"),
- _("Suspend or resume the video transmission"),
- NULL, GDK_p,
- G_CALLBACK (toggle_video_stream_pause_cb),
- mw, FALSE),
-
- GTK_MENU_SEPARATOR,
-
#ifdef CORE_ACTIONS_MENU
// FIXME: that isn't a very good way to do things
GTK_MENU_ENTRY ("core-actions", _("Other"),
@@ -2122,7 +1815,6 @@ ekiga_main_window_init (EkigaMainWindow *mw)
gtk_window_add_accel_group (GTK_WINDOW (mw), mw->priv->accel);
g_object_unref (mw->priv->accel);
- mw->priv->transfer_call_popup = NULL;
mw->priv->current_call = boost::shared_ptr<Ekiga::Call>();
mw->priv->calling_state = Standby;
mw->priv->audio_transmission_active = false;
@@ -2325,12 +2017,6 @@ ekiga_main_window_connect_engine_signals (EkigaMainWindow *mw)
conn = call_core->cleared_call.connect (boost::bind (&on_cleared_call_cb, _1, _2, _3, (gpointer) mw));
mw->priv->connections.push_back (conn);
- conn = call_core->held_call.connect (boost::bind (&on_held_call_cb, _1, _2, (gpointer) mw));
- mw->priv->connections.push_back (conn);
-
- conn = call_core->retrieved_call.connect (boost::bind (&on_retrieved_call_cb, _1, _2, (gpointer) mw));
- mw->priv->connections.push_back (conn);
-
conn = call_core->missed_call.connect (boost::bind (&on_missed_call_cb, _1, _2, (gpointer) mw));
mw->priv->connections.push_back (conn);
@@ -2340,12 +2026,6 @@ ekiga_main_window_connect_engine_signals (EkigaMainWindow *mw)
conn = call_core->stream_closed.connect (boost::bind (&on_stream_closed_cb, _1, _2, _3, _4, _5, (gpointer) mw));
mw->priv->connections.push_back (conn);
- conn = call_core->stream_paused.connect (boost::bind (&on_stream_paused_cb, _1, _2, _3, _4, (gpointer) mw));
- mw->priv->connections.push_back (conn);
-
- conn = call_core->stream_resumed.connect (boost::bind (&on_stream_resumed_cb, _1, _2, _3, _4, (gpointer) mw));
- mw->priv->connections.push_back (conn);
-
conn = call_core->errors.connect (boost::bind (&on_handle_errors, _1, (gpointer) mw));
mw->priv->connections.push_back (conn);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]