X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fhildon-color-chooser-dialog.c;h=902a4752cf443da815ca70e341c0a6b1074354bd;hb=7d3f0468795e7298a98578fbb054b5cb9908d523;hp=69b2a3734aabcf15c09da72457aba434f9875fae;hpb=059ec9ebf2da95083f0c036329c72bb7de62a7ef;p=hildon diff --git a/src/hildon-color-chooser-dialog.c b/src/hildon-color-chooser-dialog.c index 69b2a37..902a475 100644 --- a/src/hildon-color-chooser-dialog.c +++ b/src/hildon-color-chooser-dialog.c @@ -4,12 +4,12 @@ * Copyright (C) 2005, 2006 Nokia Corporation, all rights reserved. * * Author: Kuisma Salonen - * Contact: Michael Dominic Kostrzewa + * Contact: Rodrigo Novo * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation; version 2.1 of - * the License. + * the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of @@ -38,6 +38,8 @@ * */ +#undef HILDON_DISABLE_DEPRECATED + #ifdef HAVE_CONFIG_H #include #endif @@ -45,10 +47,8 @@ #include #include #include -#include #include -#include -#include + #include "hildon-color-chooser-dialog.h" #include "hildon-color-chooser.h" #include "hildon-defines.h" @@ -215,11 +215,10 @@ hildon_color_chooser_dialog_init (HildonColorChooserDialog *objec gtk_box_pack_start (GTK_BOX (priv->vbox), priv->align_custom, FALSE, FALSE, 0); gtk_dialog_add_button (GTK_DIALOG (object), _("ecdg_bd_colour_selector_ok"), GTK_RESPONSE_OK); - gtk_dialog_add_button (GTK_DIALOG (object), _("ecdg_bd_colour_selector_cancel"), GTK_RESPONSE_CANCEL); gtk_dialog_set_default_response (GTK_DIALOG (object), GTK_RESPONSE_OK); g_signal_connect (G_OBJECT (priv->chooser), - "insensitive-press", G_CALLBACK (hildon_color_chooser_dialog_insensitive_press), object); + "query-tooltip", G_CALLBACK (hildon_color_chooser_dialog_insensitive_press), object); g_signal_connect (G_OBJECT (priv->area_custom), "expose-event", G_CALLBACK (hildon_color_chooser_dialog_area_expose), object); @@ -489,6 +488,7 @@ hildon_color_chooser_dialog_unrealize (GtkWidget *widget) for (i = 0; i < tmp; i++) { g_object_unref (priv->gc_array[i]); + priv->gc_array[i] = NULL; } GTK_WIDGET_CLASS (parent_class)->unrealize (widget); @@ -516,6 +516,7 @@ hildon_color_chooser_dialog_style_set (GtkWidget *widget, if (tmpcolor) { priv->style_info.default_color = *tmpcolor; + gdk_color_free (tmpcolor); } else { priv->style_info.default_color.red = 0x0000; priv->style_info.default_color.green = 0x0000; @@ -537,6 +538,7 @@ hildon_color_chooser_dialog_style_set (GtkWidget *widget, for (i = 0; i < tmpn; i++) { g_object_unref (priv->gc_array[i]); + priv->gc_array[i] = NULL; } } @@ -555,6 +557,11 @@ hildon_color_chooser_dialog_style_set (GtkWidget *widget, (priv->style_info.num_buttons.top * priv->style_info.num_buttons.bottom); priv->gc_array = (GdkGC **) g_malloc0 (sizeof (GdkGC *) * tmpn); + if (GTK_WIDGET_REALIZED (widget)) { + for (i = 0; i < tmpn; i++) { + priv->gc_array[i] = gdk_gc_new (widget->window); + } + } if (priv->gconf_client) { @@ -593,6 +600,7 @@ hildon_color_chooser_dialog_style_set (GtkWidget *widget, if (tmpcolor) { priv->colors_defined[i] = *tmpcolor; + gdk_color_free (tmpcolor); } else { if(i < 16) { priv->colors_defined[i] = hardcoded_colors[i]; @@ -876,7 +884,7 @@ hildon_color_chooser_dialog_area_expose (GtkWidget *widget, y = ((i / w) * (tot_h + spacing)); gdk_draw_rectangle (widget->window, - widget->style->black_gc, + (i == num_selected) ? widget->style->bg_gc[GTK_STATE_SELECTED] : widget->style->bg_gc[GTK_STATE_NORMAL], TRUE, (i == num_selected) ? x : x + 2, (i == num_selected) ? y : y + 2, @@ -884,7 +892,7 @@ hildon_color_chooser_dialog_area_expose (GtkWidget *widget, (i == num_selected) ? tot_h : tot_h - 4); gdk_draw_rectangle(widget->window, - widget->style->white_gc, + (i == num_selected) ? widget->style->bg_gc[GTK_STATE_NORMAL] : widget->style->white_gc, TRUE, x + 3, y + 3, @@ -963,16 +971,16 @@ hildon_color_chooser_dialog_color_changed (HildonColorChooser *chooser, HildonColorChooserDialogPrivate *priv = HILDON_COLOR_CHOOSER_DIALOG_GET_PRIVATE (data); char key[128], color_str[13]; int tmp; - GdkColor *color = g_new (GdkColor, 1); + GdkColor color; g_assert (priv); - hildon_color_chooser_get_color (chooser, color); + hildon_color_chooser_get_color (chooser, &color); tmp = (priv->style_info.num_buttons.left * priv->style_info.num_buttons.right); if (priv->selected >= tmp) { - priv->colors_custom[priv->selected - tmp] = *color; + priv->colors_custom[priv->selected - tmp] = color; gdk_gc_set_rgb_fg_color (priv->gc_array[priv->selected], &priv->colors_custom[priv->selected - tmp]); gtk_widget_queue_draw (priv->area_custom); @@ -1011,7 +1019,7 @@ hildon_color_chooser_dialog_refresh_style_info (HildonColorChooserDialog *dialo if (tmp1) { priv->style_info.cont_sizes = *tmp1; - g_free (tmp1); + gtk_border_free (tmp1); } else { priv->style_info.cont_sizes.left = 0; priv->style_info.cont_sizes.right = 8; @@ -1021,7 +1029,7 @@ hildon_color_chooser_dialog_refresh_style_info (HildonColorChooserDialog *dialo if (tmp2) { priv->style_info.radio_sizes = *tmp2; - g_free (tmp2); + gtk_border_free (tmp2); } else { priv->style_info.radio_sizes.left = 16; priv->style_info.radio_sizes.right = 16; @@ -1031,7 +1039,7 @@ hildon_color_chooser_dialog_refresh_style_info (HildonColorChooserDialog *dialo if (tmp3) { priv->style_info.num_buttons = *tmp3; - g_free (tmp3); + gtk_border_free (tmp3); } else { priv->style_info.num_buttons.left = 8; priv->style_info.num_buttons.right = 2;