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 @@
+
+
+
@@ -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 @@
+
+
+
+
\ No newline at end of file