diff --git a/gtk/linphone.h b/gtk/linphone.h index eaab709b8..769672960 100644 --- a/gtk/linphone.h +++ b/gtk/linphone.h @@ -61,6 +61,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #endif #define LINPHONE_ICON "linphone.png" +#define LINPHONE_ICON_NAME "linphone" enum { COMPLETION_HISTORY, diff --git a/gtk/main.c b/gtk/main.c index 0635c92bf..13f12b945 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -1696,24 +1696,16 @@ static void linphone_gtk_configure_main_window(){ static gboolean config_loaded=FALSE; static const char *title; static const char *home; - static const char *start_call_icon; - static const char *add_call_icon; - static const char *start_chat_icon; static const char *search_icon; static gboolean update_check_menu; - static gboolean buttons_have_borders; static gboolean show_abcd; GtkWidget *w=linphone_gtk_get_main_window(); if (!config_loaded){ title=linphone_gtk_get_ui_config("title","Linphone"); home=linphone_gtk_get_ui_config("home","http://www.linphone.org"); - start_call_icon=linphone_gtk_get_ui_config("start_call_icon","call_start.png"); - add_call_icon=linphone_gtk_get_ui_config("add_call_icon","call_add.png"); - start_chat_icon=linphone_gtk_get_ui_config("start_chat_icon","chat_start.png"); search_icon=linphone_gtk_get_ui_config("directory_search_icon",NULL); update_check_menu=linphone_gtk_get_ui_config_int("update_check_menu",0); - buttons_have_borders=linphone_gtk_get_ui_config_int("buttons_border",1); show_abcd=linphone_gtk_get_ui_config_int("show_abcd",1); config_loaded=TRUE; } @@ -1721,24 +1713,6 @@ static void linphone_gtk_configure_main_window(){ if (title) { gtk_window_set_title(GTK_WINDOW(w),title); } - if (start_call_icon){ - gtk_button_set_image(GTK_BUTTON(linphone_gtk_get_widget(w,"start_call")), - create_pixmap (start_call_icon)); - if (!buttons_have_borders) - gtk_button_set_relief(GTK_BUTTON(linphone_gtk_get_widget(w,"start_call")),GTK_RELIEF_NONE); - } - if (add_call_icon){ - gtk_button_set_image(GTK_BUTTON(linphone_gtk_get_widget(w,"add_call")), - create_pixmap (add_call_icon)); - if (!buttons_have_borders) - gtk_button_set_relief(GTK_BUTTON(linphone_gtk_get_widget(w,"add_call")),GTK_RELIEF_NONE); - } - if (start_chat_icon){ - gtk_button_set_image(GTK_BUTTON(linphone_gtk_get_widget(w,"start_chat")), - create_pixmap (start_chat_icon)); - if (!buttons_have_borders) - gtk_button_set_relief(GTK_BUTTON(linphone_gtk_get_widget(w,"start_chat")),GTK_RELIEF_NONE); - } if (search_icon){ GdkPixbuf *pbuf=create_pixbuf(search_icon); if(pbuf) { diff --git a/gtk/main.ui b/gtk/main.ui index aeed50cb4..8140b40ca 100644 --- a/gtk/main.ui +++ b/gtk/main.ui @@ -3,6 +3,12 @@ + + True + False + 32 + linphone-add-call + True False @@ -114,6 +120,18 @@ Delete gtk-remove + + True + False + 32 + linphone-start-call + + + True + False + 32 + linphone-start-chat + 640 480 @@ -380,6 +398,7 @@ True True Initiate a new call + add_call_image @@ -394,6 +413,7 @@ True True True + start_call_image @@ -407,6 +427,7 @@ True True True + start_chat_image diff --git a/gtk/status_icon.c b/gtk/status_icon.c index cbee89f54..7f0d18f4b 100644 --- a/gtk/status_icon.c +++ b/gtk/status_icon.c @@ -316,15 +316,13 @@ static void _linphone_status_icon_impl_gtk_popup_menu(GtkStatusIcon *status_icon } static void _linphone_status_icon_impl_gtk_init(LinphoneStatusIcon *si) { - const char *icon_path=linphone_gtk_get_ui_config("icon",LINPHONE_ICON); - const char *call_icon_path=linphone_gtk_get_ui_config("start_call_icon","call_start.png"); - GdkPixbuf *pbuf=create_pixbuf(icon_path); - GtkStatusIcon *icon=gtk_status_icon_new_from_pixbuf(pbuf); + const char *icon_name=linphone_gtk_get_ui_config("icon_name",LINPHONE_ICON_NAME); + const char *blinking_icon_name=linphone_gtk_get_ui_config("binking_status_icon_name","linphone-start-call"); + GtkStatusIcon *icon=gtk_status_icon_new_from_icon_name(icon_name); g_signal_connect_swapped(G_OBJECT(icon),"activate", G_CALLBACK(_linphone_status_icon_impl_gtk_on_click_cb), si); g_signal_connect(G_OBJECT(icon), "popup-menu", G_CALLBACK(_linphone_status_icon_impl_gtk_popup_menu), si); - g_object_set_data_full(G_OBJECT(icon),"icon",pbuf, g_object_unref); - pbuf=create_pixbuf(call_icon_path); - g_object_set_data_full(G_OBJECT(icon),"call_icon",pbuf, g_object_unref); + g_object_set_data_full(G_OBJECT(icon), "icon", g_strdup(icon_name), g_free); + g_object_set_data_full(G_OBJECT(icon), "call_icon", g_strdup(blinking_icon_name), g_free); si->data = icon; } @@ -344,13 +342,13 @@ static void _linphone_status_icon_impl_gtk_start(LinphoneStatusIcon *si) { } static gboolean _linphone_status_icon_impl_gtk_do_icon_blink_cb(GtkStatusIcon *gi){ - GdkPixbuf *call_icon=g_object_get_data(G_OBJECT(gi),"call_icon"); - GdkPixbuf *normal_icon=g_object_get_data(G_OBJECT(gi),"icon"); - GdkPixbuf *cur_icon=gtk_status_icon_get_pixbuf(gi); - if (cur_icon==call_icon){ - gtk_status_icon_set_from_pixbuf(gi,normal_icon); + const gchar *call_icon = (const gchar *)g_object_get_data(G_OBJECT(gi),"call_icon"); + const gchar *normal_icon = (const gchar *)g_object_get_data(G_OBJECT(gi),"icon"); + const gchar *cur_icon = (const gchar *)gtk_status_icon_get_icon_name(gi); + if (cur_icon == call_icon){ + gtk_status_icon_set_from_icon_name(gi,normal_icon); }else{ - gtk_status_icon_set_from_pixbuf(gi,call_icon); + gtk_status_icon_set_from_icon_name(gi,call_icon); } return TRUE; } @@ -363,10 +361,10 @@ static void _linphone_status_icon_impl_enable_blinking(LinphoneStatusIcon *si, g tout=g_timeout_add(500,(GSourceFunc)_linphone_status_icon_impl_gtk_do_icon_blink_cb,icon); g_object_set_data(G_OBJECT(icon),"timeout",GINT_TO_POINTER(tout)); }else if (!val && tout!=0){ - GdkPixbuf *normal_icon=g_object_get_data(G_OBJECT(icon),"icon"); + const gchar *normal_icon = (const gchar *)g_object_get_data(G_OBJECT(icon),"icon"); g_source_remove(tout); g_object_set_data(G_OBJECT(icon),"timeout",NULL); - gtk_status_icon_set_from_pixbuf(icon,normal_icon); + gtk_status_icon_set_from_icon_name(icon,normal_icon); } } diff --git a/pixmaps/CMakeLists.txt b/pixmaps/CMakeLists.txt index 0af9613dc..f15d2a505 100644 --- a/pixmaps/CMakeLists.txt +++ b/pixmaps/CMakeLists.txt @@ -42,6 +42,12 @@ install(FILES PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ ) +install(FILES + svg/linphone-start-call.svg + DESTINATION ${ICONS_INSTALL_DIR}/scalable/actions + PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ +) + install(FILES linphone-micro-muted.png linphone-speaker-muted.png @@ -62,6 +68,9 @@ install(FILES install(FILES linphone-start-call2.png linphone-show-dialer.png + linphone-add-call.png + linphone-start-call.png + linphone-start-chat.png DESTINATION ${ICONS_INSTALL_DIR}/48x48/actions PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ ) diff --git a/pixmaps/Makefile.am b/pixmaps/Makefile.am index af4d42980..49508b532 100644 --- a/pixmaps/Makefile.am +++ b/pixmaps/Makefile.am @@ -2,10 +2,9 @@ pixmapdir=$(datadir)/pixmaps/linphone dist_pixmap_DATA= \ hold_on.png hold_off.png \ linphone.png linphone-banner.png \ - chat_start.png \ chat_message_inprogress.png chat_message_delivered.png chat_message_not_delivered.png\ contact-orange.png history-orange.png\ - call_start.png startcall-small.png stopcall-red.png stopcall-small.png call_add.png linphone.icns \ + startcall-small.png stopcall-red.png stopcall-small.png linphone.icns \ contact_starred.png contact_unstarred.png \ call_status_incoming.png call_status_outgoing.png \ ok.png \ @@ -48,5 +47,7 @@ dist_statussvgicons_DATA= \ actions48iconsdir=$(iconsdir)/48x48/actions dist_actions48icons_DATA= \ linphone-start-call2.png \ - linphone-show-dialer.png + linphone-show-dialer.png \ + linphone-add-call.png \ + linphone-start-call.png ) diff --git a/pixmaps/call_add.png b/pixmaps/call_add.png deleted file mode 100644 index 9e2cbb18e..000000000 Binary files a/pixmaps/call_add.png and /dev/null differ diff --git a/pixmaps/call_start.png b/pixmaps/call_start.png deleted file mode 100644 index 77b264d72..000000000 Binary files a/pixmaps/call_start.png and /dev/null differ diff --git a/pixmaps/chat_start.png b/pixmaps/chat_start.png deleted file mode 100644 index 3de673211..000000000 Binary files a/pixmaps/chat_start.png and /dev/null differ diff --git a/pixmaps/linphone-add-call.png b/pixmaps/linphone-add-call.png new file mode 100644 index 000000000..ac53a29e8 Binary files /dev/null and b/pixmaps/linphone-add-call.png differ diff --git a/pixmaps/linphone-start-call.png b/pixmaps/linphone-start-call.png new file mode 100644 index 000000000..fab8701f9 Binary files /dev/null and b/pixmaps/linphone-start-call.png differ diff --git a/pixmaps/linphone-start-chat.png b/pixmaps/linphone-start-chat.png new file mode 100644 index 000000000..224eddb57 Binary files /dev/null and b/pixmaps/linphone-start-chat.png differ diff --git a/pixmaps/svg/linphone-start-call.svg b/pixmaps/svg/linphone-start-call.svg new file mode 100644 index 000000000..e22391a76 --- /dev/null +++ b/pixmaps/svg/linphone-start-call.svg @@ -0,0 +1,77 @@ + + + +image/svg+xml \ No newline at end of file