diff options
author | Federico Mena Quintero <federico@ximian.com> | 2001-07-01 12:59:24 +0800 |
---|---|---|
committer | Federico Mena Quintero <federico@src.gnome.org> | 2001-07-01 12:59:24 +0800 |
commit | a0afdf4f53224a55425a8826c0563faa510fa6c5 (patch) | |
tree | 0b73a44325df455ee96053f0b6983a1d5f9a7592 /calendar/gui/dialogs/cal-prefs-dialog.c | |
parent | 21f1aedda2c1c38589c1f0abb550cabeab8f551f (diff) | |
download | gsoc2013-evolution-a0afdf4f53224a55425a8826c0563faa510fa6c5.tar.gz gsoc2013-evolution-a0afdf4f53224a55425a8826c0563faa510fa6c5.tar.zst gsoc2013-evolution-a0afdf4f53224a55425a8826c0563faa510fa6c5.zip |
Fixes bug #1406.
2001-06-30 Federico Mena Quintero <federico@ximian.com>
Fixes bug #1406.
* gui/calendar-config.c (config_read): Handle the options for the
task list colors.
(calendar_config_write): Ditto.
(calendar_config_get_tasks_due_today_color): New function.
(calendar_config_set_tasks_due_today_color): New function.
(calendar_config_get_tasks_overdue_color): New function.
(calendar_config_set_tasks_overdue_color): New function.
(calendar_config_configure_e_calendar_table): Use
e_table_model_changed() for the colors.
* gui/dialogs/cal-prefs-dialog.glade: Updated the options for the
task list and alarms.
* gui/dialogs/cal-prefs-dialog.c (cal_prefs_dialog_show_config):
Update the task list settings.
(cal_prefs_dialog_update_config): Ditto.
* gui/calendar-model.c (get_color): Deal with tasks for today as
well as overdue tasks. Make it cleaner, even though we have to
duplicate a chunk of is_overdue().
* gui/calendar-commands.c (preferences_cmd): Renamed from
properties_cmd().
svn path=/trunk/; revision=10648
Diffstat (limited to 'calendar/gui/dialogs/cal-prefs-dialog.c')
-rw-r--r-- | calendar/gui/dialogs/cal-prefs-dialog.c | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/calendar/gui/dialogs/cal-prefs-dialog.c b/calendar/gui/dialogs/cal-prefs-dialog.c index 3451f6e4a5..de3cbf2483 100644 --- a/calendar/gui/dialogs/cal-prefs-dialog.c +++ b/calendar/gui/dialogs/cal-prefs-dialog.c @@ -29,6 +29,7 @@ */ #include <config.h> +#include <libgnomeui/gnome-color-picker.h> #include <glade/glade.h> #include <gal/util/e-util.h> #include <e-util/e-dialog-widgets.h> @@ -57,6 +58,10 @@ struct _CalPrefsDialogPrivate { GtkWidget *show_end_times; GtkWidget *compress_weekend; GtkWidget *dnav_show_week_no; + + /* Widgets for the task list options */ + GtkWidget *tasks_due_today_color; + GtkWidget *tasks_overdue_color; }; static const int week_start_day_map[] = { @@ -209,6 +214,9 @@ get_widgets (CalPrefsDialog *prefs) priv->compress_weekend = GW ("compress_weekend"); priv->dnav_show_week_no = GW ("dnav_show_week_no"); + priv->tasks_due_today_color = GW ("tasks_due_today_color"); + priv->tasks_overdue_color = GW ("tasks_overdue_color"); + #undef GW return (priv->dialog @@ -343,6 +351,37 @@ cal_prefs_dialog_use_24_hour_toggled (GtkWidget *button, use_24_hour); } +/* Sets the color in a color picker from an X color spec */ +static void +set_color_picker (GtkWidget *picker, const char *spec) +{ + GdkColor color; + + g_assert (spec != NULL); + + if (!gdk_color_parse (spec, &color)) { + color.red = color.green = color.blue = 0; + return; + } + + gnome_color_picker_set_i16 (GNOME_COLOR_PICKER (picker), + color.red, + color.green, + color.blue, + 65535); +} + +/* Shows the current task list settings in the dialog */ +static void +show_task_list_config (CalPrefsDialog *prefs) +{ + CalPrefsDialogPrivate *priv; + + priv = prefs->priv; + + set_color_picker (priv->tasks_due_today_color, calendar_config_get_tasks_due_today_color ()); + set_color_picker (priv->tasks_overdue_color, calendar_config_get_tasks_overdue_color ()); +} /* Shows the current config settings in the dialog. */ static void @@ -403,8 +442,38 @@ cal_prefs_dialog_show_config (CalPrefsDialog *prefs) /* Date Navigator - Show Week Numbers. */ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->dnav_show_week_no), calendar_config_get_dnav_show_week_no ()); + + /* Task list */ + + show_task_list_config (prefs); +} + +/* Returns a pointer to a static string with an X color spec for the current + * value of a color picker. + */ +static const char * +spec_from_picker (GtkWidget *picker) +{ + static char spec[8]; + guint8 r, g, b; + + gnome_color_picker_get_i8 (GNOME_COLOR_PICKER (picker), &r, &g, &b, NULL); + g_snprintf (spec, sizeof (spec), "#%02x%02x%02x", r, g, b); + + return spec; } +/* Updates the task list config values from the settings in the dialog */ +static void +update_task_list_config (CalPrefsDialog *prefs) +{ + CalPrefsDialogPrivate *priv; + + priv = prefs->priv; + + calendar_config_set_tasks_due_today_color (spec_from_picker (priv->tasks_due_today_color)); + calendar_config_set_tasks_overdue_color (spec_from_picker (priv->tasks_overdue_color)); +} /* Updates the config values based on the settings in the dialog. */ static void @@ -465,6 +534,9 @@ cal_prefs_dialog_update_config (CalPrefsDialog *prefs) /* Date Navigator - Show Week Numbers. */ calendar_config_set_dnav_show_week_no (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->dnav_show_week_no))); + /* Task list */ + update_task_list_config (prefs); + calendar_config_write (); update_all_config_settings (); e_tasks_update_all_config_settings (); |