diff options
author | Federico Mena Quintero <federico@nuclecu.unam.mx> | 1998-10-01 00:44:14 +0800 |
---|---|---|
committer | Arturo Espinosa <unammx@src.gnome.org> | 1998-10-01 00:44:14 +0800 |
commit | e6ffe37f192876fd256ef29fcbabfbbc009e6c64 (patch) | |
tree | aec1663e19a0fe6b4caf8af8767f669d573aaa97 /calendar/year-view.c | |
parent | 9e927267cdd157e56c238ea131758ecaadbe6309 (diff) | |
download | gsoc2013-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.c | 18 |
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); } } |