diff options
author | Arturo Espinosa <unammx@src.gnome.org> | 1998-10-14 08:14:32 +0800 |
---|---|---|
committer | Arturo Espinosa <unammx@src.gnome.org> | 1998-10-14 08:14:32 +0800 |
commit | b09a9a669de8909d929aee7b586805e9d753f7ff (patch) | |
tree | 091e6ed7a7a56781f9c8b49fae8f0f55c3b6d9ee /calendar/gui | |
parent | 6dd325d7ea195125a87769f8e51ef1b167720cc6 (diff) | |
download | gsoc2013-evolution-b09a9a669de8909d929aee7b586805e9d753f7ff.tar gsoc2013-evolution-b09a9a669de8909d929aee7b586805e9d753f7ff.tar.gz gsoc2013-evolution-b09a9a669de8909d929aee7b586805e9d753f7ff.tar.bz2 gsoc2013-evolution-b09a9a669de8909d929aee7b586805e9d753f7ff.tar.lz gsoc2013-evolution-b09a9a669de8909d929aee7b586805e9d753f7ff.tar.xz gsoc2013-evolution-b09a9a669de8909d929aee7b586805e9d753f7ff.tar.zst gsoc2013-evolution-b09a9a669de8909d929aee7b586805e9d753f7ff.zip |
sync sync - Federico
svn path=/trunk/; revision=449
Diffstat (limited to 'calendar/gui')
-rw-r--r-- | calendar/gui/month-view.c | 159 |
1 files changed, 17 insertions, 142 deletions
diff --git a/calendar/gui/month-view.c b/calendar/gui/month-view.c index a5a5ce308a..8fd8ed799c 100644 --- a/calendar/gui/month-view.c +++ b/calendar/gui/month-view.c @@ -143,71 +143,9 @@ month_view_size_request (GtkWidget *widget, GtkRequisition *requisition) requisition->height = 150; } -#if 0 /* Time runs horizontally */ -/* Adjusts a single segment from a child */ -static void -adjust_segment (MonthView *mv, struct child *child, struct segment *seg) -{ - struct tm start, end; - GnomeCanvasItem *start_item, *end_item; - GnomeCanvasItem *item; - int start_day_index, end_day_index; - double ix1, iy1, ix2, iy2; - double ly2; - double width, height; - time_t day_begin, day_end; - double start_factor, end_factor; - double slot_height; - - /* Find the days that the segment intersects and get their bounds */ - - start = *localtime (&seg->start); - end = *localtime (&seg->end); - - start_day_index = gnome_month_item_day2index (GNOME_MONTH_ITEM (mv->mitem), start.tm_mday); - g_assert (start_day_index != -1); - - end_day_index = gnome_month_item_day2index (GNOME_MONTH_ITEM (mv->mitem), end.tm_mday); - g_assert (end_day_index != -1); - - start_item = gnome_month_item_num2child (GNOME_MONTH_ITEM (mv->mitem), - start_day_index + GNOME_MONTH_ITEM_DAY_GROUP); - end_item = gnome_month_item_num2child (GNOME_MONTH_ITEM (mv->mitem), - end_day_index + GNOME_MONTH_ITEM_DAY_GROUP); - - gnome_canvas_item_get_bounds (start_item, &ix1, &iy1, NULL, &iy2); - gnome_canvas_item_get_bounds (end_item, NULL, NULL, &ix2, NULL); - - /* Get the lower edge of the day label */ - - item = gnome_month_item_num2child (GNOME_MONTH_ITEM (mv->mitem), start_day_index + GNOME_MONTH_ITEM_DAY_LABEL); - gnome_canvas_item_get_bounds (item, NULL, NULL, NULL, &ly2); - - /* Calculate usable space */ - - iy1 += ly2; - width = ix2 - ix1; - height = iy2 - iy1; - - /* Set the segment's item coordinates */ - - day_begin = time_day_begin (seg->start); - day_end = time_day_end (seg->end); - - start_factor = (double) (seg->start - day_begin) / (day_end - day_begin); - end_factor = (double) (seg->end - day_begin) / (day_end - day_begin); - - slot_height = height / mv->num_slots; - - gnome_canvas_item_set (seg->item, - "x1", ix1 + width * start_factor, - "y1", iy1 + slot_height * child->slot_start, - "x2", ix1 + width * end_factor, - "y2", iy1 + slot_height * (child->slot_start + child->slots_used), - NULL); -} -#endif - +/* Adjusts a single segment from a child. Takes the dimensions of the day the segment is on and + * resizes the segment's canvas item to the apporpriate size and position. + */ static void adjust_segment (MonthView *mv, struct child *child, struct segment *seg) { @@ -219,7 +157,7 @@ adjust_segment (MonthView *mv, struct child *child, struct segment *seg) double x1, y1, x2, y2; double y; double slot_width; - time_t day_begin, day_end; + time_t day_begin_time, day_end_time; double start_factor, end_factor; mitem = GNOME_MONTH_ITEM (mv->mitem); @@ -248,11 +186,11 @@ adjust_segment (MonthView *mv, struct child *child, struct segment *seg) /* Set the coordinates of the segment's item */ - day_begin = time_day_begin (seg->start); - day_end = time_day_end (seg->end); + day_begin_time = time_day_begin (seg->start); + day_end_time = time_day_end (seg->end); - start_factor = (double) (seg->start - day_begin) / (day_end - day_begin); - end_factor = (double) (seg->end - day_begin) / (day_end - day_begin); + start_factor = (double) (seg->start - day_begin_time) / (day_end_time - day_begin_time); + end_factor = (double) (seg->end - day_begin_time) / (day_end_time - day_begin_time); gnome_canvas_item_set (seg->item, "x1", x1 + slot_width * child->slot_start, @@ -347,9 +285,8 @@ child_destroy (MonthView *mv, struct child *child) g_free (child); } -#if 0 /* Time runs horizontally */ /* Creates the list of segments that are used to display a child. Each child may have several - * segments, because it may span several weeks in the month view. This function only creates the + * segments, because it may span several days in the month view. This function only creates the * segment structures and the associated canvas items, but it does not set their final position in * the month view canvas -- that is done by the adjust_children() function. */ @@ -358,69 +295,7 @@ child_create_segments (MonthView *mv, struct child *child) { time_t t; time_t month_begin, month_end; - time_t week_begin, week_end; - time_t left, right; - struct segment *seg; - - /* Get the month's extents */ - - t = time_from_day (mv->year, mv->month, 1); - month_begin = time_month_begin (t); - month_end = time_month_end (t); - - /* Get the first week of the event */ - - t = MAX (child->start, month_begin); - week_begin = time_week_begin (t); - - if (week_starts_on_monday) - time_add_day (week_begin, 1); - - week_end = time_add_week (week_begin, 1); - - /* Loop until the event ends or the month ends -- the segments list is created in reverse - * order. - */ - - do { - seg = g_new (struct segment, 1); - - /* Clip the child to this week */ - - left = MAX (week_begin, month_begin); - right = MIN (week_end, month_end); - - seg->start = MAX (child->start, left); - seg->end = MIN (child->end, right); - - seg->item = gnome_canvas_item_new (GNOME_CANVAS_GROUP (mv->mitem), - gnome_canvas_rect_get_type (), - "fill_color", color_spec_from_prop (COLOR_PROP_MARK_DAY_BG), - "outline_color", "black", - "width_pixels", 0, - NULL); - - child->segments = g_list_prepend (child->segments, seg); - - /* Next week */ - - week_begin = time_add_week (week_begin, 1); - week_end = time_add_week (week_end, 1); - } while ((child->end > week_begin) && (week_begin < month_end)); - - /* Reverse the list to put it in increasing order */ - - child->segments = g_list_reverse (child->segments); -} -#endif - -/* Time runs vertically */ -static void -child_create_segments (MonthView *mv, struct child *child) -{ - time_t t; - time_t month_begin, month_end; - time_t day_begin, day_end; + time_t day_begin_time, day_end_time; struct segment *seg; /* Get the month's extents */ @@ -432,8 +307,8 @@ child_create_segments (MonthView *mv, struct child *child) /* Get the first day of the event */ t = MAX (child->start, month_begin); - day_begin = time_day_begin (t); - day_end = time_day_end (day_begin); + day_begin_time = time_day_begin (t); + day_end_time = time_day_end (day_begin_time); /* Loop until the event ends or the month ends -- the segments list is created in reverse * order. @@ -444,8 +319,8 @@ child_create_segments (MonthView *mv, struct child *child) /* Clip the child to this day */ - seg->start = MAX (child->start, day_begin); - seg->end = MIN (child->end, day_end); + seg->start = MAX (child->start, day_begin_time); + seg->end = MIN (child->end, day_end_time); seg->item = gnome_canvas_item_new (GNOME_CANVAS_GROUP (mv->mitem), gnome_canvas_rect_get_type (), @@ -458,9 +333,9 @@ child_create_segments (MonthView *mv, struct child *child) /* Next day */ - day_begin = time_add_day (day_begin, 1); - day_end = time_day_end (day_begin); - } while ((child->end > day_begin) && (day_begin < month_end)); + day_begin_time = time_add_day (day_begin_time, 1); + day_end_time = time_day_end (day_begin_time); + } while ((child->end > day_begin_time) && (day_begin_time < month_end)); /* Reverse the list to put it in increasing order */ |