From 56d49fd74ea3541242bab143555a95dd85a8c2c8 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Thu, 29 Oct 2015 15:02:57 +0100 Subject: [PATCH] Add an icon in the status bar to show if autoanswer is enabled. --- gtk/linphone.h | 2 + gtk/main.c | 13 +++- gtk/main.ui | 30 ++++++++- gtk/propertybox.c | 7 +- pixmaps/CMakeLists.txt | 2 + pixmaps/Makefile.am | 6 +- pixmaps/linphone-warning.png | Bin 0 -> 1004 bytes pixmaps/svg/linphone-warning.svg | 106 +++++++++++++++++++++++++++++++ 8 files changed, 157 insertions(+), 9 deletions(-) create mode 100644 pixmaps/linphone-warning.png create mode 100644 pixmaps/svg/linphone-warning.svg diff --git a/gtk/linphone.h b/gtk/linphone.h index aa7b9c23b..0ae175dd9 100644 --- a/gtk/linphone.h +++ b/gtk/linphone.h @@ -347,3 +347,5 @@ LINPHONE_PUBLIC void linphone_gtk_notebook_current_page_changed(GtkNotebook *not LINPHONE_PUBLIC void linphone_gtk_reload_sound_devices(void); LINPHONE_PUBLIC void linphone_gtk_reload_video_devices(void); LINPHONE_PUBLIC bool_t linphone_gtk_is_friend(LinphoneCore *lc, const char *contact); +LINPHONE_PUBLIC gboolean linphone_gtk_auto_answer_enabled(void); +LINPHONE_PUBLIC void linphone_gtk_update_status_bar_icons(void); diff --git a/gtk/main.c b/gtk/main.c index 2d3676102..7bc36b416 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -1365,7 +1365,7 @@ static void linphone_gtk_call_state_changed(LinphoneCore *lc, LinphoneCall *call linphone_gtk_create_in_call_view(call); linphone_gtk_in_call_view_set_incoming(call); linphone_gtk_status_icon_set_blinking(TRUE); - if (linphone_gtk_get_ui_config_int("auto_answer", 0)) { + if (linphone_gtk_auto_answer_enabled()) { int delay = linphone_gtk_get_ui_config_int("auto_answer_delay", 2000); linphone_call_ref(call); g_timeout_add(delay, (GSourceFunc)linphone_gtk_auto_answer, call); @@ -1862,13 +1862,20 @@ gboolean linphone_gtk_keypad_destroyed_handler(void) { return FALSE; } -static void linphone_gtk_init_main_window(){ +void linphone_gtk_update_status_bar_icons(void) { + GtkWidget *mw = linphone_gtk_get_main_window(); + GtkWidget *icon = linphone_gtk_get_widget(mw, "autoanswer_icon"); + gtk_widget_set_visible(icon, linphone_gtk_auto_answer_enabled()); +} + +static void linphone_gtk_init_main_window(void){ GtkWidget *main_window; linphone_gtk_configure_main_window(); linphone_gtk_manage_login(); linphone_gtk_load_identities(); linphone_gtk_set_my_presence(linphone_core_get_presence_info(linphone_gtk_get_core())); linphone_gtk_show_friends(); + linphone_gtk_update_status_bar_icons(); load_uri_history(); linphone_core_reset_missed_calls_count(linphone_gtk_get_core()); main_window=linphone_gtk_get_main_window(); @@ -2259,7 +2266,7 @@ GtkWidget *linphone_gtk_make_tab_header(const gchar *label, const gchar *icon_na gtk_button_set_image(GTK_BUTTON(button),button_image); gtk_button_set_relief(GTK_BUTTON(button),GTK_RELIEF_NONE); #ifdef HAVE_GTK_OSX - gtk_misc_set_alignment(GTK_MISC(button_image), 0.5f, 0.25f); + gtk_misc_set_alignment(GTK_MISC(button_image), 0.5f, 0.f); #endif g_signal_connect_swapped(G_OBJECT(button),"clicked",cb,user_data); gtk_box_pack_end(GTK_BOX(tab_header),button,FALSE,FALSE,4); diff --git a/gtk/main.ui b/gtk/main.ui index da8ad3659..673ae42c5 100644 --- a/gtk/main.ui +++ b/gtk/main.ui @@ -986,15 +986,39 @@ - + True False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + True + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + False + + + True + True + 0 + + + + + False + Autoanswer is enabled + 16 + linphone-warning + + + False + True + 1 + + False True - end 2 diff --git a/gtk/propertybox.c b/gtk/propertybox.c index 59bdb2b06..a8a7f59e5 100644 --- a/gtk/propertybox.c +++ b/gtk/propertybox.c @@ -267,6 +267,7 @@ void linphone_gtk_fill_video_sizes(GtkWidget *combo){ void linphone_gtk_parameters_closed(GtkWidget *button){ GtkWidget *pb=gtk_widget_get_toplevel(button); gtk_widget_destroy(pb); + linphone_gtk_update_status_bar_icons(); } void linphone_gtk_update_my_contact(GtkWidget *w){ @@ -1701,7 +1702,7 @@ void linphone_gtk_show_parameters(void){ linphone_core_get_upload_bandwidth(lc)); /* CALL PARAMS CONFIG */ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb, "auto_answer_checkbox")), linphone_gtk_get_ui_config_int("auto_answer", 0)); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(linphone_gtk_get_widget(pb, "auto_answer_checkbox")), linphone_gtk_auto_answer_enabled()); gtk_spin_button_set_value(GTK_SPIN_BUTTON(linphone_gtk_get_widget(pb, "auto_answer_delay_spinbutton")), linphone_gtk_get_ui_config_int("auto_answer_delay", 2000)); /* UI CONFIG */ @@ -1897,6 +1898,10 @@ void linphone_gtk_enable_auto_answer(GtkToggleButton *checkbox, gpointer user_da linphone_gtk_set_ui_config_int("auto_answer", auto_answer_enabled ? 1 : 0); } +gboolean linphone_gtk_auto_answer_enabled(void) { + return (gboolean)linphone_gtk_get_ui_config_int("auto_answer", 0); +} + void linphone_gtk_auto_answer_delay_changed(GtkSpinButton *spinbutton, gpointer user_data) { int delay = gtk_spin_button_get_value(spinbutton); linphone_gtk_set_ui_config_int("auto_answer_delay", delay); diff --git a/pixmaps/CMakeLists.txt b/pixmaps/CMakeLists.txt index 5ea2e90ba..c055425a8 100644 --- a/pixmaps/CMakeLists.txt +++ b/pixmaps/CMakeLists.txt @@ -52,6 +52,7 @@ install(FILES svg/linphone-security-pending.svg svg/linphone-media-play.svg svg/linphone-media-pause.svg + svg/linphone-warning.svg DESTINATION ${ICONS_INSTALL_DIR}/scalable/status PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ ) @@ -100,6 +101,7 @@ install(FILES linphone-security-pending.png linphone-media-play.png linphone-media-pause.png + linphone-warning.png DESTINATION ${ICONS_INSTALL_DIR}/48x48/status PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ ) diff --git a/pixmaps/Makefile.am b/pixmaps/Makefile.am index 7fefd52b7..96ded8baa 100644 --- a/pixmaps/Makefile.am +++ b/pixmaps/Makefile.am @@ -36,7 +36,8 @@ dist_status48icons_DATA= \ linphone-security-ok.png \ linphone-security-pending.png \ linphone-media-play.png \ - linphone-media-pause.png + linphone-media-pause.png \ + linphone-warning.png statussvgiconsdir=$(iconsdir)/scalable/status dist_statussvgicons_DATA= \ @@ -63,7 +64,8 @@ dist_statussvgicons_DATA= \ svg/linphone-security-ok.svg \ svg/linphone-security-pending.svg \ svg/linphone-media-play.svg \ - svg/linphone-media-pause.svg + svg/linphone-media-pause.svg \ + svg/linphone-warning.svg actions48iconsdir=$(iconsdir)/48x48/actions dist_actions48icons_DATA= \ diff --git a/pixmaps/linphone-warning.png b/pixmaps/linphone-warning.png new file mode 100644 index 0000000000000000000000000000000000000000..044bcd8f0269af1ec615376cd2c76bb8a5780d7b GIT binary patch literal 1004 zcmV**JIRo^x;A0$(_bx%YhM zd*1WSJ?GpRSkAi?#pIb9{_ z&j2sMtYB+UIRksB1P6eD#F+6o)YU;W3eTRw$jI{Uk0Nk9sNB9K$QHa#%<{>T((J4f zT3C?U+mkDCC~WS81g#0M;$mrfS}9div)sTN!P>Cd5o{7nCcqjSQ^QNrojb`@xac?k zngBd>0vi&a3JTnN#$w4=t_e2!N$$&lpc**iV~7}V!w-YC0XeZ<_+QDI1bb|Q{Z!xr zJ`yJ}blIMhtPBVW2zE!U22R-o+E(Bu!M~(*3f7wj856 z8^|(E-V8 zFM{GA;7=PSc3Nqv)Z8q!v`AG|=J8JJ^$VXT_-L6th_)cu>&L+D5aE~FOQks{x!#bo zp^N}I#?GTrXlQ`iTFB0Z!9nQlg{djyp%!&E0uPKL1W&DIEEbbqy;`{njgCt3xNQ|a z%h`uK!ymUUd0(IVE9Jm|pRdv_ukg8o_f|>r@}#*rcLS1CQDJM~n_zn~Z>pWR4Jh+m zuH`BzfwdVn&@#KBan4D1)AkT-lk>}&-7MwjOY`&TD^OYKcU3x)&cG9&gG>GW?(joH ze&Hn;RjQRya43MmrNTmKcz7lJ*qBsa9)tl2E-i6K7U6S%VNyIKR?5wVrY2_}$jXAD zA?WFW$;m*52fhN85%>gvpgo|O`J3%NKt!+wc+0>1$3tof*q@E_iuf>O7+dWM8(>xc ay?z3 + + + + + image/svg+xml + + chat_message_not_delivered + + + + + + chat_message_not_delivered + Created with Sketch. + + + + + + + + + + + + + +