* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#include <glib/gi18n.h>
#include "modest-toolbar.h"
/* 'private'/'protected' functions */
static void
modest_toolbar_init (ModestToolbar *obj)
{
+ ModestToolbarPrivate *priv;
+ priv = MODEST_TOOLBAR_GET_PRIVATE(obj);
+
+ priv->tooltips = NULL;
}
static void
modest_toolbar_finalize (GObject *obj)
{
+ ModestToolbarPrivate *priv;
+ priv = MODEST_TOOLBAR_GET_PRIVATE(obj);
+
+ if (priv->tooltips) {
+ g_object_ref_sink (G_OBJECT(priv->tooltips));
+ priv->tooltips = NULL;
+ }
+
G_OBJECT_CLASS(parent_class)->finalize (obj);
}
modest_toolbar_set_buttons (ModestToolbar *self, const GSList *buttons)
{
const GSList *cursor;
- GtkTooltips *tooltips;
-
- g_return_val_if_fail (self, FALSE);
+ ModestToolbarPrivate *priv;
+
+ priv = MODEST_TOOLBAR_GET_PRIVATE(self);
- tooltips = gtk_tooltips_new ();
- gtk_tooltips_enable (tooltips);
+ priv->tooltips = gtk_tooltips_new ();
+ gtk_tooltips_enable (priv->tooltips);
gtk_toolbar_set_tooltips (GTK_TOOLBAR(self), TRUE);
cursor = buttons;
g_printerr ("modest: error getting data for toolbar button %d\n",
button_id);
else {
- GtkWidget *icon;
- GtkToolItem *button;
- GdkPixbuf *pixbuf;
+ GtkWidget *icon = NULL;
+ GtkToolItem *button = NULL;
+ GdkPixbuf *pixbuf = NULL;
pixbuf = modest_icon_factory_get_icon_at_size (icon_name, 24, 24);
- icon = gtk_image_new_from_pixbuf ((GdkPixbuf*)pixbuf);
+ if (pixbuf)
+ icon = gtk_image_new_from_pixbuf ((GdkPixbuf*)pixbuf);
button = gtk_tool_button_new (icon, label);
g_object_set_data (G_OBJECT(button), "button_id",
GINT_TO_POINTER(button_id));
g_signal_connect (G_OBJECT(button), "clicked",
G_CALLBACK(on_toolbutton_clicked), self);
- gtk_tooltips_set_tip (tooltips, GTK_WIDGET(button),tooltip, NULL);
+ gtk_tooltips_set_tip (priv->tooltips, GTK_WIDGET(button),
+ tooltip, NULL);
gtk_widget_show_all (GTK_WIDGET(button));
gtk_toolbar_insert (GTK_TOOLBAR(self), button, -1);
}