aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/year-view.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/year-view.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/year-view.c')
-rw-r--r--calendar/year-view.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/calendar/year-view.c b/calendar/year-view.c
index d5710228df..da39318ecd 100644
--- a/calendar/year-view.c
+++ b/calendar/year-view.c
@@ -313,13 +313,15 @@ do_quick_view_popup (YearView *yv, GdkEventButton *event, int year, int month, i
time_t day_start, day_end;
GList *list;
GtkWidget *qv;
+ char date_str[256];
day_start = time_from_day (year, month, day);
day_end = time_end_of_day (day_start);
list = calendar_get_events_in_range (yv->calendar->cal, day_start, day_end);
- qv = quick_view_new (yv->calendar, "Put the date here", list);
+ strftime (date_str, sizeof (date_str), "%a %b %d %Y", localtime (&day_start));
+ qv = quick_view_new (yv->calendar, date_str, list);
quick_view_do_popup (QUICK_VIEW (qv), event);
@@ -425,6 +427,10 @@ setup_month_item (YearView *yv, int n)
gtk_signal_connect (GTK_OBJECT (mitem), "event",
(GtkSignalFunc) month_event,
NULL);
+
+ /* Prepare for prelighting */
+
+ month_item_prepare_prelight (GNOME_MONTH_ITEM (mitem), default_color_func, NULL);
}
static void
@@ -507,6 +513,7 @@ year_view_new (GnomeCalendar *calendar, time_t year)
yv = gtk_type_new (year_view_get_type ());
yv->calendar = calendar;
+ year_view_colors_changed (yv);
year_view_set (yv, year);
return GTK_WIDGET (yv);
}
@@ -591,7 +598,10 @@ year_view_set (YearView *yv, time_t year)
/* Unmark and re-mark all the months */
- year_view_colors_changed (yv);
+ for (i = 0; i < 12; i++) {
+ unmark_month_item (GNOME_MONTH_ITEM (yv->mitems[i]));
+ mark_month_item (GNOME_MONTH_ITEM (yv->mitems[i]), yv->calendar->cal);
+ }
}
void
@@ -618,9 +628,9 @@ year_view_colors_changed (YearView *yv)
g_return_if_fail (yv != NULL);
g_return_if_fail (IS_YEAR_VIEW (yv));
+
for (i = 0; i < 12; i++) {
- unmark_month_item (GNOME_MONTH_ITEM (yv->mitems[i]));
+ colorify_month_item (GNOME_MONTH_ITEM (yv->mitems[i]), default_color_func, NULL);
mark_month_item (GNOME_MONTH_ITEM (yv->mitems[i]), yv->calendar->cal);
- month_item_prepare_prelight (GNOME_MONTH_ITEM (yv->mitems[i]), default_prelight_func, NULL);
}
}