diff options
author | Danielle Madeley <danielle.madeley@collabora.co.uk> | 2011-05-13 13:19:49 +1000 |
---|---|---|
committer | Danielle Madeley <danielle.madeley@collabora.co.uk> | 2011-05-13 13:19:49 +1000 |
commit | bdd7fc2dfff5a24cab8135be00b2eef894a6de43 (patch) | |
tree | fd4cea067588a977151f5a3333d174491f86777a /src | |
parent | 36d503aaffffde7c795f62b77dbad61f48c55f23 (diff) | |
download | empathy-bdd7fc2dfff5a24cab8135be00b2eef894a6de43.tar.gz |
Factor out dialpad into a utility function
The dialpad is shared between empathy-call and empathy-av.
Really it would be nice to make the dialpad its own little widget that emits
signals with DTMF event ids, but I've got things to get done.
Diffstat (limited to 'src')
-rw-r--r-- | src/empathy-call-window.c | 53 | ||||
-rw-r--r-- | src/empathy-streamed-media-window.c | 53 |
2 files changed, 8 insertions, 98 deletions
diff --git a/src/empathy-call-window.c b/src/empathy-call-window.c index 0e1b55fdb..40258169c 100644 --- a/src/empathy-call-window.c +++ b/src/empathy-call-window.c @@ -56,8 +56,6 @@ #include "empathy-video-src.h" #include "empathy-sidebar.h" -#define BUTTON_ID "empathy-call-dtmf-button-id" - #define CONTENT_HBOX_BORDER_WIDTH 6 #define CONTENT_HBOX_SPACING 3 #define CONTENT_HBOX_CHILDREN_PACKING_PADDING 3 @@ -329,7 +327,7 @@ dtmf_button_pressed_cb (GtkButton *button, EmpathyCallWindow *window) g_object_get (priv->handler, "call-channel", &call, NULL); - button_quark = g_quark_from_static_string (BUTTON_ID); + button_quark = g_quark_from_static_string (EMPATHY_DTMF_BUTTON_ID); event = GPOINTER_TO_UINT (g_object_get_qdata (G_OBJECT (button), button_quark)); @@ -352,51 +350,6 @@ dtmf_button_released_cb (GtkButton *button, EmpathyCallWindow *window) } static GtkWidget * -empathy_call_window_create_dtmf (EmpathyCallWindow *self) -{ - GtkWidget *table; - int i; - GQuark button_quark; - struct { - const gchar *label; - TpDTMFEvent event; - } dtmfbuttons[] = { { "1", TP_DTMF_EVENT_DIGIT_1 }, - { "2", TP_DTMF_EVENT_DIGIT_2 }, - { "3", TP_DTMF_EVENT_DIGIT_3 }, - { "4", TP_DTMF_EVENT_DIGIT_4 }, - { "5", TP_DTMF_EVENT_DIGIT_5 }, - { "6", TP_DTMF_EVENT_DIGIT_6 }, - { "7", TP_DTMF_EVENT_DIGIT_7 }, - { "8", TP_DTMF_EVENT_DIGIT_8 }, - { "9", TP_DTMF_EVENT_DIGIT_9 }, - { "#", TP_DTMF_EVENT_HASH }, - { "0", TP_DTMF_EVENT_DIGIT_0 }, - { "*", TP_DTMF_EVENT_ASTERISK }, - { NULL, } }; - - button_quark = g_quark_from_static_string (BUTTON_ID); - - table = gtk_table_new (4, 3, TRUE); - - for (i = 0; dtmfbuttons[i].label != NULL; i++) - { - GtkWidget *button = gtk_button_new_with_label (dtmfbuttons[i].label); - gtk_table_attach (GTK_TABLE (table), button, i % 3, i % 3 + 1, - i/3, i/3 + 1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 1, 1); - - g_object_set_qdata (G_OBJECT (button), button_quark, - GUINT_TO_POINTER (dtmfbuttons[i].event)); - - g_signal_connect (G_OBJECT (button), "pressed", - G_CALLBACK (dtmf_button_pressed_cb), self); - g_signal_connect (G_OBJECT (button), "released", - G_CALLBACK (dtmf_button_released_cb), self); - } - - return table; -} - -static GtkWidget * empathy_call_window_create_video_input_add_slider (EmpathyCallWindow *self, gchar *label_text, GtkWidget *bin) { @@ -1138,7 +1091,9 @@ empathy_call_window_init (EmpathyCallWindow *self) empathy_sidebar_add_page (EMPATHY_SIDEBAR (priv->sidebar), _("Video input"), page); - priv->dtmf_panel = empathy_call_window_create_dtmf (self); + priv->dtmf_panel = empathy_create_dtmf_dialpad (G_OBJECT (self), + G_CALLBACK (dtmf_button_pressed_cb), + G_CALLBACK (dtmf_button_released_cb)); empathy_sidebar_add_page (EMPATHY_SIDEBAR (priv->sidebar), _("Dialpad"), priv->dtmf_panel); diff --git a/src/empathy-streamed-media-window.c b/src/empathy-streamed-media-window.c index a38beb6a8..6eebd3f52 100644 --- a/src/empathy-streamed-media-window.c +++ b/src/empathy-streamed-media-window.c @@ -54,8 +54,6 @@ #include "empathy-audio-sink.h" #include "empathy-video-src.h" -#define BUTTON_ID "empathy-call-dtmf-button-id" - #define CONTENT_HBOX_BORDER_WIDTH 6 #define CONTENT_HBOX_SPACING 3 #define CONTENT_HBOX_CHILDREN_PACKING_PADDING 3 @@ -345,7 +343,7 @@ dtmf_button_pressed_cb (GtkButton *button, EmpathyStreamedMediaWindow *window) g_object_get (priv->handler, "tp-call", &call, NULL); - button_quark = g_quark_from_static_string (BUTTON_ID); + button_quark = g_quark_from_static_string (EMPATHY_DTMF_BUTTON_ID); event = GPOINTER_TO_UINT (g_object_get_qdata (G_OBJECT (button), button_quark)); @@ -368,51 +366,6 @@ dtmf_button_released_cb (GtkButton *button, EmpathyStreamedMediaWindow *window) } static GtkWidget * -empathy_streamed_media_window_create_dtmf (EmpathyStreamedMediaWindow *self) -{ - GtkWidget *table; - int i; - GQuark button_quark; - struct { - const gchar *label; - TpDTMFEvent event; - } dtmfbuttons[] = { { "1", TP_DTMF_EVENT_DIGIT_1 }, - { "2", TP_DTMF_EVENT_DIGIT_2 }, - { "3", TP_DTMF_EVENT_DIGIT_3 }, - { "4", TP_DTMF_EVENT_DIGIT_4 }, - { "5", TP_DTMF_EVENT_DIGIT_5 }, - { "6", TP_DTMF_EVENT_DIGIT_6 }, - { "7", TP_DTMF_EVENT_DIGIT_7 }, - { "8", TP_DTMF_EVENT_DIGIT_8 }, - { "9", TP_DTMF_EVENT_DIGIT_9 }, - { "#", TP_DTMF_EVENT_HASH }, - { "0", TP_DTMF_EVENT_DIGIT_0 }, - { "*", TP_DTMF_EVENT_ASTERISK }, - { NULL, } }; - - button_quark = g_quark_from_static_string (BUTTON_ID); - - table = gtk_table_new (4, 3, TRUE); - - for (i = 0; dtmfbuttons[i].label != NULL; i++) - { - GtkWidget *button = gtk_button_new_with_label (dtmfbuttons[i].label); - gtk_table_attach (GTK_TABLE (table), button, i % 3, i % 3 + 1, - i/3, i/3 + 1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 1, 1); - - g_object_set_qdata (G_OBJECT (button), button_quark, - GUINT_TO_POINTER (dtmfbuttons[i].event)); - - g_signal_connect (G_OBJECT (button), "pressed", - G_CALLBACK (dtmf_button_pressed_cb), self); - g_signal_connect (G_OBJECT (button), "released", - G_CALLBACK (dtmf_button_released_cb), self); - } - - return table; -} - -static GtkWidget * empathy_streamed_media_window_create_video_input_add_slider (EmpathyStreamedMediaWindow *self, gchar *label_text, GtkWidget *bin) { @@ -1177,7 +1130,9 @@ empathy_streamed_media_window_init (EmpathyStreamedMediaWindow *self) empathy_sidebar_add_page (EMPATHY_SIDEBAR (priv->sidebar), _("Video input"), page); - priv->dtmf_panel = empathy_streamed_media_window_create_dtmf (self); + priv->dtmf_panel = empathy_create_dtmf_dialpad (G_OBJECT (self), + G_CALLBACK (dtmf_button_pressed_cb), + G_CALLBACK (dtmf_button_released_cb)); empathy_sidebar_add_page (EMPATHY_SIDEBAR (priv->sidebar), _("Dialpad"), priv->dtmf_panel); |