static void linphone_gtk_call_state_changed(LinphoneCore *lc, LinphoneCall *call, LinphoneCallState cs, const char *msg);
static void linphone_gtk_call_encryption_changed(LinphoneCore *lc, LinphoneCall *call, bool_t enabled, const char *token);
static void linphone_gtk_transfer_state_changed(LinphoneCore *lc, LinphoneCall *call, LinphoneCallState cstate);
+void linphone_gtk_save_main_window_position(GtkWindow* mw, GdkEvent *event, gpointer data);
static gboolean linphone_gtk_auto_answer(LinphoneCall *call);
void linphone_gtk_status_icon_set_blinking(gboolean val);
void _linphone_gtk_enable_video(gboolean val);
-
+#ifndef HAVE_GTK_OSX
+static gint main_window_x=0;
+static gint main_window_y=0;
+#endif
static gboolean verbose=0;
static gboolean auto_answer = 0;
static gchar * addr_to_call = NULL;
}
static void linphone_gtk_init_liblinphone(const char *config_file,
- const char *factory_config_file) {
+ const char *factory_config_file, const char *db_file) {
LinphoneCoreVTable vtable={0};
gchar *secrets_file=linphone_gtk_get_config_file(SECRETS_FILE);
_linphone_gtk_enable_video(FALSE);
linphone_gtk_set_ui_config_int("videoselfview",0);
}
+ if (db_file) linphone_core_set_chat_database_path(the_core,db_file);
}
LinphoneCore *linphone_gtk_get_core(void){
LinphoneCallState state=linphone_call_get_state(call);
if (state==LinphoneCallIncomingReceived || state==LinphoneCallIncomingEarlyMedia){
accept_incoming_call(call);
- linphone_call_unref(call);
}
return FALSE;
}
NotifyNotification *n;
switch(linphone_call_get_state(call)){
case LinphoneCallError:
- make_notification(_("Call error"),body=g_markup_printf_escaped("<span size=\"large\">%s</span>\n%s",msg,remote));
+ make_notification(_("Call error"),body=g_markup_printf_escaped("<b>%s</b>\n%s",msg,remote));
break;
case LinphoneCallEnd:
- make_notification(_("Call ended"),body=g_markup_printf_escaped("<span size=\"large\">%s</span>",remote));
+ make_notification(_("Call ended"),body=g_markup_printf_escaped("<b>%s</b>",remote));
break;
case LinphoneCallIncomingReceived:
- n=build_notification(_("Incoming call"),body=g_markup_printf_escaped("<span size=\"large\">%s</span>",remote));
+ n=build_notification(_("Incoming call"),body=g_markup_printf_escaped("<b>%s</b>",remote));
if (notify_actions_supported()) {
notify_notification_add_action (n,"answer", _("Answer"),
NOTIFY_ACTION_CALLBACK(linphone_gtk_answer_clicked),NULL,NULL);
show_notification(n);
break;
case LinphoneCallPausedByRemote:
- make_notification(_("Call paused"),body=g_markup_printf_escaped(_("<span size=\"large\">by %s</span>"),remote));
+ make_notification(_("Call paused"),body=g_markup_printf_escaped(_("<b>by %s</b>"),remote));
break;
default:
break;
break;
case LinphoneCallPausing:
linphone_gtk_enable_hold_button(call,TRUE,FALSE);
- update_tab_header(call,FALSE);
+ linphone_gtk_call_update_tab_header(call,FALSE);
case LinphoneCallPausedByRemote:
linphone_gtk_in_call_view_set_paused(call);
- update_tab_header(call,TRUE);
+ linphone_gtk_call_update_tab_header(call,TRUE);
break;
case LinphoneCallConnected:
linphone_gtk_enable_hold_button (call,TRUE,TRUE);
return menu;
}
+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);
+}
+
static void handle_icon_click() {
GtkWidget *mw=linphone_gtk_get_main_window();
if (!gtk_window_is_active((GtkWindow*)mw)) {
+ if(!gtk_widget_is_drawable(mw)){
+ //we only move if window was hidden. If it was simply behind the window stack, ie, drawable, we keep it as it was
+ gtk_window_move (GTK_WINDOW(mw), main_window_x, main_window_y);
+ }
linphone_gtk_show_main_window();
} else {
+ linphone_gtk_save_main_window_position((GtkWindow*)mw, NULL, NULL);
gtk_widget_hide(mw);
}
}
void linphone_gtk_status_icon_set_blinking(gboolean val){
#ifdef HAVE_GTK_OSX
static gint attention_id;
- GtkOSXApplication *theMacApp=(GtkOSXApplication*)g_object_new(GTK_TYPE_OSX_APPLICATION, NULL);
+ GtkosxApplication *theMacApp=gtkosx_application_get();
if (val)
- attention_id=gtk_osxapplication_attention_request(theMacApp,CRITICAL_REQUEST);
- else gtk_osxapplication_cancel_attention_request(theMacApp,attention_id);
+ attention_id=gtkosx_application_attention_request(theMacApp,CRITICAL_REQUEST);
+ else gtkosx_application_cancel_attention_request(theMacApp,attention_id);
#else
if (icon!=NULL){
guint tout;
static gboolean buttons_have_borders;
static gboolean show_abcd;
GtkWidget *w=linphone_gtk_get_main_window();
- GHashTable *contacts_history;
-
- contacts_history=g_hash_table_new_full(g_str_hash, g_str_equal,g_free, NULL);
- g_object_set_data(G_OBJECT(w),"history",(gpointer)contacts_history);
if (!config_loaded){
title=linphone_gtk_get_ui_config("title","Linphone");
linphone_gtk_load_identities();
linphone_gtk_set_my_presence(linphone_core_get_presence_info(linphone_gtk_get_core()));
linphone_gtk_show_friends();
+ linphone_core_reset_missed_calls_count(linphone_gtk_get_core());
main_window=linphone_gtk_get_main_window();
linphone_gtk_call_log_update(main_window);
#ifdef HAVE_GTK_OSX
{
GtkWidget *menubar=linphone_gtk_get_widget(main_window,"menubar1");
- GtkOSXApplication *theMacApp = (GtkOSXApplication*)g_object_new(GTK_TYPE_OSX_APPLICATION, NULL);
- gtk_osxapplication_set_menu_bar(theMacApp,GTK_MENU_SHELL(menubar));
+ GtkosxApplication *theMacApp = gtkosx_application_get();
+ gtkosx_application_set_menu_bar(theMacApp,GTK_MENU_SHELL(menubar));
gtk_widget_hide(menubar);
- gtk_osxapplication_ready(theMacApp);
+ gtkosx_application_ready(theMacApp);
}
g_signal_connect(G_OBJECT(main_window), "window-state-event",G_CALLBACK(on_window_state_event), NULL);
#endif
linphone_gtk_check_menu_items();
}
-
void linphone_gtk_log_handler(OrtpLogLevel lev, const char *fmt, va_list args){
if (verbose){
const char *lname="undef";
GdkPixbuf *pbuf;
const char *app_name="Linphone";
LpConfig *factory;
+ const char *db_file;
#if !GLIB_CHECK_VERSION(2, 31, 0)
g_thread_init(NULL);
add_pixmap_directory(PACKAGE_DATA_DIR "/pixmaps/linphone");
#ifdef HAVE_GTK_OSX
- GtkOSXApplication *theMacApp = (GtkOSXApplication*)g_object_new(GTK_TYPE_OSX_APPLICATION, NULL);
+ GtkosxApplication *theMacApp = gtkosx_application_get();
g_signal_connect(G_OBJECT(theMacApp),"NSApplicationDidBecomeActive",(GCallback)linphone_gtk_show_main_window,NULL);
g_signal_connect(G_OBJECT(theMacApp),"NSApplicationWillTerminate",(GCallback)gtk_main_quit,NULL);
/*never block termination:*/
linphone_gtk_create_log_window();
linphone_core_enable_logs_with_cb(linphone_gtk_log_handler);
- linphone_gtk_init_liblinphone(config_file, factory_config_file);
+ db_file=linphone_gtk_message_storage_get_db_file(NULL);
+ linphone_gtk_init_liblinphone(config_file, factory_config_file, db_file);
g_set_application_name(app_name);
pbuf=create_pixbuf(linphone_gtk_get_ui_config("icon",LINPHONE_ICON));