gtk: add chat icon near call in main bar
|
|
@ -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);
|
||||
|
|
|
|||
135
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) {
|
||||
|
|
|
|||
29
gtk/main.ui
|
|
@ -1061,6 +1061,19 @@ audio-volume-medium</property>
|
|||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="keypad">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
<signal name="clicked" handler="linphone_gtk_create_keypad" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="add_call">
|
||||
<property name="can_focus">True</property>
|
||||
|
|
@ -1072,8 +1085,7 @@ audio-volume-medium</property>
|
|||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="padding">6</property>
|
||||
<property name="pack_type">end</property>
|
||||
<property name="position">1</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
|
|
@ -1086,22 +1098,21 @@ audio-volume-medium</property>
|
|||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="padding">6</property>
|
||||
<property name="pack_type">end</property>
|
||||
<property name="position">2</property>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="keypad">
|
||||
<object class="GtkButton" id="start_chat">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
<signal name="clicked" handler="linphone_gtk_create_keypad" swapped="no"/>
|
||||
<signal name="clicked" handler="linphone_gtk_start_chat" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">3</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">4</property>
|
||||
<property name="pack_type">end</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 \
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 5.5 KiB |
BIN
pixmaps/call_add.png
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
BIN
pixmaps/call_start.png
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
BIN
pixmaps/chat_start.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 5 KiB |