diff --git a/gtk/keypad.ui b/gtk/keypad.ui index 86c957531..5c4feb065 100644 --- a/gtk/keypad.ui +++ b/gtk/keypad.ui @@ -29,12 +29,11 @@ True - D + D True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - False 3 @@ -45,12 +44,11 @@ - # + # True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - False 2 @@ -61,12 +59,11 @@ - 0 + 0 True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - False 1 @@ -77,12 +74,11 @@ - * + * True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - False 3 @@ -91,12 +87,11 @@ - C + C True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - False 3 @@ -107,12 +102,11 @@ - 9 + 9 True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - False 2 @@ -123,12 +117,11 @@ - 8 + 8 True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - False 1 @@ -139,12 +132,11 @@ - 7 + 7 True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - False 2 @@ -153,12 +145,11 @@ - B + B True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - False 3 @@ -169,12 +160,11 @@ - 6 + 6 True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - False 2 @@ -185,12 +175,11 @@ - 5 + 5 True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - False 1 @@ -201,12 +190,11 @@ - 4 + 4 True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - False 1 @@ -215,12 +203,11 @@ - A + A True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - False 3 @@ -229,12 +216,11 @@ - 3 + 3 True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - False 2 @@ -243,12 +229,11 @@ - 2 + 2 True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - False 1 @@ -257,14 +242,13 @@ - 1 + 1 40 40 True True True GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - False diff --git a/gtk/linphone.h b/gtk/linphone.h index 156f9d389..ed8e2bf4b 100644 --- a/gtk/linphone.h +++ b/gtk/linphone.h @@ -254,7 +254,8 @@ LINPHONE_PUBLIC void linphone_gtk_used_identity_changed(GtkWidget *w); LINPHONE_PUBLIC void on_proxy_refresh_button_clicked(GtkWidget *w); LINPHONE_PUBLIC void linphone_gtk_link_to_website(GtkWidget *item); LINPHONE_PUBLIC void linphone_gtk_options_activate(GtkWidget *item); -LINPHONE_PUBLIC void linphone_gtk_create_keypad(GtkWidget *button); +LINPHONE_PUBLIC void linphone_gtk_show_keypad_checked(GtkCheckMenuItem *check_menu_item); +LINPHONE_PUBLIC gboolean linphone_gtk_keypad_destroyed_handler(void); LINPHONE_PUBLIC void linphone_gtk_keyword_changed(GtkEditable *e); LINPHONE_PUBLIC void linphone_gtk_buddy_lookup_contact_activated(GtkWidget *treeview); diff --git a/gtk/main.c b/gtk/main.c index 1930f8b89..e1f2d47a9 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -1811,7 +1811,7 @@ void linphone_gtk_keypad_key_released(GtkWidget *w, GdkEvent *event, gpointer us } } -void linphone_gtk_create_keypad(GtkWidget *button){ +static void linphone_gtk_show_keypad(void){ GtkWidget *mw=linphone_gtk_get_main_window(); GtkWidget *k=(GtkWidget *)g_object_get_data(G_OBJECT(mw),"keypad"); GtkWidget *keypad; @@ -1821,7 +1821,7 @@ void linphone_gtk_create_keypad(GtkWidget *button){ keypad=linphone_gtk_create_window("keypad", NULL); linphone_gtk_connect_digits(keypad); linphone_gtk_init_dtmf_table(keypad); - g_object_set_data(G_OBJECT(mw),"keypad",(gpointer)keypad); + g_object_set_data(G_OBJECT(mw),"keypad", keypad); if(!GPOINTER_TO_INT(g_object_get_data(G_OBJECT(mw),"show_abcd"))){ gtk_widget_hide(linphone_gtk_get_widget(keypad,"dtmf_A")); gtk_widget_hide(linphone_gtk_get_widget(keypad,"dtmf_B")); @@ -1832,6 +1832,30 @@ void linphone_gtk_create_keypad(GtkWidget *button){ gtk_widget_show(keypad); } +static void linphone_gtk_destroy_keypad(void) { + GtkWidget *mw = linphone_gtk_get_main_window(); + GtkWidget *keypad = GTK_WIDGET(g_object_get_data(G_OBJECT(mw), "keypad")); + if(keypad) { + gtk_widget_destroy(keypad); + g_object_set_data(G_OBJECT(mw), "keypad", NULL); + } +} + +void linphone_gtk_show_keypad_checked(GtkCheckMenuItem *check_menu_item) { + if(gtk_check_menu_item_get_active(check_menu_item)) { + linphone_gtk_show_keypad(); + } else { + linphone_gtk_destroy_keypad(); + } +} + +gboolean linphone_gtk_keypad_destroyed_handler(void) { + GtkWidget *mw = linphone_gtk_get_main_window(); + GtkWidget *show_keypad_item = linphone_gtk_get_widget(mw, "show_keypad_menu_item"); + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(show_keypad_item), FALSE); + return FALSE; +} + static void linphone_gtk_init_main_window(){ GtkWidget *main_window; linphone_gtk_configure_main_window(); diff --git a/gtk/main.ui b/gtk/main.ui index ae98e2fc1..27d60138a 100644 --- a/gtk/main.ui +++ b/gtk/main.ui @@ -60,12 +60,6 @@ - - True - False - 32 - linphone-show-dialer - True False @@ -212,6 +206,15 @@ + + + True + False + Show keypad + True + + + True @@ -380,20 +383,6 @@ 0 - - - True - True - True - dialer_image - - - - False - True - 1 - - True @@ -405,8 +394,7 @@ False False - 6 - 2 + 1 @@ -420,7 +408,7 @@ False True - 3 + 2 @@ -435,7 +423,7 @@ False True end - 4 + 3