From c7946c6225741cbda9ecd919e8f5d555e376bd47 Mon Sep 17 00:00:00 2001 From: Margaux Clerc Date: Wed, 30 Jan 2013 17:14:14 +0100 Subject: [PATCH] Keypad in another frame --- gtk/chat.c | 5 +- gtk/incall_view.c | 15 --- gtk/keypad.ui | 277 ++++++++++++++++++++++++++++++++++++++++++++++ gtk/linphone.h | 1 - gtk/main.c | 13 ++- gtk/main.ui | 58 +++++----- 6 files changed, 318 insertions(+), 51 deletions(-) create mode 100644 gtk/keypad.ui diff --git a/gtk/chat.c b/gtk/chat.c index 3eea9255..5eaf79e9 100644 --- a/gtk/chat.c +++ b/gtk/chat.c @@ -137,7 +137,10 @@ void linphone_gtk_push_text(GtkWidget *w, const LinphoneAddress *from, gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,"Message in progress.. ",-1, "italic","right","small","font_grey",NULL); } else { - gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,ctime(&t),-1, + struct tm *tm=localtime(&t); + char buf[80]; + strftime(buf,80,"%H:%M",tm); + gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,buf,-1, "italic","right","small","font_grey",NULL); } gtk_text_buffer_get_end_iter(buffer,&iter); diff --git a/gtk/incall_view.c b/gtk/incall_view.c index 2b115a56..65446d69 100644 --- a/gtk/incall_view.c +++ b/gtk/incall_view.c @@ -361,13 +361,6 @@ void linphone_gtk_create_in_call_view(LinphoneCall *call){ g_signal_connect(G_OBJECT(transfer),"clicked",(GCallback)transfer_button_clicked,call); gtk_widget_hide(transfer); - GtkWidget *keypad = linphone_gtk_get_widget(call_view,"keypad"); - //gtk_button_set_image(GTK_BUTTON(keypad),gtk_image_new_from_stock - // (GTK_STOCK_GO_FORWARD,GTK_ICON_SIZE_BUTTON)); - - g_signal_connect_swapped(G_OBJECT(keypad),"clicked",(GCallback)linphone_gtk_create_keypad,call); - gtk_widget_hide(keypad); - GtkWidget *conf = linphone_gtk_get_widget(call_view,"conference_button"); gtk_button_set_image(GTK_BUTTON(conf),gtk_image_new_from_stock (GTK_STOCK_ADD,GTK_ICON_SIZE_BUTTON)); g_signal_connect(G_OBJECT(conf),"clicked",(GCallback)conference_button_clicked,call); @@ -679,9 +672,6 @@ void linphone_gtk_in_call_view_set_in_call(LinphoneCall *call){ gtk_widget_hide(linphone_gtk_get_widget(callview,"answer_decline_panel")); gtk_label_set_markup(GTK_LABEL(status),in_conf ? _("In conference") : _("In call")); - - /** keypad button **/ - //gtk_widget_set_visible(linphone_gtk_get_widget(callview,"keypad"),!in_conf); gtk_widget_set_sensitive(linphone_gtk_get_widget(callview,"conference_button"),!in_conf); gtk_widget_set_sensitive(linphone_gtk_get_widget(callview,"transfer_button"),!in_conf); @@ -755,15 +745,10 @@ void linphone_gtk_in_call_view_terminate(LinphoneCall *call, const char *error_m gtk_widget_hide(linphone_gtk_get_widget(callview,"video_button")); gtk_widget_hide(linphone_gtk_get_widget(callview,"transfer_button")); gtk_widget_hide(linphone_gtk_get_widget(callview,"conference_button")); - gtk_widget_hide(linphone_gtk_get_widget(callview,"keypad")); linphone_gtk_enable_mute_button( GTK_BUTTON(linphone_gtk_get_widget(callview,"incall_mute")),FALSE); linphone_gtk_enable_hold_button(call,FALSE,TRUE); - GtkWidget *keypad=(GtkWidget *)g_object_get_data(G_OBJECT(callview),"keypad"); - if(keypad!=NULL) - gtk_widget_destroy(keypad); - if (taskid!=0) g_source_remove(taskid); g_timeout_add_seconds(2,(GSourceFunc)in_call_view_terminated,call); if (in_conf) diff --git a/gtk/keypad.ui b/gtk/keypad.ui new file mode 100644 index 00000000..6b537676 --- /dev/null +++ b/gtk/keypad.ui @@ -0,0 +1,277 @@ + + + + + + False + + + True + False + 0.5 + none + + + True + False + 0 + + + True + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 4 + 4 + 4 + True + + + D + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + False + + + 3 + 4 + 3 + 4 + + + + + # + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + False + + + 2 + 3 + 3 + 4 + + + + + 0 + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + False + + + 1 + 2 + 3 + 4 + + + + + * + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + False + + + 3 + 4 + + + + + C + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + False + + + 3 + 4 + 2 + 3 + + + + + 9 + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + False + + + 2 + 3 + 2 + 3 + + + + + 8 + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + False + + + 1 + 2 + 2 + 3 + + + + + 7 + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + False + + + 2 + 3 + + + + + B + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + False + + + 3 + 4 + 1 + 2 + + + + + 6 + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + False + + + 2 + 3 + 1 + 2 + + + + + 5 + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + False + + + 1 + 2 + 1 + 2 + + + + + 4 + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + False + + + 1 + 2 + + + + + A + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + False + + + 3 + 4 + + + + + 3 + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + False + + + 2 + 3 + + + + + 2 + True + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + False + + + 1 + 2 + + + + + 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 55b30c82..abb39512 100644 --- a/gtk/linphone.h +++ b/gtk/linphone.h @@ -89,7 +89,6 @@ int linphone_gtk_get_ui_config_int(const char *key, int def); void linphone_gtk_set_ui_config_int(const char *key , int val); void linphone_gtk_visibility_set(const char *hiddens, const char *window_name, GtkWidget *w, gboolean show); -void linphone_gtk_create_keypad(LinphoneCall *call); void linphone_gtk_open_browser(const char *url); void linphone_gtk_check_for_new_version(void); const char *linphone_gtk_get_lang(const char *config_file); diff --git a/gtk/main.c b/gtk/main.c index a2461269..165a7068 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -1651,18 +1651,21 @@ void linphone_gtk_init_dtmf_table(GtkWidget *mw){ } -void linphone_gtk_create_keypad(LinphoneCall *call){ - GtkWidget *w=(GtkWidget*)linphone_call_get_user_pointer(call); +void linphone_gtk_create_keypad(GtkWidget *button){ + GtkWidget *mw=linphone_gtk_get_main_window(); + GtkWidget *k=(GtkWidget *)g_object_get_data(G_OBJECT(mw),"keypad"); + if(k!=NULL){ + gtk_widget_destroy(k); + } GtkWidget *keypad=linphone_gtk_create_window("keypad"); linphone_gtk_connect_digits(keypad); linphone_gtk_init_dtmf_table(keypad); - g_object_set_data(G_OBJECT(w),"keypad",(gpointer)keypad); + g_object_set_data(G_OBJECT(mw),"keypad",(gpointer)keypad); gtk_widget_show(keypad); } static void linphone_gtk_init_main_window(){ GtkWidget *main_window; - linphone_gtk_configure_main_window(); linphone_gtk_manage_login(); load_uri_history(); @@ -1672,8 +1675,8 @@ static void linphone_gtk_init_main_window(){ main_window=linphone_gtk_get_main_window(); linphone_gtk_call_log_update(main_window); - //linphone_gtk_init_dtmf_table(main_window); linphone_gtk_update_call_buttons (NULL); + g_object_set_data(G_OBJECT(main_window),"keypad",NULL); g_object_set_data(G_OBJECT(main_window),"is_conf",GINT_TO_POINTER(FALSE)); /*prevent the main window from being destroyed by a user click on WM controls, instead we hide it*/ g_signal_connect (G_OBJECT (main_window), "delete-event", diff --git a/gtk/main.ui b/gtk/main.ui index 76e96e80..50883c3f 100644 --- a/gtk/main.ui +++ b/gtk/main.ui @@ -354,32 +354,6 @@ 1 - - - True - False - - - :: - True - True - True - False - bottom - - - False - False - 0 - - - - - False - False - 2 - - False @@ -442,7 +416,7 @@ False False - 3 + 2 @@ -483,7 +457,7 @@ False False - 4 + 3 @@ -579,7 +553,7 @@ False False 7 - 5 + 4 @@ -683,6 +657,16 @@ False gtk-add + + True + False + gtk-missing-image + + + True + False + gtk-select-color + True False @@ -1107,6 +1091,22 @@ 2 + + + True + True + True + False + image18 + + + + False + False + end + 3 + + False -- 2.39.2