From 1231b834c16719a4b1cf576b6c617c6e92d39ea5 Mon Sep 17 00:00:00 2001 From: Gautier Pelloux-Prayer Date: Fri, 31 Jul 2015 15:07:57 +0200 Subject: [PATCH] gtk: add chat icon near call in main bar --- gtk/linphone.h | 2 +- gtk/main.c | 135 +++++++++++++++++++++----------------- gtk/main.ui | 29 +++++--- gtk/status_icon.c | 50 +++++++------- pixmaps/CMakeLists.txt | 38 +---------- pixmaps/Makefile.am | 6 +- pixmaps/addcall-green.png | Bin 5642 -> 0 bytes pixmaps/call_add.png | Bin 0 -> 5207 bytes pixmaps/call_start.png | Bin 0 -> 5267 bytes pixmaps/chat_start.png | Bin 0 -> 3958 bytes pixmaps/dialer-orange.png | Bin 1318 -> 0 bytes pixmaps/dialer.png | Bin 3744 -> 5152 bytes 12 files changed, 124 insertions(+), 136 deletions(-) delete mode 100644 pixmaps/addcall-green.png create mode 100644 pixmaps/call_add.png create mode 100644 pixmaps/call_start.png create mode 100644 pixmaps/chat_start.png delete mode 100644 pixmaps/dialer-orange.png diff --git a/gtk/linphone.h b/gtk/linphone.h index 992fdabc2..44f73a7f2 100644 --- a/gtk/linphone.h +++ b/gtk/linphone.h @@ -107,7 +107,6 @@ LINPHONE_PUBLIC void linphone_gtk_close_assistant(void); LINPHONE_PUBLIC LinphoneCore *linphone_gtk_get_core(void); LINPHONE_PUBLIC GtkWidget *linphone_gtk_get_main_window(); LINPHONE_PUBLIC void linphone_gtk_display_something(GtkMessageType type, const gchar *message); -LINPHONE_PUBLIC void linphone_gtk_start_call(GtkWidget *button); LINPHONE_PUBLIC void linphone_gtk_call_terminated(); LINPHONE_PUBLIC void linphone_gtk_set_my_presence(LinphoneOnlineStatus ss); LINPHONE_PUBLIC void linphone_gtk_show_parameters(void); @@ -240,6 +239,7 @@ LINPHONE_PUBLIC void linphone_gtk_logout_clicked(void); LINPHONE_PUBLIC void linphone_gtk_about_response(GtkDialog *dialog, gint id); LINPHONE_PUBLIC void linphone_gtk_show_about(void); LINPHONE_PUBLIC void linphone_gtk_start_call(GtkWidget *w); +LINPHONE_PUBLIC void linphone_gtk_start_chat(GtkWidget *w); LINPHONE_PUBLIC void linphone_gtk_uri_bar_activate(GtkWidget *w); LINPHONE_PUBLIC void linphone_gtk_terminate_call(GtkWidget *button); LINPHONE_PUBLIC void linphone_gtk_decline_clicked(GtkWidget *button); diff --git a/gtk/main.c b/gtk/main.c index 8b7c5c994..1c6e6c663 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -191,10 +191,10 @@ char *linphone_gtk_get_config_file(const char *filename){ #define FACTORY_CONFIG_FILE "linphonerc.factory" static char _factory_config_file[1024]; static const char *linphone_gtk_get_factory_config_file(){ + char* path = NULL; /*try accessing a local file first if exists*/ if (access(FACTORY_CONFIG_FILE,F_OK)==0){ - snprintf(_factory_config_file,sizeof(_factory_config_file), - "%s",FACTORY_CONFIG_FILE); + path = ms_strdup(FACTORY_CONFIG_FILE); } else { char *progdir; @@ -206,33 +206,31 @@ static const char *linphone_gtk_get_factory_config_file(){ if (basename != NULL) { basename ++; *basename = '\0'; - snprintf(_factory_config_file, sizeof(_factory_config_file), - "%s\\..\\%s", progdir, FACTORY_CONFIG_FILE); - } else { - if (workingdir!=NULL) { - snprintf(_factory_config_file, sizeof(_factory_config_file), - "%s\\%s", workingdir, FACTORY_CONFIG_FILE); - } else { - free(progdir); - return NULL; - } + path = ms_strdup_printf("%s\\..\\%s", progdir, FACTORY_CONFIG_FILE); + } else if (workingdir!=NULL) { + path = ms_strdup_printf("%s\\%s", workingdir, FACTORY_CONFIG_FILE); } #else basename = strrchr(progdir, '/'); if (basename != NULL) { basename ++; *basename = '\0'; - snprintf(_factory_config_file, sizeof(_factory_config_file), - "%s/../share/linphone/%s", progdir, FACTORY_CONFIG_FILE); - } else { - free(progdir); - return NULL; + path = ms_strdup_printf("%s/../share/linphone/%s", progdir, FACTORY_CONFIG_FILE); } #endif free(progdir); } } - return _factory_config_file; + if (path) { + //use factory file only if it exists + if (access(path,F_OK)==0){ + snprintf(_factory_config_file, sizeof(_factory_config_file), "%s", path); + ms_free(path); + return _factory_config_file; + } + ms_free(path); + } + return NULL; } LinphoneLDAPContactProvider* linphone_gtk_get_ldap(void){ @@ -484,16 +482,16 @@ void linphone_gtk_display_something(GtkMessageType type,const gchar *message){ /* draw a question box. link to dialog_click callback */ dialog = gtk_message_dialog_new ( GTK_WINDOW(main_window), - GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, - GTK_BUTTONS_YES_NO, - "%s", + GTK_BUTTONS_YES_NO, + "%s", (const gchar*)message); /* connect to some callback : REVISIT */ /* g_signal_connect_swapped (G_OBJECT (dialog), "response", - G_CALLBACK (dialog_click), - G_OBJECT (dialog)); + G_CALLBACK (dialog_click), + G_OBJECT (dialog)); */ /* actually show the box */ gtk_widget_show(dialog); @@ -501,15 +499,15 @@ void linphone_gtk_display_something(GtkMessageType type,const gchar *message){ else { dialog = gtk_message_dialog_new (GTK_WINDOW(main_window), - GTK_DIALOG_DESTROY_WITH_PARENT, - type, - GTK_BUTTONS_CLOSE, - "%s", - (const gchar*)message); + GTK_DIALOG_DESTROY_WITH_PARENT, + type, + GTK_BUTTONS_CLOSE, + "%s", + (const gchar*)message); /* Destroy the dialog when the user responds to it (e.g. clicks a button) */ g_signal_connect_swapped (G_OBJECT (dialog), "response", - G_CALLBACK (gtk_widget_destroy), - G_OBJECT (dialog)); + G_CALLBACK (gtk_widget_destroy), + G_OBJECT (dialog)); gtk_widget_show(dialog); } } @@ -531,7 +529,7 @@ void linphone_gtk_show_about(void){ GtkWidget *about; const char *tmp; GdkPixbuf *logo=create_pixbuf( - linphone_gtk_get_ui_config("logo","linphone-banner.png")); + linphone_gtk_get_ui_config("logo","linphone-banner.png")); static const char *defcfg="defcfg"; about=linphone_gtk_create_window("about", the_ui); @@ -829,7 +827,7 @@ void linphone_gtk_show_main_window(){ void linphone_gtk_call_terminated(LinphoneCall *call, const char *error){ GtkWidget *mw=linphone_gtk_get_main_window(); if (linphone_core_get_calls(linphone_gtk_get_core())==NULL){ - gtk_widget_set_sensitive(linphone_gtk_get_widget(mw,"start_call"),TRUE); + gtk_widget_set_sensitive(linphone_gtk_get_widget(mw,"start_call"),TRUE); } if (linphone_gtk_use_in_call_view() && call) linphone_gtk_in_call_view_terminate(call,error); @@ -840,31 +838,26 @@ static void linphone_gtk_update_call_buttons(LinphoneCall *call){ GtkWidget *mw=linphone_gtk_get_main_window(); const MSList *calls=linphone_core_get_calls(lc); GtkWidget *button; - bool_t start_active=TRUE; - //bool_t stop_active=FALSE; bool_t add_call=FALSE; int call_list_size=ms_list_size(calls); GtkWidget *conf_frame; - if (calls==NULL){ - start_active=TRUE; - //stop_active=FALSE; - }else{ - //stop_active=TRUE; - start_active=TRUE; + if (calls!=NULL){ add_call=TRUE; } button=linphone_gtk_get_widget(mw,"start_call"); - gtk_widget_set_sensitive(button,start_active); + gtk_widget_set_visible(button,!add_call); + + button=linphone_gtk_get_widget(mw,"start_chat"); gtk_widget_set_visible(button,!add_call); button=linphone_gtk_get_widget(mw,"add_call"); + gtk_widget_set_visible(button,add_call); if (linphone_core_sound_resources_locked(lc) || (call && linphone_call_get_state(call)==LinphoneCallIncomingReceived)) { gtk_widget_set_sensitive(button,FALSE); } else { - gtk_widget_set_sensitive(button,start_active); + gtk_widget_set_sensitive(button,TRUE); } - gtk_widget_set_visible(button,add_call); //gtk_widget_set_sensitive(linphone_gtk_get_widget(mw,"terminate_call"),stop_active); conf_frame=(GtkWidget *)g_object_get_data(G_OBJECT(mw),"conf_frame"); @@ -981,6 +974,18 @@ void linphone_gtk_start_call(GtkWidget *w){ } +void linphone_gtk_start_chat(GtkWidget *w){ + GtkWidget *mw=gtk_widget_get_toplevel(w); + GtkWidget *uri_bar=linphone_gtk_get_widget(mw,"uribar"); + const char *entered=gtk_entry_get_text(GTK_ENTRY(uri_bar)); + LinphoneCore *lc=linphone_gtk_get_core(); + LinphoneAddress *addr=linphone_core_interpret_url(lc,entered); + if (addr) { + linphone_gtk_friend_list_set_chat_conversation(addr); + linphone_address_destroy(addr); + } +} + void linphone_gtk_uri_bar_activate(GtkWidget *w){ linphone_gtk_start_call(w); } @@ -1078,10 +1083,10 @@ static void linphone_gtk_new_unknown_subscriber(LinphoneCore *lc, LinphoneFriend message=g_strdup_printf(_("%s would like to add you to his/her contact list.\nWould you add him/her to your contact list and allow him/her to see your presence status?\nIf you answer no, this person will be temporarily blacklisted."),url); dialog = gtk_message_dialog_new ( GTK_WINDOW(linphone_gtk_get_main_window()), - GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, - GTK_BUTTONS_YES_NO, - "%s", + GTK_BUTTONS_YES_NO, + "%s", message); g_free(message); g_signal_connect(G_OBJECT (dialog), "response", @@ -1346,7 +1351,7 @@ static void linphone_gtk_call_updated_by_remote(LinphoneCall *call){ gboolean video_requested=linphone_call_params_video_enabled(rparams); gboolean video_used=linphone_call_params_video_enabled(current_params); g_message("Video used=%i, video requested=%i, automatically_accept=%i", - video_used,video_requested,pol->automatically_accept); + video_used,video_requested,pol->automatically_accept); if (!video_used && video_requested && !pol->automatically_accept){ linphone_core_defer_call_update(lc,call); { @@ -1356,13 +1361,13 @@ static void linphone_gtk_call_updated_by_remote(LinphoneCall *call){ if (dname==NULL) dname=linphone_address_get_username(addr); if (dname==NULL) dname=linphone_address_get_domain(addr); dialog=gtk_message_dialog_new(GTK_WINDOW(linphone_gtk_get_main_window()), - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_WARNING, - GTK_BUTTONS_YES_NO, - _("%s proposed to start video. Do you accept ?"),dname); + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_WARNING, + GTK_BUTTONS_YES_NO, + _("%s proposed to start video. Do you accept ?"),dname); g_object_set_data_full(G_OBJECT(dialog), "call", linphone_call_ref(call), (GDestroyNotify)linphone_call_unref); - g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(on_call_updated_response), NULL); - g_timeout_add(20000,(GSourceFunc)on_call_updated_timeout,dialog); + g_signal_connect(G_OBJECT(dialog), "response", G_CALLBACK(on_call_updated_response), NULL); + g_timeout_add(20000,(GSourceFunc)on_call_updated_timeout,dialog); gtk_widget_show(dialog); } } @@ -1470,7 +1475,7 @@ static void update_registration_status(LinphoneProxyConfig *cfg, LinphoneRegistr } static void linphone_gtk_registration_state_changed(LinphoneCore *lc, LinphoneProxyConfig *cfg, - LinphoneRegistrationState rs, const char *msg){ + LinphoneRegistrationState rs, const char *msg){ switch (rs){ case LinphoneRegistrationOk: if (cfg){ @@ -1541,7 +1546,7 @@ static GtkWidget *create_icon_menu(){ #ifndef HAVE_GTK_OSX void linphone_gtk_save_main_window_position(GtkWindow* mw, GdkEvent *event, gpointer data){ - gtk_window_get_position(GTK_WINDOW(mw), &main_window_x, &main_window_y); + gtk_window_get_position(GTK_WINDOW(mw), &main_window_x, &main_window_y); } #endif @@ -1643,8 +1648,8 @@ void linphone_gtk_load_identities(void){ LinphoneProxyConfig *cfg=(LinphoneProxyConfig*)elem->data; gtk_list_store_append(store,&iter); gtk_list_store_set(store,&iter,0,linphone_proxy_config_get_identity(cfg),1, - linphone_proxy_config_is_registered(cfg) ? GTK_STOCK_YES : NULL, - 2,cfg,-1); + linphone_proxy_config_is_registered(cfg) ? GTK_STOCK_YES : NULL, + 2,cfg,-1); if (cfg==def) { def_index=i; } @@ -1707,6 +1712,7 @@ static void linphone_gtk_configure_main_window(){ 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; @@ -1716,8 +1722,9 @@ static void linphone_gtk_configure_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","startcall-green.png"); - add_call_icon=linphone_gtk_get_ui_config("add_call_icon","addcall-green.png"); + 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); @@ -1730,16 +1737,22 @@ static void linphone_gtk_configure_main_window(){ } if (start_call_icon){ gtk_button_set_image(GTK_BUTTON(linphone_gtk_get_widget(w,"start_call")), - create_pixmap (start_call_icon)); + 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)); + 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 f3f1461d3..1c28c26f3 100644 --- a/gtk/main.ui +++ b/gtk/main.ui @@ -1061,6 +1061,19 @@ audio-volume-medium 0 + + + True + True + True + + + + False + True + 1 + + True @@ -1072,8 +1085,7 @@ audio-volume-medium False False 6 - end - 1 + 2 @@ -1086,22 +1098,21 @@ audio-volume-medium False True - 6 - end - 2 + 3 - + True True True - + False - False - 3 + True + 4 + end diff --git a/gtk/status_icon.c b/gtk/status_icon.c index ad94d50ad..cbee89f54 100644 --- a/gtk/status_icon.c +++ b/gtk/status_icon.c @@ -117,7 +117,7 @@ static gboolean _linphone_status_icon_desc_is_supported( gboolean *result, LinphoneStatusIconDescIsSupportedResultCb cb, void *user_data) { - + return desc->is_supported(desc, result, cb, user_data); } @@ -131,7 +131,7 @@ static void _linphone_status_icon_desc_is_supported_result_cb( const _LinphoneStatusIconDesc *desc, gboolean result, _LinphoneStatusIconDescSearchCtx *ctx) { - + if(!result) { ctx->i = g_slist_next(ctx->i); for(; ctx->i; ctx->i = g_slist_next(ctx->i)) { @@ -140,12 +140,12 @@ static void _linphone_status_icon_desc_is_supported_result_cb( &result, (LinphoneStatusIconDescIsSupportedResultCb)_linphone_status_icon_desc_is_supported_result_cb, ctx)) { - + if(result) break; } else return; } } - + if(ctx->i) { const _LinphoneStatusIconDesc *desc = (const _LinphoneStatusIconDesc *)g_slist_nth_data(ctx->i, 0); ms_message("StatusIcon: found implementation: %s", desc->impl_name); @@ -153,7 +153,7 @@ static void _linphone_status_icon_desc_is_supported_result_cb( } else { g_warning("StatusIcon: no implementation found"); } - + g_free(ctx); } @@ -161,21 +161,21 @@ static gboolean _linphone_status_icon_find_first_available_impl( const _LinphoneStatusIconDesc **desc, LinphoneStatusIconDescFindResultCb cb, void *user_data) { - + gboolean result; _LinphoneStatusIconDescSearchCtx *ctx = g_new0(_LinphoneStatusIconDescSearchCtx, 1); ctx->cb = cb; ctx->user_data = user_data; - + ms_message("StatusIcon: looking for implementation..."); - + for(ctx->i=_linphone_status_icon_impls; ctx->i; ctx->i = g_slist_next(ctx->i)) { if(_linphone_status_icon_desc_is_supported( (const _LinphoneStatusIconDesc *)g_slist_nth_data(ctx->i, 0), &result, (LinphoneStatusIconDescIsSupportedResultCb)_linphone_status_icon_desc_is_supported_result_cb, ctx)) { - + if(result) { *desc = (const _LinphoneStatusIconDesc *)g_slist_nth_data(ctx->i, 0); ms_message("StatusIcon: found implementation: %s", (*desc)->impl_name); @@ -187,7 +187,7 @@ static gboolean _linphone_status_icon_find_first_available_impl( } g_warning("StatusIcon: no implementation found"); *desc = NULL; - + sync_return: g_free(ctx); return 1; @@ -266,15 +266,15 @@ void _linphone_status_icon_create_implementations_list(void) { gboolean linphone_status_icon_init(LinphoneStatusIconReadyCb ready_cb, void *user_data) { const _LinphoneStatusIconDesc *desc; void **ctx; - + ms_message("StatusIcon: Initialising"); - + _linphone_status_icon_create_implementations_list(); - + ctx = g_new(void *, 2); ctx[0] = ready_cb; ctx[1] = user_data; - + if(_linphone_status_icon_find_first_available_impl(&desc, _linphone_status_icon_init_cb, ctx)) { _linphone_status_icon_selected_desc = desc; g_free(ctx); @@ -317,7 +317,7 @@ 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","startcall-green.png"); + 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); g_signal_connect_swapped(G_OBJECT(icon),"activate", G_CALLBACK(_linphone_status_icon_impl_gtk_on_click_cb), si); @@ -375,7 +375,7 @@ static gboolean _linphone_status_icon_impl_is_supported( gboolean *result, LinphoneStatusIconDescIsSupportedResultCb cb, void *user_data) { - + *result = 1; return 1; } @@ -409,7 +409,7 @@ static gboolean _linphone_status_icon_impl_gtkosx_app_is_supported( gboolean *result, LinphoneStatusIconDescIsSupportedResultCb cb, void *user_data) { - + *result = 1; return 1; } @@ -472,10 +472,10 @@ static void _linphone_status_icon_impl_sn_start(LinphoneStatusIcon *si) { BcStatusNotifierParams *params; BcStatusNotifierToolTip *tooltip = bc_status_notifier_tool_tip_new("linphone", si->params->title, si->params->desc); BcStatusNotifierSignalsVTable vtable = {NULL}; - + vtable.activate_called_cb = _linphone_status_icon_impl_sn_activated_cb; vtable.context_menu_called_cb = _linphone_status_icon_impl_sn_menu_called_cb; - + params = bc_status_notifier_params_new(); bc_status_notifier_params_set_dbus_prefix(params, "org.kde"); bc_status_notifier_params_set_category(params, BcStatusNotifierCategoryCommunications); @@ -484,15 +484,15 @@ static void _linphone_status_icon_impl_sn_start(LinphoneStatusIcon *si) { bc_status_notifier_params_set_icon_name(params, "linphone"); bc_status_notifier_params_set_tool_tip(params, tooltip); bc_status_notifier_params_set_vtable(params, &vtable, si); - + bc_status_notifier_start(sn, params, NULL, NULL); - + bc_status_notifier_tool_tip_unref(tooltip); bc_status_notifier_params_unref(params); } static void _linphone_status_icon_impl_sn_enable_blinking(LinphoneStatusIcon *si, gboolean val) { - BcStatusNotifier *sn = (BcStatusNotifier *)si->data; + BcStatusNotifier *sn = (BcStatusNotifier *)si->data; if(val) { bc_status_notifier_update_status(sn, BcStatusNotifierStatusNeedsAttention); } else { @@ -513,16 +513,16 @@ static gboolean _linphone_status_icon_impl_sn_is_supported( gboolean *result, LinphoneStatusIconDescIsSupportedResultCb cb, void *user_data) { - + _LinphoneStatusIconDesc *desc2; void **data; const char *desktop = g_getenv("XDG_CURRENT_DESKTOP"); - + if(desktop == NULL || g_strcmp0(desktop, "KDE") != 0) { *result = FALSE; return TRUE; } - + desc2 = g_new(_LinphoneStatusIconDesc, 1); *desc2 = *desc; data = g_new(void *, 3); diff --git a/pixmaps/CMakeLists.txt b/pixmaps/CMakeLists.txt index 301a6a442..800869425 100644 --- a/pixmaps/CMakeLists.txt +++ b/pixmaps/CMakeLists.txt @@ -20,43 +20,7 @@ # ############################################################################ -set(PIXMAPS - active_chat.png - addcall-green.png - call.png - call_status_incoming.png - call_status_outgoing.png - chat_message_delivered.png - chat_message_inprogress.png - chat_message_not_delivered.png - chat.png - composing_active_chat.png - composing_chat.png - contact-orange.png - contact_starred.png - contact_unstarred.png - dialer-orange.png - dialer.png - history-orange.png - hold_off.png - hold_on.png - linphone-banner.png - linphone.icns - linphone.png - mic_active.png - mic_muted.png - notok.png - ok.png - speaker.png - startcall-green.png - startcall-small.png - status-green.png - status-offline.png - status-orange.png - status-red.png - stopcall-red.png - stopcall-small.png -) +file(GLOB PIXMAPS "*.png" "linphone.icns") install(FILES ${PIXMAPS} DESTINATION ${PACKAGE_DATA_DIR}/pixmaps/linphone diff --git a/pixmaps/Makefile.am b/pixmaps/Makefile.am index 10ad6856c..b0fb73d8a 100644 --- a/pixmaps/Makefile.am +++ b/pixmaps/Makefile.am @@ -9,10 +9,10 @@ pixmap_DATA= \ status-red.png \ status-offline.png \ call.png \ - chat.png active_chat.png composing_chat.png composing_active_chat.png\ + chat.png chat_start.png active_chat.png composing_chat.png composing_active_chat.png\ chat_message_inprogress.png chat_message_delivered.png chat_message_not_delivered.png\ - contact-orange.png dialer-orange.png history-orange.png\ - startcall-green.png startcall-small.png stopcall-red.png stopcall-small.png addcall-green.png linphone.icns \ + contact-orange.png history-orange.png\ + call_start.png startcall-small.png stopcall-red.png stopcall-small.png call_add.png linphone.icns \ contact_starred.png contact_unstarred.png \ speaker.png \ call_status_incoming.png call_status_outgoing.png \ diff --git a/pixmaps/addcall-green.png b/pixmaps/addcall-green.png deleted file mode 100644 index 9de8463ca3922fafc769c233c0f76c57042fb095..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5642 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 z%0AV5j{(5~{ZDql^tC82C;t=ZOJ)b$&``OL@{!yGv` z#89A(H1o+)u>ZeTm<5U<2Hq(v=RLfuF#EriVcz3E zGm}@#e`8C@mohDxgj8(Q*3$Z$!J75o`HxG_uJ55I26Tv_;P7^>4Bmd(H}mQVIM)U} z%Y=?L*!l$g=h9CbH(TSIQ~zYs`U}2H&1OirqK;6jJh^BlX-ez^M^>%BCA;N&w=VDe z_=;#0}g%Wmh8qCm#UrSuz$Y29*y?%=#CuP-zbztv&j#atu$fuAn=$;vB6h}Op4H# znN?$c{iUwC=if7v%*&}d$o$DiR<3PX`}n$4=NCHCovhS#enZK+`C<7}%(AJMbYB5+dLuuxW5*yr5qT2>)`hYv#g2&)pDU zos9FQk3J7Da`}a28^f)?qoNN_Mdv<#C75QSa)yc0S*D_MT+lHl{U}%U0wOZ6RTR`K z>bN%9NYIerRZ0raiP3|Hc9n;l)w~qk4FN8gfo+bQ1DKlnQTAMT;lOk}_A8UMvt84* zb05B(oHP^Vvy2zdQjX_9rP=63OkI;n0Aj$EnL{~&Ff1bfI=rhma;=d1ksD2p@_t`f z8{VYZIRKtH^H=LG`spoWrL&u--RO?#cx-3vqg#R12mwkNWdg&5DDQeWhRRQ?rgY+X kmzEZdqP=*%35fq001*2F_X=2a0{{R307*qoM6N<$g0fuxod5s; diff --git a/pixmaps/call_add.png b/pixmaps/call_add.png new file mode 100644 index 0000000000000000000000000000000000000000..9e2cbb18eec46f21626e5dfe7a1600b92410ab99 GIT binary patch literal 5207 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 Reyjih002ovPDHLkV1fZ?5t;x1 literal 0 HcmV?d00001 diff --git a/pixmaps/call_start.png b/pixmaps/call_start.png new file mode 100644 index 0000000000000000000000000000000000000000..77b264d72eba3492675b1088355e71adc9d577be GIT binary patch literal 5267 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 Ze*A(O002ovPDHLkV1nvUQosNJ literal 0 HcmV?d00001 diff --git a/pixmaps/chat_start.png b/pixmaps/chat_start.png new file mode 100644 index 0000000000000000000000000000000000000000..3de67321139c548106211abd9936a1b5ff4626e8 GIT binary patch literal 3958 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 literal 0 HcmV?d00001 diff --git a/pixmaps/dialer-orange.png b/pixmaps/dialer-orange.png deleted file mode 100644 index 2d715eac0c2c061fe1cb1075462d8497437444ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1318 zcmV+>1=;$EP)P000;W1^@s654Bdt00001b5ch_0Itp) z=>Px#32;bRa{vGh*8l(w*8xH(n|J^K00(qQO+^RV1P>GoBo;~)$p8QZxJg7oR7l6I zmR(F#M-<2Zb3bP8+`TK{N<>ivK`Yj;q_$lWTbFK$rKYwCNhM9w#@YuU8;GfiM$-a5 zSks5LQE{7A+Zat7qphvJNIwX+1{O`#3JR@AUKQ~`CrL*tgQso0j7t+Y~lW=@~_a& z^Z7}3+e%Pg09E&aYMaQ*8+?->VjU_W0CE!5Qv#|B1ys!k%1(gW++a306b-i=SvYq$ z>H5G>@J8WWo@UeeJSZ%WIA8aXSaK(T&miE0ECWmjD9a+B$L+k!Q# zo1-c7{eC}5O-UYhJEF@o#`=|EW!k{Oj?v!rxv5KLrc47_Q9$Al0Rcct0052Gll@)! z6CfWK?Sjg-fN6k20j449n0KRYke+J^MpwSDBq#kDIRI$(#y#hI{Tp6fw%$s#z6K2B^9P;YQ{Ccaki^`#H>48O$OcxixSsV3-j{ z20*nukH_BrRKYcvvyI&UW^#gi3#DxX^M+GSe4twg5a!Ut}iac ziGFo^Fc{pqZQC|H?venYb#?hykmZDAb2}UG9=$f}NdOX%vvswH+T5E56Bn-;;9}Gx z4t(Hz5)d*@$BN?U<>F;h~_M+!^wCPBKIMFJ4tvf=}D<4$qrs1Qvj6Y>fF6_@2NelJc|0Kf^LQ3&Ch@;&i-y}8`5|5@a?%?&b!#7W~5 zf$BbR+bK}p1_IqmbTsw1@pe`kwe}396)9Frh(PsPAIGj zl({S^xiyjRJMZ!1$IS=I6<=j#Wq+BG(cB*|b@}Uq8ccg?48p9<;u10IOC|z3Iy%tX z+xyBxAu&*o-EPmi+}U&Zz?l}b4UPh~Bx^#)C$`Eb0m9)hPM|}u zLf3WZx()ycg+ee*6Ots25JH|UD=TY#tiKhn*PAJXSOZ|G5Mmx7!~if1ph1$P-6bU@ c;qmeR0$RVA-Hr6DdH?_b07*qoM6N<$f_VvE%K!iX diff --git a/pixmaps/dialer.png b/pixmaps/dialer.png index 5da3ad70dee838f952fbee2ce3ad1cef729f9c24..bb9747a90644cf96aa2fdf7ca7aafd49e87c9a10 100644 GIT binary patch literal 5152 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 KMNUMnLSTY5-cCdS