From 761ef25a05361cdc8ec484e12898b3aedda94fe5 Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Fri, 6 Jul 2012 14:29:25 +0200 Subject: add empathy_dialpad_widget_press_key() https://bugzilla.gnome.org/show_bug.cgi?id=679396 --- libempathy-gtk/empathy-dialpad-widget.c | 18 ++++++++++++++++++ libempathy-gtk/empathy-dialpad-widget.h | 3 +++ 2 files changed, 21 insertions(+) (limited to 'libempathy-gtk') diff --git a/libempathy-gtk/empathy-dialpad-widget.c b/libempathy-gtk/empathy-dialpad-widget.c index 4ffd5ac7b..6361c25f6 100644 --- a/libempathy-gtk/empathy-dialpad-widget.c +++ b/libempathy-gtk/empathy-dialpad-widget.c @@ -215,3 +215,21 @@ empathy_dialpad_widget_new (void) { return g_object_new (EMPATHY_TYPE_DIALPAD_WIDGET, NULL); } + +void +empathy_dialpad_widget_press_key (EmpathyDialpadWidget *self, + gchar key) +{ + GtkWidget *button; + + button = g_hash_table_lookup (self->priv->buttons, GUINT_TO_POINTER (key)); + + if (button == NULL) + return; + + /* gtk_widget_activate() just does the button-pressed animation, it doesn't + * fire the callbacks so we do it manually. */ + dtmf_dialpad_button_pressed_cb (button, NULL, self); + gtk_widget_activate (button); + dtmf_dialpad_button_released_cb (button, NULL, self); +} diff --git a/libempathy-gtk/empathy-dialpad-widget.h b/libempathy-gtk/empathy-dialpad-widget.h index f4cb83052..ccf5ac40a 100644 --- a/libempathy-gtk/empathy-dialpad-widget.h +++ b/libempathy-gtk/empathy-dialpad-widget.h @@ -52,6 +52,9 @@ struct _EmpathyDialpadWidgetClass GType empathy_dialpad_widget_get_type (void); GtkWidget *empathy_dialpad_widget_new (void); +void empathy_dialpad_widget_press_key (EmpathyDialpadWidget *self, + gchar key); + G_END_DECLS #endif -- cgit v1.2.3