diff --git a/gnome/src/imwindow.c b/gnome/src/imwindow.c index f501e8fe965bbca6a7fdf03a62092ba50835db55..8d5c07f2ebb5818fceddfece851b056ef5d7d4ad 100644 --- a/gnome/src/imwindow.c +++ b/gnome/src/imwindow.c @@ -38,11 +38,23 @@ #include <imwindow.h> #include <contacts/calltab.h> #include <contacts/calltab.h> +#include <sys/stat.h> /** Local variables */ static GtkWidget *im_window = NULL; static GtkWidget *im_notebook = NULL; + +static void im_window_init(); + +static GtkWindow *im_window_get() +{ + if (im_window == NULL) + im_window_init(); + + return GTK_WINDOW(im_window); +} + static gboolean window_configure_cb (GtkWidget *wini UNUSED, GdkEventConfigure *event) { int pos_x, pos_y; @@ -50,7 +62,7 @@ static gboolean window_configure_cb (GtkWidget *wini UNUSED, GdkEventConfigure * eel_gconf_set_integer (CONF_IM_WINDOW_WIDTH, event->width); eel_gconf_set_integer (CONF_IM_WINDOW_HEIGHT, event->height); - gtk_window_get_position (GTK_WINDOW (im_window_get()), &pos_x, &pos_y); + gtk_window_get_position (im_window_get(), &pos_x, &pos_y); eel_gconf_set_integer (CONF_IM_WINDOW_POSITION_X, pos_x); eel_gconf_set_integer (CONF_IM_WINDOW_POSITION_Y, pos_y); @@ -106,7 +118,9 @@ im_window_init() gtk_container_set_border_width (GTK_CONTAINER (im_window), 0); gtk_window_set_title (GTK_WINDOW (im_window), window_title); gtk_window_set_default_size (GTK_WINDOW (im_window), width, height); - gtk_window_set_default_icon_from_file (LOGO, NULL); + struct stat st; + if (!stat(LOGO, &st)) + gtk_window_set_default_icon_from_file (LOGO, NULL); gtk_window_set_position (GTK_WINDOW (im_window), GTK_WIN_POS_MOUSE); gtk_widget_set_name (im_window, "imwindow"); @@ -129,20 +143,9 @@ im_window_init() gtk_window_move (GTK_WINDOW (im_window), position_x, position_y); } -GtkWidget * -im_window_get() -{ - if (im_window == NULL) - im_window_init(); - - return im_window; -} - - gboolean im_window_is_active () { - if (!im_window) return FALSE; else @@ -152,13 +155,14 @@ im_window_is_active () gboolean im_window_is_visible () { - return gtk_widget_get_visible (im_window); + return gtk_widget_get_visible (GTK_WIDGET(im_window_get())); } + void im_window_show () { - gtk_window_present (GTK_WINDOW (im_window_get ())); + gtk_window_present (im_window_get ()); } void @@ -169,7 +173,7 @@ im_window_add (GtkWidget *widget) im_window_add_tab (widget); /* Show it all */ - gtk_widget_show_all (im_window); + gtk_widget_show_all (GTK_WIDGET(im_window_get())); } else { ERROR ("InstantMessaging: Error: Could not create the main instant messaging window"); diff --git a/gnome/src/imwindow.h b/gnome/src/imwindow.h index f0d1de2e0774a4da3eb11345c69952cd2084cc40..1a3ab3f1cf801b77a7b70c6e596fca060199e602 100644 --- a/gnome/src/imwindow.h +++ b/gnome/src/imwindow.h @@ -42,12 +42,6 @@ * @brief The IM window of the client. */ -/*! @function - * Display the IM window - * @return GtkWidget* The IM window - */ -GtkWidget *im_window_get(); - /*! @function @abstract Add IM widget to the IM window */ diff --git a/gnome/src/mainwindow.c b/gnome/src/mainwindow.c index 66b201fd5f533968a125a0e0d64ea7b51d700e49..18f917172a01d124b41fc1977f151db8a0adb8fc 100644 --- a/gnome/src/mainwindow.c +++ b/gnome/src/mainwindow.c @@ -44,6 +44,7 @@ #include <widget/minidialog.h> #include "uimanager.h" +#include <sys/stat.h> #include <gtk/gtk.h> #include <eel-gconf-extensions.h> @@ -200,7 +201,9 @@ create_main_window () gtk_container_set_border_width (GTK_CONTAINER (window), 0); gtk_window_set_title (GTK_WINDOW (window), window_title); gtk_window_set_default_size (GTK_WINDOW (window), width, height); - gtk_window_set_default_icon_from_file (LOGO, NULL); + struct stat st; + if (!stat(LOGO, &st)) + gtk_window_set_default_icon_from_file (LOGO, NULL); gtk_window_set_position (GTK_WINDOW (window) , GTK_WIN_POS_MOUSE); /* Connect the destroy event of the window with our on_destroy function diff --git a/gnome/src/uimanager.c b/gnome/src/uimanager.c index 0ca3b4fdc8ffc2f65a100040d2dcab2c79d4b998..e3c2f44e27951bc91d5971e0164450ffa0012bdf 100644 --- a/gnome/src/uimanager.c +++ b/gnome/src/uimanager.c @@ -53,6 +53,8 @@ #include "accountlist.h" #include "config/accountlistconfigdialog.h" +#include <sys/stat.h> + void show_edit_number (callable_obj_t *call); static GtkWidget *toolbar; @@ -1731,12 +1733,13 @@ show_edit_number (callable_obj_t *call) } -GtkWidget* +static GtkWidget* create_waiting_icon() { - GtkWidget * waiting_icon; - waiting_icon = gtk_image_menu_item_new_with_label (""); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (waiting_icon), + GtkWidget * waiting_icon = gtk_image_menu_item_new_with_label (""); + struct stat st; + if (!stat(ICONS_DIR "/wait-on.gif", &st)) + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (waiting_icon), gtk_image_new_from_animation (gdk_pixbuf_animation_new_from_file ( ICONS_DIR "/wait-on.gif", NULL))); gtk_menu_item_set_right_justified (GTK_MENU_ITEM (waiting_icon), TRUE);