aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/prop.c
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@nuclecu.unam.mx>1998-10-01 00:44:14 +0800
committerArturo Espinosa <unammx@src.gnome.org>1998-10-01 00:44:14 +0800
commite6ffe37f192876fd256ef29fcbabfbbc009e6c64 (patch)
treeaec1663e19a0fe6b4caf8af8767f669d573aaa97 /calendar/gui/prop.c
parent9e927267cdd157e56c238ea131758ecaadbe6309 (diff)
downloadgsoc2013-evolution-e6ffe37f192876fd256ef29fcbabfbbc009e6c64.tar.gz
gsoc2013-evolution-e6ffe37f192876fd256ef29fcbabfbbc009e6c64.tar.zst
gsoc2013-evolution-e6ffe37f192876fd256ef29fcbabfbbc009e6c64.zip
Stuff that I forgot to commit yesterday.
Stuff that I forgot to commit yesterday. Now the year view has a nifty pop-up view you can activate if you click on a day with mouse button 1. It will display a quick view of the appointments in that day. Also, reworked the marking and coloring code for month items so that the year view is not glacially slow anymore when switching years. It still is slow when first mapping or realizing the year view, I'm not sure why. I will look into that. 1998-09-29 Federico Mena Quintero <federico@nuclecu.unam.mx> * prop.c (fetch_color_spec): Changed name from fetch_prelight_spec and made it conform to the new prelighting mechanism. (fake_mark_days): Set the proper day attributes. (reconfigure_month): Use colorify_month_item(). (fake_mark_days): Use mark_month_item_index(). * mark.c (colorify_month_item): New public function to reset the colors in a month item. (get_attributes): New internal function that creates an array of attributes for the days in a month item. This is the basis of all the new optimizations to month item marking. (unmark_month_item): Now it uses the attributes array to unmark only the days that need unmarking. (mark_event_in_month): Update the day attributes array. (month_item_prepare_prelight): Changed the definition of the prelight color query function. Use the new function. (day_event): Do color changes based on the day attributes array. (mark_month_item_index): New public function to mark a single day by index. (mark_event_in_month): Use mark_month_item_index(). * gnome-month-item.c (gnome_month_item_num2child): Now takes an int, not a GnomeMonthItemChild. (gnome_month_item_child2num): Now returns an int, not a GnomeMonthItemChild. (gnome_month_item_num2day): Now takes an int, not a GnomeMonthItemChild. * goto.c (goto_dialog): Create the days before the year spin button, because the year_changed callback expects the month item to be created. The new semantics of the spin button cause it to emit a value_changed signal on the adjustment upon creation -- is this the behavior we want from it? (goto_dialog): Use gtk_window_set_modal() instead of the deprectaed gnome_dialog_set_modal(). * quick-view.c (quick_view_new): Make it look not as crappy by putting the title inside the frame. (quick_view_do_popup): Fixed the pointer grab and added a cursor. (create_items_for_event): Query the text width/height from the text item using the new object arguments, so that the size of the popup window can be set properly. * year-view.c (do_quick_view_popup): Calculate a nice date string for the popup window. svn path=/trunk/; revision=415
Diffstat (limited to 'calendar/gui/prop.c')
-rw-r--r--calendar/gui/prop.c57
1 files changed, 19 insertions, 38 deletions
diff --git a/calendar/gui/prop.c b/calendar/gui/prop.c
index 936170855f..f0809a45dc 100644
--- a/calendar/gui/prop.c
+++ b/calendar/gui/prop.c
@@ -345,11 +345,11 @@ color_spec_from_picker (int num)
return build_color_spec (r, g, b);
}
-/* Callback used to query prelight color information for the properties box */
+/* Callback used to query color information for the properties box */
static char *
-fetch_prelight_spec (gpointer data)
+fetch_color_spec (ColorProp propnum, gpointer data)
{
- return color_spec_from_picker (COLOR_PROP_PRELIGHT_DAY_BG);
+ return color_spec_from_picker (propnum);
}
/* Marks fake event days in the month item sample */
@@ -357,17 +357,14 @@ static void
fake_mark_days (void)
{
static int day_nums[] = { 1, 4, 8, 16, 17, 18, 20, 25, 28 }; /* some random days */
- int day_index;
+ int first_day_index;
int i;
- GnomeCanvasItem *item;
- for (i = 0; i < (sizeof (day_nums) / sizeof (day_nums[0])); i++) {
- day_index = gnome_month_item_day2index (GNOME_MONTH_ITEM (month_item), day_nums[i]);
- item = gnome_month_item_num2child (GNOME_MONTH_ITEM (month_item), GNOME_MONTH_ITEM_DAY_BOX + day_index);
- gnome_canvas_item_set (item,
- "fill_color", color_spec_from_picker (COLOR_PROP_MARK_DAY_BG),
- NULL);
- }
+ first_day_index = gnome_month_item_day2index (GNOME_MONTH_ITEM (month_item), 1);
+
+ for (i = 0; i < (sizeof (day_nums) / sizeof (day_nums[0])); i++)
+ mark_month_item_index (GNOME_MONTH_ITEM (month_item), first_day_index + day_nums[i] - 1,
+ fetch_color_spec, NULL);
}
/* Switches the month item to the current date and highlights the current day's number */
@@ -399,40 +396,24 @@ set_current_day (void)
NULL);
}
+/* This is the version of a color spec query function that is appropriate for the preferences dialog */
+static char *
+prop_color_func (ColorProp propnum, gpointer data)
+{
+ return color_spec_from_picker (propnum);
+}
+
/* Sets the colors of the month item to the current prerences */
static void
reconfigure_month (void)
{
- /* We have to do this in two calls to gnome_canvas_item_set(), as color_spec_from_picker()
- * returns a pointer to a static string -- and we need two values.
- */
-
- gnome_canvas_item_set (month_item,
- "heading_color", color_spec_from_picker (COLOR_PROP_HEADING_COLOR),
- NULL);
-
- gnome_canvas_item_set (month_item,
- "outline_color", color_spec_from_picker (COLOR_PROP_OUTLINE_COLOR),
- NULL);
-
- gnome_canvas_item_set (month_item,
- "day_box_color", color_spec_from_picker (COLOR_PROP_EMPTY_DAY_BG),
- NULL);
-
- gnome_canvas_item_set (month_item,
- "day_color", color_spec_from_picker (COLOR_PROP_DAY_FG),
- NULL);
-
- gnome_canvas_item_set (month_item,
- "day_font", NORMAL_DAY_FONT,
- NULL);
-
+ colorify_month_item (GNOME_MONTH_ITEM (month_item), prop_color_func, NULL);
fake_mark_days ();
set_current_day ();
/* Reset prelighting information */
- month_item_prepare_prelight (GNOME_MONTH_ITEM (month_item), fetch_prelight_spec, NULL);
+ month_item_prepare_prelight (GNOME_MONTH_ITEM (month_item), fetch_color_spec, NULL);
}
/* Callback used when a color is changed */
@@ -560,7 +541,7 @@ parse_color_spec (char *spec, int *r, int *g, int *b)
}
char *
-color_spec_from_prop (int propnum)
+color_spec_from_prop (ColorProp propnum)
{
return build_color_spec (color_props[propnum].r, color_props[propnum].g, color_props[propnum].b);
}