diff options
author | Jeffrey Stedfast <fejj@ximian.com> | 2003-02-25 15:03:46 +0800 |
---|---|---|
committer | Jeffrey Stedfast <fejj@src.gnome.org> | 2003-02-25 15:03:46 +0800 |
commit | f446063c572a9278fa3ce8e6b359c541ace68814 (patch) | |
tree | 6838d63be3bf113b1cad1d5c139151e289d41566 /widgets/misc/e-calendar-item.c | |
parent | bcc58d8bc72d02a6a54f52fda53f7f4f1d192d6a (diff) | |
download | gsoc2013-evolution-f446063c572a9278fa3ce8e6b359c541ace68814.tar.gz gsoc2013-evolution-f446063c572a9278fa3ce8e6b359c541ace68814.tar.zst gsoc2013-evolution-f446063c572a9278fa3ce8e6b359c541ace68814.zip |
Same as below.
2003-02-25 Jeffrey Stedfast <fejj@ximian.com>
* e-dateedit.c (on_date_popup_date_selected): Same as below.
* e-cell-date-edit.c (e_cell_date_edit_on_ok_clicked): Also
updated to use the new GDate API from glib 2.0
* test-calendar.c (on_selection_changed): Fixed to use glib 2.0's
GDate API.
* e-calendar-item.c (e_calendar_item_get_week_number): Port to
glib 2.0's GDate API.
(e_calendar_item_set_selection): Same.
* e-search-bar.c (append_xml_menu_item): Use
g_string_append_printf instead of g_string_sprintfa since the
latter is now deprecated.
(setup_bonobo_menus): Same.
* e-filter-bar.c (do_advanced): Use gtk_window_set_resizable()
* e-charset-picker.c: Fixes to make it build cleanly with
-DG_DISABLE_DEPRECATED
(add_charset): Escape _'s so we don't get underline weirdness due
to GtkLabel thinking the _ means to underline the next char.
(e_charset_picker_bonobo_ui_populate): Same here.
svn path=/trunk/; revision=20048
Diffstat (limited to 'widgets/misc/e-calendar-item.c')
-rw-r--r-- | widgets/misc/e-calendar-item.c | 58 |
1 files changed, 31 insertions, 27 deletions
diff --git a/widgets/misc/e-calendar-item.c b/widgets/misc/e-calendar-item.c index 8d3bd80853..3e781a9d3e 100644 --- a/widgets/misc/e-calendar-item.c +++ b/widgets/misc/e-calendar-item.c @@ -25,7 +25,10 @@ * ECalendarItem - canvas item displaying a calendar. */ + +#ifdef HAVE_CONFIG_H #include <config.h> +#endif #include "e-calendar-item.h" @@ -1498,37 +1501,38 @@ e_calendar_item_get_week_number (ECalendarItem *calitem, gint month, gint year) { - GDate tmp_date; - gint weekday, yearday, offset, week_num; - + GDate date; + guint weekday, yearday; + int offset, week_num; + /* FIXME: check what happens at year boundaries. */ - - g_date_clear (&tmp_date, 1); - g_date_set_dmy (&tmp_date, day, month + 1, year); - - /* This results in a value of 0 (Monday) - 6 (Sunday). */ - weekday = g_date_weekday (&tmp_date) - 1; - + + g_date_clear (&date, 1); + g_date_set_dmy (&date, day, month + 1, year); + + /* This results in a value of 0 (Monday) - 6 (Sunday). (or -1 on error - oops!!) */ + weekday = g_date_get_weekday (&date) - 1; + /* Calculate the offset from the start of the week. */ offset = (calitem->week_start_day + 7 - weekday) % 7; - + /* Calculate the day of the year, from 0 to 365. */ - yearday = g_date_day_of_year (&tmp_date) - 1; - + yearday = g_date_get_day_of_year (&date) - 1; + /* If the week starts on or after 29th December, it is week 1 of the next year, since there are 4 days in the next year. */ - g_date_subtract_days (&tmp_date, offset); - if (g_date_month (&tmp_date) == 12 && g_date_day (&tmp_date) >= 29) + g_date_subtract_days (&date, offset); + if (g_date_get_month (&date) == 12 && g_date_get_day (&date) >= 29) return 1; - + /* Calculate the week number, from 0. */ week_num = (yearday - offset) / 7; - + /* If the first week starts on or after Jan 5th, then we need to add 1 since the previous week will really be the first week. */ if ((yearday - offset) % 7 >= 4) week_num++; - + /* Add 1 so week numbers are from 1 to 53. */ return week_num + 1; } @@ -2683,16 +2687,16 @@ e_calendar_item_set_selection (ECalendarItem *calitem, if (end_date == NULL) end_date = start_date; - + g_return_if_fail (g_date_compare (start_date, end_date) <= 0); - - start_year = g_date_year (start_date); - start_month = g_date_month (start_date) - 1; - start_day = g_date_day (start_date); - end_year = g_date_year (end_date); - end_month = g_date_month (end_date) - 1; - end_day = g_date_day (end_date); - + + start_year = g_date_get_year (start_date); + start_month = g_date_get_month (start_date) - 1; + start_day = g_date_get_day (start_date); + end_year = g_date_get_year (end_date); + end_month = g_date_get_month (end_date) - 1; + end_day = g_date_get_day (end_date); + need_update = e_calendar_item_ensure_days_visible (calitem, start_year, start_month, |