From 5c49e5e936ded97a806bb73243f75fd0eedfb326 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C3=ABl=20Carr=C3=A9?= <rafael.carre@savoirfairelinux.com> Date: Fri, 26 Aug 2011 16:37:18 -0400 Subject: [PATCH] Don't give glib warnings if icons are not found --- gnome/src/imwindow.c | 36 ++++++++++++++++++++---------------- gnome/src/imwindow.h | 6 ------ gnome/src/mainwindow.c | 5 ++++- gnome/src/uimanager.c | 11 +++++++---- 4 files changed, 31 insertions(+), 27 deletions(-) diff --git a/gnome/src/imwindow.c b/gnome/src/imwindow.c index f501e8fe96..8d5c07f2eb 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 f0d1de2e07..1a3ab3f1cf 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 66b201fd5f..18f917172a 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 0ca3b4fdc8..e3c2f44e27 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); -- GitLab