From d79cb727bbc8b79679cf34621ae3a5a93fd73f71 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Mon, 4 Oct 2010 12:20:14 +0200 Subject: [PATCH] again gui improvements --- gtk/linphone.h | 1 + gtk/main.c | 23 +++++++++++++++++++++++ gtk/main.ui | 9 ++++++--- gtk/parameters.ui | 4 ++-- 4 files changed, 32 insertions(+), 5 deletions(-) diff --git a/gtk/linphone.h b/gtk/linphone.h index ed1ec9e31..637448818 100644 --- a/gtk/linphone.h +++ b/gtk/linphone.h @@ -99,4 +99,5 @@ void linphone_gtk_enable_mute_button(GtkButton *button, gboolean sensitive); void linphone_gtk_enable_hold_button(LinphoneCall *call, gboolean sensitive, gboolean holdon); void linphone_gtk_show_login_frame(LinphoneProxyConfig *cfg); +void linphone_gtk_exit_login_frame(void); void linphone_gtk_set_ui_config(const char *key, const char *value); diff --git a/gtk/main.c b/gtk/main.c index bf458c0e6..ed2b77ba1 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -41,6 +41,7 @@ const char *this_program_ident_string="linphone_ident_string=" LINPHONE_VERSION; static LinphoneCore *the_core=NULL; static GtkWidget *the_ui=NULL; +static void linphone_gtk_registration_state_changed(LinphoneCore *lc, LinphoneProxyConfig *cfg, LinphoneRegistrationState rs, const char *msg); static void linphone_gtk_show(LinphoneCore *lc); static void linphone_gtk_notify_recv(LinphoneCore *lc, LinphoneFriend * fid); static void linphone_gtk_new_unknown_subscriber(LinphoneCore *lc, LinphoneFriend *lf, const char *url); @@ -193,6 +194,7 @@ static void linphone_gtk_init_liblinphone(const char *config_file, LinphoneCoreVTable vtable={0}; vtable.call_state_changed=linphone_gtk_call_state_changed; + vtable.registration_state_changed=linphone_gtk_registration_state_changed; vtable.show=linphone_gtk_show; vtable.notify_presence_recv=linphone_gtk_notify_recv; vtable.new_unknown_subscriber=linphone_gtk_new_unknown_subscriber; @@ -991,6 +993,23 @@ static void linphone_gtk_call_state_changed(LinphoneCore *lc, LinphoneCall *call linphone_gtk_update_call_buttons (call); } +static void linphone_gtk_registration_state_changed(LinphoneCore *lc, LinphoneProxyConfig *cfg, + LinphoneRegistrationState rs, const char *msg){ + switch (rs){ + case LinphoneRegistrationOk: + if (cfg){ + SipSetup *ss=linphone_proxy_config_get_sip_setup(cfg); + if (ss && (sip_setup_get_capabilities(ss) & SIP_SETUP_CAP_LOGIN)){ + linphone_gtk_exit_login_frame(); + } + } + break; + default: + break; + } +} + + static void icon_popup_menu(GtkStatusIcon *status_icon, guint button, guint activate_time, gpointer user_data){ GtkWidget *menu=(GtkWidget*)g_object_get_data(G_OBJECT(status_icon),"menu"); gtk_menu_popup(GTK_MENU(menu),NULL,NULL,gtk_status_icon_position_menu,status_icon,button,activate_time); @@ -1222,6 +1241,10 @@ static void linphone_gtk_configure_main_window(){ gtk_widget_show(linphone_gtk_get_widget(w,"versioncheck_item")); } if (!show_abcd){ + gtk_widget_hide(linphone_gtk_get_widget(w,"dtmf_A")); + gtk_widget_hide(linphone_gtk_get_widget(w,"dtmf_B")); + gtk_widget_hide(linphone_gtk_get_widget(w,"dtmf_C")); + gtk_widget_hide(linphone_gtk_get_widget(w,"dtmf_D")); gtk_table_resize(GTK_TABLE(linphone_gtk_get_widget(w,"dtmf_table")),4,3); } } diff --git a/gtk/main.ui b/gtk/main.ui index 35a01aff5..a396eb737 100644 --- a/gtk/main.ui +++ b/gtk/main.ui @@ -528,11 +528,10 @@ True - gtk-add - True + Add contact True True - True + image6 @@ -1492,4 +1491,8 @@ + + True + gtk-add + diff --git a/gtk/parameters.ui b/gtk/parameters.ui index f4ab298ad..c594612cd 100644 --- a/gtk/parameters.ui +++ b/gtk/parameters.ui @@ -767,7 +767,7 @@ - + True 0 @@ -842,7 +842,7 @@ - + True <b>Video</b> True