diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2007-04-02 12:19:25 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@src.gnome.org> | 2007-04-02 12:19:25 +0800 |
commit | b5365bc587c99c0eb18293c4e70029782a185d56 (patch) | |
tree | c28ff26a508bcb3195b7b74868540f3c9ffc1458 /mail/em-mailer-prefs.c | |
parent | 7dd3f720c743488c2aac7b6a1cfcdb97b1c1ac70 (diff) | |
download | gsoc2013-evolution-b5365bc587c99c0eb18293c4e70029782a185d56.tar.gz gsoc2013-evolution-b5365bc587c99c0eb18293c4e70029782a185d56.tar.zst gsoc2013-evolution-b5365bc587c99c0eb18293c4e70029782a185d56.zip |
** Fixes bug #373116
2007-04-01 Matthew Barnes <mbarnes@redhat.com>
** Fixes bug #373116
* calendar/gui/calendar-component.c (ensure_sources):
* calendar/gui/e-cal-model.c (ecm_get_color_for_component):
* calendar/gui/memos-component.c (ensure_sources):
* calendar/gui/migration.c (create_calendar_contact_source),
(create_calendar_sources), (create_task_sources),
(create_memo_sources), (add_gw_esource):
* calendar/gui/tasks-component.c (ensure_sources):
* plugins/groupwise-account-setup/camel-gw-listener.c (add_esource):
Use the new ESource color API.
* calendar/gui/dialogs/cal-prefs-dialog.c:
* calendar/gui/dialogs/cal-prefs-dialog.glade:
* calendar/gui/dialogs/calendar-setup.c:
* calendar/gui/dialogs/calendar-setup.glade:
* filter-colour.c (get_widget):
* mail/em-composer-prefs.c:
* mail/em-composer-prefs.h:
* mail/em-mailer-prefs.c:
* mail/em-mailer-prefs.h:
* mail/mail-config.glade:
Migrate from GnomeColorPicker to GtkColorButton.
* filter/filter-colour.h:
Store color as a GdkColor instead of separate RGBA components.
* filter/filter-colour.c (color_eq):
Use gdk_color_equal() to compare colors.
* filter/filter-colour.c (xml_encode):
Encode color as a single property ("spec").
* filter/filter-colour.c (xml_decode):
Read the color from a single property ("spec").
Provide a migration path for old XML files.
* calendar/gui/calendar-component.c
(calendar_config_get_tasks_due_today_color),
(calendar_config_get_tasks_overdue_color):
Return a GdkColor instead of an X color specification.
* calendar/gui/calendar-component.c
(calendar_config_set_tasks_due_today_color),
(calendar_config_set_tasks_overdue_color):
Accept a GdkColor instead of an X color specification.
* calenar/gui/e-cal-model-tasks.c (ecmt_get_color_for_component):
Adapt to modified color API in calendar-component.c by converting
the GdkColor to an X color specification. This is an ugly hack to
be fixed later.
svn path=/trunk/; revision=33349
Diffstat (limited to 'mail/em-mailer-prefs.c')
-rw-r--r-- | mail/em-mailer-prefs.c | 71 |
1 files changed, 26 insertions, 45 deletions
diff --git a/mail/em-mailer-prefs.c b/mail/em-mailer-prefs.c index c552ad7e92..064ef1256a 100644 --- a/mail/em-mailer-prefs.c +++ b/mail/em-mailer-prefs.c @@ -35,7 +35,7 @@ #include "misc/e-charset-picker.h" #include <bonobo/bonobo-generic-factory.h> -#include <libgnomeui/gnome-color-picker.h> +#include <gtk/gtkcolorbutton.h> #include <gtk/gtkfilechooserbutton.h> #include <gtk/gtkfontbutton.h> @@ -157,49 +157,27 @@ em_mailer_prefs_finalise (GObject *obj) static void -colorpicker_set_color (GnomeColorPicker *color, const char *str) +color_button_set_color (GtkColorButton *color_button, const gchar *spec) { - GdkColor colour; - guint32 rgb; - - gdk_color_parse (str, &colour); - rgb = ((colour.red & 0xff00) << 8) | (colour.green & 0xff00) | ((colour.blue & 0xff00) >> 8); - - gnome_color_picker_set_i8 (color, (rgb & 0xff0000) >> 16, (rgb & 0xff00) >> 8, rgb & 0xff, 0xff); -} + GdkColor color; -static guint32 -colorpicker_get_color (GnomeColorPicker *color) -{ - guint8 r, g, b, a; - guint32 rgb = 0; - - gnome_color_picker_get_i8 (color, &r, &g, &b, &a); - - rgb = r; - rgb <<= 8; - rgb |= g; - rgb <<= 8; - rgb |= b; - - return rgb; + if (gdk_color_parse (spec, &color)) + gtk_color_button_set_color (color_button, &color); } static void -citation_color_set (GtkWidget *widget, guint r, guint g, guint b, guint a, EMMailerPrefs *prefs) +citation_color_set (GtkColorButton *color_button, EMMailerPrefs *prefs) { - guint32 rgb = 0; - char buf[20]; - - rgb = r & 0xff; - rgb <<= 8; - rgb |= g & 0xff; - rgb <<= 8; - rgb |= b & 0xff; - - sprintf (buf, "#%06x", rgb & 0xffffff); - - gconf_client_set_string (prefs->gconf, "/apps/evolution/mail/display/citation_colour", buf, NULL); + GdkColor color; + gchar spec[16]; + + gtk_color_button_get_color (color_button, &color); + g_snprintf (spec, sizeof (spec), "#%04x%04x%04x", + color.red, color.green, color.blue); + + gconf_client_set_string (prefs->gconf, + "/apps/evolution/mail/display/citation_colour", + spec, NULL); } static void @@ -212,9 +190,12 @@ labels_changed (EMMailerPrefs *prefs) int i; for (i = 4; i >= 0; i--) { + GdkColor color; + cstring = gtk_entry_get_text (prefs->labels[i].name); - rgb = colorpicker_get_color (prefs->labels[i].color); - string = g_strdup_printf ("%s:#%06x", cstring, rgb & 0xffffff); + gtk_color_button_get_color (prefs->labels[i].color, &color); + string = g_strdup_printf ("%s:#%04x%04x%04x", cstring, + color.red, color.green, color.blue); list = g_slist_prepend (list, string); } @@ -249,7 +230,7 @@ restore_labels_clicked (GtkWidget *widget, gpointer user_data) for (i = 0; i < 5; i++) { gtk_entry_set_text (prefs->labels[i].name, _(label_defaults[i].name)); - colorpicker_set_color (prefs->labels[i].color, label_defaults[i].colour); + color_button_set_color (prefs->labels[i].color, label_defaults[i].colour); atk_object_set_name(gtk_widget_get_accessible((GtkWidget *)prefs->labels[i].color), _(label_defaults[i].name)); } } @@ -812,9 +793,9 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs) "/apps/evolution/mail/display/mark_citations", G_CALLBACK (toggle_button_toggled)); - prefs->citation_color = GNOME_COLOR_PICKER (glade_xml_get_widget (gui, "colorpickerHighlightCitations")); + prefs->citation_color = GTK_COLOR_BUTTON (glade_xml_get_widget (gui, "colorButtonHighlightCitations")); buf = gconf_client_get_string (prefs->gconf, "/apps/evolution/mail/display/citation_colour", NULL); - colorpicker_set_color (prefs->citation_color, buf ? buf : "#737373"); + color_button_set_color (prefs->citation_color, buf ? buf : "#737373"); g_signal_connect (prefs->citation_color, "color-set", G_CALLBACK (citation_color_set), prefs); if (!gconf_client_key_is_writable (prefs->gconf, "/apps/evolution/mail/display/citation_colour", NULL)) gtk_widget_set_sensitive ((GtkWidget *) prefs->citation_color, FALSE); @@ -935,14 +916,14 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs) g_free (widget_name); widget_name = g_strdup_printf ("colorLabel%d", i); - prefs->labels[i].color = GNOME_COLOR_PICKER (glade_xml_get_widget (gui, widget_name)); + prefs->labels[i].color = GTK_COLOR_BUTTON (glade_xml_get_widget (gui, widget_name)); gtk_widget_set_sensitive ((GtkWidget *) prefs->labels[i].color, !locked); g_free (widget_name); gtk_entry_set_text (prefs->labels[i].name, label->name); g_signal_connect (prefs->labels[i].name, "changed", G_CALLBACK (label_entry_changed), prefs); - colorpicker_set_color (prefs->labels[i].color, label->colour); + color_button_set_color (prefs->labels[i].color, label->colour); g_signal_connect (prefs->labels[i].color, "color-set", G_CALLBACK (label_color_set), prefs); atk_object_set_name(gtk_widget_get_accessible((GtkWidget *)prefs->labels[i].color), label->name); |