2009-09-15  Graham Cobb  <g+770@cobb.uk.net>

	* month_view.c (render): Set column heading font and event font
	to black

	* week_view.c (draw_expose_event): set event font to black
	(reload_events_hard): set day font to Dark Olive Green

	* day_view.c (time_layout): Set time foreground to Dark Olive Green
	(event_rect_expose): Set event foreground to Black

2009-09-14  Graham Cobb  <g+770@cobb.uk.net>

	* main.c (main): Remove Tools->Toolbar and Tools->Fullscreen for Fremantle
	(edit_categories): Set dialog as transient for main window (Bug 299)

2009-09-13  Graham Cobb  <g+770@cobb.uk.net>

	* configure.ac: set up MAEMO5 condition for automake

	* pixmaps/Makefile.am (gpe-calendar.png): Conditionalise application icon size

2009-09-09  Graham Cobb  <g+770@cobb.uk.net>

	* configure.ac: Define MAEMO_VERSION and MAEMO_VERSION_MAJOR
	even on non-hildon platforms to make conditional tests easier

	* main.c (main): Use HildonDateButton in Fremantle

2009-09-02  Graham Cobb  <g+770@cobb.uk.net>

	* main.c (main): Add toolbar using hildon_window_add_toolbar
	(toolbar_size_allocate): Add/remove date toolbar using
	hildon_window_add/remove_toolbar

	* gtkdatesel.c (gtk_date_sel_new): Only force month widget size on
	Maemo versions less than 5

2009-09-01  Graham Cobb  <g+770@cobb.uk.net>

	* configure.ac: On Hildon, set up MAEMO_VERSION and MAEMO_VERSION_MAJOR

	* gtkdatesel.c (ARROW_SIZE): Do not force arrow size if we are using Maemo 5
	(make_field): Support platforms which do not set ARROW_SIZE

	* main.c (main): Drop day-of-week display on hildon (note: day-of-week is 
	still shown in title bar). This undoes the change made on 2008-12-02.

2009-08-31  Graham Cobb  <g+770@cobb.uk.net>

	* configure.ac: Port to libsoup2.4

	* calendar-update.c (calendar_push_internal, pushed): Port to libsoup2.4

2009-08-20  Graham Cobb  <g+770@cobb.uk.net>

	* configure.ac: Add --without-libsoundgen option

	* alarm-dialog.h: Conditionalise libsoundgen use

	* alarm-dialog.c (ack_event_clicked): Conditionalise libsoundgen use

	* main.c (alarm_fired): Conditionalise libsoundgen use.
	Include gpe/soundgen.h if libsoundgen in use.

2009-04-15 Ned Ludd  <solar@gentoo.org>
	* gpe-base/gpe-calendar: globals.h 
	* Icon Dir Unification. /usr/share/gpe/pixmaps/ -> /usr/share/pixmaps/gpe/
	* Targeted for gpe-3.0 release.

2008-12-02  Graham Cobb  <g+770@cobb.uk.net>

	* main.c (main): Set application name using g_set_application_name so that
	correct window title appears on Hildon
	(set_title): On Hildon just use date as window title as window manager adds
	"GPE Calendar"
	(main): Add day of week to toolbar (Bug 256)
	(propagate_time): Update day of week on toolbar
	(current_view_consider): Show/hide day of week depending on view

	* gtkdatesel.c (gtk_date_sel_new): Increase width of month selector

2008-12-01  Graham Cobb  <g+770@cobb.uk.net>

	* debian/postinst: add postinst script to rebuild hildon icon cache

	* debian/rules: add configuration and clean sections

	* Add pixmaps/gpe-calendar-64x64.png pixmaps/gpe-calendar-40x40.png
	
	* pixmaps/Makefile.am: create separate Makefile to generate various icons for hildon

	* configure.ac: add pixmaps/Makefile to AC_OUTPUT

	* Makefile.am (SUBDIRS): add pixmaps subdirectory, remove pixmaps from this file

2008-12-01  Neal H. Walfield  <neal@gnu.org>

	* event-cal.c (update_cal): If the event is untimed, set END to
	START plus the duration of the event in days minus one.
	* month_view.c (reload_events_hard): Likewise.
	* week_view.c (reload_events_hard): Likewise.

2008-11-21  Graham Cobb  <g+770@cobb.uk.net>

	* hildon/gpe-calendar.desktop.in.in (_Name): Change name to GPE Calendar.

	* rename pixmap/gpe-calendar.png to pixmap/gpe-calendar-48x48.png.
	Add pixmap/gpe-calendar-26x26.png.
	Makefile.am: Add rule to copy gpe-calendar-48x48.png to gpe-calendar.png.

2008-10-30  Neal H. Walfield  <neal@gnu.org>

	* event-ui.c (struct edit_state): Remove field end_date_floating.
	(sink_end_date): Remove function.
	(sink_end_time): Swap order of parameters.  Update uses.
	(note_time_change): Merge generic and hildon implementations.
	Make the edit state the first parameter.  Update callers.  Reset
	S->END_TIME_FLOATING.
	(note_date_change): Merge generic and hildon implementations.
	Make the edit state the first parameter.  Update callers.
	(build_edit_event_window) [IS_HILDON]: Connect S->STATETIME's
	"focus-out-event" signal to note_time_change.  Connect
	S->ENDTIME's and S->ENDDATE's "focus-out-event" signals to
	sink_end_time.
	(build_edit_event_window) [! IS_HILDON]: Always connect
	S->ENDTIME's and S->ENDDATE's "changed" signals to sink_end_time.
	(build_edit_event_window): After setting date and time, set
	S->RECUR_DAY_FLOATING and S->END_TIME_FLOATING to true.

2008-10-26  Neal H. Walfield  <neal@gnu.org>

	* configure.ac: Remove libxsettings dependency.
	Reported by Graham Cobb <g+gpe@cobb.uk.net>.

2008-10-23  Neal H. Walfield  <neal@gnu.org>

	* day_view.c (reload_events_hard): Correctly calculate the end of
	a day.  Only add an untimed event if the start matches the start
	of the day.
	* event-cal.c (update_cal): If the event is untimed, set END to
	START.
	* month_view.c (reload_events_hard): Likewise.
	* week_view.c (reload_events_hard): Likewise.

2008-10-23  Neal H. Walfield  <neal@gnu.org>

	* util.h (difflocaltime): New declaration.
	* util.c (difflocaltime): New function.
	* day_view.c (time_layout): Replace paramter hour with parameter
	time.  Update users.  Use the local time to calculate the hour.
	(hour_bar_calc): Use difflocaltime when calculating the position
	of the hour bar.
	(reload_events_hard): Use difflocaltime when calculating
	DAY_VIEW->VISIBLE_DURATION.

2008-10-23  Neal H. Walfield  <neal@gnu.org>

	* event-ui.h: Include <stdbool.h>.
	(edit_event): Add parameter remove_event_on_cancel.  Update users.
	* event-ui.c (struct edit_state): Add field
	remove_event_on_cancel.
	(destroy_user_data): If it is true, remove S->EV.
	(click_ok): Clear it.
	(edit_event): Take additional parameter remove_event_on_cancel.
	Set S->REMOVE_EVENT_ON_CANCEL to it.

2008-10-22  Neal H. Walfield  <neal@gnu.org>

	* inotify-syscalls.h: Remove file.
	* Makefile.am (libgpe_calendar_applet_la_SOURCES): Remove
	inotify-syscalls.h.
	* hildon-applet.c: Don't include <linux/inotify.h> or
	"inotify-syscalls.h".  Include <sys/inotify.h>.
	Patch by Adrian Bunk <bunk@stusta.de>.

2008-10-22  Neal H. Walfield  <neal@gnu.org>

	* day_view.c (calc_events_positions): Fix off-by-one error.

2008-10-22  Neal H. Walfield  <neal@gnu.org>

	* event-menu.c (event_menu_new): Fix off-by-one error.

2008-10-22  Neal H. Walfield  <neal@gnu.org>

	* event-menu.c (edit_calendar_cb): New function.
	(event_menu_new): Create a duplicate menu item.

2008-10-22  Neal H. Walfield  <neal@gnu.org>

	* configure.ac: Depend on the libxsettings package.

2008-10-22  Neal H. Walfield  <neal@gnu.org>

	* configure.ac: Don't depend on the esound package.

2008-09-05  Phil Blundell  <pb@reciva.com>

	* po/da.po: New translation, courtesy Joe Hansen.

2008-08-14  Graham Cobb  <g+770@cobb.uk.net>

	* main.c (main): Close database after command line import

2008-08-14  Phil Blundell  <pb@reciva.com>

	* po/Makefile.in.in (EXTRA_DISTFILES): Remove po/ChangeLog.
	* po/ja.po: Update from TP.

2008-08-09  Phil Blundell  <pb@reciva.com>

	* po/sv.po, po/zh_CN.po: Update from TP.

2008-08-06  Phil Blundell  <pb@reciva.com>

	* Version 0.92 released.

2008-07-27  Graham Cobb  <g+770@cobb.uk.net>

	* week_view.c (reload_events_hard): Include Andrew Olmsted's patch (bug 170) to
	fix week display for week starting Sunday

	* main.c (main): Include Andrew Olmsted's patch (bug 170) to add a "week start Sunday"
	option to the View menu.  Additional changes & fixes to this support by GRC.

2008-07-15  Graham Cobb  <g+770@cobb.uk.net>

	* event-ui.c (recur_combo_changed): Fix bug 200: do not translate "" when
	setting increment_unit_postfix for single occurence.
	(build_recurrence_page): Fix bug 199: initialise recurrence dialog correctly
	for single occurrence.

	* main.c (event_list_consider): Fix bug 70: do not manipulate event_list_container
	when creating/destroying event_list and switching to/from event_view if the
	container does not exist (e.g. no sidebar).  Make event_list_hidden into a true 
	counter: incremented if either the sidebar is disabled or the event list view is displayed.

2008-07-12  Graham Cobb  <g+770@cobb.uk.net>

	* main.c (main): Initialise categories library before processing command
	line options such as -e

2008-06-23  Graham Cobb  <g+770@cobb.uk.net>

	* main.c (log_handler): Add the ability to log glib messages to a file,
	particularly for use when invoked from gpesummary.  Define LOG_HANDLER
	as the log file name to enable.

2008-06-15  Graham Cobb  <g+770@cobb.uk.net>

	* main.c (gpe_handle_close): Allow user to choose behaviour when 
	close button is pressed

2008-06-14  Graham Cobb  <g+770@cobb.uk.net>

	* Makefile.am (hildonhomelibdir): Remove home applet from build

2008-06-05  Graham Cobb  <g+770@cobb.uk.net>

	* event-cal.c, event-cal.h: implement missing gtk_event_cal functions. 
	Tidy up other warnings.

	* main.c : replace calls to gtk_calendar_... functions with gtk_event_cal_... 
	functions as GtkEventCal is no longer inherited from GtkCalendar on Hildon.
	Assign focus to calendar in order to workround HildonCalendar bug.

2008-05-01  Graham Cobb  <g+770@cobb.uk.net>

	* alarm-dialog.c (ack_all_events_clicked): Correct handling of list of events
	to be cleared.

2008-01-15  Graham Cobb  <g+770@cobb.uk.net>

	* event-cal.c: On chinook, base event calendar widget on 
	HildonCalendar, not GtkCalendar

2008-01-15  Florian Boor <florian@kernelconcepts.de>

	* hildon/gpe-calendar.png: Use larger icon.
	* Update translations and translation code.
	* Add Japanese translation contributed by Takeshi Hamasaki

2008-01-11  Graham Cobb  <g+770@cobb.uk.net>

	* event-ui.c (build_detail_page): Hack workround for apparent GTK 
	bug (in Chinook release) displaying detail page of event edit dialog
	(build_edit_event_window): remove compilation warning 
	by casting HildonWindow main_window
	(build_edit_event_window): remove compilation warning (hbox)

2007-12-17  Florian Boor <florian@kernelconcepts.de>

	* po/*po: Update translation files.
	* gpe-tp.am: Update translation include to fetch from new location.

2007-11-22  Florian Boor <florian@kernelconcepts.de>

        * po/fi.po: Update Finnish translation

2007-11-05  Graham Cobb  <g+770@cobb.uk.net>

	* configure.c, event-ui.c, import-export.c: Set HILDON_VER to 2

2007-11-02  Graham Cobb  <g+770@cobb.uk.net>

	* configure.ac, Makefile.am: build and compile
	changes for new hildon libraries in chinook

2007-10-24  Graham Cobb  <g+770@cobb.uk.net>

	* alarm-dialog.c (event_get_layout): escape characters from summary, etc in alarm dialog window
	Fixes: GLIB WARNING ** Pango - pango-layout.c:910: Error on line 2: Character ' ' is not valid at the start of an entity name; the & character begins an entity; if this ampersand isn't supposed to be an entity, escape it as &amp;
	This Pango error then causes the alarm display to show the event as blank (no summary, etc.)
	
	(ack_all_events_clicked): zero alarm dialog event pointer after deallocating list.
	I am not certain this is necessary but it doesn't do any harm and it may be the cause of a SEGV fault
	I have seen deallocating this list.

2007-10-22  Graham Cobb  <g+770@cobb.uk.net>

	* event-ui.c (build_recurrence_page): Use newly created hildon_number_editor 
	object in call to hildon_number_editor_set_value.  
	Fixes GLIB critical error: default - hildon_number_editor_set_value: assertion `HILDON_IS_NUMBER_EDITOR(editor)' failed

2007-08-01  Florian Boor <florian.boor@kernelconcepts.de>

	* Release version 0.91

2007-07-29  Florian Boor <florian.boor@kernelconcepts.de>

	* hildon-applet.c: Make sure the .gpe directory is crated. Fixes
	  #55.
	* configure.ac: Add esound dependency.

2007-06-18  Joe McCarthy <mccarthy@granular.che.pitt.edu>

	* main.c: add gpe_cal_deiconify to play nice with the new default of iconifying rather than actually closing (needed for alarms), also to add soundgen_alarm_start() where necessary
	* alarm-dialog.h: add libsoundgen stuff
	* event-ui.c: change alarm defaults to something more reasonable
	* alarm-dialog.c: add audible alarms where necessary (soundgen_alarm_stop() when acknowledged)
	* configure.ac: depend on libsoundgen

2007-06-08  Florian Boor <florian.boor@kernelconcepts.de>

	* Release version 0.90
	* debian: remove from distribution
	* POTFILES.in: update

2007-03-15  Graham Cobb  <g+gpe@cobb.uk.net>

	* debian/control: add gpe-icons to dependencies

2007-03-13  Graham Cobb  <g+gpe@cobb.uk.net>

	* debian/control: fix Depends: to use shlibs

2007-02-21  Florian Boor <florian.boor@kernelconcepts.de>

	* main.c (main): Set toolbar style in Maemo only.

2007-02-21  Neal H. Walfield  <neal@gnu.org>

	* calendar-edit-dialog.c (calendar_edit_dialog_init): Change
	button order.  Reported by Florian Boor
	<florian.boor@kernelconcepts.de>.

2007-02-13  Neal H. Walfield  <neal@gnu.org>

	* configure.ac: Change to version 0.90.  Depend on libeventdb 0.90
	or greater and libgpevtype 0.50 or greater.

2007-02-13  Neal H. Walfield  <neal@gnu.org>

	* configure.ac: Bump to version 0.9.  Depend on libeventdb 0.9 or
	greater and libgpevtype 0.5 or greater.  Update email address.

2007-02-13  Neal H. Walfield  <neal@gnu.org>

	* event-list.h (event_list_set_show_all): New prototype.
	* event-list.c (event_list_set_show_all): New function.
	* hildon-applet.c (hildon_home_applet_lib_initialize): Make all
	events visible.

	* hildon-applet.c (hildon_home_applet_lib_initialize): Update to
	new libeventdb API.

2007-02-13  Neal H. Walfield  <neal@gnu.org>

	* day_popup.c (day_popup): Reuse Pixbufs, not GtkImages.

2007-02-13  Neal H. Walfield  <neal@gnu.org>

	* calendar-update.c (build_message): Check *MSG, not MSG.

2007-02-13  Neal H. Walfield  <neal@gnu.org>

	Closes #1768 (handhelds.org).
	* main.c (main): Call osso_initialize earlier.

2007-02-13  Neal H. Walfield  <neal@gnu.org>

	Closes #1794 (handhelds.org).
	* calendar-update.c (pulled): Correct error logic.

2007-02-13  Neal H. Walfield  <neal@gnu.org>

	* import-export.c (save_as_dialog): Use SUMMARY.

2007-02-13  Neal H. Walfield  <neal@gnu.org>

	* alarm-dialog.c: Update to libeventdb's new API.
	* calendar-delete-dialog.c: Likewise.
	* calendar-edit-dialog.c: Likewise.
	* calendar-update.c: Likewise.
	* calendars-dialog.c: Likewise.
	* calendars-widgets.c: Likewise.
	* day_popup.c: Likewise.
	* day_view.c: Likewise.
	* event-cal.c: Likewise.
	* event-list.c: Likewise.
	* event-menu.c: Likewise.
	* event-ui.c: Likewise.
	* import-export.c: Likewise.
	* main.c: Likewise.
	* month_view.c: Likewise.
	* week_view.c: Likewise.

	* calendar-delete-dialog.c (calendar_delete_dialog_set_calendar):
	Don't get an unnecessary reference to P.
	* calendars-widgets.c (calendars_tree_model): Correctly cast
	info_destroy.
	* event-ui.c (build_recurrence_page): Correctly case SPIN.

2007-02-12  Neal H. Walfield  <neal@gnu.org>

	* day_view.c (event_rect_expose): Use g_strconcat, not g_strjoin.
	Kill the comma in the start date.

2007-02-12  Neal H. Walfield  <neal@gnu.org>

	* gpe-calendar.desktop.in.in (X-home-applet-resizable): Add field.
	(X-home-applet-minwidth): Likewise.
	(X-home-applet-minheight): Likewise.

2007-02-11  Neal H. Walfield  <neal@gnu.org>

	* event-list.c (button_press): Rename from this...
	(button_release): ... to this.  Catch release events.
	(event_list_init): Connect to event_list->view's
	"button-release-event".

2007-02-11  Neal H. Walfield  <neal@gnu.org>

	* event-list.c (event_list_init): Pack WIN at the end of
	EVENT_LIST, not the beginning.
	(event_list_size_request): Call the parent class's size_request
	method at the end.  Don't set REQUISITION, call
	gtk_widget_set_size_request on EVENT_LIST->SCROLLED_WINDOW.
	(event_list_size_allocate): Don't set ALLOCATION directly; call
	the parent class's size_allocate method.
	(event_list_reload_events): Only queue a draw on
	EVENT_LIST->SCROLLED_WINDOW.
	(event_list_set_period_box_visible): Don't return before creating
	the widget.

2007-02-11  Neal H. Walfield  <neal@gnu.org>

	* day_view.c (event_rect_expose): Change the way in which the
	period of an event is displayed.

2006-12-30  Neal H. Walfield  <neal@gnu.org>

	* configure.ac: Depend on version 0.20 or greater of libgpevtype.
	
2006-12-30  Neal H. Walfield  <neal@gnu.org>

	* configure.ac: Remove dependencies on sqlite and mimedir-1.0.

2006-12-29  Neal H. Walfield  <neal@gnu.org>

	* configure.ac: Depend on libgpevtype >= 0.2.
	* Makefile.am (gpe_calendar_SOURCES): Remove import-vcal.c,
	import-vcal.h, export-vcal.c and export-vcal.h.  Add
	import-export.c and import-export.h.
	* import-vcal.h: Remove file.
	* import-vcal.c: Likewise.
	* export-vcal.h: Likewise.
	* export-vcal.c: Likewise.
	* globals.h (ERROR_DOMAIN): Define.
	* import-export.h: New file.
	* import-export.c: New file.
	(new_calendar_clicked): Move here from import-vcal.c.
	(cal_import_from_files): Move import_vcal here from import-vcal.c.
	Update callers.
	(save_as_dialog): Move here from export-vcal.c.
	(event_export_dialog): Move export_event_save_as_dialog here from
	export-vcal.c.  Update callers.
	(cal_export_dialog): Move export_calendar_save_as_dialog here from
	export-vcal.c.  Update callers.
	(dbus_init): New function deprecating vcal_export_init.  Update
	callers.
	(export_bluetooth_available): Move here from export-vcal.c.
	(export_irda_available): Likewise.
	(vcal_do_send_bluetooth): Likewise.
	(vcal_do_send_irda): Likewise.
	* main.c: Include <gpe/vcal.h> and "import-export.h". Don't
	include "import-vcal.h" or "export-vcal.h".
	(do_import_vcal): Move from here...
	* import-export.c (cal_import_dialog): ... to here.
	* event-menu.c: Include "import-export.h".  Don't include
	"export-vcal.h".
	* calendar-update.c: Include <gpe/vtype.h>.  Don't include
	"import-vcal.h" or "export-vcal.h".
	(calendar_push_internal): Don't use export_calendar_as_string, but
	cal_export_as_string.
	(pulled): Don't use import_vcal_from_channel, but
	cal_import_from_channel.

2006-12-28  Neal H. Walfield  <neal@gnu.org>

	* export-vcal.h: Include <mimedir/mimedir-vevent.h>.
	(export_event_as_vevent): New prototype.
	* export-vcal.c (export_event_as_vevent): Correctly export the
	alarm (by Graham Cobb <g+gpe@cobb.uk.net>).

2006-12-28  Neal H. Walfield  <neal@gnu.org>

	* import-vcal.h: Include <mimedir/mimedir-vevent.h>.
	(import_vevent): New prototype.
	(import_vcal): Drop paramter USE_GUI.  Return status messages in a
	GError.
	(import_vcal_from_channel): Likewise.
	(import_vcal_from_channel): Likewise.
	* import-vcal.c: Don't include <gpe/errorbox.h> or
	<gpe/question.h>.  Include <mimedir/mimedir-valarm.h>.
	(ERROR_DOMAIN): Define.
	(import_vevent): Rename from do_import_vevent.  Export.  Save
	error messages in the passed GError.  Return the event in NEW_EV.
	Correctly handle alarm triggers (by Graham Cobb
	<g+gpe@cobb.uk.net>).  Remove debugging output.
	(do_import_vtodo): Return whether the import succeeded.  Return
	any error messages in *ERROR.
	(parse_mimedir): Save error messages in the passed GError.
	(import_vcal_from_channel): Save error messages in the passed
	GError, indicate whether the import succeeded.
	(import_vcal): Likewise.  Don't use the variable USE_GUI.

	* main.c (do_import_vcal): New function.
	(import_callback): Use it.
	(main_window_key_press_event): Likewise.
	(handoff_callback): Likewise.
	(import_file_list): Report any error message to stderr.
	(gpe_cal_iconify): Properly cast MAIN_WINDOW.
	* calendar-update.c (pulled): Update to new
	import_vcal_from_channel interface.

2006-12-28  Neal H. Walfield  <neal@gnu.org>

	* autogen.sh: Just use autoreconf and intltoolize.

2006-12-14  Joseph J. McCarthy <mccarthy@granular.pitt.edu>

	* main.c: change behavior of "close" to iconify (to aid in alarm handling)	 

2006-11-27  Florian Boor  <florian.boor@kernelconcepts.de>

    * export-vcal.c (export_event_as_string): Fix export of daily recurring
      events. Contributed by Graham Cobb <g+gpe@cobb.uk.net>, fixes #3

2006-11-14  Florian Boor  <florian.boor@kernelconcepts.de>

    * main.c (set_title): Apply patch by Matt Reimer to show day of week in
      title.

2006-09-16  Florian Boor  <florian.boor@kernelconcepts.de>

    * TODO: Mark some tasks as done.
    * day_view.c (event_rect_expose): Display start and end times.
    * event-ui.c (build_edit_event_window): Fix button order and border.
      (build_recurrence_page): Use GPE spacing functions instead of constant.

2006-08-31  Florian Boor  <florian.boor@kernelconcepts.de>

    * event-menu.c (event_menu_new): Change menu structure to make event 
      functions easier to access. Seperate translatable strings from markup.

2006-08-28  Neal H. Walfield  <neal@gnu.org>

	* TODO: New file.

2006-08-28  Neal H. Walfield  <neal@gnu.org>

	* event-ui.c (build_recurrence_page): Don't use S->INCREMENT_UNIT
	before it is initialized.  Use SPIN instead.

2006-08-10  Florian Boor  <florian.boor@kernelconcepts.de>

    * main.c (main): Set absolute path for local files.

2006-08-08  Neal H. Walfield  <neal@gnu.org>

	* calendar-update.c (struct info): Add field busy.
	(pushed): Set INFO->BUSY to FALSE.
	(pulled): Likewise.
	(calendar_push_internal): Set INFO->BUSY to TRUE.
	(calendar_pull_internal): Set INFO->BUSY to TRUE.
	(refresh): Only synchronize if INFO->BUSY is FALSE.  Refresh at
	most once every 10 seconds.

2006-08-07  Florian Boor  <florian.boor@kernelconcepts.de>

    * export-vcal.c (export_event_as_vevent): Set modification time.
    * export-vcal.c (export_event_as_vevent): Revert last change, fixed
      libmimedir.

2006-08-04  Florian Boor  <florian.boor@kernelconcepts.de>

    * export-vcal.c (export_event_as_vevent): Do not set "sequence", 
      libmimedir does not allow this.
    * main.c (handoff_callback), (main): Allow flushing via handoff.

2006-07-31  Florian Boor  <florian.boor@kernelconcepts.de>

    * event-ui.c (note_time_change), (build_recurrence_page), (new_event):
      Adjust months.
    * event-ui.c (click_ok), (datesel_changed): Adjust month to avoid beeing 
      one month ahead.

2006-07-27  Florian Boor  <florian.boor@kernelconcepts.de>

    * (build_edit_event_window): Fix typo.
    * event-ui.c (toplevel): Declare GtkWidget* istead of GtkSpinButton*.
    * (build_recurrence_page): Don't cast number editors.

2006-07-27  Florian Boor  <florian.boor@kernelconcepts.de>

    * Event editor rework for maemo:
    event-ui.c (toplevel): Add hildon widget includes.
    (click_ok): Use hildon editor widgets for maemo.
    (note_time_change): Two versions maemo/gtk.
    (set_toggle_focus): Likewise.
    (build_detail_page): Use GPE boxspacing instead of constants.
    (build_alarm_page): Likewise.
    (build_alarm_page): Use hildon editor widgets for maemo.
    (build_recurrence_page): Use GPE boxspacing and hildon widgets. Drop frame 
    label, looks better and is not that important.
    (build_edit_event_window): GPE boxspacings and initialize variable to
    get rid of compiler warning. Use hildon widgets.  Some minor packaging
    and alignment changes.
    (new_event): Round minutes to full 15. use hildon widgets.
    
2006-07-26  Florian Boor  <florian.boor@kernelconcepts.de>

    * main.c (main): Menu layout improvements (Maemo).
    * main.c, export-vcal.c: (save_to_file), (export_list_to_file), 
    (list_calendars): Fix some == vs. != issues.
    * export-vcal.c (export_list_to_file): Fix memory allocation.
    Replace fwrite by fputs.
    (save_to_file): Replace fwrite by fputs.
    * main.c (import_file_list): Call import_vcal() only once.
    Save returned EventCalendar in ec.
    
2006-07-26  Florian Boor  <florian.boor@kernelconcepts.de>

    * import-vcal.c/h (import_vcal): Add parameter, make import work 
    without GUI feedback.
    * main.c (import_file_list): New function.
    Update (import_vcal) calls to separate GUI from command line use.
    (main), (handoff_callback): Some structure changes to support calendar 
    selection for import.
    (show_help_and_exit): Some output formating and updates.
    (main): Some changes in the menu to meet the Maemo guidelines.

2006-07-25  Florian Boor  <florian.boor@kernelconcepts.de>

    * export-vcal.c/h (export_list_to_file): New function.
    * main.c (export_calendars): Allow exporting to a single file.
    (flush_deleted_events): Make use if new functions and report failure.
    (save_deleted_events): New function.
    (show_help_and_exit): Add new command line switches.
    (main): Parse new options.
    (handoff_callback): Support new options/commands.
    Some formating corrections.

2006-07-18  Florian Boor  <florian.boor@kernelconcepts.de>

	* main.c (main): Add new command line options. Some minor cleanups.
    (show_help_and_exit): Add command line help for new switches.
    (delete_event): New function.
    (flush_deleted_events): New function.
	(handoff_callback): Add "DELETE" command.

2006-07-23  Neal H. Walfield  <neal@gnu.org>

	* event-menu.c (event_menu_new): Assign the end time to STREND.
	Use %b, not %B for displaying the month name.

2006-07-23  Neal H. Walfield  <neal@gnu.org>

	* day_view.c (realize): Include the border height when calculating
	DAY_VIEW->ROW_HEIGHT_MIN.

2006-07-23  Neal H. Walfield  <neal@gnu.org>

	* day_view.c (reload_events_hard): If the event ends prior to the
	visible start, try to show at least an hour of the end.

2006-07-23  Neal H. Walfield  <neal@gnu.org>

	* event-ui.c (click_ok): Correctly calculate the event's duration.
	(build_edit_event_window): Correctly calcualte the event's end
	time.
	* day_popup.c (day_popup): Likewise.
	* event-list.c (date_cell_data_func): Likewise.
	* event-menu.c (event_menu_new): Likewise.  Format the time more
	appropriately.

2006-07-21  Florian Boor  <florian.boor@kernelconcepts.de>

	* pannedwindow.c (motion_notify_event): Do not start panning on
	the first motion event, start after a minimum distance (15px for now).
	(button_release_event): Reset distance status.
	(toplevel): Add status flag "consider_panning" to private struct,
	define constant for minimum distance, add myself to copyright
	list.

2006-07-18  Florian Boor  <florian.boor@kernelconcepts.de>

	* main.c (main): Set status correctly.
	(fixup_name): New function.
	(export_calendars): Free calendar list, free names and escape some
	bad chars in calendar names.
	(show_help_and_exit): Fix typo.

2006-07-17  Florian Boor  <florian.boor@kernelconcepts.de>

	* main.c (main): Add command line switch to provide help on options.
	(show_help_and_exit): New function.
	Add export function (-e) for whole calendars.
	(export_calendars): New function.
	(handoff_callback): Add "EXPORT" command.
	(main): Likewise
	* export-vcal.c/h (export_calendar_to_file): New function.
    
	* calendar-edit-dialog.c (calendar_edit_dialog_init): Set default sizes
	a little bit cleverer. 
    
2006-07-18  Neal H. Walfield  <neal@gnu.org>

	* main.c (calendar_consider): Correctly set CALENDAR's month.

2006-07-17  Florian Boor  <florian.boor@kernelconcepts.de>

	* calendar-edit-dialog.c (calendar_edit_dialog_init): Some more UI
	modifications: Use tables for layout and align labels right.  Add
	GtkEventBox to hold calendar color.
	(set_color): Apply color to box instead of button.
    
2006-07-14  Neal H. Walfield  <neal@gnu.org>

	* main.c (set_title): Display the year if it is different from the
	current year.  Make the format string eligible for translation.

2006-07-14  Neal H. Walfield  <neal@gnu.org>

	* day_view.c (reload_events_hard): Don't make the decision about
	whether to show the reminder area here...
	(update_extents): ... do it here and only show those events which
	are visible.

2006-07-13  Neal H. Walfield  <neal@gnu.org>

	* main.c (calendar_consider): Set the calendar to VIEWTIME.

2006-07-13  Neal H. Walfield  <neal@gnu.org>

	* week_view.c (reload_events_hard): Don't pad the day with zeros.
	Use the abbreviated form of the month.

2006-07-13  Neal H. Walfield  <neal@gnu.org>

	* main.c (main_box): New variable.
	(date_toolbar): Likewise.
	(datesel_item): Likewise.
	(main_toolbar_width): Likewise.
	(main_toolbar): Likewise.
	(toolbar_size_allocate): New function.
	(main): Replace uses of the local variable win with main_box.
	Connect toolbar_size_allocate to TOOLBAR's "size-allocate" signal.
	Don't display an icon for the calendar manager.  Always put
	DATESEL in a tool item and save it in DATESEL_ITEM.  Calculate the
	desired width of the toolbar and save it in MAIN_TOOLBAR_WIDTH.

	(today_button): New variable.
	(current_view_consider): Show or hide TODAY_BUTTON as appropriate.
	(main): Save the today button in TODAY_BUTTON.

	(event_list_consider): When destroying EVENT_LIST, set it to NULL.
	Reported by Florian Boor <florian@kernelconcepts.de>.

2006-07-13  Neal H. Walfield  <neal@gnu.org>

	* event-ui.c (build_edit_event_window): Always connect
	note_time_change to S->START_TIME's "changed" signal.

2006-07-13  Neal H. Walfield  <neal@gnu.org>

	* week_view.c (struct _GtkWeekView): Add field day_changed.
	(map): New function.
	(unmap): Likewise.
	(gtk_week_view_base_class_init): Set the appropriate fields in
	WIDGET_CLASS to the above functions.
	(setup_day_changed): New function.
	(day_changed): Likewise.
	(draw_expose_event): Paint the current day "lemon chiffon".
	* month_view.c (struct _GtkMonthView): Add field day_changed.
	(setup_day_changed): New function.
	(day_changed): New function.
	(gtk_month_view_map): Call setup_day_changed.
	(gtk_month_view_unmap): If MONTH_VIEW->DAY_CHANGED is non-zero,
	remove the source and clear MONTH_VIEW->DAY_CHANGED.
	(gtk_month_view_cell_box): If the cell represents the current day,
	set the background color to "lemon chiffon".
	(render): Don't call gdk_window_process_updates.  When fetching
	the background color, pass the correct row.

	* day_view.c: Include "pannedwindow.h".
	(struct _DayView): Change field appointment_area from a GtkLayout *
	to a GtkWidget *.
	(realize): New function.
	(button_release_event): New function
	(day_view_size_allocate): Remove function.
	(day_view_base_class_init): Set the appropriate fields in
	WIDGET_CLASS to the above new functions.  Don't set
	WIDGET_CLASS->SIZE_ALLOCATE.
	(size_request): Remove function.
	(viewport_size_allocate): New function.
	(day_view_init): Make DAY_VIEW->APPOINTMENT_WINDOW a PannedWindow.
	Make DAY_VIEW->APPOINTMENT_AREA a GtkDrawingArea.  Connect
	button_release_event to DAY_VIEW->APPOINTMENT_AREA's
	"button-release-event" signal.  Don't connect size_request to
	DAY_VIEW->APPOINTMENT_AREA's "size-request" signal.  Add
	DAY_VIEW->APPOINTMENT_AREA to the scrolled window.  Connect
	viewport_size_allocate to the viewport's "size-allocate" signal.
	(update_extents): Don't call gtk_layout_set_size, call
	gtk_widget_set_size_request to set DAY_VIEW->APPOINTMENT_AREA's size.
	(appointment_area_expose_event): Set DRAWABLE to WIDGET->WINDOW.
	(find_event): New function.
	(button_press_event): Use it.  If we popup a menu, return TRUE.
	Don't display the event menu.
	(reload_events_hard): Connect button_release_event to
	DAY_VIEW->REMINDER_AREA's "button-release-event" signal.
	* week_view.c: Include "pannedwindow.h".
	(struct _GtkWeekView): Remove field scroller.  Add field
	panned_window.
	(button_press_event): Only process the right button click here.
	Move the rest of the functionality...
	(button_release_event): ... to this new function.
	(gtk_week_view_new): Create a panned window instead of a scrolled
	window.  Listen for GDK_BUTTON_RELEASE_MASK events on
	WEEK_VIEW->DRAW and don't listen for GDK_KEY_PRESS_MASK events.
	Attach button_release_event to WEEK_VIEW->DRAW's
	"button-release-event" signal.

	* week_view.c (scroll_to_focused_day): New function.
	(gtk_week_view_set_time): Call scroll_to_focused_day if
	appropriate.

	* month_view .c (render) Preface the summary with the current
	time.  Suggested by Koen Kooi <koen@dominion.kabel.utwente.nl>.

	(gtk_month_view_draw_focus): Always invalidate
	MONTH_VIEW->DRAW->WINDOW.
	(reload_events_hard): Use GDate's where possible.
	(size_allocate): Rename from this...
	(viewport_size_allocate): ... to this.  Update users.
	(gtk_month_view_new): Don't create the vertical adjustments.

2006-07-13  Neal H. Walfield  <neal@gnu.org>

	* pannedwindow.c (panned_window_finalize): Remove the weak pointer
	reference to PRIV->ORIGINAL_WINDOW.
	(button_press_event): If PRIV->ORIGINAL_WINDOW is non-NULL, remove
	the weak pointer reference.  When saving to PRIV->ORIGINAL_WINDOW,
	get a weak pointer reference.
	(button_release_event): Drop the weak pointer reference to
	PRIV->ORIGINAL_WINDOW.  Get a reference to PRIV->ORIGINAL_WINDOW
	before calling gtk_main_do_event.
	Reported by Florian Boor <florian@kernelconcepts.de>.

2006-07-13  Florian Boor  <florian.boor@kernelconcepts.de>

	* calendar-edit-dialog.c (calendar_edit_dialog_init):
	Some UI modifications: Set default size depending on screen size,
	use scrolled window instead of a frame. This should improve
	behaviour on small screens.

2006-07-12  Neal H. Walfield  <neal@gnu.org>

	* pannedwindow.h: New file.
	* pannedwindow.c: New file.
	* Makefile.am (gpe_calendar_SOURCES): Add pannedwindow.h and
	pannedwindow.c.
	* month_view.c: Include "pannedwindow.h".
	(struct _GtkMonthView): Remove fields last_expose,
	scrolled_window, hadj, vadj and drag.  Add fields panned_window
	and title_area.
	(scroll_to_focused_day): If in do_scroll ADJ is NULL, return.
	Correctly find the viewport.
	(gtk_month_view_set_time): Check if the window is panning using
	panned_window_is_panning.
	(update_extents_hard): Correctly find the viewport.  Only scroll
	to the focused day if the window is not panning.
	(FPS): Don't define.
	(process_motion): Remove function.
	(motion_notify_event): Remove function.
	(edge_flip): New function.
	(button_release_event): Remove panning related code.  Use
	panned_window_is_panning to detect if the window was panning.
	Return TRUE if we handled the event, FALSE otherwise.
	(gtk_month_view_new): Create a PannedWindow and add the
	GtkDrawingArea to that.  Don't listen for GDK_BUTTON1_MOTION_MASK
	events.  Set the viewport's shadow type to none.

	(gtk_month_view_unrealize): New function.
	(gtk_month_view_map): Likewise.
	(gtk_month_view_unmap): Likewise.
	(gtk_month_view_expose): Likewise.
	(gtk_month_view_base_class_init): Assign the above new functions
	to their appropriate slots in the class structure.
	(gtk_month_view_realize): Create MONTH_VIEW->TITLE_AREA.
	(update_extents): Invalidate MONTH_VIEW->TITLE_AREA.
	(draw_expose_event): Break rendering code out of this function and
	place it...
	(render): ... here, in this new function.  Paint a black line at
	the bottom of the title bar area.
	(gtk_month_view_expose): New function.
	(hadjustment_value_changed): New function.
	(reload_events_hard): Pass -1 to gtk_month_view_draw_focus.
	Invalidate MONTH_VIEW->TITLE_AREA.
	(size_allocate): Move MONTH_VIEW->TITLE_AREA appropriately.

	(button_press_event): Simply and just use gtk_view_set_date
	instead of gtk_view_set_time.

2006-07-06  Neal H. Walfield  <neal@gnu.org>

	* month_view.c (size_allocate): Only call update_extents_hard if
	MONTH_VIEW->PENDING_RELOAD is FALSE.
	(update_extents_hard): Assert that MONTH_VIEW->PENDING_RELOAD is
	FALSE.
	Reported by Florian Boor <florian@kernelconcepts.de>.

2006-07-06  Neal H. Walfield  <neal@gnu.org>

	* day_view.c (event_rect_expose): Set the summary to bold using a
	PangoAttribute rather than pango markup.  Unreference PL.
	* month_view.c (draw_expose_event): Scale the font by changing the
	font used rather than pango markup.
	Reported by Florian Boor  <florian@kernelconcepts.de>.

2006-07-06  Neal H. Walfield  <neal@gnu.org>

	* month_view.c (struct _GtkMonthView): Add fields draw_cache,
	draw_cache_expire, draw_cache_last_access, last_flip and at_edge.
	Remove field last_motion.  Rename field page_timer to
	motion_timer.
	(draw_cache_destroy): New function.
	(draw_cache_expire): Likewise.
	(gtk_month_view_finalize): Destroy the draw cache.
	(gtk_month_view_cell_box): Take new parameter, color.  If not NULL
	then fill in with the appropriate background color for this cell.
	(gtk_month_view_invalidate_cell): Replace this function with...
	(gtk_month_view_draw_focus): ... this one.  If there is no draw
	cache, simply return.  Otherwise, move the focus, updating the
	cached draw area and then queue an expose.  Update users.
	(update_extents_hard): Destroy the draw cache.
	(draw_expose_event): If MONTH_VIEW->DRAW_CACHE is not NULL, then
	simply copy it to the window.  Otherwise, create it.  Update the
	cache's access time.  Draw on the draw cache.  Call
	gtk_month_view_draw_focus to draw the focused day.
	(reload_events_hard): Destroy the draw cache.
	(FPS): New macro.
	(page_flip): Rename from this...
	(process_motion): ... to this.  Process all scrolling here and do
	it more intelligently.
	(motion_notify_event): Don't process scrolling here.  Just start
	the timer to call process_motion once every second / FPS.
	(button_release_event): Only set the focus if no motion occured.

2006-07-03  Neal H. Walfield  <neal@gnu.org>

	* month_view.c (scroll_to_focused_day): If not realized, then just
	return.

2006-07-03  Florian Boor  <florian@kernelconcepts.de>

	* configure.ac: Set rc2 version for i18n team package.
	* po/Makefile.in.in: Update to latest i18n needs.
	* tp/*: New files for i18n file chaching.
	* autogen.sh: Change to update i18n files.
	* Makefile.am: Update, add po/gpe-calendar.pot to distribution files.
	* po/POTFILES.in: Update to meet current files.
	* po/*.pot po/*.po: Updated to latest version / current state.

2006-06-30  Neal H. Walfield  <neal@gnu.org>

	* month_view.h (month_view_mod_zoom_factor): New function.
	(month_view_set_zoom): Likewise.
	* month_view.c (struct _GtkMonthView): New fields scrolled_window,
	hadj, vadj, last_expose, zoom_factor, char_width, char_height,
	pending_update_extents and drag.
	(zoom_factors): New variable.
	(ZOOM_FACTORS): New define.
	(gtk_month_view_init): Set MONTH_VIEW->PENDING_RELOAD to TRUE.
	(gtk_month_view_realize): Calculate MONTH_VIEW->CHAR_WIDTH and
	MONTH_VIEW->CHAR_HEIGHT.
	(scroll_to_focused_day): New function.
	(gtk_month_view_set_time): Don't change the displayed days if the
	new day is currently displayed.
	(button_press_event): Don't focus the day here.
	(update_extents_hard): New function.
	(update_extents): Likewise.
	(draw_expose_event): Call update_extents_hard if necessary.
	Freeze expose events while processing it.  Run any pending expose
	events afterwards.  If any ran, just quit.  Scale the font
	according to the amount of space available.
	(first_day): New function.
	(reload_events_hard): Use it.  Call scroll_to_focused_day.
	(resize_table): Remove function.
	(size_allocate): New function.
	(page_flip): Likewise.
	(motion_notify_event): Likewise.
	(button_release_event): Likewise.
	(month_view_mod_zoom_factor): Likewise.
	(month_view_set_zoom): Likewise.
	(gtk_month_view_key_press_event): Handle page up, page down and
	zooming.
	(gtk_month_view_new): Create the adjustments for the scrolled
	window and save them.  Save the scrolled window in
	MONTH_VIEW->SCROLLED_WINDOW.  Change the horizontal scrollbar
	policy to automatical.  Call gtk_widget_set_app_paintable on
	MONTH_VIEW->DRAW.  Propagate button 1 motion events and button
	release events.  Connect motion_notify_event to MONTH_VIEW->DRAW's
	"motion_notify_event" signal.  Likewise, button_release_event to
	its "button-release-event" signal.  Don't connect to the
	"size-allocate" signal.  Don't set MONTH_VIEW->DRAW's requested
	size.  Connect size_allocate to the viewport's "size-allocate"
	signal.
	* main.c (month_button): New variable.
	(main_window_key_press_event): If the current view is the day view
	and the zoom out button is pressed, change to the month view.
	If the home button is pressed, change the date to today.
	(main): Save the month view's button in MONTH_VIEW.

2006-06-30  Neal H. Walfield  <neal@gnu.org>

	* view.h (struct _GtkView): Rename field time to date.  Update
	users.
	(gtk_view_get_date): New declaration.
	(gtk_view_set_date): Likewise.
	* view.c: Include "util.h".
	(_): Undef.
	(gtk_view_get_date): New function.
	(gtk_view_set_date): New function.

2006-06-29  Neal H. Walfield  <neal@gnu.org>

	* gtkdatesel.c (gtk_date_sel_move_day): If D is negative, use
	g_date_subtract_days.
	(gtk_date_sel_move_month): If D is negative, use
	g_date_subtract_months.
	(year_click): If D is negative, use g_date_subtract_years.

2006-06-28  Neal H. Walfield  <neal@gnu.org>

	* hildon-applet.c (event_list_event_clicked): Add a FOCUS and a
	trailing newline.
	* main.c (handoff_callback): Propagate the time.

2006-06-28  Neal H. Walfield  <neal@gnu.org>

	* hildon/gpe-calendar.desktop.in.in (StartupWMClass): Set
	StartupWMClass.  Works around
	https://maemo.org/bugzilla/show_bug.cgi?id=657 .

2006-06-27  Neal H. Walfield  <neal@gnu.org>

	* day_view.c (event_rect_expose): Fix off by one error in flooding
	event area.

2006-06-27  Neal H. Walfield  <neal@gnu.org>

	* day_view.c (event_rect_expose): Don't take a drawing area.  Take
	a GtkWidget and a GdkDrawable.  Get the style from the former and
	use the latter to drawon.
	(struct _DayView): Remove fields visible_width and visible_height.
	Update users to user width and height respectively.  Change
	appointment_area from a GtkDrawingArea to a GtkLayout.  Add fields
	VADJ and PENDING_SCROLL.
	(day_view_size_allocate): New function.
	(configure_event): Remove function.
	(scrolled): New function.
	(day_view_base_class_init): Set WIDGET_CLASS->SIZE_ALLOCATE to
	DAY_VIEW_SIZE_ALLOCATE.
	(day_view_init): Create a GtkLayout rather than a GtkDrawingArea.
	Add it to the scrolling area directly.  Don't connect to its
	"configure-event" signal.
	(update_extents): Get the height and width from the layout's
	allocation size.  If PENDING_SCROLL is TRUE, scroll the view.
	(appointment_area_expose_event): Use
	DAY_VIEW->APPOINTMENT_AREA->BIN_WINDOW as the GdkDrawable.
	(day_view_set_time): Set DAY_VIEW (VIEW)->PENDING_SCROLL to TRUE.

2006-06-27  Neal H. Walfield  <neal@gnu.org>

	* gtkdatesel.h (gtk_date_sel_new): Take a GDate as the second
	parameter, not a time_t.  Update users.
	(gtk_date_sel_get_time): Remove declaration.
	(gtk_date_sel_set_time): Likewise.
	(gtk_date_sel_set_day): Likewise.
	(gtk_date_sel_move_day): Likewise.
	(gtk_date_sel_move_week): Likewise.
	(gtk_date_sel_move_month): Likewise.
	(gtk_date_sel_get_date): New declaration.
	(gtk_date_sel_set_date): Likewise.
	* gtkdatesel.c (struct _GtkDateSel): Remove field time.  Add field
	date.
	(gtk_date_sel_move_day): Mark static and update to use the date
	field.
	(gtk_date_sel_move_month): Likewise.
	(year_click): Update to use the date field.
	(year_update): Likewise.
	(year_key_press): Likewise.
	(month_change): Likewise.
	(month_update): Likewise.
	(day_update): Likewise.
	(day_key_press): Likewise.
	(gtk_date_sel_new): Take a GDate as the second parameter, not a
	time_t.
	(gtk_date_sel_get_time): Remove function.
	(gtk_date_sel_set_time): Likewise.
	(gtk_date_sel_get_date): New function.
	(gtk_date_sel_set_date): New function.
	* main.c (propagate_time): Update to use gtk_date_sel's new
	interface.
	(datesel_changed): Likewise.
	(main): Likewise.

2006-06-27  Neal H. Walfield  <neal@gnu.org>

	* hildon/gpe-calendar-home.desktop.in: New file.

2006-06-27  Neal H. Walfield  <neal@gnu.org>

	* day_view.c (event_rect_expose): Draw a jagged line at the top of
	the event if the event starts before the visible time segment.
	Likewise at the bottom if it starts after the visible time
	segment.
	(update_extents): Set the size request for
	DAY_VIEW->APPOINTMENT_AREA to DAY_VIEW->HEIGHT.
	(reload_events_hard): Try to make at least an hour of each
	appointment visible.

2006-06-27  Neal H. Walfield  <neal@gnu.org>

	* Makefile.am (gpe_calendar_SOURCES): Fix typo.
	
2006-06-27  Neal H. Walfield  <neal@gnu.org>

	* configure.ac: Call AC_PROG_LIBTOOL.
	* Makefile.am (noinst_LTLIBRARIES): New primary.
	(libwidgets_la_SOURCES): Likewise.
	(gpe_calendar_LDADD): Add libwidgets.la.
	(gpe_calendar_SOURCES): Remove utils.c, event-list.c, event-list.h,
	calendars-widgets.c and calendars-widgets.h.
	(hildonhomelibdir): New primary.
	(hildonhomelib_LTLIBRARIES): Likewise.
	(libgpe_calendar_applet_la_SOURCES): Likewise.
	(libgpe_calendar_applet_la_LIBADD): Likewise.
	(hildonhomedir): Likewise.
	(hildonhome_in_files): Likewise.
	(hildonhome_DATA): Likewise.
	(EXTRA_DIST): Add hildon/gpe-calendar-home.desktop.in.
	(DISTCLEANFILES): Add gpe-calendar-home.desktop.
	* hildon-applet.c: New file.
	* inotify-syscalls.h: New file.
	* main.c (osso_top_callback) [IS_HILDON]: New function.
	(main) [IS_HILDON]: Set the top callback to it.

	* globals.h: Don't include <libintl.h>.  Include "util.h".
	(_): Move define from here...
	* util.h (_): ... to here.
	* globals.h (pen_new): Move declaration from here...
	* util.h (pen_new): ... to here.
	* globals.h (strftime_strdup_utf8_locale): Move declaration from
	here...
	* util.h (strftime_strdup_utf8_locale): ... to here.
	* globals.h (strftime_strdup_utf8_utf8): Move declaration from
	here...
	* util.h (strftime_strdup_utf8_utf8): ... to here.
	* globals.h (g_date_set_time_t): Move declaration from here...
	* util.h (g_date_set_time_t): ... to here.
	* main.c (CALENDAR_FILE): Move from here...
	* util.h (CALENDAR_FILE): ... to here.  Allocate the string in
	dynamic memory.  Update callers.

2006-06-26  Neal H. Walfield  <neal@gnu.org>

	* event-list.c (struct _EventList): New fields scrolled_window,
	narrow and char_width.
	(event_list_size_request): New function.
	(event_list_size_allocate): Likewise.
	(time_to_string): If EVENT_LIST->NARROW, try to print the date and
	time using a narrower description.
	(event_list_init): Move creation of the period box from here...
	(event_list_set_period_box_visible): ... to here.
	(event_list_reload_events_hard): If EVENT_LIST->ENTRY is NULL then
	use 14 days as the default.
	* main.c (main): Don't provide a default width for the side bar.

2006-06-25  Neal H. Walfield  <neal@gnu.org>

	* main.c (main): Increase the minimum space allocated to the
	sidebar.

2006-06-25  Neal H. Walfield  <neal@gnu.org>

	* hildon/gpe-calendar.desktop.in.in (Exec): Source
	/usr/bin/connectivity_preload.sh before running.

2006-06-25  Neal H. Walfield  <neal@gnu.org>

	* event-list.h (event_list_set_period_box_visible): New
	declaration.
	* event-list.c (struct _EventList): New field period_box.
	(event_list_set_period_box_visible): New function.
	(event_list_init): Initialize EVENT_LIST->PERIOD_BOX.
	* main.c (event_list_create): Set EL's period box to not be
	visible.
	(current_view_consider): Set the event list's period box
	visibility appropriately.

2006-06-25  Neal H. Walfield  <neal@gnu.org>

	* main.c (set_title): New function.
	(propagate_time): Call it.
	(main): Don't set the title directly.  Call set_title instead.

	(propagate_time): Add a static variable.  On entry check if it is
	TRUE.  If so, just return.  Otherwise, set to TRUE, then propagate
	the time and then reset it to FALSE.

	(conf_write): Spell "window-width" and "window-height" correctly.

2006-06-24  Neal H. Walfield  <neal@gnu.org>

	* day_view.c (appointment_area_expose_event): Simplify drawing the
	lines separating the hours.

2006-06-24  Neal H. Walfield  <neal@gnu.org>

	* main.c (current_view_consider): Give the CURRENT_VIEW the focus.
	
	* month_view.c (button_press_event): Any click transfers the
	focus.

2006-06-24  Neal H. Walfield  <neal@gnu.org>

	* main.c (schedule_wakeup): Set RELOAD_SOURCE to 0.
	(update_view): Call gtk_event_cal_reload_events and
	event_list_reload_events directly.  Don't add hard_reload as the
	idle function but schedule_wakeup.
	(hard_reload): Remove function.
	* month_view.c (struct _GtkMonthView): New field pending_reload.
	(draw_expose_event): If MONTH_VIEW->PENDING_RELOAD is TRUE, call
	reload_events_hard.
	(gtk_month_view_reload_events): Move the body of this function
	from here...
	(reload_events_hard): ... to this new function.  Set
	MONTH_VIEW->PENDING_RELOAD to FALSE.
	(gtk_month_view_reload_events): Just set
	MONTH_VIEW->PENDING_RELOAD to TRUE and queue a redraw on VIEW.
	* week_view.c (struct _GtkWeekView): New field pending_reload.
	(draw_expose_event): If WEEK_VIEW->PENDING_RELOAD is TRUE, call
	reload_events_hard.
	(gtk_week_view_reload_events): Move the body of this function from
	here...
	(reload_events_hard): ... to this new function.  Set
	WEEK_VIEW->PENDING_RELOAD to FALSE.
	* event-list.c (struct _EventList): Add field pending_reload.
	(event_list_expose_event): New function.
	(event_list_base_class_init): Initialize
	WIDGET_CLASS->EXPOSE_EVENT to event_list_expose_event.
	(event_list_reload_events): Move body of this...
	(event_list_reload_events_hard): ... to this new function.  Set
	EVENT_LIST->PENDING_RELOAD to FALSE.
	(event_list_reload_events): Set EVENT_LIST->PENDING_RELOAD to TRUE
	and queue a redraw.
	* event-cal.c (struct _GtkEventCal): Add field pending_reload.
	(gtk_event_cal_expose_event): New function.
	(gtk_event_cal_base_class_init): Initialize
	WIDGET_CLASS->EXPOSE_EVENT with gtk_event_cal_expose_event.
	(update_cal): Remove argument force.  Set
	EVENT_CAL->PENDING_RELOAD to FALSE.
	(gtk_event_cal_month_changed): Don't call update_cal.  Just set
	EC->PENDING_RELOAD to true if appropriate.
	(gtk_event_cal_reload_events): Set EC->PENDING_RELOAD to TRUE and
	queue a draw.
	(gtk_event_cal_new): Don't call update_cal.  Call
	gtk_event_cal_reload_events.

	(EventCalClass): Remove fields vbox_class and parent_class.  Add
	field gtk_calendar_class.
	(gtk_event_cal_get_type): Use gtk_event_cal_base_class_init as
	fourth, not the second, initializer.
	(gtk_event_cal_base_class_init): Take an additional parameter,
	klass_data.  PARENT_CLASS is a GtkCalendarClass, not a
	GtkVBoxClass.

2006-06-24  Neal H. Walfield  <neal@gnu.org>

	* Makefile.am (gpe_calendar_SOURCES): Remove day_render.h and
	day_render.c.

2006-06-23  Neal H. Walfield  <neal@gnu.org>

	* day_view.h: Include <gtk/gtk.h> and <time.h>.
	(GTK_DAY_VIEW): Rename from this...
	(DAY_VIEW): ... to this.  Update users.
	(GTK_DAY_VIEW_CLASS): Rename from this...
	(DAY_VIEW_CLASS): ... to this.  Update users.
	(GTK_IS_DAY_VIEW): Rename from this...
	(IS_DAY_VIEW): ... to this.  Update users.
	(TYPE_DAY_VIEW): New define.
	(IS_DAY_VIEW_CLASS): Likewise.
	(DAY_VIEW_GET_CLASS): Likewise.
	(struct _GtkDayView): Rename from this...
	(struct _DayView): ... to this.  Update users.
	(GtkDayView): Rename from this...
	(DayView): ... to this.  Update users.
	(gtk_day_view_get_type): Rename from this...
	(day_view_get_type): ... to this.  Update users.
	(gtk_day_view_new): Rename from this...
	(day_view_new): ... to this.  Update users.
	(gtk_day_view_scroll): Remove declaration.
	* day_view.c: Include <langinfo.h> and include <gpe/pixmaps.h>.
	* day_render.c (struct event_rect): Move from here...
	* day_view.c (struct event_rect): ... to here.  Change position
	fields to integers which represent absolute coordinates.  Update
	users.
	* day_render.c (event_rect_new): Move from here...
	* day_view.c (event_rect_new): ... to here.  Take the y and height
	as well.  Don't do any math.  Just save them in the struct
	event_rect.
	* day_render.c (gtk_day_render_expose): Break this into...
	* day_view.c (event_rect_expose, appointment_area_expose_event,
	reminder_area_expose_event): ... these functions.
	(appointment_area_expose_event, reminder_area_expose_event):  Call
	reload_events_hard and update_extents if required.
	* day_render.c (event_rect_delete): Move from here...
	* day_view.c (event_rect_delete): ... to here.
	(event_rect_list_free): New function.
	(NUM_HOURS): New define.
	(ROWS_HARD_FIRST): Likewise.
	(ROWS_HARD): Likewise.
	* day_render.c (struct _GtkDayRender): Fold the contents of this
	structure...
	* day_view.c (struct _DayView): ... into this structure.  Remove
	fields scrolling, scroll_floating, reminders and appointments.
	Add fields visible_width, visible_start, visible_duration,
	events_bg_gc, pending_reload and pending_update_extents.  Rename
	app_gc to events_bg_gc.
	* day_render.c (gtk_day_render_new): Fold this function...
	* day_view.c (day_view_new): ... and this function...
	(day_view_init): ... into this function.
	* day_render.c (gtk_day_render_finalize): Fold this function...
	* day_view.c (day_view_finalize): ... into this function.
	* day_render.c (calc_events_positions): Move from here...
	* day_view.c (calc_events_positions): ... to here.  Calculate the
	absolute positions of the event rectangles.  Return the list of
	event rectangles.
	(time_layout): New function.
	* day_render.c (update_extents): Move from here...
	* day_view.c (update_extents): ... to here.  Calculate
	DAY_VIEW->TIME_WIDTH.  Recalculate the event rectangles.  Set
	DAY_VIEW->PENDING_UPDATE_EXTENS to FALSE.
	* day_render.c (size_request): Move from here...
	* day_view.c (size_request): ... to here.  Include the border
	pixels when calculating the minimum row height.  Queue an extent
	update.
	* day_render.c (configure_event): Move from here...
	* day_view.c (configure_event): ... to here.  Don't call
	update_extents directly, just set DAY_VIEW->PENDING_UPDATE_EXTENTS
	to TRUE.
	* day_render.c (hour_bar_calc): Move from here...
	* day_view.c (hour_bar_calc): ... to here.  Update to use
	DAY_VIEW->VISIBLE_START and DAY_VIEW->VISIBLE_DURATION.
	* day_render.c (hour_bar_move): Move from here...
	* day_view.c (hour_bar_move): ... to here.
	* day_render.c (gtk_day_render_button_press): Move from here...
	* day_view.c (button_press_event): ... to here.  Don't send any
	signals.  Instead, fold...
	(day_view_row_clicked): ... this function...
	(day_view_event_clicked): ... and this function in.
	(gtk_day_view_reload_events): Rename from this...
	(reload_events_hard): ... to this.  Don't create GtkDayRenders,
	but the appropriate drawing areas.
	(scroll_to): Remove function.
	(gtk_day_view_scroll): Likewise.
	(sink_scroller): Likewise.
	* day_render.h: Remove file.
	* day_render.c: Remove file.

2006-06-22  Neal H. Walfield  <neal@gnu.org>

	* month_view.c (gtk_month_view_button_press_event): Rename from
	this...
	(button_press_event): ... to this.  Send the focus MONTH_VIEW.
	Don't call the widget's parent's class's button press handler.
	(gtk_month_view_base_class_init): Don't initialize
	WIDGET_CLASS->BUTTON_PRESS_EVENT.
	(gtk_month_view_new): Have MONTH_VIEW get key press events and be
	focusable.  Have MONTH_VIEW->DRAW get button press events.  Attach
	button_press_event to MONTH_VIEW->DRAW's "button-press-event"
	signal handler.
	* week_view.c (key_press_event): Rename from this...
	(gtk_week_view_key_press_event): ... to this.
	(gtk_week_view_base_class_init): Set WIDGET_CLASS->KEY_PRESS_EVENT
	to it.
	(button_press_event): Send the focus to WEEK_VIEW.
	(gtk_week_view_new): Have WEEK_VIEW get key press events and be
	focusable.  Don't have WEEK_VIEW->DRAW get key press events or be
	focusable.  Don't set its "key-press-event" handler.
	
	* month_view.c (gtk_month_view_reload_events): Don't sort EVENTS.

2006-06-22  Neal H. Walfield  <neal@gnu.org>

	* week_view.c (gtk_week_view_reload_events): Optimize loading
	events.

2006-06-19  Neal H. Walfield  <neal@gnu.org>

	* export-vcal.c (export_event_as_vevent): Set "unit" and "units"
	on RECURRENCET, not EVENT.

2006-06-18  Neal H. Walfield  <neal@gnu.org>

	* event-list.h (EventListEventClicked): New typedef.
	(EventListEventKeyPressed): Likewise.
	* event-list.c: Don't include "event-menu.h".
	(EventListClass): Add fields event_clicked_signal, event_clicked,
	event_key_pressed_signal and event_key_pressed.
	(event_list_base_class_init): Initialize
	EVENT_LIST_CLASS->EVENT_CLICKED_SIGNAL and
	EVENT_LIST_CLASS->EVENT_KEY_PRESSED_SIGNAL.
	(button_press): Don't popup a menu, signal "event-clicked".
	(key_press): Don't set the time, signal "event-key-pressed".
	(event_list_init): Pass EVENT_LIST to button_press and key_press.
	* main.c: Include "event-menu.h".
	(event_list_event_clicked): New function.
	(event_list_event_key_pressed): Likewise.
	(event_list_create): Likewise.
	(event_list_consider): Don't call event_list_new, but
	event_list_create.
	(current_view_consider): Likewise.

	(propagate_time): Only set the time on CURRENT_VIEW if it is a
	GtkView.

	* event-list.h (struct _GtkEventList): Rename from this...
	(struct _EventList): ... to this.  Update users.
	(GtkEventList): Rename from this...
	(EventList): ... to this.  Update users.
	(GTK_EVENT_LIST): Rename from this...
	(EVENT_LIST): ... to this.  Update users.
	(GTK_EVENT_LIST_CLASS): Rename from this...
	(EVENT_LIST_CLASS): ... to this.  Update users.
	(GTK_IS_EVENT_LIST): Rename from this...
	(IS_EVENT_LIST): ... to this.  Update users.
	(TYPE_EVENT_LIST): New marco.
	(IS_EVENT_LIST_CLASS): Likewise.
	(EVENT_LIST_GET_CLASS): Likewise.
	(gtk_event_list_get_type): Rename from this...
	(event_list_get_type): ... to this.  Update users.
	(gtk_event_list_new): Rename from this...
	(event_list_new): ... to this.  Update users.
	(gtk_event_list_reload_events): Rename from this...
	(event_list_reload_events): ... to this.  Update users.
	* event-list.c (struct _GtkEventList): Rename from this...
	(struct _EventList): ... to this.  Update users.
	(gtk_event_list_base_class_init): Rename from this...
	(event_list_base_class_init): ... to this.  Update users.
	(gtk_event_list_dispose): Rename from this...
	(event_list_dispose): ... to this.  Update users.
	(gtk_event_list_finalize): Rename from this...
	(event_list_finalize): ... to this.  Update users.
	(gtk_event_list_init): Rename from this...
	(event_list_init): ... to this.  Update users.
	(event_list_get_type): Set event_list_base_class_init as the
	fourth element, not the second.

2006-06-18  Neal H. Walfield  <neal@gnu.org>

	* calendars-widgets.c (calendars_tree_model): Don't forget to add
	INFO to TREE_STORES.

2006-06-18  Neal H. Walfield  <neal@gnu.org>

	* calendars-widgets.h (calendars_combo_box_new): Take an
	additional argument, the EventDB to use.  Update callers.
	(calendars_tree_model): Likewise.
	(calendars_menu): Likewise.
	* calendars-widgets.c (calendars_combo_box_new): Take an
	additional argument, the EventDB to use.  Use it.
	(calendars_menu): Likewise.
	(populate_store): Likewise.
	(calendars_tree_model): Likewise.
	(calendar_new): Make the third parameter is now the GtkTreeStore.
	(calendar_deleted): Likewise.
	(calendar_reparented): Likewise.
	(struct info): New structure.
	(tree_store): Remove variable.
	(tree_stores): New variable.
	(info_destroy): New function.
	(calendars_tree_model): Search for the GtkTreeStore matching EDB
	on the TREE_STORES list.  If not found, create a new struct info
	and add that to TREE_STORES.  At a weak reference to the created
	tree store to call INFO_DESTROY when it is destroyed.
	* event-list.h: Include <gtk/gtk.h> and <gpe/event-db.h>.
	(gtk_event_list_new): Take additional parameter, EDB.  Update
	callers.
	* event-list.c (struct _GtkEventList): Add field edb.
	(EventListClass): Remove field parent_class.
	(gtk_event_list_finalize): Unref EVENT_LIST->EDB if not NULL.
	(gtk_event_list_init): Don't call gtk_event_list_reload_events.
	(gtk_event_list_reload_events): Use EVENT_LIST->EDB, not
	EVENT_LIST.
	(gtk_event_list_new): Take additional parameter, EDB.  Take a
	reference to it and save it.  Call gtk_event_list_reload_events.

	* main.c (main): Show the toolbar widgets individually rather than
	calling gtk_widget_show_all.  Remove last reference to APP.

2006-06-17  Neal H. Walfield  <neal@gnu.org>

	* main.c (main) [IS_HILDON]: Disable the alarm button.
	* gtkdatesel.c (struct _GtkDateSel): Remove field week.
	(day_click): If in week mode, advance by a week.
	(gtk_date_sel_move_week): Remove function.
	(week_click): Likewise.
	(week_update): Likewise.
	(gtk_date_sel_set_mode): Fold week into full mode.
	(gtk_date_sel_size_allocate): Likewise.
	(gtk_date_sel_new): Don't create a week number label.  Set the
	width of text entries to exactly the amount of space needed.
	[IS_HILDON]: Brain damage is different from understood.  Update to
	reflect current understanding, i.e. use a fixed width for the
	combo box.

2006-06-16  Neal H. Walfield  <neal@gnu.org>

	* month_view.c (gtk_month_view_reload_events): Correctly calculate
	PERIOD_END.

2006-06-16  Neal H. Walfield  <neal@gnu.org>

	* main.c (current_view_consider): When enabling a month view,
	increment calendar_hidden and when disabling decrement it.  Call
	calendar_consider.  Hide EVENT_LIST_CONTAINER when stealing the
	event list and show it when restoring the event list.

2006-06-16  Neal H. Walfield  <neal@gnu.org>

	* week_view.c (GtkWeekViewClass): Remove field parent_class.
	(gtk_week_view_base_class_init): Add parameter klass_data.
	(gtk_week_view_get_type): Move gtk_month_view_base_class_init to
	fourth position.

	(gtk_week_view_key_press_event): Rename from this...
	(key_press_event): ... to this.  Take additional parameter,
	WEEK_VIEW.  Don't call parent class's handler.
	(gtk_week_view_button_press_event): Rename from this...
	(button_press_event): ... to this.  Take additional parameter,
	WEEK_VIEW.  Don't call parent class's handler.
	(gtk_week_view_base_class_init): Don't initialize
	WIDGET_CLASS->KEY_PRESS_EVENT or WIDGET_CLASS->BUTTON_PRESS_EVENT.
	(gtk_week_view_new): Don't make WEEK_VIEW focusable but
	WEEK_VIEW->DRAW.  Send button press and key press events to
	WEEK_VIEW->DRAW.  Add button_press_event to WEEK_VIEW->DRAW's
	"button-press-event" signal.  Add key_press_event to
	WEEK_VIEW->DRAW's "key-press-event" signal.
	* day_render.c (gtk_day_render_button_press): Subtract
	DAY_RENDER->TIME_WIDTH from EVENT->X.

2006-06-16  Neal H. Walfield  <neal@gnu.org>

	* main.c (main_appview) [IS_HILDON]: New variable.
	(toggle_fullscreen): Use MAIN_APPVIEW, not MAIN_WINDOW.
	(main) [IS_HILDON]: Connect MAIN_WINDOW's "delete-event" signal to
	gpe_cal_exit.  Ad WIN to MAIN_APPVIEW, not MAIN_WINDOW.
	
2006-06-16  Neal H. Walfield  <neal@gnu.org>

	* main.c (update_view): Call gtk_event_list_reload_events if
	CURRENT_VIEW is a GtkEventList.

2006-06-16  Neal H. Walfield  <neal@gnu.org>

	* gtkdatesel.c (gtk_date_sel_new) [IS_HILDON]: Use a normal combo
	box to work around hildon brokenness.

2006-06-16  Neal H. Walfield  <neal@gnu.org>

	* main.c (fullscreen_button) [IS_HILDON]: New variable.
	(main_window_key_press_event) [IS_HILDON]: Don't call
	gpe_cal_fullscreen_toggle, toggle FULLSCREEN_BUTTON
	(main) [IS_HILDON]: Save the full screen toggle button in
	FULLSCREEN_BUTTON.
	Reported by Florian Boor  <florian@kernelconcepts.de>.

	* configure.ac: Check for the availability of g_date_set_time_t.
	* globals.h (g_date_set_time_t): New declaration.
	* util.c (g_date_set_time_t) [! HAVE_g_date_set_time_t]: New
	function.
	Reported by Florian Boor  <florian@kernelconcepts.de>.

2006-06-16  Neal H. Walfield  <neal@gnu.org>

	* main.c (main): Use MAIN_APPVIEW, not the non-existent APPVIEW.
	Reported by Florian Boor  <florian@kernelconcepts.de>.
	
2006-06-16  Neal H. Walfield  <neal@gnu.org>

	* main.c (calendars_consider): Don't set a default size for
	TREE_VIEW.
	(event_list_consider): Likewise for EVENT_LIST.

2006-06-16  Neal H. Walfield  <neal@gnu.org>

	* month_view.c (gtk_month_view_reload_events): Optimize loading
	events.

2006-06-16  Neal H. Walfield  <neal@gnu.org>

	* main.c (main): Initially set SIDEBAR_DISABLED if the screen is
	tiny.  Likewise for CALENDAR_DISABLED if the screen is small.

2006-06-16  Neal H. Walfield  <neal@gnu.org>

	* main.c (CONF_FILE_): New macro.
	(CONF_FILE): Likewise.
	(conf_write): New function.
	(handoff_serialize): Call it.
	(main): Load the configuration file.  Set the view appropriate
	toggle active.

2006-06-16  Neal H. Walfield  <neal@gnu.org>

	* calendars-dialog.c (calendars_dialog_init): Set
	"allow-checkbox-mode" on TREE_VIEW to FALSE.
	See https://maemo.org/bugzilla/show_bug.cgi?id=538 .

2006-06-16  Neal H. Walfield  <neal@gnu.org>

	* gtkdatesel.c (gtk_date_sel_size_allocate): Call the parent's
	size_allocate first.  Ontain the child requisitions using
	gtk_widget_size_request.  * main.c [! IS_HILDON]: Include
	<gpe/pim-categories-ui.h>.  Include "calendars-widgets.h".
	(view_container): Rename from this...
	(current_view_container): ... to this.  Update users.
	(toolbar): Remove global variable.
	(main_panel): New variable.
	(current_view_hidden): Likewise.
	(current_view_mode): Likewise.
	(sidebar_disabled): Likewise.
	(sidebar_hidden): Likewise.
	(sidebar_container): Likewise.
	(sidebar): Likewise.
	(calendar_disabled): Likewise.
	(calendar_hidden): Likewise.
	(calendar_container): Likewise.
	(calendars_disabled): Likewise.
	(calendars_hidden): Likewise.
	(calendars_container): Likewise.
	(calendars): Likewise.
	(event_list_disabled): Likewise.
	(event_list_hidden): Likewise.
	(event_list_container): Likewise.
	(week_button): Remove variable.
	(month_button): Likewise.
	(upcoming_button): Likewise.
	(calendar_consider): New function.
	(calendar_toggle): Likewise.
	(calendars_row_inserted): Likewise.
	(calendars_visible_toggled): Likewise.
	(calendars_cleanup): Likewise.
	(calendars_consider): Likewise.
	(calendars_toggle): Likewise.
	(struct upcoming_restore): Remove structure.
	(upcoming_view_off): Remove function.
	(cal_view_expire): Remove function.
	(upcoming_view_button_clicked): Rename from this...
	(event_list_button_clicked): ... to this.  Update users.
	(event_list_consider): New function.
	(event_list_toggle): Likewise.
	(sidebar_consider): Likewise.
	(sidebar_toggle): Likewise.
	(current_view_consider): Likewise.
	(new_view): Remove function.
	(menu_toggled): Renamed from this...
	(view_toggled): ... to this.  Always declare.
	(gpe_cal_fullscreen_toggle): Rename from this...
	(toggle_fullscreen): ... to this.  Make a toggle callback.  Remove
	not_fullscreen_toggle and set full screen mode as a function of
	the toggle.
	(toggle_toolbar) [! IS_HILDON]: Define function.
	(edit_categories) [! IS_HILDON]: Define function.  Correctly call
	gpe_pim_categories_dialog.
	(create_app_menu): Remove function and move body into...
	(main): ... here.  Rework the menus and always display them.  Add
	menu items for toggling the various sidebars.  Remove less
	commonly used toolbar items to reduce clutter.  Don't display the
	text under the tool buttons by default.  If there is room, put
	DATESEL in the toolbar.

2006-06-14  Neal H. Walfield  <neal@gnu.org>

	* day_view.c (day_view_event_clicked): Get the current event and
	pass that to gtk_menu_popup.
	Reported by Tommi Komulainen.

2006-06-14  Neal H. Walfield  <neal@gnu.org>

	* day_render.c (gtk_day_render_button_press): Don't forget to
	break out of the loop once we've found an event.

2006-06-14  Neal H. Walfield  <neal@gnu.org>

	* day_view.c (gtk_day_view_key_press_event): If event is
	unhandled, chain to parent.
	* month_view.c (gtk_month_view_button_press_event): Likewise.
	(gtk_month_view_key_press_event): Likewise.
	* week_view.c (gtk_week_view_key_press_event): Likewise.
	(gtk_week_view_button_press_event): Likewise.

	* month_view.c (gtk_month_view_get_type): Move
	gtk_month_view_base_class_init to fourth position.
	(gtk_month_view_base_class_init): Take additional parameter.

2006-06-14  Neal H. Walfield  <neal@gnu.org>

	* day_render.c (gtk_day_render_base_class_init): Add parameter
	KLASS_DATA.
	(gtk_day_render_button_press): Just call g_signal_emit.

2006-06-14  Neal H. Walfield  <neal@gnu.org>

	* event-ui.c (build_edit_event_window): Move all day check box
	below the summary.
	Reported by: Benoit Norrin.

2006-06-14  Neal H. Walfield  <neal@gnu.org>

	* event-ui.c (struct edit_state): Add fields alarm_page,
	alarm_box, detail_page, detail_box, recurrence_page and
	recurrence_box.
	(destroy_user_data): Destroy S->DAYS and unref S->EV if not-NULL.
	(cached_edit_state_destroy_source): Remove variable.
	(cached_edit_state): Likewise.
	(cached_edit_state_destroy): Remove function.
	(edit_finished): Remove function.  Update callers to call
	gtk_widget_destroy directly.
	(click_ok): Only update fields for widgets which were actually
	used.  Don't unref S->EV.  Save the new event to S->EV.
	(note_date_change): Only update the buttons if they are present.
	Reset S->RECUR_DAY_FLOATING to TRUE after the update..
	(build_detail_page): New function which assumes the functionality
	of build_edit_event_window, new_event and edit_event as regards
	the construction and initialization of the detail page.
	(build_alarm_page): Likewise for the alarm page.
	(build_recurrence_page): Likewise for the recurrence page.  Also,
	replace the grid of checkboxes with a list of toggle buttons.
	(page_changed): New function.
	(build_edit_event_window): Assume the functionality of new_event
	and edit_event regarding the configuration of the main page.
	Don't build the non-main pages.  Attach the "switch-page" event to
	S->TABS.
	(edit_event_window): Remove function.  Update callers to call
	build_edit_event_window directly.

2006-06-13  Neal H. Walfield  <neal@gnu.org>

	* main.c (set_today): Only revert to the saved time if it was left
	less than 5 minutes ago.

2006-06-13  Neal H. Walfield  <neal@gnu.org>

	* event-ui.c: Don't include <sys/types.h>, <sys/stat.h>,
	<stdio.h>, <stdlib.h>, <unistd.h>, <gpe/question.h> and
	<gpe/gtksimplemenu.h>.  Include <stdlib.h>.
	(struct edit_state): Rename field byday to bydayweekly and udpate
	users.  Add field bydaymonthly and days.
	(struct bydaymonthly): New structure.
	(day_combo_changed): New function.
	(bydaymonthly_new): Likewise.
	(recur_combo_changed): If a monthly recurrence, show the monthly
	box.  If S->DAYS is NULL, create a selector.
	(edit_finished): Destroy S->DAYS.
	(build_edit_event_window): Create S->BYDAYMONTHLY.
	(click_ok): Don't unref S->EV in the case where the end time is
	earlier than the start time.  Support byday for the monthly
	recurrence.  Rewrite support for the weekly recurrence.
	(edit_event): Likewise.
	* export-vcal.c (export_event_as_vevent): Likewise.
	* import-vcal.c (do_import_vevent): Likewise.

2006-06-11  Neal H. Walfield  <neal@gnu.org>

	* calendar-update.c (refresh): If INFO->RETRY is non-zero, use
	that as the value for NEXT_REFRESH.

2006-06-11  Neal H. Walfield  <neal@gnu.org>

	* day_popup.c (day_popup): Cast the second argument to
	g_object_add_weak_pointer to a gpointer *.

	* day_render.c (GtkDayRenderClass): Remove field parent_class.
	(gtk_day_render_get_type): Don't explicitly initialize TYPE to 0.
	Make gtk_day_render_base_class_init the fourth element in the
	initializer.
	(gtk_day_render_init): Don't initialize fields to 0.
	* day_view.c (DayViewClass): Remove field parent_class.
	(gtk_day_view_base_class_init): Take additional parameter,
	KLASS_DATA.
	(gtk_day_view_get_type): Don't explicitly initialize TYPE to 0.
	Make gtk_day_view_base_class_init the fourth element in the
	initializer.
	(gtk_day_view_init): Don't initialize fields to 0.
	(gtk_day_view_finalize): Elide extraneous checks.

	(day_view_row_clicked): Set TM.TM_ISDST to -1.
	(gtk_day_view_reload_events): Likewise.

	(gtk_day_view_reload_events): Don't append events to REMINDERS and
	APPOINTMENTS, prepend them.

	* event-cal.c (_): Don't define.

	* week_view.c (gtk_week_view_key_press_event): Pass D->EVENTS as
	the second argument to day_popup.
	(gtk_week_view_button_press_event): Likewise.

2006-06-11  Neal H. Walfield  <neal@gnu.org>

	* alarm-dialog.c (alarm_dialog_init): Set the window's icon to the
	"bell" icon.

	* calendar-edit-dialog.c (parent_combo_changed): Only set
	D->PARENT_CHECK active if the widget has an entry selected.

	* main.c: Don't include "calendars-widgets.h" or
	"calendar-edit-dialog.h".
	(calendars_button_clicked): Make dialog a static.  If DIALOG is
	not-NULL then just show it and bring it to the foreground.
	(alarm_button_clicked): Bring ALARM_DIALOG to the foreground.

	(update_view): Mark static.
	(main): Connect EVENT_DB's "event-new", "event-removed" and
	"event-modified" signals to call update_view.
	* globals.h (update_view): Remove declaration.
	* event-menu.c (delete_event_cb): Don't call update_view.
	(move_event_to): Likewise.
	* event-ui.c (click_ok): Likewise.
	* import-vcal.c (import_vcal): Likewise.

	* xsettings.c (push_new_changes): Change to a function callback.
	(notify_func): Call PUSH_NEW_CHANGES rather than update_view.
	(gpe_calendar_start_xsettings): Take new argument, PUSH_CHANGES.
	Set PUSH_NEW_CHANGES to it.
	* main.c (gpe_calendar_start_xsettings): Synchronize declaration.
	(main): Pass update_view to gpe_calendar_start_xsettings.

2006-06-11  Neal H. Walfield  <neal@gnu.org>

	* calendar-edit-dialog.c (calendar_edit_dialog_new): When calling
	gtk_entry_set_text, if S is NULL, pass "" instead.

	* calendar-update.c (calendar_modified): If mode is 1 or 2 and
	INFO is NULL, create a new INFO structure.

2006-06-10  Florian Boor  <florian@kernelconcepts.de>

	* hildon/*.in, globals.h, Makefile.am: Change file locations to
	become compatible with Maemo 2.0.

2006-06-06  Neal H. Walfield  <neal@gnu.org>

	* event-ui.c (click_ok): Create and update the event after
	verifying the values are valid.

	(new_event): Clear the text entries S->DESCRIPTION, S->SUMMARY and
	S->LOCATION.  Clear the categories.

2006-06-06  Neal H. Walfield  <neal@gnu.org>

	* calendar-edit-dialog.c (calendar_edit_dialog_init): Add the url,
	password and username text entries to D->URL_BOX, not BODY.

2006-05-28  Neal H. Walfield  <neal@gnu.org>

	* calendar-update.c (calendar_modified): A modification may
	require an update to a subscribed calendar.

2006-05-28  Neal H. Walfield  <neal@gnu.org>

	* export-vcal.c (save_as_dialog): Change default file extension to
	.ics.

2006-05-28  Neal H. Walfield  <neal@gnu.org>

	* day_render.c (hour_bar_move): If DAY_RENDER->ROWS_VISIBLE is 0,
	just return FALSE.

2006-05-28  Neal H. Walfield  <neal@gnu.org>

	* calendars-widgets.c (calendar_refresh_cell_data_func): For
	subscription, use something that looks more like a download icon.
	For publications, use something that looks more like an upload
	icon.

2006-05-28  Neal H. Walfield  <neal@gnu.org>

	* configure.ac (DEP_MODULES): Add libsoup-2.2.
	* Makefile.am (gpe_calendar_SOURCES): Add
	calendar-delete-dialog.c, calendar-delete-dialog.h,
	calendar-update.c and calendar-update.h.
	* calendar-update.c: New file.
	* calendar-update.h: New file.
	* main.c: Include "calendar-update.h".
	(main): Call g_thread_init.  Add an idle source to call
	calendars_sync_start.
	* export-vcal.h (export_event_as_string): New declaration.
	(export_calendar_as_string): Likewise.
	(vcal_do_save): Rename from this...
	(export_event_save_as_dialog): ... to this.
	(export_calendar_save_as_dialog): New declaration.
	(save_to_file): Remove declaration.
	* export-vcal.c: Include <errno.h>.  Don't include <gpe/vevent.h>.
	(export_event_as_vevent): New function.
	(export_to_vcal): Rename from this...
	(export_event_as_string): ... to this.  Don't use
	vevent_from_event_t but export_event_as_vevent.
	(export_calendar_as_string): New function.
	(vcal_do_send_bluetooth): Don't use vevent_from_event_t but
	export_event_as_vevent.
	(vcal_do_send_irda): Likewise.
	(save_to_file): Rewrite to handle both events and calendars.  Use
	streams for IO, not file descriptors.  On error, fill in a GError.
	(vcal_do_save): Rename from this...
	(save_as_dialog): ... to this.  Take a reference to the object in
	question.  Provide a sane title and file suggestion.  Provide a
	more verbose error message.
	(export_event_save_as_dialog): New function.
	(export_calendar_save_as_dialog): New function.
	* import-vcal.h: Include <glib.h>.
	(import_vcal): Change declaration to return void to synchronize
	with implementation.
	(import_vcal_from_channel): New declaration.
	* import-vcal.c: Include "import-vcal.h".
	Include "import-vcal.h".
	(parse_mimedir): New function, rip out of...
	(import_vcal): ... this function.
	(import_vcal_from_channel): New function.

	* calendar-edit-dialog.h: Don't include <gtk/gtkwindow.h>.
	Include <gtk/gtk.h>.
	* calendar-edit-dialog.c (struct _CalendarEditDialog): Add new
	fields username and password.
	(color_button_clicked): Don't gratuitously call gtk_widget_show.
	(response): Set the username and password for the calendar.
	(calendar_edit_dialog_init): Show the type combo box.  Add an
	entry for the username and password and add them to D->URL_BOX.
	(calendar_edit_dialog_new): Set CALENDAR_EDIT->USERNAME and
	CALENDAR_EDIT->PASSWORD.

	* calendars-dialog.c: Don't include <gpe/errorbox.h>.  Include
	<gpe/pixmaps.h>, "calendar-delete-dialog.h" and
	"calendar-update.h".
	(struct _CalendarsDialog): Add field edb_modified_signal.
	(calendars_dialog_finalize): Disconnect EDB->EDB_MODIFIED_SIGNAL.
	(calendars_dialog_init): Connect to EVENT_DB's "calendar-changed"
	signal to queue a redraw.
	(struct _CalendarsDialog): Add fields scrolled_window and
	tree_view.
	(size_request): New function.
	(calendars_dialog_class_init): Set WIDGET_CLASS->SIZE_REQUEST to
	SIZE_REQUEST.
	(refresh_all_clicked): New function.
	(show_all_clicked): Likewise.
	(calendars_dialog_init): Add new buttons to refresh all calendars
	and to show all calendars.  Put the tree view in a scrolled
	window.  Add a column to show the last update.
	(new_clicked): Don't run the dialog, just show it and connect to
	the response signal to destroy it.
	(button_press): Likewise.
	(button_press): Move the code to build the delete calendar dialog
	box from here...
	* calendar-delete-dialog.c: ... to this new file.  Improve
	usability of dialog by showing the number of events and calendars
	it contains.
	* calendar-delete-dialog.h: New file.
	* calendars-widgets.h: Include <gpe/event-db.h>.
	(calendar_last_update_cell_data_func): New declaration.
	* calendars-widgets.c (calendar_last_update_cell_data_func): New
	function.
	(build_menu): Take new parameter, ROW.  Don't really build a
	hierarchy: simulate one by indenting children.  Update callers.
	(calendars_tree_model): Remove code to populate the tree store
	from here...
	(populate_store): ... to this new function.
	(unref_model): New function.
	(calendar_reparented): Don't call calendar_deleted followed by
	calendar_new.  Empty the model and then rebuild it.
	* event-menu.c: Include "calendar-edit-dialog.h" and
	"calendar-delete-dialog.h".
	(edit_calendar_cb): New function.
	(delete_calendar_cb): New function.
	(save_cb): Call export_event_save_as_dialog, not vcal_do_save.
	(save_calendar_cb): New function.
	(only_show_cb): New function.
	(hide_cb): New function.
	(struct info): New structure.
	(event_menu_destroy): Update to deallocate a struct info.
	(event_menu_new): Create a struct info and pass that as the user
	data argument to the "selection-done" signal.  Include menu items
	for editing the calendar from which the event stems, deleting the
	calendar, exporting the calendar, showing only that calendar and
	hiding that calendar.

	* calendar-edit-dialog.c (save_calendar_clicked): Rename from
	this...
	(response): ... to this.
	(calendar_edit_dialog_init): Don't connect to the save button's
	"click" event but to the dialogs "response" event using a closure
	thereby ensuring that the save button's event is triggered before
	any user handler which may destroy the dialog.
	Reported by Florian Boor <florian@kernelconcepts.de>.

	(units): Reverse the array to match the order in the combo box.
	(calendar_edit_dialog_new): Correct the per unit calculation.

	* event-ui.c (click_ok): When creating a new event, pass the
	calendar to event_new thereby synchronizing with the libeventdb
	API change.
	* import-vcal.c (do_import_vevent): Likewise.

2006-05-26  Neal H. Walfield  <neal@gnu.org>

	* main.c (main): Don't connect to day view's, weeks view's, month
	view's and upcoming's "click" signal but their "toggled" signal.
	Reported by Florian Boor <florian@kernelconcepts.de>.
	
2006-05-26  Neal H. Walfield  <neal@gnu.org>

	* import-vcal.h (import_vcal): Take an array of file names, not a
	single file.
	* import-vcal.c: Include "calendar-edit-dialog.h" and
	"calendars-widgets.h".
	[IS_HILDON]: Include
	<hildon-fm/hildon-widgets/hildon-file-chooser-dialog.h>.
	(do_import_vevent): Return a string which indicates any status
	messages the user should see.  If we encounter a fatal error and
	we created the event, then remove it.
	(do_import_vcal): Integrate function into...
	(import_vcal): ... this function.  Accept an array of file names,
	not just a single file.
	* main.c: Don't include <libintl.h>.
	[IS_HILDON]: Don't include
	<hildon-fm/hildon-widgets/hildon-file-chooser-dialog.h>.
	(import_callback): New function.
	(import_one_file): Remove function.
	(import_file): Likewise.
	(new_calendar_clicked): Move from here...
	* import-vcal.c: ... to here.
	* main.c (on_import_vcal): Move from here...
	* import-vcal.c (import_vcal): ... into this function.  Only
	present the file chooser if FILES is NULL.  Only present the
	calendar chooser if EC is NULL.  Collect the status messages and
	display all at once at the end.
	* main.c (main_window_key_press_event): Call import_vcal, not
	on_import_vcal.
	(handoff_callback): Likewise.
	(main): Likewise.
	(create_app_menu): Use import_callback, not on_import_vcal.
	(main): Likewise.

	* main.c (main): Connect event_db's "calendar-reparented" signal
	to update_view.

	(create_app_menu): Remove unused variable item_delete.  Don't
	create item_sep.

	(gpe_cal_fullscreen_toggle): Invert FULLSCREEN_TOGGLE to avoid
	initialization.

2006-05-26  Neal H. Walfield  <neal@gnu.org>

	* event-menu.c (delete_event_cb): Make questions clearer.
	(move_event_to): Call update_view.

2006-05-26  Neal H. Walfield  <neal@gnu.org>

	* event-ui.c (struct edit_state): Remove fields deletebutton,
	notebooktype, reminderdate, remindertime, remindertimebutton,
	taskdate, taskspin, optionmenutype, optionmenutask, alarmoption,
	endspin, endlabel, radiobuttonnone, radiobuttondaily,
	radiobuttonweekly, radiobuttonmonthly, radiobuttonyearly,
	dailybox, dailyspin, monthlybox, monthlyspin, yearlybox,
	yearlyspin, weeklybox, weeklyspin, endspin_adj, dailyspin_adj,
	monthlyspin_adj, yearlyspin_adj, notebookrecur and page.  Rename
	field *notebookedit to tabs.  Add fields endafter, window,
	all_day, alarm_units, recur_type, recur_box, increment_unit,
	increment_unit_postfix, byday.
	(cached_window): Remove variable.
	(cached_window_destroy_source): Likewise.
	(cached_edit_state): New variable.
	(cached_edit_state_destroy_source): Likewise.
	(destroy_user_data): Take another parameter so that it can act as
	an argument to g_object_weak_ref.
	(edit_event_window): Return a struct edit_state, not a GtkWidget.
	Update users.  Update to use cached_edit_state instead of
	cached_window and cached_edit_state_destroy_source instead of
	cached_window_destroy_source.
	(recur_combo_changed): New function.
	(all_day_toggled): Likewise.
	(set_toggle): Likewise.
	(recalculate_sensitivities): Remove function.
	(click_delete): Likewise.
	(set_notebook_page): Likewise.
	(tv_move_cursor): Likewise.
	(note_date_change_appt): Likewise.
	(note_date_change_reminder): Likewise.
	(note_date_change_task): Likewise.
	(edit_finished): Remove the window parameter and take the edit
	state directly.  Update users.
	(click_categories): Likewise.
	(on_description_focus_in): Mark static.  Don't change mark.
	(on_description_focus_out): Mark static.
	(click_ok): Synchronize with updated struct edit_state.
	(note_date_change): Likewise.
	(new_event): Likewise.
	(edit_event): Likewise.
	(build_edit_event_window): Return a struct edit_state.  Update
	users.  Consolidate as many widgets together as possible
	reflecting changes in struct edit_state.  On screens with enough
	real estate, add the alam to the main tab.  On screens with enough
	real estate, also add the recurrence information.  On very large
	screens, don't use scrolled windows.  Change reminders into "all
	day" events.  Improve real estate usage and general widget layout.
	Remove delete button.  Don't set the "edit_state" on the window.
	Add a weak reference to S.

2006-05-24  Neal H. Walfield  <neal@gnu.org>

	* calendar-edit-dialog.c (parent_check_toggled): New function.
	(calendar_edit_dialog_init): Clear any selection on D->PARENT.
	Connect D->PARENT_CHECK's "toggled" signal to
	parent_check_toggled.

2006-05-24  Neal H. Walfield  <neal@gnu.org>

	* calendars-widgets.c (calendars_combo_box_new): Set the active
	item to the default calendar.

2006-05-24  Neal H. Walfield  <neal@gnu.org>

	* calendar-edit-dialog.h (calendar_edit_dialog_get_calendar): New
	declaration.
	* calendar-edit-dialog.c (struct _CalendarEditDialog): Remove
	field window.  Add field dialog and parent_check.
	(struct _CalendarEditDialogClass): Remove field gtk_window_class.
	Add field gtk_dialog_class.
	(calendar_edit_dialog_get_type): Inherit from a GtkDialog, not a
	GtkWindow.
	(parent_combo_changed): New function.
	(save_calendar_clicked): Only use D->PARENT if D->PARENT_CHECK is
	active.  Don't destroy D.
	(calendar_edit_dialog_init): Create D->PARENT_CHECK.
	(calendar_edit_dialog_init): Use the dialog's native vbox and
	action bar.  Add a response id to the save and cancel button.
	(calendar_edit_dialog_get_calendar): New function.
	(calendar_edit_dialog_new): If P, then make
	CALENDAR_EDIT->PARENT_CHECK active.
	* calendars-dialog.c (new_clicked): Don't show W.  Run W as a
	dialog.  Destroy W on return.
	(button_press): Likewise.
	* event-ui.c: Include "calendar-edit-dialog.h".
	(new_calendar_clicked): New function.
	(build_edit_event_window): Don't set S->CALENDAR to the default
	calendar.  Create a button and connect the "clicked" signal to
	new_calendar_clicked.
	* main.c (on_import_vcal) [!IS_HILDON]: Add a combo box to the
	file dialog.  Create a button and connect the "clicked" signal to
	new_calendar_clicked.

	* import-vcal.h (import_vcal): Include <gpe/event-db.h>.
	Take additional argument, an EventCalendar.  Update callers.
	* import-vcal.c (do_import_vevent): Take additional argument, an
	EventCalendar.  If EC is not NULL, then set EV's calendar to EC.
	(do_import_vcal): Take additional argument, an EventCalendar and
	pass it to do_import_vevent.
	(import_vcal): Take additional argument, an EventCalendar and pass
	it to do_import_vcal.
	* main.c: #include "calendars-widgets.h" and
	"calendar-edit-dialog.h".
	(import_one_file): Take additional argument, an EventCalendar and
	pass it to import_vcal.
	(new_calendar_clicked): New function.
	(on_import_vcal): When calling import_one_file, pass it the
	selected EventCalendar.

	* main.c (main): Connect EVENT_DB's "calendar-deleted" signal to
	update_view.

2006-05-24  Neal H. Walfield  <neal@gnu.org>

	* Makefile.am (gpe_calendar_SOURCES): Add util.c,
	calendar-edit-dialog.c, calendar-edit-dialog.h,
	calendars-dialog.c, calendars-dialog.h, calendars-widgets.c,
	calendars-widgets.h, event-menu.c and event-menu.h.
	* calendars-dialog.c: New file.
	* calendars-dialog.h: New file.
	* main.c: Include "calendars-dialog.h".
	(calendars_button_clicked): New function.
	(create_app_menu): Create new menu item, "Calendars".
	(main): Create new toolbar button, "Calendar".  Connect the
	"calendar-changed" signal on EVENT_DB to update_view.
	* calendars-widgets.c: New file.
	* calendars-widgets.h: New file.
	* event-ui.c: Include "calendars-widgets.h".
	(click_ok): Set EV's calendar to the value in S->CALENDAR.
	(struct edit_state): Add field calendar.
	(build_edit_event_window): Create a GtkComboBox to allow the user
	to select the calendar.
	(edit_event): Set S->CALENDAR to EV's calendar.
	* calendar-edit-dialog.c: New file.
	* calendar-edit-dialog.h: New file.

	* day_render.c (struct event_rect): New field BGCOLOR_GC.
	(gtk_day_render_expose): Set EVENT_RECTANGLE->BGCOLOR_GC to the
	containing calendar's color.  Use that as the background color.
	(calc_events_positions): If the event is not visible, don't
	display it.
	(event_rect_new): Set EV_RECT->BGCOLOR_GC to NULL.
	(event_rect_delete): Dereference EV_RECT->BGCOLOR_GC.
	* month_view.c (draw_expose_event): Put the text in a box using
	the event's color as the background color.  Don't paint events
	which are not visible.
	* week_view.c (draw_expose_event): Likewise.
	* event-cal.c (update_cal): Don't mark the calendar if EV is not
	visible.
	* event-list.c (date_cell_data_func): Set RENDERER's
	"cell-background-gdk" property to the event's color.
	(summary_cell_data_func): Likewise.
	(end_cell_data_func): Likewise.

	* main.c (squash_pointer): Remove function.  Change users to use
	g_object_add_weak_pointer.
	(alarm_button): Remove variable.
	(pen_new): Move from here...
	* util.c (pen_new): ... to here.
	* main.c (strftime_strdup_utf8_locale): Move from here...
	* util.c (strftime_strdup_utf8_locale): ... to here.
	* main.c (strftime_strdup_utf8_utf8): Move from here...
	* util.c (strftime_strdup_utf8_utf8): ... to here.
	* globals.h (week_starts_monday): Rename to...
	(week_starts_sunday): ... to this and update users.
	* main.c (week_starts_monday): Rename to...
	(week_starts_sunday): ... to this and don't initialize.

	* event-menu.h: New file.
	* day_view.c: Don't include <gpe/pixmaps.h>, <gpe/question.h> or
	"export-vcal.h".  Include "calendars-widgets.h" and
	"event-menu.h".
	(day_view_event_clicked): Just call event_menu_new to create the
	menu.  Move the bulk of the code from here...
	* event-menu.c (event_menu_new): ... to here.
	* day_view.c (event_menu_destroy): Move from here...
	* event-menu.c (event_menu_destroy): ... to here.
	* day_view.c (delete_event_cb): Move from here...
	* event-menu.c (delete_event_cb): ... to here.
	* day_view.c (edit_event_cb): Move from here...
	* event-menu.c (edit_event_cb): ... to here.
	* day_view.c (save_cb): Move from here...
	* event-menu.c (save_cb): ... to here.
	* day_view.c (send_ir_cb): Move from here...
	* event-menu.c (send_ir_cb): ... to here.
	* day_view.c (send_bt_cb): Move from here...
	* event-menu.c (send_bt_cb): ... to here.
	* day_view.c (event_menu_new): Move from here...
	* event-menu.c (event_menu_new): ... to here.
	* day_popup.c: Include "event-menu.h".
	(event_clicked): Remove function.
	(squash_pointer): Remove function.
	(day_popup): Don't connect the "activate" signal to ITEM, instead
	create an event menu and set it as a submenu of ITEM.
	* event-list.c: Include "event-menu.h".
	(button_press): If the right mouse button is clicked, popup an
	event menu.
	(gtk_event_list_reload_events): If the event is not visible, don't
	show it.

	* event-ui.h (new_event): Don't take paramter TIMESEL.  Update
	callers.
	* event-ui.c (new_event): Don't take unused parameter TIMESEL.

	* globals.h: Include <libintl.h>.
	(_): Define.
	* alarm-dialog.c (_): Don't define.
	* day_popup.c (_): Likewise.
	* day_render.c (_): Likewise.
	* event-ui.c (_): Likewise.
	* day_view.c: Don't include <libintl.h>.
	(_): Don't define.
	* event-list.c: Don't include <libintl.h>.
	(_): Don't define.
	* export-vcal.c: Include "globals.h".
	(_): Don't define.
	* gtkdatesel.c (_): Likewise.
	* import-vcal.c (_): Likewise.
	* main.c (_): Likewise.
	* week_view.c: Don't include <libintl.h>.
	(_): Don't define.

	* globals.h (days_in_month): Don't declare.
	(time_from_day): Remove declaration.
	(day_of_week): Remove declaration.
	* main.c (nr_days): Likewise.
	(day_of_week): Remove function.
	(days_in_month): Likewise.
	(time_from_day): Likewise.
	* event-cal.c (update_cal): Don't use days_in_month, use
	g_date_get_days_in_month.
	* gtkdatesel.c (gtk_date_sel_move_month): Likewise.
	(year_click): Likewise.
	(month_change): Likewise.
	(day_key_press): Likewise.
	* month_view.c (gtk_month_view_reload_events): Likewise.
	* week_view.c (gtk_week_view_reload_events): Likewise.
	* event-ui.c (note_date_change): Don't use day_of_week, use
	g_date_set_dmy.
	(new_event): Likewise.
	* month_view.c (gtk_month_view_reload_events): Likewise.
	* week_view.c (draw_expose_event): Likewise.

	* alarm-dialog.c (event_get_layout): Update code to reflect that
	event_get_summary, event_get_description and event_get_location
	and event_get_categories now return malloced storage.
	* day_popup.c (day_popup): Likewise.
	* day_render.c (gtk_day_render_expose): Likewise.
	(calc_events_positions): Likewise.
	* event-list.c (summary_cell_data_func): Likewise.
	* event-ui.c (edit_event): Likewise.
	* month_view.c (draw_expose_event): Likewise.
	* week_view.c (draw_expose_event): Likewise.

2006-05-18  Neal H. Walfield  <neal@gnu.org>

	* day_popup.h (struct day_popup): Remove structure.
	(day_popup): Take a GDate indicating the date and a list of events
	as parameters.  Update callers.
	* day_popup.c (day_clicked): Make the user data a GDate * and
	adapt code.
	(new_clicked): Likewise.
	(day_popup): Take a GDate indicating the date and a list of events
	as parameters.  Update code accordingly.
	* week_view.c (struct week_day): Remove field popup, add field
	date.  Update users.
	* month_view.c (struct render_ctl): Remove structure.
	(struct day): New structure.
	(struct _GtkMonthView): Remove fields day_events and rc.  Add
	field day.  Update users.

	* month_view.c (TOTAL_DAYS): Rename marco...
	(MAX_DAYS): ... to this.  Update users.
	(TOTAL_WEEKS): Remove macro.
	(MAX_DAYS_IN_MONTH): Remove macro.
	(gtk_month_view_set_time): All days are valid, change the month if
	the day is not part of the current month.
	(gtk_month_view_button_press_event): All days are valid, just pop
	up the menu.
	(gtk_month_view_key_press_event): Likewise.
	(draw_expose_event): All days are valid.
	(gtk_month_view_reload_events): Populate all days with events.

	* day_popup.c (struct data): New structure.
	(destroy): New function.
	(day_popup): Make a copy of the date and take a reference to each
	event and add a callback to destroy it when the menu is destroyed.

	* week_view.c (draw_expose_event): Don't make the background of
	days with events cream: just use the normal background based on
	the day of the week.
	* month_view.c (draw_expose_event): Likewise.

	* week_view.c (gtk_week_view_init): Don't waste cycles
	initializing fields to 0.
	* month_view.c (gtk_month_view_init): Likewise.
	
2006-05-18  Neal H. Walfield  <neal@gnu.org>

	* main.c (cal_view_build): Add a weak reference to CALENDAR which
	squashes CALENDAR when it is destroyed.

2006-05-18  Neal H. Walfield  <neal@gnu.org>

	* day_popup.c (day_popup): If the event is a reminder, don't
	display the time.  If the event does not start on the day in
	question, display until when the event lasts.

2006-05-16  Neal H. Walfield  <neal@gnu.org>

	* day_render.c (gtk_day_render_expose): Correct the calculation of
	the hour for machines with broken (?) FPUs.

2006-05-15  Neal H. Walfield  <neal@gnu.org>

	* globals.h (close_pix): Remove unused declaration.
	(day_pix): Likewise.
	(close_mask): Likewise.
	(day_mask): Likewise.
	(yearfont): Likewise.
	(datefont): Likewise.
	(MONTHTIMEFMT): Remove unused define.

2006-05-15  Neal H. Walfield  <neal@gnu.org>

	* event-list.c: Include <stdlib.h>.
	(ARROW_SIZE): Define.
	(struct _GtkEventList): Change widget to a GtkVBox.  Add new
	fields entry and combo.
	(gtk_event_list_get_type): Inherit from a GtkVBox.
	(time_to_string): New function.
	(date_cell_data_func): Use time_to_string where possible.
	(end_cell_data_func): New function.
	(arrow_click): New function.
	(reload): Likewise.
	(gtk_event_list_init): Create a horizontal spin box for the factor
	and a combo box to select the units for the amount of time to
	show.  Enable alternating row colors.  Add a third column which
	displays the end time.
	(gtk_event_list_reload_events): Get events covering not the next
	two weeks but using the values in the entry and combo.

	(button_press): Only zoom to the event on a button 1 click.

	* globals.h (is_reminder): Consider events which start at midnight
	and last exactly 24 hours reminders.

2006-05-15  Neal H. Walfield  <neal@gnu.org>

	* globals.h (FUTURE_ICON): New macro.
	* main.c (squash_pointer): New function.
	(display_tiny): New variable.
	(display_landscape): Likewise.
	(my_icons): Add "future_view".
	(main_bin): New variable.
	(upcoming_button): Likewise.
	(main): Move the code which creates the calendar view from here...
	(cal_view_build): ... to this new function.
	(struct upcoming_restore): New structure.
	(upcoming_view_off): New function.
	(cal_view_expire): Likewise.
	(upcoming_view_button_clicked): Likewise.
	(create_app_menu): Add an entry for the upcoming events view.
	(main): Replace local variable TINY with global static
	DISPLAY_TINY.  Replace local variable landscape with global static
	DISPLAY_LANDSCAPE.  Add a button for the upcoming view.  Put the
	calendar view in MAIN_BIN and MAIN_BIN in WIN.

2006-05-15  Neal H. Walfield  <neal@gnu.org>

	* alarm-dialog.c (alarm_dialog_init): It's spelt "delete-event",
	not "delete".

2006-05-15  Neal H. Walfield  <neal@gnu.org>

	* day_popup.h (day_popup): Return a GtkMenu *.  Don't take a
	window as a parameter.
	* day_popup.c: Rewrite to use a GtkMenu.
	* globals.h (viewtime): Remove declaration.
	(pop_window): Remove declaration.
	* month_view.c (struct _GtkMonthView): Remove field has_popup.
	(gtk_month_view_button_press_event): Don't destroy POP_WINDOW.
	Just create a day_popup and pop it up.
	(gtk_month_view_key_press_event): Likewise.
	(gtk_month_view_reload_events): Don't destroy POP_WINDOW.
	* week_view.c (struct _GtkWeekView): Remove field has_popup.
	(gtk_week_view_key_press_event): Don't destroy POP_WINDOW.
	Just create a day_popup and pop it up.
	(gtk_week_view_button_press_event): Likewise.
	* main.c (viewtime): Mark static.
	(pop_window): Remove declaration.
	(new_view): Don't destroy POP_WINDOW.

2006-05-15  Neal H. Walfield  <neal@gnu.org>

	* day_view.c (struct _GtkDayView): Remove sel_event, event_menu
	and event_menu_info.
	(gtk_day_view_init): Don't initialize SEL->SEL_EVENT.
	(gtk_day_view_finalize): Don't destroy DAY_VIEW->EVENT_MENU.
	(day_view_row_clicked): Don't hide DAY_VIEW->EVENT_MENU.
	(day_view_event_clicked): Don't hide DAY_VIEW->EVENT_MENU.  Don't
	set DAY_VIEW->SEL->EVENT.  Call event_menu_new to create a menu.
	Call gtk_menu_popup to show the menu.
	(gtk_day_view_reload_events): Don't pass a user data parameter to
	DAY_VIEW->REMINDER's or DAY_VIEW->APPOINTMENTS "event-clicked"
	callback.
	(event_menu_destroy): The user data parameter is now the event.
	Unref it.  Destroy WIDGET.
	(delete_event_cb): The user data parameter is now the event.
	Don't hide the menu.
	(edit_event_cb): Likewise.
	(save_cb): Likewise.
	(send_ir_cb): Likewise.
	(send_bt_cb): Likewise.
	(event_menu_new): Don't take a GtkDayView as a parameter.  Take a
	string string to use as the info string, an event to use and
	return a GtkMenu.  Rewrite to use a GtkMenu and to make the
	various constituents GtkMenuItems.  Connect the event as the user
	data parameter to the signals.  Connect the menu's
	"selection-done" signal to event_menu_destroy.
	(gtk_day_view_new): Don't call event_menu_new here.

	(day_view_event_clicked):  Chop any trailing \n's off of BUFFER.

2006-05-14  Neal H. Walfield  <neal@gnu.org>

	* event-ui.c (note_time_change): Really correctly calculate the
	new end time.

2006-05-14  Neal H. Walfield  <neal@gnu.org>

	* event-ui.c (cached_window_destroy_source): New variable.
	(cached_window_destroy): New function.
	(edit_finished): Set a timer to destroy the cached window in 5
	minutes if it is not reused.
	(edit_event_window): If using CACHED_WINDOW, clear any time out.

	(note_time_change): Correctly calculate the next hour.

	(build_edit_event_window): Reduce code repetition.

	(event_ui_init): Remove unused function.

2006-05-13  Florian Boor  <florian@kernelconcepts.de>

	* event_ui.c (build_edit_event_window): Shorten start and end
	labels a little bit and optimize packing. It fits on qvga screens
	again.

2006-05-13  Neal H. Walfield  <neal@gnu.org>

	* month_view.c (draw_expose_event): Use a smaller font.  Improve
	layout.

2006-05-13  Neal H. Walfield  <neal@gnu.org>

	* month_view.c (button_press): Rename from this...
	(gtk_month_view_button_press_event): ... to this.  Don't take a
	user data parameter.
	(gtk_month_view_base_class_init): Set
	WIDGET_CLASS->BUTTON_PRESS_EVENT to
	gtk_month_view_button_press_event.
	(gtk_month_view_new): Don't connect a "button-press-event" signal
	handler to MONTH_VIEW->DRAW.
	* week_view.c (week_view_button_press): Rename from this...
	(gtk_week_view_button_press_event): ... to this.  Don't take a
	user data parameter.
	(gtk_week_view_base_class_init): Set
	WIDGET_CLASS->BUTTON_PRESS_EVENT to
	gtk_week_view_button_press_event.
	(gtk_week_view_new): Don't connect a "button-press-event" signal
	handler to WEEK_VIEW->DRAW.

2006-05-12  Neal H. Walfield  <neal@gnu.org>

	* main.c (reload_source): New variable.
	(hard_reload): New function.
	(update_view): Don't reload the calendar and event_list here.
	Instead, add an idle source to call hard_reload if one doesn't
	already exist.

2006-05-12  Neal H. Walfield  <neal@gnu.org>

	* month_view.c (month_view_key_press_event): Rename from this...
	(gtk_month_view_key_press_event): ... to this.  Remove user_data
	argument.
	(gtk_month_view_base_class_init): Set
	WIDGET_CLASS->KEY_PRESS_EVENT to it.
	(gtk_month_view_new): Make MONTH_VIEW focusable, not
	MONTH_VIEW->DRAW.  Don't set up a key press event handler for
	MONTH_VIEW->DRAW
	* week_view.c (week_view_key_press_event): Rename from this...
	(gtk_week_view_key_press_event): ... to this.  Remove user_data
	argument.
	(gtk_week_view_base_class_init): Set WIDGET_CLASS->KEY_PRESS_EVENT
	to it.
	(gtk_week_view_new): Make WEEK_VIEW focusable, not
	WEEK_VIEW->DRAW.  Don't set up a key press event handler for
	WEEK_VIEW->DRAW

2006-05-12  Neal H. Walfield  <neal@gnu.org>

	* configure.ac: Add option to disable the use of libschedule.
	(DEP_MODULES): Only include libschedule if with_libschedule isn't
	"no".
	* main.c [! WITH_LIBSCHEDULE]: Don't include <gpe/schedule.h>.
	(schedule_wakeup) [! WITH_LIBSCHEDULE]: Just return FALSE.

2006-05-12  Neal H. Walfield  <neal@gnu.org>

	* day_view.c (gtk_day_view_reload_events): Add all day events to
	the reminder area.

2006-05-12  Neal H. Walfield  <neal@gnu.org>

	* day_view.c (gtk_day_view_key_press_event): New function.
	(gtk_day_view_base_class_init): Set WIDGET_CLASS->KEY_PRESS_EVENT
	to it.
	(gtk_day_view_new): Make DAY_VIEW focusable.

	* main.c (new_view): Give CURRENT_VIEW the focus.

2006-05-12  Neal H. Walfield  <neal@gnu.org>

	* alarm-dialog.c (alarm_dialog_init): Connect
	gtk_widget_hide_on_delete to the "delete" signal of WINDOW.

2006-05-12  Neal H. Walfield  <neal@gnu.org>

	* alarm-dialog.c (alarm_dialog_init): Don't use a button box as it
	takes up too much space on a QVGA device.

2006-05-12  Neal H. Walfield  <neal@gnu.org>

	* gtkdatesel.c (gtk_date_sel_size_allocate): New function.
	(gtk_date_sel_class_init): Set WIDGET_CLASS->SIZE_ALLOCATE to it.
	(gtk_date_sel_set_mode): Show DATESEL->YEAR.CONTAINER.

	(month_cell_renderer_class_init): Use a correct type signature to
	avoid a warning.

2006-05-12  Neal H. Walfield  <neal@gnu.org>

	* day_render.c (gtk_day_render_expose): Don't print the minutes.

2006-05-11  Neal H. Walfield  <neal@gnu.org>

	* day_view.c (day_view_event_clicked): Improve formatting of the
	information label.

2006-05-11  Neal H. Walfield  <neal@gnu.org>

	* event-ui.c (click_ok): Free the strings returned by
	gtk_text_buffer_get_text and gtk_editable_get_chars.

2006-05-11  Neal H. Walfield  <neal@gnu.org>

	* main.c (main): Cache the current directory and free it when no
	longer needed.

2006-05-11  Neal H. Walfield  <neal@gnu.org>

	* event-ui.c (click_ok): Let mktime compensate for DST.

2006-05-11  Neal H. Walfield  <neal@gnu.org>

	* main.c (just_new): Mark static.
	(view_container): Likewise.
	(toolbar): Likewise.
	(day_list): Remove unused declaration.
	(my_icons): Mark static.
	(window_x): Remove definition and make a local variable...
	(main): ... here.
	(window_y): Remove definition and make a local variable...
	(main): ... here.
	(week_offset): Don't explicitly initialize to 0.
	(collected_keys): Mark static.
	(ccpos): Likewise.
	(time_from_day): Set TM.TM_ISDST to -1.

2006-05-11  Neal H. Walfield  <neal@gnu.org>

	* month_view.c (gtk_month_view_reload_events): Let mktime
	compensate for DST.
	* event-ui.c (click_ok): Likewise.

2006-05-11  Neal H. Walfield  <neal@gnu.org>

	* main.c: Don't include <sys/types.h>, <stdio.h> or <unistd.h>.
	* day_view.c: Don't include <sys/types.h>, <stdio.h>, <stdlib.h>,
	<gpe/stylus.h>, "gtkdatesel.h", "event-cal.h" or "event-list.h".
	* week_view.c: Don't include <sys/types.h>, <gpe/stylus.h>,
	"gtkdatesel.h", "event-cal.h" or "event-list.h".
	* month_view.c: Don't include <sys/types.h>, "event-ui.h" or
	"gtkdatesel.h".
	(is_today): Don't define.

2006-05-11  Neal H. Walfield  <neal@gnu.org>
	Reported by Koen Kooi  <koen@dominion.kabel.utwente.nl>

	* day_render.c (gtk_day_render_expose): Display the lines
	separating the hours when the Bain's line is not present.

2006-05-11  Neal H. Walfield  <neal@gnu.org>

	* event-cal.c (update_cal): Freeze and thaw CAL for old versions
	of Gtk+.

2006-05-11  Neal H. Walfield  <neal@gnu.org>

	* main.c (main): If the import filename is a relative filename,
	create an absolute file name.

2006-05-11  Neal H. Walfield  <neal@gnu.org>

	* day_render.c (calc_events_positions): Free ROOT.

2006-05-11  Neal H. Walfield  <neal@gnu.org>

	* import-vcal.c (do_import_vevent): Ignore the allday property.

2006-05-10  Neal H. Walfield  <neal@gnu.org>

	* import-vcal.c (extract_time): Fix timezone calculation logic.

2006-05-10  Neal H. Walfield  <neal@gnu.org>

	* main.c (main): Start with 7/8's of the screen's width and
	height, not half.  If LANDSCAPE is FALSE, make PRIMARY a
	GtkVPaned.  Conditionalize the calendar and event box on TINY, not
	on LANDSCAPE.  If LANDSCAPE is FALSE, make SIDEBAR a a GtkHPaned.

2006-05-10  Neal H. Walfield  <neal@gnu.org>

	* import-vcal.c (do_import_vevent): Get and set the recurrence
	increment (i.e. iCal's interval).
	
2006-05-10  Neal H. Walfield  <neal@gnu.org>

	* import-vcal.c (extract_time): Take into account that
	DT->TIMEZONE may be MIMEDIR_DATETIME_NOTZ or MIMEDIR_DATETIME_UTC.

2006-05-10  Neal H. Walfield  <neal@gnu.org>

	* import-vcal.c (do_import_vevent): Set EV to NULL.  Support days
	of the week for weekly recurrences.

2006-05-10  Neal H. Walfield  <neal@gnu.org>

	* day_render.c (gtk_day_render_expose): Subtract one from END.
	* day_view.c (gtk_day_view_reload_events): The day ends before
	midnight, not at midnight.

2006-05-10  Neal H. Walfield  <neal@gnu.org>

	* month_view.c (gtk_month_view_reload_events): Sort the results of
	event_db_list_for_period.
	* week_view.c (gtk_week_view_reload_events): Likewise.

2006-05-10  Neal H. Walfield  <neal@gnu.org>

	* import-vcal.c (extract_time): New function.
	(do_import_vevent): Use it rather than mimedir_datetime_get_time_t
	to get the time.  Check if EVENT is an all day event, if so, mark
	as untimed.  Don't unref RECURRENCE.

2006-05-09  Neal H. Walfield  <neal@gnu.org>

	* import-vcal.c (parse_date): Remove function.
	(do_import_vevent): Rewrite.

	* main.c (import_one_file): Call update_view after loading a
	calendar.

	* event-cal.c (update_cal): T is the last valid second, not first
	invalid second.

2006-05-09  Neal H. Walfield  <neal@gnu.org>

	* day_view.c (delete_event_cb): Synchronize with libevent-db API
	changes.
	* event-ui.c (click_delete): Likewise.
	(click_ok): Likewise.
	(edit_event): Likewise.
	* import-vcal.c (do_import_vevent): Likewise.

2006-05-09  Neal H. Walfield  <neal@gnu.org>

	* event-list.c (gtk_event_list_reload_events): Sort
	EVENT_LIST->EVENTS.
	* main.c (alarms_process_pending): Sort LIST.

2006-05-09  Neal H. Walfield  <neal@gnu.org>

	* main.c (schedule_wakeup): Don't cache the event, we only need
	the uid.

2006-05-09  Neal H. Walfield  <neal@gnu.org>

	* day_view.c (gtk_day_view_reload_events): When an event is not
	needed, dereference it immediately.  Free EVENTS.

2006-05-09  Neal H. Walfield  <neal@gnu.org>

	* day_render.c (event_ends): Remove define.
	(found_node): Remove variable.
	(make_set): Likewise.
	(events_overlap): Likewise.
	(find_set_in_list): Likewise.
	(find_set): Likewise.
	(union_set): Likewise.
	(find_overlapping_sets): Likewise.
	(ol_sets_to_rectangles): Likewise.
	(calc_events_positions): New function: new rectangle layout
	implementation.
	(gtk_day_render_set_events): Don't call ol_sets_to_rectangles,
	call calc_events_positions.
	(event_rect_new): Take the X and WIDTH position as arguments
	rather than calculating them here.  Add the newly created
	rectangle to DAY_RENDER->EVENT_RECTANGLES.
	
2006-05-08  Neal H. Walfield  <neal@gnu.org>

	* event-ui.h (unschedule_alarm): Remove declaration.  Update
	callers.
	(schedule_next): Likewise.
	* event-ui.c: Don't include <gpe/schedule.h>.
	(unschedule_alarm): Remove function.
	(schedule_next): Likewise.
	(click_ok): When cancelling the creation of a new an event, also
	call event_remove.
	* configure.ac (DEP_MODULES): Add libhandoff dependency.
	* Makefile.am (gpe_calendar_SOURCES): Add alarm-dialog.c and
	alarm-dialog.h.
	* alarm-dialog.c: New file.
	* alarm-dialog.h: New file.
	* main.c: Include <gpe/schedule.h>, <handoff.h> and
	"alarm-dialog.h".
	(gpe_calendar): New variable.
	(alarm_button): New variable.
	(schedule_wakeup): New function.
	(update_view): Call schedule_wakeup.
	(alarm_dialog): New variable.
	(alarm_dialog_show_event): New function.
	(alarm_dialog_required): New function.
	(alarm_fired): New function.
	(alarms_process_pending): New function.
	(alarm_button_clicked): New function.
	(gpe_cal_exit): Don't call schedule_next.
	(create_app_menu): Create new item, "Alarms".
	(import_file): New function.
	(handoff_callback): New function.
	(handoff_serialize): New function.
	(main): After creating EVENT_DB, add an idle source to call
	alarms_process_pending and another to call schedule_wakeup.  Move
	option parsing earlier.  While parsing option, collect the files
	to import in STATE and in IMPORT_FILES.  Create a handoff object.
	Add a new vertical separator and a new button, "Alarms," to the
	toolbar.  When importing files, call import_file.  Only initialize
	VIEWTIME if not already initialized.
	* day_view.c: Don't include <gpe/schedule.h>.

2006-05-08  Philip Blundell  <pb@reciva.com>

	* main.c (update_view): Don't attempt to update nonexistent widgets.
	(month_view_button_clicked): Likewise.
	(week_view_button_clicked): Likewise.	
	(day_view_button_clicked): Likewise.	
	(propagate_time): Likewise.
	(main): Move calendar creation inside if-block.

2006-05-06  Phil Blundell  <pb@reciva.com>

	* configure.ac: Require libeventdb >= 0.29.

	* main.c (main): Suppress sidebar on small or portrait-format
	screens.

2006-04-25  Neal H. Walfield  <neal@gnu.org>

	* week_view.c (gtk_week_view_reload_events): Call
	event_db_list_for_period, not event_db_list_untimed_for_period.

2006-04-25  Neal H. Walfield  <neal@gnu.org>

	* event-ui.c: Synchronize libeventdb API changes to
	event_get_untimed and event_set_untimed.
	* globals.h: Likewise.
	* import-vcal.c: Likewise.
	* week_view.c: Likewise.

2006-04-24  Neal H. Walfield  <neal@gnu.org>

	* main.c (main): Make PRIMARY a pane, not a box.  Update users.
	Don't create SEP.

2006-04-24  Neal H. Walfield  <neal@gnu.org>

	* event-list.c (gtk_event_list_base_class_init): Correctly
	initialize PARENT_CLASS.

2006-04-24  Neal H. Walfield  <neal@gnu.org>
	Reported by Jan Arne Petersen.

	* event-ui.c (edit_event): Make S->RADIOBUTTONENDAFTER active if
	appropriate.  Initialize S->ENDSPIN to R->COUNT.

2006-04-24  Neal H. Walfield  <neal@gnu.org>

	* event-ui.c (edit_event): Set S->PAGE as a function of the result
	of is_reminder, not event_get_duration.  Invert the logic used to
	set S->REMINDERTIMEBUTTON.

2006-04-24  Neal H. Walfield  <neal@gnu.org>

	* day_render.c (gtk_day_render_button_press): Take into account
	the minimum event rectangle height.

2006-04-24  Neal H. Walfield  <neal@gnu.org>

	* event-ui.c (click_delete): Use event_is_recurrence to check if
	an event is a recurrence.
	(click_ok): Remove unused variables new_event and was_recur.  Use
	event_get_recurrence_start to get the start of the recurrence
	rather than event_get_start.  Use event_set_recurrence_start to
	set the start of the recurrence.
	(edit_event): Use event_get_recurrence_start to get the start of
	the recurrence rather than event_get_start.  Use
	event_get_recurrence_type rather then checking R->TYPE.

2006-04-24  Neal H. Walfield  <neal@gnu.org>

	* event-ui.c (build_edit_event_window): Add HBOXENDAFTER to
	VBOXEND.  Change the ENDLABEL text to "recurrences".

2006-04-23  Neal H. Walfield  <neal@gnu.org>

	* day_render.c: Include <libintl.h>.
	(_): Define.
	
2006-04-23  Neal H. Walfield  <neal@gnu.org>

	* week_view.c (gtk_week_view_reload_events): Update call to
	event_db_untimed_list_for_period to reflect new API.

2006-04-23  Neal H. Walfield  <neal@gnu.org>

	* day_render.c (gtk_day_render_expose): Don't forget to free
	UNTIL.

2006-04-23  Neal H. Walfield  <neal@gnu.org>

	* day_render.c (gtk_day_render_expose): If the event doesn't end
	during the displayed period, include text about when it does ends.

2006-04-23  Neal H. Walfield  <neal@gnu.org>

	* event-list.c (gtk_event_list_reload_events): Correctly calculate
	NEXT_RELOAD.
	
2006-04-23  Neal H. Walfield  <neal@gnu.org>

	* week_view.c (gtk_week_view_reload_events): Move code which
	calculates WEEK_VIEW->BANNER_WIDTH and WEEK_VIEW->TIME_WIDTH from
	here...
	(draw_expose_event): ... to here.  Only calculate them if
	WEEK_VIEW->HAVE_EXTENTS is FALSE.

2006-04-23  Neal H. Walfield  <neal@gnu.org>

	* event-cal.c: Include <string.h>.
	(update_cal): Make year, month and day unsigned.

2006-04-23  Neal H. Walfield  <neal@gnu.org>

	* month_view.c (WIDTH_DELTA): Don't define.
	(gtk_month_view_realize): New function.  Calculate
	MONTH_VIEW->TITLE_HEIGHT here using the average font height.
	(gtk_month_view_base_class_init): Set WIDGET_CLASS->REALIZE to
	gtk_month_view_realize.
	(calc_title_height): Remove function.
	(resize_table): Don't include WIDTH_DELTA when calculating the
	width.
	(gtk_month_view_new): Don't call calc_title_height.

2006-04-23  Neal H. Walfield  <neal@gnu.org>

	* day_render.c (gtk_day_render_base_class_init): Set
	widget_class->size_request to GTK_DAY_RENDER_SIZE_REQUEST.
	(gtk_day_render_size_request): New function, calculate
	DAY_RENDER->ROW_HEIGHT_MIN here.
	(gtk_day_render_expose): Calculate time_width here as required.
	Rearrange code so that there is no penalty.
	(gtk_day_render_update_extents): Don't calc
	DAY_RENDER->ROW_HEIGHT_MIN or DAY_RENDER->TIME_WIDTH here.  Don't
	request a window size unless the widget has already received a
	size request event.

2006-04-22  Neal H. Walfield  <neal@gnu.org>

	* gtkdatesel.c (struct _GtkDateSel): Remove fields day_width,
	month_width, year_width, week_width.

	(get_max_month_width): Remove function.
	(gtk_date_sel_set_month_style): Don't call get_max_month_width.

	(month): New function.
	(GTK_TYPE_MONTH_CELL_RENDERER): New macro.
	(MonthCellRendererClass): New structure.
	(MonthCellRenderer): Likewise.
	(month_cell_renderer_get_type): New function.
	(month_cell_renderer_class_init): Likewise.
	(month_cell_renderer_finalize): Likewise.
	(get_layout): Likewise.
	(month_cell_renderer_get_size): Likewise.
	(month_cell_renderer_render): Likewise.
	(month_cell_renderer_new): Likewise.
	(month_cell_data_func): Change to use the MonthCellRenderer.
	(gtk_date_sel_new): Use a MonthCellRenderer, not a GtkListStore.

2006-04-17  Neal H. Walfield  <neal@gnu.org>

	* month_view.c (draw_expose_event): Turn word wrap off when
	vertical space is at a premium.

2006-04-17  Neal H. Walfield  <neal@gnu.org>

	* day_render.c (struct _GtkDayRender): Add field hour_bar_pos.
	Rename row_height to row_height_min and update users.
	(HOUR_BAR_HEIGHT): New macro.
	(hour_bar_calc): New function.
	(hour_bar_move): Don't simply queue a redraw: calculate where the
	hour bar will be and save it in DAY_RENDER->HOUR_BAR_POS.  Only
	redraw the areas that are damaged.  Only return TRUE if the hour
	bar still needs to be drawn.
	(gtk_day_render_expose): Don't recalculate the hour bar position
	here, just use DAY_RENDER->HOUR_BAR_POS.  Don't set or remove the
	timer.  Be careful not to paint the vertical line separating rows
	over the hour bar.
	(gtk_day_render_update_extents): Call hour_bar_calc.

	(gtk_day_render_expose): Set PL's wrap attribute to
	PANGO_WRAP_WORD_CHAR.  When space is at a premium, try to show
	more text in various ways.  Vertically center the text.  Really
	only print the colon when location or description are present.

	(gtk_day_render_update_extents): Get the logical extents, not the
	ink extents when calculating WIDTH and HEIGHT.  Don't special case
	hildon.  Add 4 extra pixels to the height, not 6.

	* day_render.h (gtk_day_render_set_events): Take new paramter
	date, update callers.
	(gtk_day_render_set_date): Remove declaration.
	* day_render.c (gtk_day_render_set_events): Take a new parameter,
	date.
	(gtk_day_render_update_extents): Remove function.

	* gtkdatesel.c (gtk_date_sel_new): Set the month combo box to have
	three columns.
	
	* week_view.c (REALLY_MIN_CELL_HEIGHT): Remove unused define.

2006-04-16  Neal H. Walfield  <neal@gnu.org>

	* event-list.c (button_press): If there is no row at the cursor
	position, just return.

2006-04-13  Neal H. Walfield  <neal@gnu.org>

	* day_popup.c: Synchronize libeventdb API changes.
	* day_render.c: Likewise.
	* day_view.c: Likewise.
	* event-cal.c: Likewise.
	* event-list.c: Likewise.
	* event-ui.h: Likewise.
	* event-ui.c: Likewise.
	* export-vcal.h: Likewise.
	* export-vcal.c: Likewise.
	* globals.h: Likewise.
	(event_db): New declaration.
	(get_cloned_ev): Remove define.
	* main.c: Synchronize libeventdb API changes.
	(CALENDAR_FILE): New macro.
	(event_db): New variable.
	(on_import_vcal): Don't call event_db_refresh.
	(main): Initialize EVENT_DB.
	* month_view.c: Synchronize libeventdb API changes.
	* week_view.c: Likewise.

	* import-vcal.c: Include <gpe/event-db.h> and "globals.h".
	(CALENDAR_DB_NAME): Remove define.
	(parse_date): New function, imported from libevent-db.
	(do_import_vevent): Don't open an sqlite session, insert directly
	into EVENT_DB using the libeventdb API.

	* day_render.c (gtk_day_render_set_events): Destroy
	DAY_RENDER->EVENT_RECTANGLES.
	* event-cal.c (update_cal): Clear START_TM to 0.

2006-04-10  Neal H. Walfield  <neal@gnu.org>

	* day_render.c (gtk_day_render_expose): Also print the
	EVD->LOCATION and EVD->DESCRIPTION.

2006-04-10  Neal H. Walfield  <neal@gnu.org>

	* day_render.c (struct _GtkDayRender): New fields time_gc and
	hour_bar_repaint.
	(gtk_day_render_finalize): Deallocate DAY_RENDER->TIME_GC and
	DAY_RENDER->HOUR_BAR_REPAINT if required.
	(hour_bar_move): New function.
	(gtk_day_render_expose): If the displayed day contains the current
	time, draw an hour bar and set up a timer to update it.

2006-04-09  Neal H. Walfield  <neal@gnu.org>

	* day_view.c (delete_event_cb): Call update_view, not
	gtk_day_view_reload_events.

	* event-list.c: Include <gdk/gdkkeysyms.h>.
	(key_press): New function.
	(gtk_event_list_init): Connect key_press to EVENT_LIST->VIEW's
	"key_press_event" signal handler.

	* main.c (set_time_and_day_view): Call propagate_time.

	* month_view.c (month_view_key_press_event): If I is non-zero,
	always call gtk_view_set_time.

2006-04-09  Neal H. Walfield  <neal@gnu.org>

	* main.c (propagate_time): New declaration.
	(update_view): Always call gtk_event_cal_reload_events.  Also call
	gtk_event_list_reload_events.

	(set_today): Call propagate_time, not update_view.

	* event-list.c (gtk_event_list_init): Set "scale" on RENDERER to
	0.8.

	(gtk_event_list_reload_events): Rename next_change to next_reload.
	Initialize it to two days in the future.  Simply code given that
	NEXT_RELOAD is initialized.

	* month_view.c (gtk_month_view_new): Make MONTH_VIEW->DRAW
	focusable.
	* week_view.c (gtk_week_view_new): Likewise for WEEK_VIEW->DRAW.

2006-04-09  Neal H. Walfield  <neal@gnu.org>

	* gtkdatesel.h (gtk_date_sel_set_mode): New declaration.
	* gtkdatesel.c (make_field): Show ARROW_L, ARROW_R,
	ARROW_BUTTON_L, E->DISPLAY and ARROW_BUTTON_R.
	(show_field): Remove function.
	(gtk_date_sel_show): Remove function.
	(gtk_date_sel_class_init): Don't initialize WIDGET_CLASS->SHOW.
	(gtk_date_sel_set_mode): New function.
	(gtk_date_sel_new): Create all four fields independent of MODE.
	Call gtk_date_sel_set_mode to show only those required for MODE.
	* main.c (view_button_clicked): Remove function.
	(day_view_button_clicked): New function.
	(week_view_button_clicked): New function.
	(month_view_button_clicked): Also call gtk_date_sel_set_mode to
	change DATESEL to the appropriate mode.
	(main): Connect DAY_BUTTON's clicked callback to
	day_view_button_clicked.  Connect WEEK_BUTTON's clicked callback
	to week_view_button_clicked.

2006-04-09  Neal H. Walfield  <neal@gnu.org>

	* view.h: New file.
	* view.c: New file.
	* Makefile.am (gpe_calendar_SOURCES): Add view.c and view.h.
	* main.c: Include "view.h", "event-cal.h" and "event-list.h".
	(datesel, calendar, event_list): New global variables.
	(update_view): Don't look up the "update_hook" on the view, call
	gtk_view_reload_events.  Also call gtk_event_cal_reload_events.
	(propagate_time): New function.
	(datesel_changed): New function.
	(calendar_changed): New function.
	(time_changed): New function.
	(new_view): When invoking NEW, pass VIEWTIME.  Connect
	time_changed to the new view's "time-changed" signal.
	(view_button_clicked): Show CALENDAR.
	(month_view_button_clicked): New function.
	(main): Limit WINDOW_X to 1000 and WINDOW_Y to 800.  Incorporate
	CALENDAR, DATESEL and EVENT_LIST into the layout.
	* day_view.h (gtk_day_view_new): Accept new parameter, time.
	Update callers.
	* day_view.c: Include "view.h".
	(struct _GtkDayView): Make widget not a GtkVBox but a GtkView.
	Remove fields datesel, calendar, event_list, event_box and date
	and update users.
	(DayViewClass): Remove field vbox_class, add field view_class.
	(gtk_day_view_show): Remove declaration.
	(day_view_update): Likewise.
	(gtk_day_view_set_time): New declaration.
	(gtk_day_view_reload_events): Likewise.
	(gtk_day_view_get_type): Inherit from a GtkView, not a GtkVBox.
	(gtk_day_view_base_class_init): Likewise.  Don't initialize
	WIDGET_CLASS->SHOW.  Initialize VIEW_CLASS->SET_TIME to
	gtk_day_view_set_time and VIEW_CLASS->RELOAD_EVENTS to
	GTK_RELOAD_EVENTS.
	(gtk_day_view_init): Don't initialize DAY_VIEW->DATE.
	(gtk_day_view_show): Remove function.
	(gtk_day_view_set_time): New function.
	(day_view_row_clicked): Don't use VIEWTIME, use the date stored in
	DAY_VIEW.
	(day_view_update): Rename from this...
	(gtk_day_view_reload_events): ... to this and update callers.
	Remove force parameter.  Don't check if we need to update; assume
	that we do.
	(datesel_changed): Remove function.
	(calendar_changed): Remove function.
	(scroll_to): Don't use VIEWTIME, use the date stored in DAY_VIEW.
	(event_menu_destroy): Remove function.
	(gtk_day_view_new): Accept new parameter, time.  Don't set the
	"update_hook" data on DAY_VIEW.  Don't create a datesel, calendar
	or event_list and refactor layout accordingly.
	* day_render.h: Don't require a GdkGC * but a GdkColor.  Update
	users.
	* day_render.c (struct _GtkDayRender): New field, app.  Rename
	normal_gc to app_gc and update users.
	(gtk_day_render_new): Don't require a GdkGC * but a GdkColor.
	Assign this to DAY_RENDER->APP.
	(gtk_day_render_expose): And allocate DAY_RENDER->APP_GC here when
	needed.
	* week_view.h (gtk_week_view_new): Accept new parameter, time.
	Update callers.
	* week_view.c: Include "view.h".
	(struct _GtkWeekView): Make widget a GtkView, not a GtkVBox.
	(struct _GtkWeekView): Remove fields datesel, calendar, event_list
	and date and update users.
	(GtkWeekViewClass): Remove field vbox_class, add field view_class.
	(gtk_week_view_show): Remove declaration.
	(week_view_update): Likewise.
	(gtk_week_view_set_time): New declaration.
	(gtk_week_view_reload_events): Likewise.
	(gtk_week_view_get_type): Inherit from a GtkView, not a GtkVBox.
	(gtk_week_view_base_class_init): Likewise.  Don't initialize
	WIDGET_CLASS->SHOW.  Set VIEW_CLASS->SET_TIME to
	gtk_month_view_set_time and VIEW_CLASS->RELOAD_EVENTS to
	gtk_month_view_reload_events.
	(gtk_week_view_init): Don't initialize WEEK_VIEW->DATE.
	(gtk_week_view_show): Remove function.
	(gtk_week_view_set_time): New function.
	(week_view_update): Rename from this...
	(gtk_week_view_reload_events): ... to this.  Remove parameter
	force; always update.  Don't update WEEK_VIEW->CALENDAR or
	WEEK_VIEW->DATESEL.  Don't use VIEWTIME, use the date in
	MONTH_VIEW.
	(calendar_day_changed): Remove function.
	(datesel_changed): Likewise.
	(update_hook_callback): Likewise.
	(week_view_key_press_event): Don't update WEEK_VIEW->DATESEL, call
	gtk_view_set_time.  Don't use VIEWTIME, use the time in WEEK_VIEW.
	(week_view_button_press): Likewise.
	(gtk_week_view_new): Take new parameter, time.  Don't set the
	"update_hook" data on WEEK_VIEW.  Don't create a datesel, calendar
	or event_list and refactor layout accordingly.
	* month_view.h (gtk_month_view_new): Accept new parameter, time.
	Update callers.
	* month_view.c: Include "view.h".
	(struct _GtkMonthView): Make widget a GtkView, not a GtkVBox.
	Remove field datesel and date and update users.
	(GtkMonthViewClass): Remove field vbox_class, add field
	view_class.
	(gtk_month_view_show): Remove declaration.
	(month_view_update): Likewise.
	(gtk_month_view_set_time): New declaration.
	(gtk_month_view_reload_events): Likewise.
	(gtk_month_view_get_type): Inherit from a GtkView, not a GtkVBox.
	(gtk_month_view_base_class_init): Likewise.  Don't initialize
	WIDGET_CLASS->SHOW.  Set VIEW_CLASS->SET_TIME to
	gtk_month_view_set_time and VIEW_CLASS->RELOAD_EVENTS to
	gtk_month_view_reload_events.
	(gtk_month_view_init): Don't initialize MONTH_VIEW->DATE.
	(gtk_month_view_show): Remove function.
	(gtk_month_view_set_time): New function.
	(button_press): Don't use VIEWTIME, change MONTH_VIEW->FOCUSED_DAY
	or change the focus; just call gtk_view_set_time.
	(month_view_key_press_event): Likewise.
	(month_view_update): Rename from this...
	(gtk_month_view_reload_events): ... to this.  Remove parameter
	force; always update.  Don't update MONTH_VIEW->DATESEL.  Don't
	use VIEWTIME, use the date in MONTH_VIEW.
	(datesel_changed): New function.
	(update_hook_callback): New function.
	(gtk_month_view_new): Take new parameter, time.  Don't realize
	MAIN_WINDOW.  Don't set the "update_hook" data on MONTH_VIEW.
	Don't create a datesel and refactor layout accordingly.

2006-04-09  Neal H. Walfield  <neal@gnu.org>

	* event-cal.c (update_cal): Check if the date changed using the
	year and month in the GtkEventCal, not the GtkCalendar.

2006-04-09  Neal H. Walfield  <neal@gnu.org>

	* event-list.c (struct _GtkEventList): Add fields date and tm.
	(date_cell_data_func): Interpret user data as the associated
	GtkEventList.  Provide more descriptive dates.
	(gtk_event_list_init): Pass EVENT_LIST as user data to
	date_cell_data_func.
	(gtk_event_list_reload_events): Save the time in EVENT_LIST->DATE
	and EVENT_LIST->TM.  Don't just look for the end of the next
	event: find the first status change.

2006-04-08  Neal H. Walfield  <neal@gnu.org>

	* gtkdatesel.c (get_max_day_width): Remove dead code.

2006-04-08  Neal H. Walfield  <neal@gnu.org>

	* event-list.h: New file.
	* event-list.c: New file.
	* Makefile.am (gpe_calendar_SOURCES): Add event-list.c and
	event-list.h.
	* day_view.c: Include "event-list.h".
	(struct _GtkDayView): New field, event_list.
	(day_view_update): If FORCE is true, cause DAY_VIEW->EVENT_LIST
	to reload.
	(gtk_day_view_new): Initialize DAY_VIEW->EVENT_LIST.  Add
	DAY_VIEW->EVENT_LIST just below DAY_VIEW->CALENDAR.
	* week_view.c: Include "event-list.h".
	(struct _GtkWeekView): New field, event_list.
	(week_view_update): If FORCE is true, cause WEEK_VIEW->EVENT_LIST
	to reload.
	(gtk_week_view_new): Initialize WEEK_VIEW->EVENT_LIST.  Add
	WEEK_VIEW->EVENT_LIST just below WEEK_VIEW->CALENDAR.

2006-04-07  Florian Boor  <florian@kernelconcepts.de>

    * event-ui.c (build_edit_event_window): Nicer looking layout: replace 
      boxes with table.
    
2006-04-06  Neal H. Walfield  <neal@gnu.org>

	* event-cal.h: New file.
	* event-cal.c: New file.
	* Makefile.am (gpe_calendar_SOURCES): Add event-cal.c and
	event-cal.h.
	* day_view.c: Include "event-cal.h".
	(day_view_update): If force is true, make DAY_VIEW->CALENDAR
	reread the event database.
	* week_view.c: Include "event-cal.h".
	(week_view_update): If force is true, make WEEK_VIEW->CALENDAR
	reread the event database.
	(gtk_week_view_new): Make a GtkEventCal, not a GtkCalendar.

2006-04-06  Neal H. Walfield  <neal@gnu.org>

	* main.c (today_button): Remove global variable.
	(force_today): Make this global static...
	(set_today): ... a local static in this function.  Only revert to
	the saved time if the current view is today.  Otherwise, just go
	to today.
	(main): Don't make the today button a toggle.
	* globals.h (force_today): Remove declaration.
	* month_view.c (draw_expose_event): Don't check force_today.

2006-04-06  Neal H. Walfield  <neal@gnu.org>

	* main.c (notebook): Remove variable.
	(view_container): New variable.
	(day): Remove variable.
	(week): Likewise.
	(month): Likewise.
	(set_time_all_views): Remove function.
	(update_view): Don't pass the view to update as a parameter, just
	use CURRENT_VIEW.
	(update_current_view): Remove function.
	(update_all_views): Likewise.
	(set_today): Don't call set_time_all_views but update_view.
	(new_view): Rewrite to accept a constructor function as the
	argument.  If CURRENT_VIEW is non-NULL, destroy.  Invoke the
	constructor, add the resulting widget to VIEW_CONTAINER and show
	it.
	(set_time_and_day_view): Don't call update_current_view.
	(button_toggled): Rename from this...
	(view_button_clicked): ... to this.  Update users.
	(on_import_vcal): Don't call update_all_views but update_view.
	(main_window_key_press_event): Remove function.
	(main): Don't create a GtkNotebook but a GtkVBox.  Don't create a
	GtkDayView, GtkWeekView or GtkMonthView.  Pass gtk_day_view_new as
	the user data argument to the click call back of the day view
	button.  Likewise gtk_week_view_new for the week view button and
	gtk_month_view_new for the month view button.  Don't call
	update_all_views.  Pass gtk_day_view_new as the parameter to
	new_view.
	* globals.h (update_view): New declaration.
	(update_current_view): Remove declaration.
	(update_all_views): Remove declaration.
	(set_time_all_views): Remove declaration.
	* gtkdatesel.h (gtk_date_sel_new): Take new parameter, the initial
	time.
	* gtkdatesel.c (gtk_date_sel_new): Take new parameter, the initial
	time.
	(gtk_date_sel_new): Remove unused variable buffer.
	(gtk_date_sel_new): Call week_update after creating the week
	display, day_update after creating the day display, month_update
	after creating the month display and year_update after creating
	the year display.
	* day_view.h (gtk_day_view_new): Return a GtkWidget *, not a
	GtkDayView *.
	* day_view.c (gtk_day_view_show): New declaration.
	(gtk_day_view_base_class_init): Initialize WIDGET_CLASS->SHOW to
	gtk_day_view_show.
	(gtk_day_view_show): New function.
	(day_view_update): Fold function into...
	(delete_event_cb): ... this function.  Don't call update_all_views
	but day_view_update.
	(day_view_update): Check if DAY_VIEW->DATESEL needs an update.
	Check if DAY_VIEW->CALENDAR needs an update.
	(datesel_changed): Don't update DAY_VIEW->CALENDAR, just always
	call day_view_update.
	(calendar_changed): Don't udpate DAY_VIEW->DATESEL, just always
	call day_view_update.
	(gtk_day_view_new): Return a GtkWidget *, not a GtkDayView *.
	Pass VIEWTIME to gtk_date_sel_new.  Don't set the "datesel-day"
	property on MAIN_WINDOW.
	* week_view.h (gtk_week_view_new): Return a GtkWidget *, not a
	GtkDayView *.
	* week_view.c (gtk_week_view_show): New declaration.
	(week_view_update): Likewise.
	(gtk_week_view_base_class_init): Initialize WIDGET_CLASS->SHOW to
	gtk_week_view_show.
	(gtk_week_view_show): New function.
	(week_view_update): Check if WEEK_VIEW->DATESEL needs to be
	updated.  Check if WEEK_VIEW->DATESEL needs to be updated.
	(calendar_day_changed): Don't udpate DAY_VIEW->DATESEL, just
	always call day_view_update.
	(datesel_changed): Don't update DAY_VIEW->CALENDAR, just always
	call day_view_update.
	(update_hook_callback): Don't update WEEK_VIEW->CALENDAR or
	WEEK_VIEW->DATESEL.
	(gtk_week_view_new): Return a GtkWidget *, not a GtkWeekView *.
	Pass VIEWTIME to gtk_date_sel_new.  Don't set the "datesel-week"
	property on MAIN_WINDOW.
	* month_view.h (gtk_month_view_new): Return a GtkWidget *, not a
	GtkDayView *.
	* month_view.c (gtk_month_view_show): New declaration.
	(month_view_update): Likewise.
	(gtk_month_view_base_class_init): Initialize WIDGET_CLASS->SHOW to
	gtk_month_view_show.
	(gtk_month_view_show): New function.
	(month_view_update): Check if MONTH_VIEW->DATESEL needs to be
	updated.
	(gtk_month_view_new): Return a GtkWidget *, not a GtkMonthView *.
	Don't show MONTH_VIEW.  Pass VIEWTIME to gtk_date_sel_new.  Don't
	set the "datesel-month" property on MAIN_WINDOW.  * event-ui.c
	(click_delete): Don't call update_all_views but update_view.
	(click_ok): Likewise.
	* xsettings.c (notify_func): Likewise.

2006-04-05  Neal H. Walfield  <neal@gnu.org>

	* month_view.c (gtk_month_view_init): Set MONTH_VIEW->HAS_POPUP to
	0.
	(button_press): Likewise as well as POP_WINDOW.
	(month_view_key_press_event): Likewise.

2006-04-05  Neal H. Walfield  <neal@gnu.org>

	* day_view.c (struct _GtkDayView): Add field, date.
	(gtk_day_view_init): Initialize DAY_VIEW->DATE.
	(datesel_changed): Move bulk of code from here...
	(day_view_update): ... to here.  Only update if FORCE is true or
	if the day actually changed.  Free events which are not used.
	(datesel_changed): If time changed, update DAY_VIEW->CALENDAR and
	call day_view_update.
	(day_changed_calendar): Rename from this...
	(calendar_changed): ... to this and update callers.  Don't call
	set_time_all_views.  If time changed, update DAY_VIEW->DATESEL and
	call day_view_update.
	(update_hook_callback): Change return type to void.  Change first
	parameter to a GtkWidget *.  Call day_view_update.
	(gtk_day_view_new): Change return type to GtkDayView *.

	(gtk_day_view_finalize): Don't free DAY_VIEW->APPOINTMENTS or
	DAY_VIEW->REMINDERS.

	* day_view.h (gtk_day_view_new): Change to return a GtkDayView *.
	Update users.

2006-04-05  Neal H. Walfield  <neal@gnu.org>

	* week_view.h (struct _GtkWeekView): New structure.
	(GtkWeekView): New tyepdef.
	(GTK_WEEK_VIEW): New macro.
	(GTK_WEEK_VIEW_CLASS): New macro.
	(GTK_IS_WEEK_VIEW): New macro.
	(gtk_week_view_get_type): New declaration.
	(week_view): Rename from this...
	(gtk_week_view_new): ... to this.  Change return type to
	GtkWeekView *.  Update callers.
	(week_free_lists): Remove declaration.
	* week_view.c: Don't include <stdio.h>, <stdlib.h> or <string.h>.
	(struct render_ctl): Remove this structure.  Add POPUP to...
	(struct week_day): ... this structure.  Rename y0 to top, y1 to
	height.  Rename string to banner.  Remove is_today and is_active.
	Update users.
	(week_view_draw, available_width, c_old, today): Move from here...
	(struct _GtkWeekView): ... to here.  Rename to draw, width and
	has_popup, and date respectively.  Update users.
	(datesel, calendar, time_width, scroller, week_days): Move from
	here...
	(struct _GtkWeekView): ... to here.  Add have_extents,
	banner_width, height and focused_day.
	(GtkWeekViewClass): New structure.
	(gtk_week_view_base_class_init): New declaration.
	(gtk_week_view_init): New declaration.
	(gtk_week_view_dispose): New declaration.
	(gtk_week_view_finalize): New declaration.
	(parent_class): New global static.
	(gtk_week_view_get_type): New function.
	(gtk_week_view_base_class_init): New function.
	(gtk_week_view_init): New function.
	(gtk_week_view_dispose): New function.
	(gtk_week_view_finalize): New function.
	(gtk_week_view_invalidate_day): New function.
	(draw_expose_event): Use pen_new where possible.  Rewrite to more
	precisely draw the days within their respective bounding boxes.
	Don't reserve 1/7 of the screen for each day: only allocate as
	much as needed to maximize use of real estate.  As far as
	possible, only redraw damaged areas.  Don't mark the events, just
	check if the start matches the day we are drawing.  Correctly
	color the days when WEEK_STARTS_MONDAY is false.  Save the
	calculated extents.  Clear any unused drawing area to the
	background color as required.
	(week_free_lists): Remove function.
	(resize): On a change, set WEEK_VIEW->HAVE_EXTENTS as false.
	Queue a redraw of WEEK_VIEW->DRAW.
	(week_view_update): Take two new parameters: a GtkWeekView and a
	boolean which forces an update.  Only update if the week changed
	or we are forced to.  If the week didn't change but the day did,
	change WEEK_VIEW->FOCUSED_DAY and damage the drawing area
	appropriately.  Correctly calculate the start of the week taking
	into account days sometimes have more or less than 24 hours.  When
	creating each day's banner, add a space at the end.  Don't
	calculate the height of each day: do that lazily when drawing the
	view the first time.
	(calendar_day_changed): Don't call set_time_all_views.  Keep
	WEEK_VIEW->DATESEL in sync.  When calling week_view_update, don't
	force an update.
	(datesel_changed): Keep WEEK_VIEW->CALENDAR in sync.  When calling
	week_view_update, don't force an update.
	(update_hook_callback): Require another parameter, a GtkWeekView
	*.  When calling week_view_update, force an update.
	(week_view_key_press_event): All days are valid.  Don't forget to
	set POP_WINDOW to NULL and WEEK_VIEW->HAS_POPUP after destroying
	POP_WINDOW.
	(get_day_from_y): Remove function.
	(week_view_button_press): Use calculated extents.  Rather than on
	a double click, if an focused day is clicked, zoom to that day.
	On focus, give WEEK_VIEW->DRAW the focus.
	(week_view): Rename from this...
	(gtk_week_view_new): ... to this.  Return a GtkWeekView.  Pass
	WEEK_VIEW as user data when setting up the various signal
	handlers.
	* main.c (on_import_vcal): Don't call week_free_lists.

2006-04-03  Neal H. Walfield  <neal@gnu.org>

	* main.c (main): Really update all callers of month_view to call
	gtk_month_view_new.
	
2006-04-03  Neal H. Walfield  <neal@gnu.org>

	* month_view.h (struct _GtkMonthView): New structure.
	(GtkMonthView): New typedef.
	(GTK_MONTH_VIEW): New macro.
	(GTK_MONTH_VIEW_CLASS): New macro.
	(GTK_IS_MONTH_VIEW): New macro.
	(month_view): Rename from this...
	(gtk_month_view_new): ... to this and update callers.
	(month_free_lists): Remove declaration.
	* month_view.c: Don't include <stdio.h>, <stdlib.h> or <string.h>.
	(TOTAL_WEEKS): New macro.
	(WIDTH_DELTA): New macro.
	(is_today): New macro.
	(struct _GtkMonthView): New structure.
	(day_events, datesel, draw, render_ctl, rc): Move from here...
	(struct _GtkMonthView): ... to this structure and update users.
	(c_old, active_day): Move from here...
	(struct _GtkMonthView): ... to this structure, rename to has_popup
	and focused_day respective, and update users.
	(month_view_update): Remove declaration.
	(GtkMonthViewClass): New typedef.
	(gtk_month_view_base_class_init): New declaration.
	(gtk_month_view_init): New declaration.
	(gtk_month_view_dispose): New declaration.
	(gtk_month_view_finalize): New declaration.
	(parent_class): New global.
	(gtk_month_view_get_type): New function.
	(gtk_month_view_base_class_init): New function.
	(gtk_month_view_init): New function.
	(gtk_month_view_dispose): New function.
	(gtk_month_view_finalize): New function.
	(gtk_month_view_cell_box): New function.
	(gtk_month_view_cell_at): New function.
	(gtk_month_view_invalidate_cell): New function.
	(button_press): Don't display the popup menu if C is invalid.  If
	left clicking on a non-focused cell, move to that cell.  If that
	includes changing to a new month, do that.  If clicking on an
	focused cell, move to the day view of that cell.  Don't do this
	for a double click.  Only call month_view_update is really
	necessary.
	(days1, days2): Merge to...
	(days_of_week): ... to this and update users.
	(calc_title_height): Change argument from a GtkWidget to a
	GtkMonthView.  Don't use strlen, just pass -1 to
	pango_layout_set_text.
	(draw_expose_event): Expose the remaining arguments which are
	passed to an expose event.  Precisely draw each event in its area
	avoiding treading on a neighbor.  Only redraw those events which
	require a redraw.  Use pen_new where possible.  Don't waste time
	calling gdk_gc_set_clip_rectangle.  Collapse loops.  Don't forget
	to unref PL_EVT.
	(month_view_update): Take two new parameters, MONTH_VIEW and
	FORCE.  Only update if the month actually changed or if FORCE is
	true.  Compress loops.
	(changed_callback): Rename from this...
	(datesel_changed): ... to this.  The second parameter is a
	GtkMonthView, pass it to month_view_update.
	(update_hook_callback): Take an additional parameter, the view.
	Pass it to month_view_update.
	(resize_table): Add two parameters, the GtkAllocation and the
	GtkMonthView.  Pre-adjust the width with WIDTH_DELTA.  Queue a
	draw, don't actually perform one immediately.
	(month_view_key_press_event): Compress code.  Only call
	month_view_update when required.  When reaching an edge which
	would require scrolling to the next (or previous month), actually
	do it.
	(month_free_lists): Remove function.
	(month_view): Rename funtion...
	(gtk_month_view_new): ... to this.  Pass MONTH_VIEW to the various
	signal handlers as the user data parameter.  Request size based on
	MONTH_VIEW->TITLE_HEIGHT.
	* day_render.h (pen_new): Move declaration from here...
	* globals.h (pen_new): ... to here.
	* day_render.c (pen_new): Move function from here...
	* main.c (pen_new): ... to here.

2006-04-01  Neal H. Walfield  <neal@gnu.org>

        * export-vcal.c (vcal_do_save): Don't connect a signal handler to
        the cancel button which destroys the dialog as we destroy it anyway,
        i.e. avoid a double free.

2006-04-01  Neal H. Walfield  <neal@gnu.org>

        * gtkdatesel.c: Include <gdk/gdkkeysyms.h> and <stdlib.h>.
        (struct elem): Rename field text to display.  Update users.
        (year_update): Change to update the year's GtkEntry.
        (year_key_press): New function.
        (month_change): New function.
        (month_update): Change to update the month's GtkComboBox.
        (day_update): Change to update the day's GtkEntry.
        (day_key_press): New function.
        (entry_button_press): New function.
        (make_field): Require the caller to make sure that E->DISPLAY is
        valid.  Remove argument UPDATE and MAX_WIDTH.  Remove code which
        sets the update signal handler and the width of E->DISPLAY.
        (gtk_date_sel_init): Remove function and integrate functionality
        into...
        (gtk_date_sel_new): ... here.  Only build components required by
        MODE.  Make the day display not a GtkLabel but a GtkEntry, the
        month and year displays not GtkLabel's but GtkComboBox's.  Don't
        wire the maximum width anymore.
        (gtk_date_sel_show): When showing the week view, don't just show
        the week number and the year, also show the month.
        (gtk_date_sel_get_type): Don't provide a GInstanceInitFunc when
        building DATE_SEL_INFO.

2006-04-02  Phil Blundell  <pb@reciva.com>

	* main.c (main): Move time format checking code after setlocale
	call.

2006-03-31  Neal H. Walfield  <neal@gnu.org>

	* day_render.h (gtk_day_render_new): Add new arguments duration,
	rows_hard_first and rows_hard.  Remove arguments cols and ol_gc.
	Update callers.
	* day_render.c (period): Remove define.
	(event_rect_new): Don't mark the DAY_RENDER as const.
	(struct _GtkDayRender): Remove unused field ol_gc and cols.
	Rename width to visible_width and height to visible_height and
	update users.  Add duration, event_earliest, event_latest, height,
	offset_y, rows_hard_first, rows_hard, rows_visible_first and
	rows_visible.  Changed all fields that were a guint to a gint.
	(gtk_day_render_new): Implement initialization for new arguments
	duration, rows_hard_first and rows_hard.  Remove initialization
	for cols and ol_gc.
	(event_rect_draw): Integrated into...
	(gtk_day_render_expose): ... this function.  Make i and top gints,
	not guints.  When iterating over the rows to draw, start with row
	DAY_RENDER->ROWS_VISIBLE_FIRST and paint exactly
	DAY_RENDER->ROWS_VISIBLE rows.  Scale the drawing operations to
	fill the canvas given that only DAY_RENDER->ROWS_VISIBLE rows are
	visible.  Don't draw a line at the bottom of the canvas.
	(gtk_day_render_configure): If UPDATE is true also call
	gtk_day_render_update_extents.
	(gtk_day_render_button_press): Change row calculation to take into
	account the number of rows actually drawn.
	(gtk_day_render_set_events): Reset DAY_RENDER->EVENT_EARLIEST and
	DAY_RENDER->EVENT_LATEST.  Call gtk_day_render_update_extents.
	(gtk_day_render_update_extents): Only update
	DAY_RENDER->ROW_HEIGHT and DAY_RENDER->TIME_WIDTH the first time
	the function is called.  Also compute
	DAY_RENDER->ROWS_VISIBLE_FIRST and DAY_RENDER->ROWS_VISIBLE.
	Request a window size based on the number of visible rows.
	(event_rect_new): Update DAY_RENDER->EVENT_EARLIEST and
	DAY_RENDER->EVENT_LATEST as required.
	* day_view.c (datesel_changed): Remove variable tm_end.  Get the
	list of events for the next 30 hours.  Only add those events that
	happen in the next 24 hours to REMINDERS.  Pass START, not
	VIEWTIME to gtk_day_render_new.

2006-03-28  Neal H. Walfield  <neal@gnu.org>

        Make DayView and DayRender proper gtk objects and cleanly separate
        their functionality.

        * day_view.h (struct _GtkDayView): New struct.
        (GtkDayView): New typedef.
        (GTK_DAY_VIEW): New macro.
        (GTK_DAY_VIEW_CLASS): New macro.
        (GTK_IS_DAY_VIEW): New macro.
        (gtk_day_view_get_type): New declaration.
        (gtk_day_view_new): Renamed from day_view.
        (gtk_day_view_scroll): Renamed from day_view_scroll.
        (struct day_page): Removed struct.
        (day_view_combined_times): Remove declaration.
        (day_view_init): Remove declaration.
        (day_view_button_press): Remove declaration.
        (day_page_t): Removed typedef.
        * day_view.c (rem_area, datesel, calendar, scrolled_window,
        sel_event; page_app, page_rem, dr, rem_render, scrolling,
        scroll_floating): Remove global variables and fold into...
        (struct _GtkDayView): ... this new struct.
        (DayViewClass): New typedef.
        (parent_class): New global variable.
        (day_page_new): Rename to gtk_day_view_new.
        (gtk_day_view_get_type): New function.
        (gtk_day_view_base_class_init): New function.
        (gtk_day_view_init): New function.
        (gtk_day_view_dispose): New function.
        (gtk_day_view_finalize): New function.
        (day_page_draw_background): New function.
        (day_view_button_press): Split function into...
        (day_view_row_clicked): this new function...
        (day_view_event_clicked): and this new function...
        * day_render.c (gtk_day_render_button_press): and this new
        function.
        * day_view.c (day_view_expose): Move function to...
        * day_render.c (gtk_day_render_expose): ...here.
        * day_view.c (reminder_view_expose): Move function to...
        * day_render.c (gtk_day_render_expose): ...here.
        (day_page_draw_empty): Remove function.
        (day_page_calc_time_width): Move from here...
        * day_render.c (gtk_day_render_update_extents): ... to here.
        * day_view.c (day_view_expose_cb): Remove function.
        (reminder_view_init): Move this functionality...
        (reminder_view_expose): and this...
        (day_view_init): and this...
        (day_view_expose): and this...
        (changed_callback): and this...
        (datesel_changed): ... to here.
        (reminder_view_expose_cb): Remove function.
        (day_view_update): Remove function.
        (scroll_to): Update to use a GtkDayView rather than globals.
        (day_view_scroll): Rename...
        (gtk_day_view_scroll): ...to this.  Update to use a GtkDayView
        rather than globals.
        (sink_scroller): Update to use a GtkDayView rather than globals.
        (update_hook_callback): Likewise.
        (event_menu_destroy): Likewise.
        (delete_event_cb): Likewise.
        (edit_event_cb): Likewise.
        (save_cb): Likewise.
        (send_ir_cb): Likewise.
        (send_bt_cb): Likewise.
        (day_view): Split this function into...
        (gtk_event_menu_new): this...
        (gtk_day_view_new): and this.  Update to use a GtkDayView rather
        than globals.
        * day_render.h (day_render_update_offset): Remove macro.
        (caption): Remove structure.
        (struct day_render): Move...
        * day_render.c (struct GtkDayRender): ... here.
        * day_render.h (row): Remove structure.
        (ev_rec): Move...
        * day_render.h (struct event_rect): ... here and make widt,
        height, x and y floats which are percentages of the canvas.
        (struct _GtkDayRender): New struct.
        (GtkDayRender): New typedef.
        (GTK_DAY_RENDER): New macro.
        (GTK_DAY_RENDER_CLASS): New macro.
        (GTK_IS_DAY_RENDER): New macro.
        (day_render_new): Rename to...
        (gtk_day_render_new): ... this.
        (gtk_day_render_get_type): New declaration.
        (gtk_day_render_set_events): New declaration.
        (day_render_delete): Remove.
        (day_render_show): Remove.
        (day_render_show_big): Remove.
        (day_render_find_overlapping): Remove.
        (day_render_event_show_big): Remove.
        (day_render_find_overlapping): Remove.
        (day_render_event_show_big): Remove.
        (day_render_resize): Remove.
        (day_render_set_event_rectangles): Remove.
        (draw_appointments): Remove.
        * day_render.c (find_overlapping_sets): New forward.
        (ol_sets_to_rectangles): Likewise.
        (period): New macro.
        (bell_pb): New global.
        (event_rect_new): New declaration.
        (event_rect_delete): New declaration.
        (event_rect_draw): New declaration.
        (struct _GtkDayRender): New structure.
        (GtkDayRenderClass): New typedef.
        (gtk_day_render_base_class_init): New declaration.
        (gtk_day_render_init): New declaration.
        (gtk_day_render_dispose): New declaration.
        (gtk_day_render_finalize): New declaration.
        (gtk_day_render_expose): New declaration.
        (gtk_day_render_configure): New declaration.
        (gtk_day_render_button_press): New declaration.
        (parent_class): New global.
        (gtk_day_render_get_type): New function.
        (gtk_day_render_base_class_init): New function.
        (day_render_new): Move this functionaltiy from here...
        (gtk_day_render_init): ... to here...
        (gtk_day_render_new): ... and to here.
        (gtk_day_render_dispose): New function.
        (day_render_delete): Move this functionaltiy from here...
        (gtk_day_render_finalize): ... to here.
        (draw_appointments): Integrate functionality into...
        (gtk_day_render_expose): ... to here.
        (gtk_day_render_configure): New function.
        (day_render_set_event_rectangles): Remame to...
        (gtk_day_render_set_events): ... this.
        (gtk_day_render_set_date): New function.
        (show_event): Rename to...
        (event_rect_draw): ... this and calculate the rectangle in terms
        of the new paramters CANVAS_HEIGHT and CANVAS_WIDTH and the
        percentages in EVENT_RECTANGLE.  Also, tune the rectangle to
        exactly fit in the prescribed area.  Load BELL_PB if required.
        (event_rect_new): Calculate x, y, height and width as percentages.
        (event_rect_delete): Add static attribute.
        (ol_sets_to_rectangles): Pretty up code.
        (caption_new): Remove function.
        (caption_delete): Remove function.
        (caption_set_pango): Remove function.
        (caption_show): Remove function.
        (event_starts_today): Remove function.
        (page_height_set): Remove function.
        (day_render_resize): Remove function.
        (event_ends_today): Remove function.
        (day_render_find_overlapping): Remove function.
        (day_render_event_starts): Remove function.
        (day_render_event_show): Remove function.
       * main.c (update_view): Pass VIEW to F.

2006-02-15  Florian Boor <florian.boor@kernelconcepts.de>

    * globals.h, main.c (main): Implement a cleverer solution using the global 
    time formating string.
    * day_view.c (day_page_draw_background): Use better solution.
    (day_page_calc_time_width): likewise
    * week_view.c (draw_expose_event): likewise

2006-02-15  Florian Boor <florian.boor@kernelconcepts.de>

    * day_view.c (day_page_draw_background): Full working support for AM/PM 
    timezones.
    (day_page_calc_time_width): likewise + make column one pixel wider.

2006-02-15  Florian Boor <florian.boor@kernelconcepts.de>

    * day_view.c (day_page_draw_background), (day_page_calc_time_width):
    Support time formating depending on locale setting. Needs additional fix to
    get rid of the seconds.

2006-02-12  Phil Blundell  <pb@reciva.com>

	* Version 0.72 released.

2006-02-12  Phil Blundell  <pb@reciva.com>

	* day_view.c (reminder_view_init): Use
	event_db_untimed_list_for_period.

	* day_render.c (day_render_delete): Call event_db_list_destroy.
	* main.c (on_import_vcal): Don't call day_free_lists.
	* day_view.c (day_free_lists): Deleted.
	(day_events, untimed_events): Likewise.
	* day_view.h (day_free_lists): Likewise.
	
2006-02-07  Phil Blundell  <pb@reciva.com>

	* week_view.c (week_view): Attach handler to size-allocate signal
	on scrolled window.  Make vertical scrollbar policy ALWAYS.
	(week_view_update): Make minimum size for each cell be 1/7 of the
	available window height.

2006-02-06  Phil Blundell  <pb@reciva.com>

	* Version 0.71 released.

2006-02-06  Phil Blundell  <pb@reciva.com>

	* globals.h (is_reminder): New macro.
	* day_render.c (events_overlap): Use it.
	(event_rect_new): Likewise.
	(day_view_init): Likewise.
	(reminder_view_init): Likewise.
	
	* export-vcal.c (vcal_do_send_bluetooth): Correct data marshalling
	for D-BUS 0.60.

	* event-ui.c (edit_event): Take data from root event rather than
	clone.

2006-02-05  Phil Blundell  <pb@reciva.com>

	* day_view.c (day_view): Don't display sidebar calendar on QVGA
	screens, even in landscape orientation.
	* week_view.c (week_view): Likewise.

2006-02-05  Phil Blundell  <pb@reciva.com>

	* Version 0.70 released.

2006-02-05  Phil Blundell  <pb@reciva.com>

	* day_view.c (day_view): Don't allow reminder area to extend over
	the sidebar calendar.

	* configure.ac (DEP_MODULES): Demand libeventdb 0.19.

2006-02-04  Phil Blundell  <pb@reciva.com>

	* day_view.c (day_view_scroll): New function.
	(changed_callback): Don't call scroll_to() here.
	(day_view): Connect "changed" signal to scrollbar adjustment.
	(sink_scroller): New function.
	* day_view.h (day_view_scroll): New prototype.
	* main.c (set_time_and_day_view): Call day_view_scroll.
	(set_today): Likewise.
	(main): Likewise.

	* event-ui.c (struct edit_state): New members end_date_floating,
	end_time_floating.
	(new_event): Set them to TRUE.
	(sink_end_date, sink_end_time, note_time_change): New functions.
	(note_date_change_appt): Set end date here if it was floating.
	(check_constrains): Deleted.
	(set_notebook_page): Remove call to above function.
	(build_edit_event_window): Use GpeTimeSel rather than combo box
	for time selection.  All uses of these widgets updated.
	(new_event): Mark end time and date as floating.
	(edit_event): Always initialize reminder fields.
	(click_ok): Enforce minimum appointment length of one second.

	* globals.h (times): Deleted.
	* main.c (times): Likewise.
	(main): Remove code to build list of time strings.

2006-02-04  Phil Blundell  <pb@reciva.com>

	* configure.ac (DEP_MODULES): Require libgpewidget 0.109.

	* year_view.c (day_of_week): Move to...
	* main.c: ... here.
	* globals.h (day_of_week): Add prototype for above.
	* month_view.c (day_of_week): Delete "spare" copy of this function.

	* event-ui.c (weekly_toggled): Deleted.
	(build_edit_event_window): Use recalculate_sensitivities in place
	of above function.  Connect "clicked" handler to day-of-week
	recurrence buttons; connect "changed" handler to date selectors.
	(note_day_change, note_day_change_appt,
	note_day_change_reminder, note_day_change_task): New functions.
	(struct edit_state): Add recur_day_floating.
	(sink_weekly): New function.
	(new_event): Correctly set day-of-week recurrence buttons.  Set
	s->recur_day_floating.

2006-02-01  Phil Blundell  <pb@reciva.com>

	* event-ui.c (edit_event): Correctly initialize reminder time
	field and corresponding checkbox.
	(new_event): Likewise.
	(click_ok): Use event_db_clear_recurrence when appropriate.

2006-01-16  Phil Blundell  <pb@reciva.com>

	* Version 0.69 released.

2006-01-16  Phil Blundell  <pb@reciva.com>

	* day_view.c (day_page_draw_empty): Don't draw black rectangle
	around event bubbles.

	* week_view.c (draw_expose_event): Use logical extents, not ink
	extents, from Pango layout.
	(week_view_update): Likewise.

	* day_render.c (show_event): Remove spurious call to
	g_locale_to_utf8().  Replace fixed-size snprintf buffer with call
	to g_strdup_printf.
	(caption_show): Likewise.  Fix 256-byte memory leak.
	(caption_new): Deleted.
	(caption_with_pango_new): Remove argument pl.  Make Pango layout
	construction unconditional.  Rename to caption_new.
	(caption_delete): New function.
	(day_render_delete): Call it.

2006-01-16  Phil Blundell  <pb@reciva.com>

	* day_render.c (found_node, make_set,events_overlap, 
	find_set_in_list, find_set, union_set, find_overlapping_sets,
	show_event, ol_sets_to_rectangles, event_rect_new): Make static.
	(caption_show, caption_set_pango): Guard unused code with #if 0.

	* day_render.h (find_overlapping_sets): Delete prototype.

2006-01-16  Phil Blundell  <pb@reciva.com>

	* day_view.c (scroll_to): Remove mysterious call to
	gtk_adjustment_clamp_page to prevent extraneous redraws.

2006-01-16  Phil Blundell  <pb@reciva.com>

	* day_view.c (day_view_init): Remove unused variable white_gc.
	Unref newly created GC since day_render now takes a reference.
	(reminder_view_expose): Remove useless call to g_slist_length.
	Return without doing anything if rem_render==NULL.
	(reminder_view_update): Only call reminder_view_expose if list of
	events is not empty.
	(reminder_view_init): Remove unused variable white_gc.  Unref
	newly created cream_gc.  Show or hide drawing area depending on
	whether there are any events.
	(day_view_expose): Use static gray_gc rather than creating and
	destroying it on every call.

	* day_popup.c (destroy_popup): Call gtk_grab_remove.
	(button_press_event): New function.
	(day_popup): Install pointer grab on popup window.

	* day_render.c (day_render_new): Take references to GCs.
	(day_render_delete): Drop them.
	* day_view.c (day_view): Attach "send with bluetooth" button to
	send_bt_cb(), not send_ir_cb().  Correctly capitalise "Bluetooth".
	Fix typo in "Send via infra-red".
	
2006-01-15  Phil Blundell  <pb@reciva.com>

	* gtkdatesel.c (days_in_month): Deleted.  All callers adjusted to
	use version in main.c instead.
	(get_max_month_width): Use strftime_strdup_utf8_utf8.
	(format_text): Likewise.
	(get_max_day_width): Likewise.
	* event-ui.c (check_constrains): Likewise.
	(new_event): Likewise.
	(edit_event): Likewise.
	* week_view.c (draw_expose_event): Likewise.
	(week_view_update): Likewise.
	* day_popup.c (day_popup): Likewise.
	* main.c (menu_toggled): Wrap in IS_HILDON guard.
	(strftime_strdup_utf8_utf8): New function.
	(strftime_strdup_utf8_locale): Likewise.
	(main): Use strftime_strdup_utf8_locale.
	* globals.h (strftime_strdup_utf8_utf8): Add prototype.
	(strftime_strdup_utf8_utf8): Likewise.
	
	* week_view.c (week_view_button_press): Tweak formatting.

	* day_popup.c (handle_expose_event): New function.
	(handle_configure_event): Likewise.
	(day_popup): Remove GtkFrame around window contents and draw a
	simple black border instead.  Use window size from configure event
	so that positioning works correctly.  Always display "New" button,
	regardless of showing appointments or not.

2006-01-13  Florian Boor <florian.boor@kernelconcepts.de>

    * Release version 0.68.
    * event-ui.c (schedule_next), (unschedule_alarm): Silently ignore errors in
    Maemo, we don't have at here... for now.

2006-01-10  Florian Boor <florian.boor@kernelconcepts.de>

    * main.c (create_app_menu): Make a shiny new menu according to the UI
    guidelines.
    * day_view.c: Another try to make updating faster and more efficient.
    (update_hook_callback), (day_changed_calendar): Remove explicit call of 
    update functions, this is covered by changed callback.
    (reminder_view_expose): Reorder function calls/sanity check to avoid 
    segfault. 
    (day_view_init): Update view instead of creating a new one.
    * week_view.c (week_view): Change calendar size a bit, remove separator
    in Hildon env.
    * day_render.c: Remove unused code. Some indentation fixes.
    * main.c: (create_app_menu) Extend hildon menu. (toggle_menu) New function.

2006-01-09  Florian Boor <florian.boor@kernelconcepts.de>

    * day_view.c (day_page_calc_time_width): Increase size for maemo, no idea 
    why it does not work as expected here. 
    (day_page_draw_background): Add a one pixel sized gap before time labels.
    (day_view): Don't connect "changed" signal, seems to cause duplicated 
    updates resulting in flickering and slow performance.    
    Some minor formating fixes.
    * event_ui.c (build_edit_event_window): Use a different size for maemo.

2006-01-07  Phil Blundell  <pb@reciva.com>

	* day_view.c (day_page_draw_background): Fix two memory leaks.
	Use page->time_width, not ->time_col_ratio.  Remove unnecessary
	black line on left hand side to save horizontal real estate.
	Align time strings to the left rather than centering.
	(day_page_calc_time_width): New.
	(day_page_new): Call it.  Argument "time_col_ratio" deleted.
	(day_view): Update call to day_page_new.
	* day_view.h (struct day_page): Replace time_col_ratio with
	time_width.
	* day_render.h (day_render_update_offset): Likewise.	
	* day_render.c (day_render_new): Likewise.

2006-01-07  Phil Blundell  <pb@reciva.com>

	* day_view.c (scroll_to): Manually clamp value at upper limit to
	avoid undesirable "over-scroll" effect.

2006-01-07  Phil Blundell  <pb@reciva.com>

	* day_view.c: Fix numerous missing "static" qualifiers.
	(button_press): Rename to...
	(day_view_button_press): ... this.
	* day_view.h (day_view_button_press): New prototype.
	(day_view_init): Mark extern.
	* day_render.c (day_render_new): Update reference to above function.
	(day_render_delete): Likewise.
	* day_render.h (button_press): Delete prototype.
	
2006-01-07  Phil Blundell  <pb@reciva.com>

	* day_view.c: Adjust formatting and comments.

2006-01-06  Florian Boor <florian.boor@kernelconcepts.de>

    * Release version 0.67.
    * day-view.c: Fix adjustment bounds.
    
2006-01-03  Florian Boor <florian.boor@kernelconcepts.de>

    * event-ui.c: Two more pixels.
    * event-ui.c: Tune dropdown box sizes fixing #1423.
    
2006-01-01  Phil Blundell  <pb@reciva.com>

	* configure.ac: Require libeventdb >= 0.18 and libgpevtype >=
	0.14.

2005-12-31  Florian Boor <florian.boor@kernelconcepts.de>

    * event-ui.c: Support location information in events.
    * day_view.c: Improve popup behaviour, add sanity checks and frame.

2005-12-30  Florian Boor <florian.boor@kernelconcepts.de>

    * import-vcal.*, main.c: Fix and clean up vcal/ics import.

2005-12-29  Florian Boor <florian.boor@kernelconcepts.de>

    * day_view.c: Clean up scroll code, fix memory leak.

2005-12-20  Florian Boor <florian.boor@kernelconcepts.de>
    
    * day_view.c, event-ui.c, globals.h: Apply patch to fix segfault 
      deleting events with alerts contributed by Denny Priebe.
    * day_view.c: Fix warnings when casting button to window.
    * day_render.c: Minor formating fix, fix segfault caused by broken 
                    event descriptions. Maybe not perfect but no segfaults 
                    anymore.
    * day_view.c: Proposed fix to avoid popup window getting in front of 
                  dialog windows. (#1432)

2005-12-08  Florian Boor <florian.boor@kernelconcepts.de>
    
    * day_view.c: Use defined gray instead colour from style because this 
                    depends on the theme.
    * day_render.c: Make sequenced events without break become displayed in 
                    sequence instead of overlapping.

2005-12-06  Florian Boor <florian.boor@kernelconcepts.de>

    * export-vcal.c, configure.ac: Apply patch to support new DBus API
                                   contributed by Philipp Zabel.

2005-11-29  Florian Boor <florian.boor@kernelconcepts.de>

    * event-ui.c: Use hildon dialog to ask about event starting in the past.
    * configure.ac: Add hildon-libs as a dependency for maemo config.
    * main.c: Some minor cleanup and event mask change.
    * event-ui.c: Force modal dialog on all platforms works around a 
                  matchbox issue and is better anyway.

2005-11-23  Florian Boor <florian.boor@kernelconcepts.de>

    * Release version 0.66.
    * familiar/control1: Update dependencies to up to date libgpevtype.

2005-11-22  Florian Boor <florian.boor@kernelconcepts.de>

    * configure.ac: Push version number...
    * month_view.c: Add some #ifdefs because sizing is a little bit different
                    in the Hildon environment.
    * export-vcal.c: Remove unused line breaking build.
    * day-view.c, day-render.c: Make gap selectable again to have a reminder 
                                area without gap. Some more minor changes.

2005-11-21  Florian Boor <florian.boor@kernelconcepts.de>

    * main.c: Add category editing button and menu item.
    * week_view.c, month_view.c, main.c: Several improvements and fixes in 
                                         display code. Improve hildon menu.

2005-11-10  Florian Boor <florian.boor@kernelconcepts.de>

    * day_view.c: Hide unavailable export buttons.
                  Hide popup before opening selector.
    * export-vcal.c: Make Hildon UI compatible.
	* event_ui.c: Use buttonbox for Hildon UI makes buttonl look much better.
	* day_view.c: Fix widget creation.
	* main.c: Fix missing toolbar.
    * dav_view.c: Clean up context popup, check if export mechanisms are 
                  available.
    * main.c: Proposed fix for visible, useless selectors.

2005-11-07  Florian Boor <florian.boor@kernelconcepts.de>

    * export-vcal.*: New files implementing event data export. Derived from
                     gpe-contacts.
    * configure.ac: Add parameter to switch DBus usage like in gpe-contacts.
    * main.c: Initialize export stuff.
    * day_view.c: Start to implement improved popup supporting data export.
    * event.h: Obviously unused -> removed.

2005-11-05  Florian Boor <florian.boor@kernelconcepts.de>

	* event-ui.c: Change some widget packing to clean up UI.
	              Move categories and text to new "detail" tab to free screen 
				  space for the keyboard.
				  Remove shadows from viewports for a cleaner look.
				  Remove some extra padding from button box.

2005-10-28 Luca De Cicco <ldecicco@gmail.com>
	* day_view.c: Day view automatically scrolls to current hour if
	possible

2005-10-25  Florian Boor <florian.boor@kernelconcepts.de>

	* gtkdatesel.c: Move week selector to the left.
    * month_view.c: Reduce size of event summary text.
    * day_view.c: Reduce width of time area on wide screens.
	* debian: Add maemo debian packaging stuff.
	* month_view.c: Make title a little bit higher.

2005-10-23  Florian Boor <florian.boor@kernelconcepts.de>

	* day_render.c, day_view.c: Fixed some runtime warnings, some reformating.
	* gtkdatesel.c: Avoid moving positions selecting a new day.
	* gtkdatesel.c: Add header to avoid warning. Change forward/backward buttons
	                in Hildon UI.
	* month_view.c: Fix title height in Hildon UI.

2005-10-21  Florian Boor <florian.boor@kernelconcepts.de>

	* main.c: Fix service name, Hildon UI bits.
	* Makefile.am: Add maemo package files to EXTRA_DIST.
	* day-view.c, event-ui.c: Some more Hildon UI bits and reformating.
	* gtkdatesel.c: Minor Hildon UI compatibility fix.

2005-10-20  Florian Boor <florian.boor@kernelconcepts.de>

	* hildon/*.in, Makefile.am, configure.ac: Change dbus service name.
	* main.c: Use Hildon file selection dialog in Hildon UI.

2005-10-19  Florian Boor <florian.boor@kernelconcepts.de>

    * main.c: Apply patch to support fullscreen mode in Maemo environment.
              A contribution by Devesh Kothari and Philippe De Swert.

2005-10-13  Florian Boor <florian.boor@kernelconcepts.de>

    * globals.h, main.c: Adapt icon loading to nasty Maemo environment.
    * day_render.c: Add sanity check.

2005-10-11  Luca De Cicco <ldecicco@gmail.com>
	* day_render.c, day_render.h: New files. They implement the day render
	`class` to display events as boxes avoiding overlapping.
	* day_view.c, day_view.h: Using day_render to display events instead
	of obsolete clist 


2005-10-10  Florian Boor <florian.boor@kernelconcepts.de>

    * event-ui.c: Fix categories handling and restoring. (#1402)

2005-09-27  Florian Boor <florian.boor@kernelconcepts.de>

    * event-ui.c: Improve window type selection to behave better using Matchbox.

2005-09-09  Luca De Cicco <ldecicco@gmail.com>
	* month_view.c: Adding support for scrolled window.

2005-08-31  Florian Boor <florian.boor@kernelconcepts.de>

	* Release version 0.65
    * import-vcal.c: Fix warning.
    * po/POTFILES.in: Removed some files.
    
2005-08-30  Florian Boor <florian.boor@kernelconcepts.de>

    * import-vcal.c: Convert to new libmimedir API.

2005-08-30  Philippe De Swert <philippedeswert@scarlet.be>

	* release version 0.64 as the previous fix by Florian is quite important

2005-08-29  Florian Boor <florian.boor@kernelconcepts.de>

	* main.c: Rewrite toolbar to use new API. Fix warning.
	* Move *.desktop.in to *.desktop.in.in to fix creating of translated
	  desktop files.
	* configure.ac:  Create *.desktop.in instead of *.desktop.
	* po/Makefile.in.in: Update.

2005-08-24  Philippe De Swert <philippedeswert@scarlet.be>

	* release version 0.63

2005-08-24  Joseph J. McCarthy <mccarthy@engrng.pitt.edu>

	* day_view.c: use new libschedule API (and change to internal schedule
	calls)
	* event-ui.c: use new libschedule API; change internal schedule calls 
	so that an errorbox can be used to warn if there are at problems
	* event-ui.h: changes to internal schedule stuff
	* main.c: use new libschedule API (and change to internal schedule 
	calls)		 

2005-08-16  Matthias Steinbauer <matthias@steinbauer.org>

        * main.c: Included basic LibOSSO Support.

2005-08-08  Matthias Steinbauer <matthias@steinbauer.org>

	* main.c: Added basic hildon support adjusted main-window to appview
	  put toolbar to the bottom.
	* event-ui.c: click_categories adjusted to fit to the hildon extensions
	  in libgpewidget.

2005-07-27  Florian Boor <florian.boor@kernelconcepts.de>

	* main.c: Remove explicit use of obsolete libdisplaymigration.
	* po/POTFILES.in, autogen.sh, configure.ac, *.am: Add autotools support
	  including hildon UI framework integration support.
	* Move gpe-calendar.png to pixmaps subdir.
	* .cvsrc: Ignore a pile of autogenerated files.
	* hildon/*: Add some files for hildon UI support.

2005-03-20  Florian Boor <florian.boor@kernelconcepts.de>
	
	* Version 0.62 released.

2005-03-14  Florian Boor <florian.boor@kernelconcepts.de>

	* Removed obsolete inclusion of render.h

2005-01-16  Phil Blundell  <philb@gnu.org>

	* Version 0.61 released.

2005-01-16  Phil Blundell  <philb@gnu.org>

	* gtkdatesel.c (get_max_month_width): New function.
	(gtk_date_sel_set_month_style): Use it.
	(get_max_day_width): New function.
	(gtk_date_sel_init): Use it.

2005-01-09  Phil Blundell  <philb@gnu.org>

	* Version 0.60 released.

2005-01-09  Phil Blundell  <philb@gnu.org>

	Apply patches from Peter Naulls:
	* week_view.c (draw_expose_event): Use different background colours
	for weekdays, weekends, and days with events.
	* month_view.c (draw_expose_event): Likewise.	

2005-01-09  Phil Blundell  <philb@gnu.org>

	* event-ui.c (build_edit_event_window): Avoid GtkButtonBox.  Allow
	start and end time fields to expand horizontally.

	* Makefile (LIBGPEVTYPE_PC_EXTRA): Prepend to PKG_CONFIG_PATH,
	don't replace it.

2004-12-21  Florian Boor <florian.boor@kernelconcepts.de>
	
	* Version 0.59 released.

2004-11-25  Florian Boor <florian.boor@kernelconcepts.de>

	* event-ui.c: Applied patch to fix transientness, thanks to
          Christian Gillot for this patch.

2004-11-15  Phil Blundell  <pb@nexus.co.uk>

	* week_view.c (week_view_button_press): Bring popup behaviour in
	line with month view: single left click moves focus; double left
	click moves focus and switches to day view; right click opens
	popup menu.

2004-11-15  Phil Blundell  <pb@nexus.co.uk>

	* month_view.c (button_press): Delete bogus check for button==1.

	* week_view.c (week_view_key_press_event): Replace complicated
	up/down logic with calls to gtk_date_sel_move_day.

2004-11-07  Phil Blundell  <pb@nexus.co.uk>

	* Makefile (LINGUAS): Add zh_CN.
	* po/zh_CN.po: New file, courtesy Meng Jie.

2004-10-09  Phil Blundell  <pb@nexus.co.uk>

	* Version 0.58 released.

2004-10-09  Phil Blundell  <pb@nexus.co.uk>

	* day_view.c (day_changed_calendar): Do nothing if date has not
	actually changed.
	* week_view.c (day_changed_calendar): Likewise.

2004-10-09  Phil Blundell  <pb@nexus.co.uk>

	* day_view.c (day_view): Single click on calendar moves highlight,
	even when not in stylus mode.
	* week_view.c (week_view): Likewise.

2004-10-09  Phil Blundell  <pb@nexus.co.uk>

	* month_view.c (title_height): New global.
	(button_press): Use it.
	(draw_expose_event): Likewise.  Avoid wasteful re-initialisation
	of static data on every call.  Draw day number in top-left corner
	of cell.
	(calc_title_height): New function.
	(month_view): Call it.

	* gtkdatesel.h (gtk_date_sel_move_day): Really add prototype.

	* week_view.c (struct week_day): Delete 'initialized'.
	(week_view, week_view_update): Remove references to above member.
	(day_changed_calendar): New function.
	(changed_callback): Rename to ...
	(day_changed_datesel): ... this.  Keep calendar up to date.
	(update_hook_callback): Keep calendar up to date.  No need to call
	gtk_widget_draw on datesel.
	(week_view_key_press_event): Fix warnings.  Keep calendar up to
	date.

	* main.c (time_from_day): Don't force time to 00:00.

	* day_view.c (day_view): Add calendar if screen is landscape.
	(list_exposed): Fix warning.
	(update_hook_callback): Keep calendar up to date.  No need to call
	gtk_widget_draw on datesel.
	(changed_callback): Rename to ...
	(date_sel_changed): ... this.  Keep calendar up to date.
	(day_changed_calendar): New function.

	* gtkdatesel.c (gtk_date_sel_set_month_style): Calculate maximum
	width of month string.
	(gtk_date_sel_init): Likewise for year.
	(make_field): Rework widget packing to prevent arrows from moving
	around.
	(struct elem): Add container.  Remove arrow_l and arrow_r.

2004-10-07  Phil Blundell  <pb@nexus.co.uk>

	* Version 0.57 released.

2004-10-07  Phil Blundell  <pb@nexus.co.uk>

	* future_view.c, future_view.h: Deleted.
	* Makefile (MEMBERS): Remove future_view.
	* main.c: Delete references to future_view.	

2004-10-07  Phil Blundell  <pb@nexus.co.uk>

	* day_view.c (list_key_press_event): Use left/right keys to move
	between days.
	
	* week_view.c (week_view_key_press_event): Replace big list of
	"if" statements with switch.  Use left/right keys to move between
	weeks.
	(draw_expose_event): Draw cursor in blue, not red, to reassure
	users that nothing is wrong.  Remove ugly grey bar on left of
	screen.  Add "wide mode" with date labels on left and first event
	on same line as label.	

	* month_view.c (draw_expose_event): Draw cursor in blue, not red.
	(button_press): Make button-1 clicks move the highlight, and
	button-3 clicks pop up the menu.
	(month_view_update): Provide forward decl.  Simplify handling of
	active_day a bit.

	* gtkdatesel.c (gtk_date_sel_move_day): New function.
	(gtk_date_sel_move_week): Likewise.
	(gtk_date_sel_move_month): Likewise.
	(day_click, week_click, month_click): Implement in terms of above.
	* gtkdatesel.h (gtk_date_sel_move_day, gtk_date_sel_move_week,
	gtk_date_sel_move_month): New prototypes.

2004-10-06 Florian Boor <florian.boor@kernelconcepts.de>

    * event-ui.c: Added warning if event starts in the past.

2004-09-20 Florian Boor <florian.boor@kernelconcepts.de>

    * event-ui.c: Fixed event lossage if returning from reminder to appointment. 
    * month_view.c, week_fiew.c: Allow focus to fix keyboard control.
    * main.c: Fixed typo and not necessary updates.
    * main.c: Changed today_button to become a real togglebutton.
    * event-ui.c: Window modal to avoid open it more than once.

2004-09-03 Florian Boor <florian.boor@kernelconcepts.de>

    * Released V 0.56
    * main.c: Fixed tooltips, changed button label.
    * main.c: Added some hotkeys for common operations.
    * main.c: Some GUI tuning.
    * gtkdatesel.c: Increasing the arrow button sizes a little bit.

2004-09-01  Florian Boor <florian.boor@kernelconcepts.de>

	* main.c, event-ui.c: Make sure the correct widget has focus if we start 
	                      a new event.

2004-08-30  Florian Boor <florian.boor@kernelconcepts.de>

    * main.c, event-ui.c: Buffer characters to add in a new event.

2004-08-29  Florian Boor <florian.boor@kernelconcepts.de>

    * main.c: Don't add spaces if screen width < 260 pixels.

2004-08-24  Florian Boor <florian.boor@kernelconcepts.de>

    * event-ui.c: Select current day of week as default for weekly recurrence.

2004-08-18  Florian Boor <florian.boor@kernelconcepts.de>

    * main.c: Prevent user from accidentally creating more than on new event.
    * Released V 0.55
    * day_view.c, week_view.c, month_view.c: Removed focus changes on 
      direction key press.

2004-08-10  Florian Boor <florian.boor@kernelconcepts.de>

    * main.c: Typing opens "new event" dialog now.

2004-08-08  Florian Boor <florian.boor@kernelconcepts.de>

	* main.c: Implemented vcard import via command line switch "-i <file>"

2004-08-05  Florian Boor <florian.boor@kernelconcepts.de>

    * event-ui.c: Fixed titles, layout and positions of recurrence tab.

2004-07-23  Florian Boor <florian.boor@kernelconcepts.de>
    
    * Released V 0.54
    * added several translations to cvs
    * event_ui.c: Changes in keyboard control to use direction keys to navigate.
    * main.c: Improved handling of updates and some feedback if the "today" 
              button is active.
    * future_view.c: Added updating of date label.
    * *view.c: Some updates to day selection stuff.
    * globals.h, main.c: Added some global routines.

2004-07-22  Florian Boor <florian.boor@kernelconcepts.de>
    
    * month_view.c: Change: "today" in update routine is set to "viewtime" now.
    * *view.c, main.c: Several hacks to keep active day global and up to date.
    * event_ui.c: Multiple optical uodates and small fixes.
                  Set default focus to text field, set some window parameters.
    * main.c: Added function to set current date.
    * *view.c: Honor global setting to today.

2004-07-21  Florian Boor <florian.boor@kernelconcepts.de>

    * Makefile: Working on V 0.54 now.
    * main.c: Make default window size a little bit cleverer.
    * year_view.*, month_view.*, week_view.*, future_view.*:
      Added function to free allocated lists from eventdb.
    * event-ui.c: Added handling of escape and enter keys to abort/save.
    * import-vcal.c: import_vcal(): Returns success now. 
                     Removed obsolete dialog.
    * main.c: Import status dialog, error detection.

2004-07-20  Florian Boor <florian.boor@kernelconcepts.de>

    * import-vcal.h: New file.
    * import-vcal.c: New files taken from gpe-bluetooth by Philip Blundell.
    * main.c, Makefile: Started to add VCAL import facility.
    * month_view.c: Improved year handling.
    * month_view.c: Improved keyboard controls.    

2004-07-19  Florian Boor <florian.boor@kernelconcepts.de>

    * month_view.c: Started simple keyboard control.
    * day_view.c: Keyboard control improvements, still not perfect.
    * week_view.c, day_popup.c: Improved UI, event creation for wek view,
                                fixed some bugs in time handling. 
    * day_popup.*: Keyboard control update, parameter wether to show items 
                   or not.

2004-07-16  Florian Boor <florian.boor@kernelconcepts.de>
    
    * day_popup.c: Started some keyboard controls.
    * week_view.c: More keyboard controls and basic popups.
    * week_view.c: Very basic keyboard controls for week view.
    * week_view.c: Formating updates, minor painting improvements.
    
2004-07-15  Florian Boor <florian.boor@kernelconcepts.de>

    * day_view.c: selection_made() Changed clicking behaviour to start edit
                  on click on any entry.
    * day_view.c: Started implementing keyboard control, deleting of events.
    * main.c: Removed hardcoded toolbar style.
    * day_view.c: Don't display very early/late slots if they are not used.
    * day_view.c, event_ui.c: Some formating improvements.
    * event_ui.c: click_delete() Replaced obsolete gpe_question_ask_yn().
    * week_view.c: Activate scrollbar only if necessary.

2004-06-21  Philip Blundell  <philb@gnu.org>

	* Makefile (LINGUAS): Add es, sk, sr, ru, hu.

2004-06-01  Philip Blundell  <philb@gnu.org>

	* Version 0.53 released.

2004-05-28  Phil Blundell  <pb@nexus.co.uk>

	* gtkdatesel.c (struct _GtkDateSel): Add subbox.
	(make_field): Put widgets into subbox, not top-level box.  Set
	expand and fill to FALSE when packing.
	(gtk_date_sel_init): Create subbox and pack it into top level.

2004-03-25  Philip Blundell  <philb@gnu.org>

	* Version 0.52 released.

2004-03-08  Philip Blundell  <philb@gnu.org>

	* Makefile (PACKAGE_LDFLAGS, PACKAGE_CFLAGS, PACKAGE_CPPFLAGS):
	Define and use instead of LDFLAGS, CFLAGS and CPPFLAGS.

2004-03-06  Philip Blundell  <philb@gnu.org>

	* Version 0.51 released

2004-03-05  Philip Blundell  <philb@gnu.org>

	* event-ui.c: Include pim-categories-ui.h to fix warning.
	(edit_event): Exercise caution around details struct since
	pointers may be NULL.
	(click_delete): Remove useless call to gtk_widget_get_toplevel.

2004-02-23  Joseph J. McCarthy <mccarthy@engrng.pitt.edu>
                                                                                
        * Version 0.50 released.
                                                                                
2004-02-22  Phil Blundell  <pb@nexus.co.uk>

	* Makefile (CPPFLAGS, LDFLAGS): Add libgpepimc.
	* main.c (main): Call gpe_pim_categories_init().
	* event-ui.c (struct edit_state): Add categories,
	categories_label.
	(destroy_user_data): Handle categories.
	(click_ok): Stash new categories.
	(build_categories_string): New.
	(update_categories): Likewise.
	(click_categories): Likewise.
	(build_edit_event_window): Add categories handling.	

2004-02-20  Joseph J. McCarthy <mccarthy@engrng.pitt.edu>
                                                                                
        * event-ui.c : update last_modified when changes are made 
                                                                                
2004-02-14  Philip Blundell  <philb@gnu.org>

	* Version 0.49 released.

2004-02-09  Phil Blundell  <pb@nexus.co.uk>

	* README: Delete useless empty file.
	* TODO: Delete useless outdated file.
	
	* event-ui.c (build_edit_event_window): Set default size on new
	window.

	* future_view.c (future_view): Set NEVER policy for horizontal
	scrollbar.

2004-02-08  Howell Tam	<pigeon@pigeond.net>
	
	* event-ui.c: Recurring page now shows corresponding fields properly.
	* day_popup.c: Likewise.
	* day_view.c: Likewise.
	* future_view.c: Likewise.
	* main.c: Likewise.
	* event-ui.c: Recurrence page now in a scrolled window.

2003-10-19  Philip Blundell  <philb@gnu.org>

	* Makefile: Don't link with -lsqlite.  Use STANDARD_CFLAGS,
	STANDARD_CPPFLAGS, STANDARD_LDFLAGS.

2003-10-18  Philip Blundell  <philb@gnu.org>

	* Makefile (CPPFLAGS): Undo last change.

2003-10-09  Philip Blundell  <philb@gnu.org>

	* Makefile (LINGUAS): Add cs.

2003-09-24  Philip Blundell  <philb@gnu.org>

	* Makefile: Use $(GPECFLAGS), $(GPELIBS).
	(CPPFLAGS): Add -DG_DISABLE_CAST_CHECKS.

2003-09-23  Philip Blundell  <philb@gnu.org>

	* gpe-calendar 0.48 released.

2003-09-23  Philip Blundell  <philb@gnu.org>

	* gpe-calendar.session: Add missing #!/bin/sh.

2003-09-07  Philip Blundell  <philb@gnu.org>

	* Version 0.47 released.
	
2003-09-07  Philip Blundell  <philb@gnu.org>

	* gtkdatesel.c (format_text): Fix cut and paste error in last
	change.

2003-09-06  Philip Blundell  <philb@gnu.org>

	* Version 0.46 released.
	
2003-09-06  Philip Blundell  <philb@gnu.org>

	* gtkdatesel.c (format_text): Convert format string back to native
	locale encoding before calling strftime.

  	Patch from Libor Klepac:
	* day_popup.c (day_popup): Recode result of strftime to UTF-8.
	* event-ui.c (build_edit_event_window): Likewise for nl_langinfo
	strings.

	* po/nl.po: New file, courtesy Elros Cyriatan.
	* Makefile (LINGUAS): Add nl.

2003-09-05  Philip Blundell  <philb@gnu.org>

	* familiar/control1 (Source): Added.

2003-09-05  Philip Blundell  <philb@gnu.org>

	* Version 0.45 released.

2003-09-05  Philip Blundell  <philb@gnu.org>

	* day_view.c (selection_made): Avoid infinite loops and crashes
	with untimed events.

2003-07-29  Philip Blundell  <philb@gnu.org>

	* gtkdatesel.c (format_text): Convert strftime() output to UTF-8.
	* week_view.c (week_view_update): Likewise.	
	* future_view.c (future_view_update): Likewise.
	(future_view): Likewise.

2003-07-13  Phil Blundell  <pb@nexus.co.uk>

	* Makefile (CFLAGS): Use libdisplaymigration in place of libdm.
	(LDFLAGS): Likewise.

2003-07-08  Joseph J. McCarthy  <mccarthy@engrng.pitt.edu>
	
	* Makefile: released version 0.44
	
2003-07-08  Joseph J. McCarthy  <mccarthy@engrng.pitt.edu>
	
	* day_view.c (selction_made): added a search for dat when multiple
	events are liste3d in the same timeslot (stops the crash)
	
2003-07-08  Joseph J. McCarthy  <mccarthy@engrng.pitt.edu>
	
	* main.c : add new global week_offset to allow week_starts_monday to
	affect month-view
	* month_view.c (draw_expose_event): Move days declaration and setting
	as well as add several week_offset changes so that week_starts_monday
	works in month-view
	* xsettings (notify_func): change week_offset along with
	week_starts_monday
	* globals.h : add week_offset
	
2003-07-06  Moray Allan  <moray@sermisy.org>

	* day_view.c (day_view_update), future_view (future_view_update),
	Makefile: Removed legacy GTK1 code.

2003-07-06  Philip Blundell  <philb@gnu.org>

	* Makefile (LINGUAS): Add sv.
	* po/sv.po: New file, courtesy Christian Rose.	

2003-06-22  Philip Blundell  <philb@gnu.org>

	* main.c (main): Hook delete-event signal, not destroy.

2003-07-06  Moray Allan  <moray@sermisy.org>

	* Makefile (install_program), gpe-calendar.menu: No longer install
	old-style menu file.

2003-06-26  Philip Blundell  <philb@gnu.org>

	* Makefile (LINGUAS): Add wa.
	(install-program): Preserve extension on installed .desktop file.
	* po/wa.po: New file, courtesy Pablo Saratxaga.

2003-05-09  Philip Blundell  <philb@gnu.org>

	* Makefile (LINGUAS): Add ro.
	* po/ro.po: New file, courtesy Laurentiu Buzdugan.

2003-04-27  Philip Blundell  <philb@gnu.org>

	* event-ui.c (edit_event): Set event-type notebook to appropriate
	page.
	(new_event): Likewise.  Set option-menu as well.

2003-04-25  Philip Blundell  <philb@gnu.org>

	* Version 0.43 released.

2003-04-25  Philip Blundell  <philb@gnu.org>

	* event-ui.c (build_edit_event_window): Increase range of alarm spinner.
	(click_ok): Use an array rather than a switch to decode alarm multipliers.
	(new_event): Set the date for reminders.
	(edit_event): Likewise.  Set units appropriately for alarm time.

	* old-db.c: Deleted.

2003-04-21  Philip Blundell  <philb@gnu.org>

	* Version 0.42 released.
	
2003-04-21  Philip Blundell  <philb@gnu.org>

	* day_view.c (day_view_update): Remove spurious call to
	gtk_clist_set_row_data.  Reorganise code slightly for improved
	clarity.

	* main.c (main): Ensure day-view button is selected.

2003-04-20  Philip Blundell  <philb@gnu.org>

	* Makefile (LINGUAS): Add zh_TW.
	* po/zh_TW.po: New file, courtesy Chao-Hsiung Liao.

2003-04-12  Christian Meyer  <chrisime@gnome.org>

	* event-ui.c (build_edit_event_window): Moved some code to proper
	places. It's easier to read now. Ongoing work...

2003-04-11  Philip Blundell  <philb@gnu.org>

	* Version 0.41 released.
	
2003-04-11  Philip Blundell  <philb@gnu.org>

	* familiar/control1 (Depends): Require libeventdb 0.06.

	* event-ui.c (click_delete): Reformat.  Make question string
	static and mark for translation.  Fix warning about argument
	shadowed by local var.
	(unschedule_alarm): Reformat.
	(schedule_next): Likewise.  Use g_strdup_printf to avoid buffer
	overrun.
	(click_ok): Reformat.
	(edit_event): Likewise.

2003-04-11  Joseph J. McCarthy  <mccarthy@engrng.pitt.edu>
	
	* day_view.c (day_view_update): move GSList declares of day_events and
	untimed_events to outside function, also delete old GSLists (and
	clones) directly prior to building new ones
	* event-ui.c (click_delete): switch to taking window as arg (instead
	of event_t), switch to checking existence of ev->recur (rather than
	checking flags), add a forget_details, minor things (set RECUR flag in
	click_ok, toggle the none button in event_edit, move s->ev=ev to end)
	* future_view.c : move GSList declares outside function
	* month_view.c : likewise
	
2003-04-11  Christian Meyer  <chrisime@gnome.org>

	* gtkdatesel.{cc,h}: GObject'ification. :-)
	
2003-04-10  Philip Blundell  <philb@gnu.org>

	* familiar/control: Deleted.

	* week_view.c (draw_expose_event): Remove spurious
	g_locale_to_utf8.
	(week_view_update): Likewise.

2003-04-08  Philip Blundell  <philb@gnu.org>

	* po/de.po: Updated, courtesy Colin Marquardt.

2003-04-07  Philip Blundell  <philb@gnu.org>

	* po/fr.po: New file from Translation Project, courtesy Luc Pionchon.
	* Makefile (LINGUAS): Add fr.

	* po/pt.po: Updated, courtesy Luis Oliveira.
	* po/pt_PT.po: Deleted.

2003-04-03  Joseph J. McCarthy  <mccarthy@engrng.pitt.edu>

	* future_view.c: delete old clone-checking cruft
	* event-ui.c: stop double freeing clones and move recurrence
	checking/getting
	* day_view.c: stop using FLAG_RECUR
	* day_popup.c: likewise
	
2003-04-03  Joseph J. McCarthy  <mccarthy@engrng.pitt.edu>

	* event-ui.c: use libschedule
	* familiar/control*: likewise
	
2003-04-03  Joseph J. McCarthy  <mccarthy@engrng.pitt.edu>

	* week_view.c: fix declaration locations so it builds on ipaq cluster
	* event-ui.c: likewise
	* month_view.c: likewise
	
2003-04-03  Joseph J. McCarthy  <mccarthy@engrng.pitt.edu>

	* main.c: change set_day_view to set_time_and_day_view and change
	original call to be new_view(day) so set_day_view becomes unnecessary
	* event-ui.c: get rid of find_by_uid since I have added a pointer in
	event_t that points to the original ev (for a clone). fix small memory
	leak in schedule_next, ALLOW EXCEPTIONS to recurring events (so delete
	needs to ask about what you are deleting...maybe someday I will allow
	editting of a single instance, but this will likely be done by
	deleteing one (like this code now does) and making a completely new
	event), also fix the alarm spinner code so it always reports ev->alarm
	in seconds...I cannot seem to get the show/hide of the recurring page
	worked out when editting stuff! 
	* day_view.c : erase check for clones since I use *all* clones now and
	get rid of calls to find_by_uid
	* future_view: erase reference to gtkdatesel and delete calls to
	find_by_uid
	* month_view: use set_time_and_day_view now
	* globals.h: use set_time_and_day_view now
	* day_popup: use set_time_and_day_view now and eliminate find_by_uid

2003-03-30  Philip Blundell  <philb@gnu.org>

	* gtkdatesel.c: New file.
	* gtkdatesel.h: Likewise.
	* Makefile (MEMBERS): Add gtkdatesel.
	* day_view.c: Adjust path to gtkdatesel.h.
	* week_view.c: Likewise.
	* month_view.c: Likewise.
	* year_view.c: Likewise.

2003-03-29  Luis Oliveira  <luis@handhelds.org>

	* event-ui.c (edit_event): Set type menu to Appointment/Reminder.
	(set_notebook_page): Use gtk_option_menu_get_history() instead of
	gtk_simple_menu_get_result().
	(build_edit_event_window): Connect "changed" signal to the type
	GtkSimpleMenu instead of "item-changed".

2003-03-29  Philip Blundell  <philb@gnu.org>

	* week_view.c (draw_expose_event): Rearrange decls for pre-C99
	compilers.

	* Makefile (clean): Also remove .desktop file.

	* event-ui.c (build_edit_event_window): Use tables in recurrence
	tab.

	* Makefile (install-program): Use install -s.

2003-03-28  Philip Blundell  <philb@gnu.org>

	* Version 0.40 released.

2003-03-27  Philip Blundell  <philb@gnu.org>

	* event-ui.c (click_ok): Fix formatting.
	(build_edit_event_window): Remove unused widgets.  Remove spurious
	border width on internal boxes; just put it on the top level in
	each tab.  Correct packing of widgets in reminder table.

2003-03-23  Phil Blundell  <pb@nexus.co.uk>

	* Version 0.39 released.

2003-03-23  Phil Blundell  <pb@nexus.co.uk>

	* main.c (main): Rearrange order of packing to get toolbar icon
	sizes right.

2003-03-23  Phil Blundell  <pb@nexus.co.uk>

	* Version 0.38 released.

2003-03-23  Phil Blundell  <pb@nexus.co.uk>

	* event-ui.c (build_edit_event_window): Tweak expand and fill
	arguments for better effect.  Include <gpe/spacing.h>.

2003-03-23  Christian Meyer  <chrisime@gnome.org>
                                                                        
	* event-ui.c (build_edit_event_window): Improved layout quite a
	bit. Removed unnecessary code, deprecated function calls.

2003-03-23  Phil Blundell  <pb@nexus.co.uk>

	* Version 0.37 released.

2003-03-23  Phil Blundell  <pb@nexus.co.uk>

	* globals.h (VERSION): Delete.
	(update_all_views): Add prototype.

	* event-ui.c (click_elete): Call update_all_views not
	update_current_view.
	(click_ok): Likewise.

	* main.c (update_view): New function.
	(update_current_view): Use it.
	(update_all_views): New function.
	(init_views): Deleted.
	(main): Use update_all_views.
	(set_day_view): Remove update_current_view call.

2003-03-22  Phil Blundell  <pb@nexus.co.uk>

	* Version 0.36 released.

2003-03-22  Phil Blundell  <pb@nexus.co.uk>

	* event-ui.c (build_edit_event_window): Don't use GtkDialog.

	* Makefile (LDFLAGS): Add -rpath-link for libxsettings.

2003-03-19  Philip Blundell  <philb@gnu.org>

	* event-ui.c (build_edit_event_window): Use GtkDialog.
	(recalculate_sensitivities): Fix typo.

	* main.c (main): Use gtk_window_set_default_size not
	gtk_widget_set_usize.

2003-03-19  Christian Meyer  <chrisime@gnome.org>

        * event-ui.c: Indentation fixes.
	
2003-03-19  Christian Meyer  <chrisime@gnome.org>

        * event-ui.c: Remove GTK 1 compatibility.

2003-03-19  Philip Blundell  <philb@gnu.org>

	* week_view.c (draw_expose_event): Remove GTK1 compatibility.
	Recode strings obtained from nl_langinfo into UTF8 for display.
	* month_view.c (draw_expose_event): Likewise.
	Patch from Christian Meyer <chrisime@gnome-de.org>.
	
	* event-ui.c (build_edit_event_window): Remove frame around
	description.  Put start/end dates and times in a table.  Patch
	from Christian Meyer <chrisime@gnome-de.org>.

2003-03-19  Philip Blundell  <philb@gnu.org>

	* xsettings.c (notify_func): Add missing const. Patch from
	Christian Meyer <chrisime@gnome-de.org>.

	* main.c (gpe_cal_exit): Fix formatting.
	(main): Likewise.  Remove GTK 1 compatibility code.  Scale toolbar
	icons to desired size.  Use stock item for new and exit buttons.

2003-03-19  Philip Blundell  <philb@gnu.org>

	* Makefile (LINGUAS): Add pt, de.

	* po/pt.po: New file from Translation Project, courtesy Luis
	Oliveira.

	* event-ui.c: Replace GtkObject with GObject.  Patch from
	Christian Meyer <chrisime@gnome-de.org>.
	* day_popup.c: Likewise.
	* day_view.c: Likewise.
	* week_view.c: Likewise.
	* month_view.c: Likewise.
	* year_view.c: Likewise.
	* future_view.c: Likewise.
	* main.c: Likewise.
	(main): Call bind_textdomain_codeset.
	
2003-03-08  Philip Blundell  <philb@gnu.org>

	* familiar/control1 (Depends): Remove libsqlite0.  Add 
	gpe-calendar-locale*.

	* Makefile (LINGUAS): Add id.
	* po/id.po: New file from Translation Project.

2003-03-03  Joseph J. McCarthy  <mccarthy@engrng.pitt.edu>

	* version 0.35

2003-03-03  Joseph J. McCarthy  <mccarthy@engrng.pitt.edu>

	* main.c: add an update_current_view to set_day_view
	* event-ui.c: finally alarm things (disallow changing away from
	"minutes before" for now, add user id to alarmname, dont
	subtract minutes before twice) 
	* day_view.c : change widget_show to widget_show_all so new
	event-edit windows get displayed properly

2003-02-17  Philip Blundell  <philb@gnu.org>

	* main.c (main): Mark window title for translation.  Reformat
	option parsing code.

	* event-ui.c (build_edit_event_window): Replace trailing "(s)"
	with "s" for ease of translation.

	* Makefile (install): Depend on $(PACKAGE).desktop.

	* gpe-calendar.desktop.in: New file.
	* gpe-calendar.desktop: Deleted.

2003-02-13  Philip Blundell  <philb@gnu.org>

	* Version 0.34 released.

2003-02-13  Philip Blundell  <philb@gnu.org>

	* event-ui.c (build_edit_event_window): Just say "Start" and "End"
	not "Start on" and "End on".  Put recurrence widgets inside a
	notebook.  Remove setting of window default size.

2003-02-12  Philip Blundell  <philb@gnu.org>

	* Makefile (install): Don't install obsolete pixmaps.
	* pixmaps/close.xpm, pixmaps/config.xpm, pixmaps/dayview.xpm,
	pixmaps/exit.xpm, pixmaps/futureview.xpm, pixmaps/monthview.xpm,
	pixmaps/new.xpm, pixmaps/save.xpm, pixmaps/today.xpm,
	pixmaps/weekview.xpm, pixmaps/yearview.xpm: Delete.

2003-01-19  Philip Blundell  <philb@gnu.org>

	* event-ui.c (edit_finished): Re-enable window cache.
	(gtk_box_pack_start_show): Delete.
	(build_edit_event_window): Remove calls to gtk_widget_show.

	* future_view.c (selection_made): Use gtk_widget_show_all with
	event window.
	* day_view.c (selection_made): Likewise.	
	* day_popup.c (selection_made): Likewise.
	* main.c (new_appointment): Likewise.

2003-01-19  Philip Blundell  <philb@gnu.org>

	* event-ui.c (build_edit_event_window): Don't realize window
	explicitly.  Install "destroy" handler on new window.  Connect
	cancel button to edit_finished directly.
	(click_delete): Reformat.
	(click_ok): Likewise.
	(schedule_next): Likewise.
	(edit_finished): Return TRUE as gboolean.
	(click_cancel): Delete.

2003-01-18  Philip Blundell  <philb@gnu.org>

	* Version 0.33 released.

2003-01-18  Philip Blundell  <philb@gnu.org>

	* familiar/control1 (Depends): Require libdm0, libeventdb 0.02.

	* main.c (main): Use stock icons.
	* day_popup.c (day_popup): Likewise.
	* event-ui.c (build_edit_event_window): Likewise.

	* main.c (my_icons): Remove now-redundant entries.

2003-01-13  Joseph J. McCarthy  <mccarthy@engrng.pitt.edu>

	* main.c: change update_current_view to happen at
	startup and then only when things change (rather than
	with every view switch), small fixes for rescheduling
	* event-ui.c: finally fix rescheduling of events, and
	turn off the caching of event windows (for now)
	* event-ui.h: remove event_ui_init prototype
	* gpe-calendar.session: same
	* day_popup.c : revert to old row bindings with check
	for clones
	* future_view.c : revert to old row bindings with check
	for clones
	* day_view.c : revert to old row bindings with check
	for clones
	
2003-01-08  Joseph J. McCarthy  <mccarthy@engrng.pitt.edu>

	* main.c: add "skip" time
	* event-ui.c: same
	* event-ui.h: same
	* gpe-calendar.session: same
	* day_popup.c : add pretty pixmaps
	* day_view.c : cut space down
	
2003-01-08  Joseph J. McCarthy  <mccarthy@engrng.pitt.edu>

	* Makefile: removed reference to old-db.c
	
2003-01-08  Joseph J. McCarthy  <mccarthy@engrng.pitt.edu>

	* main.c: Change "event-db.h" for <gpe/event-db.h>
	* event-ui.c: fix notebook page handling on edit/new
	
2003-01-06  Philip Blundell  <philb@gnu.org>

	* event-db.c, event-db.h: Deleted; moved to ../libeventdb.

2003-01-06  Luis Oliveira  <luis@handhelds.org>

	* Makefile (MEMBERS): remove event-db and old-db.
	(CPPFLAGS): add -I../libeventdb.
	Linking against libeventdb.
	* day_popup.c: Change "event-db.h" for <gpe/event-db.h>
	* day_view.c: Likewise.
	* event-ui.c: Likewise.
	* event-ui.h: Likewise.
	* globals.h: Likewise.
	* month_view.c: Likewise.
	* week_view.c: Likewise.
	* year_view.c: Likewise.
	* familiar/control1 (Depends): Add libeventdb0.

2003-01-06  Philip Blundell  <philb@gnu.org>

	* Version 0.32 released.

2003-01-06  Joseph J. McCarthy  <mccarthy@engrng.pitt.edu>

	* Makefile: delete year_view

2003-01-06  Joseph J. McCarthy  <mccarthy@engrng.pitt.edu>

	* gpe-calendar.session: add a Xsession.d file to schedule
	next alarms at login time 
	* Makefile: install new Xsession.d file

2003-01-06  Joseph J. McCarthy  <mccarthy@engrng.pitt.edu>

	* event-db.c (event_sort_func): add a "recur" sort_func so we
	can reverse-sort recurring by enddate and skip ones with old
	end dates, also add ALARM flag to cloned events 
	* event-ui.c (schedule_alarm): change schedule alarm to have a
	date input as well as event_t input (so we can do recurring 
	alarms), add schedule_next function; use schedule_next function
	INSTEAD of schedule_alarm in editted and new events
	* event-ui.h : add schedule_next function
	* main.c (main): add getopt stuff to read -s flag, erase 
	year_view stuff, add schedule_next stuff at init and at exit,
	get rid of render_icon

2003-01-06  Philip Blundell  <philb@gnu.org>

	* Makefile (LDFLAGS): Add -L../libdm -ldm.
	(CFLAGS): Add -I../libdm
	* main.c (main): Call libdm_init.  Mark window for migration.

2003-01-05  Luis Oliveira  <luis@handhelds.org>

	* First steps towards libgpeeventdb.
	* event-db.c (event_db_refresh): New function.
	  (event_db_stop): Free event lists.
	* globals.h event-db.h: Moved some defines from globals.h to
	event-db.h

2003-01-05  Philip Blundell  <philb@gnu.org>

	* familiar/control1 (Version): Version 0.31 released.

2003-01-05  Philip Blundell  <philb@gnu.org>

	* event-db.c (event_db_clone): Add missing memcpy, duh.

2003-01-05  Philip Blundell  <philb@gnu.org>

	* familiar/control1 (Version): Version 0.30 released.

2003-01-05  Philip Blundell  <philb@gnu.org>

	* month_view.c (button_press): Ignore clicks other than button 1.
	(month_view): Select for release events.

	* xsettings.c (notify_func): Only act on CHANGED or NEW messages.

2003-01-04  Philip Blundell  <philb@gnu.org>

	* event-db.h (event_db__alloc_event): New.
	(event_db__alloc_recur): Likewise.
	(event_db__free_event): Likewise.
	(event_db__free_recur): Likewise.
	(EVENT_DB_USE_MEMCHUNK): Likewise.  Default on.
	* event-db.c (event_db_start): Create new GMemChunks.
	(load_callback): Use above macros.
	(event_db_clone): Likewise.
	(event_db_new): Likewise.
	(event_db_destroy): Likewise.
	(event_db_destroy_clone): Likewise.
	(event_db_get_recurrence): Likewise.
	* old-db.c (load_callback0): Likewise.
	
2003-01-04  Philip Blundell  <philb@gnu.org>

	* Version 0.29 released.
	
2003-01-04  Philip Blundell  <philb@gnu.org>

	* main.c (button_toggled): Only act when button is active.

	* event-db.c (event_db_clone): New.
	(event_db_list_for_period_internal): Use it.  Reformat.
	Reorganise handling of max-events.
	(get_ev_from_uid): Rename to ...
	(event_db_find_by_uid): ... this.  All callers updated.
	* event-db.h (event_db_clone): New prototype.
	(get_ev_from_uid): Rename to event_db_find_by_uid.

	* day_popup.c (day_popup): Mark string for translation.
	
2003-01-03  Joseph J. McCarthy  <mccarthy@engrng.pitt.edu>

        * event-db.h : add FLAGS for RECUR and CLONE 
	* day_popup.c (selection_made & day_popup): attach uid to row so 
	we can grab the uncloned event_t (also fix small warning on 
	SIGNAL_FUNC)
	* day_view.c (selection_made & day_view_update): attach uid to row so 
	we can grab the uncloned event_t
	* event-db.c (event_db_list_for_period_internal): losts of changes 
	here and elsewhere to add cloned records; highlights -> new 
	routines get_ev_from_uid, event_db_destroy_clone; remove clones
	when doing event_db_list_destroy, *will now be able to get event-list
	IN ORDER, so we can implement next_alarm!*
	* event-ui.c (edit_event): small warning fix, and silly fix for recur
	toggle buttons
	* future_view.c (selection_made & future_view_update): attach uid to 
	row so we can grab the uncloned event_t (also warning fix)
	 * main.c : change default font slightly	
	
2003-01-01  Philip Blundell  <philb@gnu.org>

	* Version 0.28 released.

2003-01-01  Philip Blundell  <philb@gnu.org>

	* event-ui.c (build_edit_event_window): Tasks are not yet properly
	implemented; don't offer them on the menu.

2003-01-01  Philip Blundell  <philb@gnu.org>

	* event-ui.c (build_edit_event_window): Set week-starts-monday
	flag on newly created GtkDateCombo widgets.
	(build_edit_event_window): Set default size for window.

	* xsettings.c (gpe_calendar_start_xsettings): Use gpe_error_box.
	(watch_func): Reformat decl.
	(notify_func): Likewise.  Make key names case insensitive.  Add
	GPE/week-starts-monday as synonym for old key under GPE/Calendar.
	(KEY_BASE): Set to "GPE/".

	* gpe-calendar.desktop (SingleInstance): Set to true.

	* main.c (my_icons): Add close.
	(main): Use gpe_set_window_icon.  Add more verbose tooltips.

	* day_popup.c (day_popup): Replace cancel pixmap with close.  Pack
	buttons with no padding.  Put a frame around the window contents.
	(destroy_popup): Reformat.
	(close_window): Likewise.
	(day_clicked): Likewise.
	(selection_made): Likewise.
	
	* event-ui.c (new_event): Set window title.
	(edit_event): Likewise.
	(build_edit_event_window): Set icon for window.

	* main.c (main): Remove call to event_ui_init.

2002-12-19  Philip Blundell  <philb@gnu.org>

	* Version 0.27 released.

2002-12-15  Luis Oliveira  <luis@handhelds.org>

	* po/pt_PT.po: Updated translation.

2002-12-15  Philip Blundell  <philb@gnu.org>

	* po/pt_PT.po: Set character set to iso-8859-15.

2002-10-31  Luis Oliveira  <luis@handhelds.org>

       * event-db.c (event_db_destroy): Fix memory leak.

2002-12-07  Philip Blundell  <philb@gnu.org>

	* month_view.c (draw_expose_event): Remove unused variable.
	* event-db.c (insert_values): Remove spurious token-paste.

2002-12-06  Philip Blundell  <philb@gnu.org>

	* gpe-calendar.desktop: New file.
	* Makefile (install): Install it.
	Patch from Matthew Allum <breakfast@10.am>

2002-11-30  Philip Blundell  <philb@gnu.org>

	* Version 0.26 released.

2002-11-30  Philip Blundell  <philb@gnu.org>

	* day_view.c (day_view_update): Set scroll position to current
	hour.
	(scroll_adjustment): New global.
	(day_view): Initialise it.

	* event-ui.c (edit_event): Explicitly set state of more widgets.
	(new_event): Likewise.

	* event-ui.c (build_edit_event_window): Use GtkTextView for
	description under GTK 2.
	(click_ok): Likewise.
	(new_event): Likewise.
	(edit_event): Likewise.

	* Makefile (GTKCFLAGS): Remove -DGTK_ENABLE_BROKEN.

	* event-ui.c (build_edit_event_window): Adjust GtkSimpleMenu
	signal naming.

	* main.c (main): Call event_ui_init.
	* event-ui.h (event_ui_init): Add prototype.
	* event-ui.c (event_ui_init): New function.
	(build_edit_event_window): Renamed from edit_event_window.
	(edit_event_window): New function; wrap the above.
	(edit_finished): New function.
	(click_delete): Call it.
	(click_ok): Likewise.
	(click_cancel): Likewise.

2002-11-29  Philip Blundell  <philb@gnu.org>

	* day_view.c (selection_made): Set viewtime when a row is single
	clicked.

2002-10-17  Philip Blundell  <philb@gnu.org>

	* Version 0.25 released.

2002-10-17  Philip Blundell  <philb@gnu.org>

	* main.c (main): Call gpe_calendar_start_xsettings.
	(day_view_combined_times): Define.
	* xsettings.c: New file.
	* globals.h (day_view_combined_times): Declare.
	* day_view.c (day_view_combined_times): Don't define.
	* Makefile (MEMBERS): Add xsettings.
	* Makefile (LDFLAGS): Add Xsettings libraries.
	* Makefile (CFLAGS): Add Xsettings include paths.
	
2002-10-14  Joseph J. McCarthy  <mccarthy@engrng.pitt.edu>

        * event-ui.c (schedule_alarm): add DISPLAY to script 

2002-10-13  Philip Blundell  <philb@gnu.org>

	* week_view.c (draw_expose_event): Format time correctly.
	(week_view_update): Likewise.

2002-10-12  Philip Blundell  <philb@gnu.org>

	* week_view.c (draw_expose_event): Only draw black separator when
	appropriate to do so.
	(week_view_update): Put untimed events at start of list.
	Calculate required height appropriately for Pango.

	* main.c (main): Put all views inside a GtkNotebook.
	(new_view): Select the appropriate page.

2002-10-12  Philip Blundell  <philb@gnu.org>

	* Makefile (GTK2): Default is yes.

	* main.c (main): Fix warnings.

	* week_view.c: Switch back to drawing area implementation.

2002-10-07  Philip Blundell  <philb@gnu.org>

	* event-ui.c (edit_event_window): Fix memory leak.

2002-10-06  Philip Blundell  <philb@gnu.org>

	* Version 0.23 released.

2002-10-06  Philip Blundell  <philb@gnu.org>

	* Makefile: Add support for GTK 2.
	* day_view.c (day_view_update): Likewise.
	* future_view.c (future_view_update): Likewise.
	* month_view.c (draw_expose_event): Likewise.
	* main.c (main): Likewise.
	* familiar/control1: New file.

	* Makefile (DEBUG): Default off.

	* month_view.c (button_press): Reject clicks outside valid area.
	[Bug #130]
	(resize_table): Calculate height on the basis of 7 rows.  
	[Bug #133]

	* main.c (main): Use radio buttons for view selection, based on
	patch from pigeon@pigeond.net.
	(set_week_view, set_month_view, set_year_view, set_future_view): Deleted.

2002-10-04  Joseph J. McCarthy  <mccarthy@engrng.pitt.edu>

	* event-db.c (event_db_list_for_period_internal: erase
	the "max &&" and "/*skip already finished events */" 
	parts got cut	
	* future-view.c: change to use list_for_future()

2002-09-29  Philip Blundell  <philb@gnu.org>

	* day_view.c (format_event): Handle untimed events.  Elide end
	time if duration is zero.
	(day_view_update): Handle untimed events appropriately.

	* event-db.c (event_db_new): Zero newly allocated structure.

2002-09-29  Philip Blundell  <philb@gnu.org>

	* event-db.c (event_db_list_for_period_internal): New parameters
	"max", "untimed_significant".
	(event_db_list_for_period): Update call to above function.
	(event_db_untimed_list_for_period): Likewise.
	(event_db_list_for_future): New.

	* event-db.h (event_db_list_for_future): New prototype.
	
2002-09-29  Philip Blundell  <philb@gnu.org>

	* event-db.h (recur_t): New, broken out from event_t.
	(event_t): Member "recur" is now a pointer.
	(event_db_get_recurrence): New prototype.
	* event-db.c (events): Separate back into recurring_events and
	one_shot_events.
	(event_db_add_internal): Use appropriate list.
	(event_db_remove_internal): Likewise.
	(load_data_callback): Allocate ev->recur when required.
	(load_callback): Free recurrence struct if it was allocated by
	mistake.
	(event_db_list_for_period_internal): Use separate one-shot and
	recurring lists.  Cope with ev->recur as a pointer.
	(event_db_write): Only write recurrence tags for recurring events.
	Cope with ev->recur as a pointer.
	(event_db_destroy): Free recurrence struct if it exists.
	(event_db_get_recurrence): New.
	* day_view.c (day_view_update): Fix formatting.  Just test
	ev->recur, not ev->recur.type.
	* old-db.c (load_callback0): No need to set recurrence type.
	* event-ui.c (click_ok): Allocate or dispose of recurrence struct
	as appropriate.  Fix formatting.  Use "for" loop for day-related
	tests.
	(edit_event): Fix formatting.  Expect ev->recur as a pointer.  Use
	"for" loop for day masking.

2002-09-26  Joseph J. McCarthy  <mccarthy@engrng.pitt.edu>

	* Makefile: drop libgpe dependencies	
	* event-ui.h: change to atd for alarms	
	* event-ui.c: change to atd for alarms	
	* day-view.c: add pixmaps for recurring and alarms	
	* year-view.c: delete unused variable	

	* Version 0.22 released.

2002-09-09  Joseph J. McCarthy  <mccarthy@engrng.pitt.edu>

	* month-view.c: fix daylight savings glitch
	
	* year-view.c: same	

2002-09-08  Philip Blundell  <philb@gnu.org>

	* event-ui.c (struct edit_state): Add taskdate, taskspin,
	optionmenutype, optionmenutask.
	(set_notebook_page): Operate on GtkSimpleMenu.
	(edit_event_window): Use GtkSimpleMenu for type selection.  Add
	preliminary support for "tasks".

2002-09-06  Joseph J. McCarthy  <mccarthy@engrng.pitt.edu>

	* event-ui.c: add rtcd support for alarms and re-show alarm notepage
	WE NEED TO FIX THIS PRIOR TO OUR NEXT RELEASE SINCE THE RTCD IS A HACK!
	
	* event-ui.h: alarm stuff	

2002-09-05  Philip Blundell  <philb@gnu.org>

	* main.c (main): Reinstate yearfont, datefont.
	* globals.h: Likewise.
	* year_view.c: Roll back to non-GtkCalendar version.

	* day_popup.c (day_popup): Call mktime to calculate day of week
	correctly.

2002-09-04  Philip Blundell  <philb@gnu.org>

	* Version 0.20 released.

2002-09-02  Philip Blundell  <philb@gnu.org>

	* event-ui.c (new_event): Fix calculation of end time when
	wrapping from one day to the next.
	(struct edit_state): Add notebooktype, page.
	(click_ok): Distinguish appointments and reminders.
	(set_notebook_page): Set s->page.
	(edit_event_window): Pass edit_state as argument to above
	function.
	* main.c (new_appointment): Use viewtime, not current time.

2002-09-01  Philip Blundell  <philb@gnu.org>

	* event-ui.c (struct edit_state): Delete alldaybutton.  Add
	reminderdate, remindertime, remindertimebutton.
	(recalculate_sensitivities): Replace alldaybutton with
	remindertimebutton.
	(set_notebook_page): New.
	(edit_event_window): Distinguish between "appointments" and
	"reminders".

2002-08-31  Philip Blundell  <philb@gnu.org>

	* event-ui.c (edit_event_window): Put event box in a
	GtkScrolledWindow.

2002-08-31  Philip Blundell  <philb@gnu.org>

	* month_view.c (c_old): Make static.
	(button_press): Fix formatting.
	(struct render_ctl): Add "today".
	(draw_expose_event): Draw red border when c->today==TRUE.
	(month_view_update): Set c->today appropriately.

2002-08-31  Philip Blundell  <philb@gnu.org>

	* month_view.c (TOTAL_DAYS): New macro.
	(draw_expose_event): Use it.
	(month_view_update): Likewise.
	(rc): Use TOTAL_DAYS as array size.

2002-08-31  Philip Blundell  <philb@gnu.org>

	* event-db.c (event_db_alloc_details): Add refcount.
	(event_db_forget_details): Likewise.
	(event_db_get_details): Likewise.
	(event_db_write): Use event_db_get_details and
	event_db_forget_details.  Reduce size of string buffers.  Use
	sizeof where appropriate.  Take "sequence" and "modified" from
	details struct, not event_t.
	* event-db.h (event_details_s): Add ref, sequence, modified.
	(event_s): Remove sequence, modified.
	* event-ui.c (click_ok): Call event_db_forget_details.  Use
	ev_d->sequence not ev->sequence.

2002-08-30  Philip Blundell  <philb@gnu.org>

	* event-db.h (event_s): Add "sequence".
	* event-db.c (event_db_write): Write out SEQUENCE tag.
	(load_data_callback): Read it back in again.

	* event-ui.c (click_ok): Bump sequence number on existing events.

2002-08-30  Philip Blundell  <philb@gnu.org>

	* event_db.h (struct calendar_time_s): New struct.

2002-08-30  Philip Blundell  <philb@gnu.org>

	* event-ui.c (struct edit_state): Delete "old_alarm".
	(click_ok): Replace test of s->old_alarm with direct inspection of
	ev->flags.
	(edit_event): Don't set s->old_alarm;
	(new_event): Likewise.
	(recalculate_sensitivities): Fix formatting.

2002-08-30  Philip Blundell  <philb@gnu.org>

	* event-ui.c (click_ok): Reuse old event structure when modifying
	an existing event.
	* event-db.c (event_db_write): New function.
	(event_db_flush): Likewise.
	(event_db_add): Use event_db_write.
	(insert_values): Expect err as char**.
	* event-db.h (event_db_flush): New prototype.

2002-08-30  Philip Blundell  <philb@gnu.org>

	* event-db.h (FLAG_TENTATIVE): New.
	(calendar_time_t): New type.
	(event_t): Delete "confirmed".  Change type of "start" to 
	calendar_time_t.

	* event-ui.c (click_delete): Test for flags & FLAG_ALARM.
	(edit_event): Likewise.
	(click_ok): Likewise.  Set FLAG_ALARM bit appropriately.

2002-08-29  Philip Blundell  <philb@gnu.org>

	* event-db.c (parse_date): Don't dereference date_only if NULL.
	(load_data_callback): Pass "date_only" as NULL to above function
	when not interested in that information.

	* globals.h (timefont, datefont, yearfont, DO_RECURRENCE): Delete
	obsolete cruft.

2002-08-25  Joseph J. McCarthy  <mccarthy@engrng.pitt.edu>

	* old-db.c: fix for when no db exists.
	
	* event-db.c: include recurrence and fix deleting.
	
	* event-db.h: small schema change for recurrence.
	
	* event-ui.c: include recurrence.
	
	* globals.h: include recurrence bit thingies.
	
2002-08-25  Joseph J. McCarthy  <mccarthy@engrng.pitt.edu>

	* old-db.c: write new schema version to db after update.
	
	* event-db.c: Use new database schema versioning.
	
2002-08-26  Philip Blundell  <philb@gnu.org>

	* event-db.c (parse_date): New function.
	(load_data_callback): Use it.

2002-08-25  Philip Blundell  <philb@gnu.org>

	* day_popup.c (day_popup): Return GtkWidget*.
	* day_popup.h (day_popup): Adjust prototype to match.

	* old-db.c: New file.
	* Makefile (MEMBERS): Add old-db.

	* event-db.c: Use new database schema.
	* event-db.h (FLAG_ALARM): New.

2002-08-23  Philip Blundell  <philb@gnu.org>

	* Makefile (DEBUG): Default off.
	* main.c (main): Remove historical font-loading cruft.

2002-08-22  Joseph J. McCarthy  <mccarthy@engrng.pitt.edu>

	* day_view.c (day_view_update, update_hooks_callback): move set_time.
	* week_view.c (week_view_update, update_hooks_callback): Likewise.	
	* month_view.c (month__view_update, update_hooks_callback): Likewise.
	* year_view.c (year_view_update, update_hooks_callback): Likewise.
	
2002-08-05  Colin Marquardt  <colin@marquardt-home.de>

	* po/Makefile (translation-package): Get control and postinst from
	control.translation and postinst.translation.

	* Makefile (translation-package): New target to automatically
	make translation packages. Just calls the same target in po/Makefile.

	* po/Makefile (translation-package): New target to automatically
	make translation packages. This actually does all the work.

2002-07-31  Philip Blundell  <philb@gnu.org>

	* main.c: Remove useless include of gdk_imlib.h

2002-07-29  Colin Marquardt  <colin@marquardt-home.de>

	* gpe-calendar.menu: Give full path for the icon. Move to section
	PIM (to conform to http://familiar.handhelds.org/policy/menu.html)

2002-07-17  Philip Blundell  <pb@nexus.co.uk>

	* Version 0.10 released

2002-07-13  Philip Blundell  <philb@gnu.org>

	* main.c (main): Remove call to what_init.

2002-07-09  Philip Blundell  <philb@gnu.org>

	* Makefile (gpe-calendar): Link with libgpewidget before libgtk.

2002-06-22  Philip Blundell  <philb@gnu.org>

	* main.c (main): Set icon for window manager.

	* event-ui.c (click_ok): Correct DST related lossage.

	* event-db.c (event_db_alloc_details): Pass correct size to
	memset.

	* Version 0.09 released.

2002-06-21  Joseph J. McCarthy  <mccarthy@engrng.pitt.edu>

	* month_view.c (button_press): Use global pop_window pointers so it
	is easier to manipulate the pop-up from a few different routines
	(this will help with the soon-to-be-worked-on new year-view as well).

	* globals.h : Add a new global for the pop-up windows (so they are
	easier to kill).

	* main.c : Add a new global for the pop-up windows (so they are
	easier to kill).

	* day_popup.c (destroy_popup): Set global pop_window pointer to NULL
	when window is killed

	* Version 0.08 released.

2002-06-21  Philip Blundell  <pb@debian.org>

	* month_view.c (draw_expose_event): Draw days with events as
	gray60 background and white text.  Unref newly created GCs when
	done with them.

	* event-ui.c (click_ok): Disallow end time earlier than start time.

	* familiar/control (Depends): Require libgpewidget 0.08.  Remove
	explicit dependency on gdk-pixbuf2.

	* Version 0.08 released.

2002-06-20  Philip Blundell  <pb@debian.org>

	* main.c (main): Call what_init.

2002-06-18  Philip Blundell  <pb@debian.org>

	* day_popup.c (day_popup): Realize widget before using its style.
	Add missing include.
	* event-ui.c (edit_event_window): Likewise.
	* main.c: Add missing include.

2002-06-16  Philip Blundell  <pb@debian.org>

	* main.c (my_pix): Add "cancel".
	* day_popup.c (day_popup): Use gpe_find_pixmap.

2002-06-15  Philip Blundell  <pb@debian.org>

	* Makefile: Don't link with gdk-imlib.
	(MEMBERS): Remove about.
	* about.c: Obsolete, deleted.
