2010-02-22 Graham Cobb * calendar-update.c (build_message): Add Soup session logging if GPE_SOUP_DEBUG is defined in the environment. Note that this may generate a lot of output and/or may expose sensitive data. 2010-01-21 Graham Cobb * month_view.c (reload_events_hard): clamp start and end dates after doing calculations, not before (fix bug 320) 2010-01-20 Graham Cobb * calendar-update.c (authenticate): Handle changes for LIBSOUP2.4 (fixes bug 311) 2009-10-05 Graham Cobb * calendars-dialog.c (calendars_dialog_init): HACK to workround Maemo5 bug with toggle rendering. * calendars-widgets.c (get_layout): HACK to workround Maemo5 bug with toggle rendering. * main.c (calendars_consider): HACK to workround Maemo5 bug with toggle rendering. 2009-10-04 Graham Cobb * main.c (main): Swap categories and calendars in menu (main): Disable Calendars display by default as it causes confusion * alarm-dialog.c (alarm_dialog_get_type): Subclass HildonStackableWindow on Fremantle * calendars-dialog.c (calendars_dialog_get_type): Subclass HildonStackableWindow on Fremantle 2009-10-03 Graham Cobb * globals.h: Declare main_window as HildonStackableWindow on Fremantle * main.c (main): Add HildonAppMenu for Fremantle (options_dialog): Create options dialog for all Hildon versions (main): Use HildonStackableWindow on Fremantle (main): Only use options dialog on Fremantle 2009-09-19 Graham Cobb * main.c (gpe_handle_close): Remove Iconise option for Fremantle 2009-09-18 Graham Cobb * globals.h: define PANGO symbols if they are not defined 2009-09-17 Graham Cobb * pannedwindow.c (process_motion): swap argument order to workround compiler bug with double arguments 2009-09-16 Graham Cobb * main.c (main): Remove some compilation warnings about types * globals.h: add definitions for missing PANGO constants 2009-09-15 Graham Cobb * 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 * 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 * configure.ac: set up MAEMO5 condition for automake * pixmaps/Makefile.am (gpe-calendar.png): Conditionalise application icon size 2009-09-09 Graham Cobb * 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 * 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 * 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 * configure.ac: Port to libsoup2.4 * calendar-update.c (calendar_push_internal, pushed): Port to libsoup2.4 2009-08-20 Graham Cobb * 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 * 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 * 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 * 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 * 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 * 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 * 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 * configure.ac: Remove libxsettings dependency. Reported by Graham Cobb . 2008-10-23 Neal H. Walfield * 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 * 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 * event-ui.h: Include . (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 * inotify-syscalls.h: Remove file. * Makefile.am (libgpe_calendar_applet_la_SOURCES): Remove inotify-syscalls.h. * hildon-applet.c: Don't include or "inotify-syscalls.h". Include . Patch by Adrian Bunk . 2008-10-22 Neal H. Walfield * day_view.c (calc_events_positions): Fix off-by-one error. 2008-10-22 Neal H. Walfield * event-menu.c (event_menu_new): Fix off-by-one error. 2008-10-22 Neal H. Walfield * event-menu.c (edit_calendar_cb): New function. (event_menu_new): Create a duplicate menu item. 2008-10-22 Neal H. Walfield * configure.ac: Depend on the libxsettings package. 2008-10-22 Neal H. Walfield * configure.ac: Don't depend on the esound package. 2008-09-05 Phil Blundell * po/da.po: New translation, courtesy Joe Hansen. 2008-08-14 Graham Cobb * main.c (main): Close database after command line import 2008-08-14 Phil Blundell * po/Makefile.in.in (EXTRA_DISTFILES): Remove po/ChangeLog. * po/ja.po: Update from TP. 2008-08-09 Phil Blundell * po/sv.po, po/zh_CN.po: Update from TP. 2008-08-06 Phil Blundell * Version 0.92 released. 2008-07-27 Graham Cobb * 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 * 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 * main.c (main): Initialise categories library before processing command line options such as -e 2008-06-23 Graham Cobb * 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 * main.c (gpe_handle_close): Allow user to choose behaviour when close button is pressed 2008-06-14 Graham Cobb * Makefile.am (hildonhomelibdir): Remove home applet from build 2008-06-05 Graham Cobb * 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 * alarm-dialog.c (ack_all_events_clicked): Correct handling of list of events to be cleared. 2008-01-15 Graham Cobb * event-cal.c: On chinook, base event calendar widget on HildonCalendar, not GtkCalendar 2008-01-15 Florian Boor * hildon/gpe-calendar.png: Use larger icon. * Update translations and translation code. * Add Japanese translation contributed by Takeshi Hamasaki 2008-01-11 Graham Cobb * 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 * po/*po: Update translation files. * gpe-tp.am: Update translation include to fetch from new location. 2007-11-22 Florian Boor * po/fi.po: Update Finnish translation 2007-11-05 Graham Cobb * configure.c, event-ui.c, import-export.c: Set HILDON_VER to 2 2007-11-02 Graham Cobb * configure.ac, Makefile.am: build and compile changes for new hildon libraries in chinook 2007-10-24 Graham Cobb * 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 & 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 * 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 * Release version 0.91 2007-07-29 Florian Boor * hildon-applet.c: Make sure the .gpe directory is crated. Fixes #55. * configure.ac: Add esound dependency. 2007-06-18 Joe McCarthy * 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 * Release version 0.90 * debian: remove from distribution * POTFILES.in: update 2007-03-15 Graham Cobb * debian/control: add gpe-icons to dependencies 2007-03-13 Graham Cobb * debian/control: fix Depends: to use shlibs 2007-02-21 Florian Boor * main.c (main): Set toolbar style in Maemo only. 2007-02-21 Neal H. Walfield * calendar-edit-dialog.c (calendar_edit_dialog_init): Change button order. Reported by Florian Boor . 2007-02-13 Neal H. Walfield * 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 * 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 * 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 * day_popup.c (day_popup): Reuse Pixbufs, not GtkImages. 2007-02-13 Neal H. Walfield * calendar-update.c (build_message): Check *MSG, not MSG. 2007-02-13 Neal H. Walfield Closes #1768 (handhelds.org). * main.c (main): Call osso_initialize earlier. 2007-02-13 Neal H. Walfield Closes #1794 (handhelds.org). * calendar-update.c (pulled): Correct error logic. 2007-02-13 Neal H. Walfield * import-export.c (save_as_dialog): Use SUMMARY. 2007-02-13 Neal H. Walfield * 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 * 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 * 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 * 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 * 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 * day_view.c (event_rect_expose): Change the way in which the period of an event is displayed. 2006-12-30 Neal H. Walfield * configure.ac: Depend on version 0.20 or greater of libgpevtype. 2006-12-30 Neal H. Walfield * configure.ac: Remove dependencies on sqlite and mimedir-1.0. 2006-12-29 Neal H. Walfield * 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 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 . 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 * export-vcal.h: Include . (export_event_as_vevent): New prototype. * export-vcal.c (export_event_as_vevent): Correctly export the alarm (by Graham Cobb ). 2006-12-28 Neal H. Walfield * import-vcal.h: Include . (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 or . Include . (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 ). 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 * autogen.sh: Just use autoreconf and intltoolize. 2006-12-14 Joseph J. McCarthy * main.c: change behavior of "close" to iconify (to aid in alarm handling) 2006-11-27 Florian Boor * export-vcal.c (export_event_as_string): Fix export of daily recurring events. Contributed by Graham Cobb , fixes #3 2006-11-14 Florian Boor * main.c (set_title): Apply patch by Matt Reimer to show day of week in title. 2006-09-16 Florian Boor * 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 * 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 * TODO: New file. 2006-08-28 Neal H. Walfield * event-ui.c (build_recurrence_page): Don't use S->INCREMENT_UNIT before it is initialized. Use SPIN instead. 2006-08-10 Florian Boor * main.c (main): Set absolute path for local files. 2006-08-08 Neal H. Walfield * 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 * 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 * 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 * 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 * (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 * 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 * 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 * 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 * 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 * 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 * 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 * day_view.c (realize): Include the border height when calculating DAY_VIEW->ROW_HEIGHT_MIN. 2006-07-23 Neal H. Walfield * 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 * 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 * 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 * 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 * 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 * main.c (calendar_consider): Correctly set CALENDAR's month. 2006-07-17 Florian Boor * 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 * 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 * 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 * main.c (calendar_consider): Set the calendar to VIEWTIME. 2006-07-13 Neal H. Walfield * 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 * 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 . 2006-07-13 Neal H. Walfield * 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 * 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 . (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 * 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 . 2006-07-13 Florian Boor * 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 * 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 * 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 . 2006-07-06 Neal H. Walfield * 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 . 2006-07-06 Neal H. Walfield * 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 * month_view.c (scroll_to_focused_day): If not realized, then just return. 2006-07-03 Florian Boor * 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 * 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 * 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 * 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 * 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 * 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 * day_view.c (event_rect_expose): Fix off by one error in flooding event area. 2006-06-27 Neal H. Walfield * 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 * 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 * hildon/gpe-calendar-home.desktop.in: New file. 2006-06-27 Neal H. Walfield * 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 * Makefile.am (gpe_calendar_SOURCES): Fix typo. 2006-06-27 Neal H. Walfield * 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 . 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 * 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 * main.c (main): Increase the minimum space allocated to the sidebar. 2006-06-25 Neal H. Walfield * hildon/gpe-calendar.desktop.in.in (Exec): Source /usr/bin/connectivity_preload.sh before running. 2006-06-25 Neal H. Walfield * 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 * 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 * day_view.c (appointment_area_expose_event): Simplify drawing the lines separating the hours. 2006-06-24 Neal H. Walfield * 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 * 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 * Makefile.am (gpe_calendar_SOURCES): Remove day_render.h and day_render.c. 2006-06-23 Neal H. Walfield * day_view.h: Include and . (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 and include . * 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 * 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 * week_view.c (gtk_week_view_reload_events): Optimize loading events. 2006-06-19 Neal H. Walfield * export-vcal.c (export_event_as_vevent): Set "unit" and "units" on RECURRENCET, not EVENT. 2006-06-18 Neal H. Walfield * 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 * calendars-widgets.c (calendars_tree_model): Don't forget to add INFO to TREE_STORES. 2006-06-18 Neal H. Walfield * 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 and . (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 * 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 * month_view.c (gtk_month_view_reload_events): Correctly calculate PERIOD_END. 2006-06-16 Neal H. Walfield * 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 * 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 * 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 * main.c (update_view): Call gtk_event_list_reload_events if CURRENT_VIEW is a GtkEventList. 2006-06-16 Neal H. Walfield * gtkdatesel.c (gtk_date_sel_new) [IS_HILDON]: Use a normal combo box to work around hildon brokenness. 2006-06-16 Neal H. Walfield * 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 . * 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 . 2006-06-16 Neal H. Walfield * main.c (main): Use MAIN_APPVIEW, not the non-existent APPVIEW. Reported by Florian Boor . 2006-06-16 Neal H. Walfield * 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 * month_view.c (gtk_month_view_reload_events): Optimize loading events. 2006-06-16 Neal H. Walfield * 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 * 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 * 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 * 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 . 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * event-ui.c: Don't include , , , , , and . Include . (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 * calendar-update.c (refresh): If INFO->RETRY is non-zero, use that as the value for NEXT_REFRESH. 2006-06-11 Neal H. Walfield * 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 * 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 * 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 * hildon/*.in, globals.h, Makefile.am: Change file locations to become compatible with Maemo 2.0. 2006-06-06 Neal H. Walfield * 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 * 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 * calendar-update.c (calendar_modified): A modification may require an update to a subscribed calendar. 2006-05-28 Neal H. Walfield * export-vcal.c (save_as_dialog): Change default file extension to .ics. 2006-05-28 Neal H. Walfield * day_render.c (hour_bar_move): If DAY_RENDER->ROWS_VISIBLE is 0, just return FALSE. 2006-05-28 Neal H. Walfield * 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 * 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 . Don't include . (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 . (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 . Include . * 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 . Include , "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 . (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 . (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 * 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 . 2006-05-26 Neal H. Walfield * 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 . (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 . [IS_HILDON]: Don't include . (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 * event-menu.c (delete_event_cb): Make questions clearer. (move_event_to): Call update_view. 2006-05-26 Neal H. Walfield * 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 * 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 * calendars-widgets.c (calendars_combo_box_new): Set the active item to the default calendar. 2006-05-24 Neal H. Walfield * 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 . 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 * 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 , 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 . (_): 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 . (_): Don't define. * event-list.c: Don't include . (_): 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 . (_): 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 * 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 * main.c (cal_view_build): Add a weak reference to CALENDAR which squashes CALENDAR when it is destroyed. 2006-05-18 Neal H. Walfield * 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 * day_render.c (gtk_day_render_expose): Correct the calculation of the hour for machines with broken (?) FPUs. 2006-05-15 Neal H. Walfield * 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 * event-list.c: Include . (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 * 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 * alarm-dialog.c (alarm_dialog_init): It's spelt "delete-event", not "delete". 2006-05-15 Neal H. Walfield * 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 * 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 * event-ui.c (note_time_change): Really correctly calculate the new end time. 2006-05-14 Neal H. Walfield * 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 * 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 * month_view.c (draw_expose_event): Use a smaller font. Improve layout. 2006-05-13 Neal H. Walfield * 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 * 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 * 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 * 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 . (schedule_wakeup) [! WITH_LIBSCHEDULE]: Just return FALSE. 2006-05-12 Neal H. Walfield * day_view.c (gtk_day_view_reload_events): Add all day events to the reminder area. 2006-05-12 Neal H. Walfield * 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 * alarm-dialog.c (alarm_dialog_init): Connect gtk_widget_hide_on_delete to the "delete" signal of WINDOW. 2006-05-12 Neal H. Walfield * 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 * 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 * day_render.c (gtk_day_render_expose): Don't print the minutes. 2006-05-11 Neal H. Walfield * day_view.c (day_view_event_clicked): Improve formatting of the information label. 2006-05-11 Neal H. Walfield * 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 * main.c (main): Cache the current directory and free it when no longer needed. 2006-05-11 Neal H. Walfield * event-ui.c (click_ok): Let mktime compensate for DST. 2006-05-11 Neal H. Walfield * 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 * 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 * main.c: Don't include , or . * day_view.c: Don't include , , , , "gtkdatesel.h", "event-cal.h" or "event-list.h". * week_view.c: Don't include , , "gtkdatesel.h", "event-cal.h" or "event-list.h". * month_view.c: Don't include , "event-ui.h" or "gtkdatesel.h". (is_today): Don't define. 2006-05-11 Neal H. Walfield Reported by Koen Kooi * 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 * event-cal.c (update_cal): Freeze and thaw CAL for old versions of Gtk+. 2006-05-11 Neal H. Walfield * main.c (main): If the import filename is a relative filename, create an absolute file name. 2006-05-11 Neal H. Walfield * day_render.c (calc_events_positions): Free ROOT. 2006-05-11 Neal H. Walfield * import-vcal.c (do_import_vevent): Ignore the allday property. 2006-05-10 Neal H. Walfield * import-vcal.c (extract_time): Fix timezone calculation logic. 2006-05-10 Neal H. Walfield * 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 * import-vcal.c (do_import_vevent): Get and set the recurrence increment (i.e. iCal's interval). 2006-05-10 Neal H. Walfield * 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 * import-vcal.c (do_import_vevent): Set EV to NULL. Support days of the week for weekly recurrences. 2006-05-10 Neal H. Walfield * 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 * 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 * 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 * 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 * 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 * 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 * main.c (schedule_wakeup): Don't cache the event, we only need the uid. 2006-05-09 Neal H. Walfield * 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 * 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 * event-ui.h (unschedule_alarm): Remove declaration. Update callers. (schedule_next): Likewise. * event-ui.c: Don't include . (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 , 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 . 2006-05-08 Philip Blundell * 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 * configure.ac: Require libeventdb >= 0.29. * main.c (main): Suppress sidebar on small or portrait-format screens. 2006-04-25 Neal H. Walfield * 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 * 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 * main.c (main): Make PRIMARY a pane, not a box. Update users. Don't create SEP. 2006-04-24 Neal H. Walfield * event-list.c (gtk_event_list_base_class_init): Correctly initialize PARENT_CLASS. 2006-04-24 Neal H. Walfield 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 * 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 * day_render.c (gtk_day_render_button_press): Take into account the minimum event rectangle height. 2006-04-24 Neal H. Walfield * 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 * event-ui.c (build_edit_event_window): Add HBOXENDAFTER to VBOXEND. Change the ENDLABEL text to "recurrences". 2006-04-23 Neal H. Walfield * day_render.c: Include . (_): Define. 2006-04-23 Neal H. Walfield * 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 * day_render.c (gtk_day_render_expose): Don't forget to free UNTIL. 2006-04-23 Neal H. Walfield * 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 * event-list.c (gtk_event_list_reload_events): Correctly calculate NEXT_RELOAD. 2006-04-23 Neal H. Walfield * 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 * event-cal.c: Include . (update_cal): Make year, month and day unsigned. 2006-04-23 Neal H. Walfield * 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 * 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 * 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 * month_view.c (draw_expose_event): Turn word wrap off when vertical space is at a premium. 2006-04-17 Neal H. Walfield * 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 * event-list.c (button_press): If there is no row at the cursor position, just return. 2006-04-13 Neal H. Walfield * 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 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 * day_render.c (gtk_day_render_expose): Also print the EVD->LOCATION and EVD->DESCRIPTION. 2006-04-10 Neal H. Walfield * 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 * day_view.c (delete_event_cb): Call update_view, not gtk_day_view_reload_events. * event-list.c: Include . (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 * 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 * 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 * 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 * 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 * 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 * gtkdatesel.c (get_max_day_width): Remove dead code. 2006-04-08 Neal H. Walfield * 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 * event-ui.c (build_edit_event_window): Nicer looking layout: replace boxes with table. 2006-04-06 Neal H. Walfield * 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 * 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 * 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 * 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 * 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 * 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 , or . (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 * main.c (main): Really update all callers of month_view to call gtk_month_view_new. 2006-04-03 Neal H. Walfield * 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 , or . (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 * 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 * gtkdatesel.c: Include and . (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 * main.c (main): Move time format checking code after setlocale call. 2006-03-31 Neal H. Walfield * 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 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 * 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 * 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 * 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 * Version 0.72 released. 2006-02-12 Phil Blundell * 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 * 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 * Version 0.71 released. 2006-02-06 Phil Blundell * 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 * 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 * Version 0.70 released. 2006-02-05 Phil Blundell * 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 * 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 * 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 * 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 * Version 0.69 released. 2006-01-16 Phil Blundell * 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 * 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 * day_view.c (scroll_to): Remove mysterious call to gtk_adjustment_clamp_page to prevent extraneous redraws. 2006-01-16 Phil Blundell * 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 * 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 * 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 * 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 * 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 * 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 * day_view.c (scroll_to): Manually clamp value at upper limit to avoid undesirable "over-scroll" effect. 2006-01-07 Phil Blundell * 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 * day_view.c: Adjust formatting and comments. 2006-01-06 Florian Boor * Release version 0.67. * day-view.c: Fix adjustment bounds. 2006-01-03 Florian Boor * event-ui.c: Two more pixels. * event-ui.c: Tune dropdown box sizes fixing #1423. 2006-01-01 Phil Blundell * configure.ac: Require libeventdb >= 0.18 and libgpevtype >= 0.14. 2005-12-31 Florian Boor * event-ui.c: Support location information in events. * day_view.c: Improve popup behaviour, add sanity checks and frame. 2005-12-30 Florian Boor * import-vcal.*, main.c: Fix and clean up vcal/ics import. 2005-12-29 Florian Boor * day_view.c: Clean up scroll code, fix memory leak. 2005-12-20 Florian Boor * 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 * 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 * export-vcal.c, configure.ac: Apply patch to support new DBus API contributed by Philipp Zabel. 2005-11-29 Florian Boor * 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 * Release version 0.66. * familiar/control1: Update dependencies to up to date libgpevtype. 2005-11-22 Florian Boor * 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 * 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 * 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 * 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 * 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 * day_view.c: Day view automatically scrolls to current hour if possible 2005-10-25 Florian Boor * 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 * 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 * 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 * 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 * 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 * globals.h, main.c: Adapt icon loading to nasty Maemo environment. * day_render.c: Add sanity check. 2005-10-11 Luca De Cicco * 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 * event-ui.c: Fix categories handling and restoring. (#1402) 2005-09-27 Florian Boor * event-ui.c: Improve window type selection to behave better using Matchbox. 2005-09-09 Luca De Cicco * month_view.c: Adding support for scrolled window. 2005-08-31 Florian Boor * Release version 0.65 * import-vcal.c: Fix warning. * po/POTFILES.in: Removed some files. 2005-08-30 Florian Boor * import-vcal.c: Convert to new libmimedir API. 2005-08-30 Philippe De Swert * release version 0.64 as the previous fix by Florian is quite important 2005-08-29 Florian Boor * 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 * release version 0.63 2005-08-24 Joseph J. McCarthy * 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 * main.c: Included basic LibOSSO Support. 2005-08-08 Matthias Steinbauer * 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 * 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 * Version 0.62 released. 2005-03-14 Florian Boor * Removed obsolete inclusion of render.h 2005-01-16 Phil Blundell * Version 0.61 released. 2005-01-16 Phil Blundell * 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 * Version 0.60 released. 2005-01-09 Phil Blundell 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 * 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 * Version 0.59 released. 2004-11-25 Florian Boor * event-ui.c: Applied patch to fix transientness, thanks to Christian Gillot for this patch. 2004-11-15 Phil Blundell * 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 * 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 * Makefile (LINGUAS): Add zh_CN. * po/zh_CN.po: New file, courtesy Meng Jie. 2004-10-09 Phil Blundell * Version 0.58 released. 2004-10-09 Phil Blundell * 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 * 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 * 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 * Version 0.57 released. 2004-10-07 Phil Blundell * future_view.c, future_view.h: Deleted. * Makefile (MEMBERS): Remove future_view. * main.c: Delete references to future_view. 2004-10-07 Phil Blundell * 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 * event-ui.c: Added warning if event starts in the past. 2004-09-20 Florian Boor * 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 * 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 * main.c, event-ui.c: Make sure the correct widget has focus if we start a new event. 2004-08-30 Florian Boor * main.c, event-ui.c: Buffer characters to add in a new event. 2004-08-29 Florian Boor * main.c: Don't add spaces if screen width < 260 pixels. 2004-08-24 Florian Boor * event-ui.c: Select current day of week as default for weekly recurrence. 2004-08-18 Florian Boor * 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 * main.c: Typing opens "new event" dialog now. 2004-08-08 Florian Boor * main.c: Implemented vcard import via command line switch "-i " 2004-08-05 Florian Boor * event-ui.c: Fixed titles, layout and positions of recurrence tab. 2004-07-23 Florian Boor * 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 * 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 * 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 * 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 * 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 * 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 * 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 * Makefile (LINGUAS): Add es, sk, sr, ru, hu. 2004-06-01 Philip Blundell * Version 0.53 released. 2004-05-28 Phil Blundell * 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 * Version 0.52 released. 2004-03-08 Philip Blundell * Makefile (PACKAGE_LDFLAGS, PACKAGE_CFLAGS, PACKAGE_CPPFLAGS): Define and use instead of LDFLAGS, CFLAGS and CPPFLAGS. 2004-03-06 Philip Blundell * Version 0.51 released 2004-03-05 Philip Blundell * 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 * Version 0.50 released. 2004-02-22 Phil Blundell * 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 * event-ui.c : update last_modified when changes are made 2004-02-14 Philip Blundell * Version 0.49 released. 2004-02-09 Phil Blundell * 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 * 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 * Makefile: Don't link with -lsqlite. Use STANDARD_CFLAGS, STANDARD_CPPFLAGS, STANDARD_LDFLAGS. 2003-10-18 Philip Blundell * Makefile (CPPFLAGS): Undo last change. 2003-10-09 Philip Blundell * Makefile (LINGUAS): Add cs. 2003-09-24 Philip Blundell * Makefile: Use $(GPECFLAGS), $(GPELIBS). (CPPFLAGS): Add -DG_DISABLE_CAST_CHECKS. 2003-09-23 Philip Blundell * gpe-calendar 0.48 released. 2003-09-23 Philip Blundell * gpe-calendar.session: Add missing #!/bin/sh. 2003-09-07 Philip Blundell * Version 0.47 released. 2003-09-07 Philip Blundell * gtkdatesel.c (format_text): Fix cut and paste error in last change. 2003-09-06 Philip Blundell * Version 0.46 released. 2003-09-06 Philip Blundell * 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 * familiar/control1 (Source): Added. 2003-09-05 Philip Blundell * Version 0.45 released. 2003-09-05 Philip Blundell * day_view.c (selection_made): Avoid infinite loops and crashes with untimed events. 2003-07-29 Philip Blundell * 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 * Makefile (CFLAGS): Use libdisplaymigration in place of libdm. (LDFLAGS): Likewise. 2003-07-08 Joseph J. McCarthy * Makefile: released version 0.44 2003-07-08 Joseph J. McCarthy * 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 * 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 * day_view.c (day_view_update), future_view (future_view_update), Makefile: Removed legacy GTK1 code. 2003-07-06 Philip Blundell * Makefile (LINGUAS): Add sv. * po/sv.po: New file, courtesy Christian Rose. 2003-06-22 Philip Blundell * main.c (main): Hook delete-event signal, not destroy. 2003-07-06 Moray Allan * Makefile (install_program), gpe-calendar.menu: No longer install old-style menu file. 2003-06-26 Philip Blundell * 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 * Makefile (LINGUAS): Add ro. * po/ro.po: New file, courtesy Laurentiu Buzdugan. 2003-04-27 Philip Blundell * 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 * Version 0.43 released. 2003-04-25 Philip Blundell * 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 * Version 0.42 released. 2003-04-21 Philip Blundell * 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 * Makefile (LINGUAS): Add zh_TW. * po/zh_TW.po: New file, courtesy Chao-Hsiung Liao. 2003-04-12 Christian Meyer * 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 * Version 0.41 released. 2003-04-11 Philip Blundell * 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 * 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 * gtkdatesel.{cc,h}: GObject'ification. :-) 2003-04-10 Philip Blundell * familiar/control: Deleted. * week_view.c (draw_expose_event): Remove spurious g_locale_to_utf8. (week_view_update): Likewise. 2003-04-08 Philip Blundell * po/de.po: Updated, courtesy Colin Marquardt. 2003-04-07 Philip Blundell * 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 * 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 * event-ui.c: use libschedule * familiar/control*: likewise 2003-04-03 Joseph J. McCarthy * 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 * 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 * 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 * 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 * 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 * Version 0.40 released. 2003-03-27 Philip Blundell * 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 * Version 0.39 released. 2003-03-23 Phil Blundell * main.c (main): Rearrange order of packing to get toolbar icon sizes right. 2003-03-23 Phil Blundell * Version 0.38 released. 2003-03-23 Phil Blundell * event-ui.c (build_edit_event_window): Tweak expand and fill arguments for better effect. Include . 2003-03-23 Christian Meyer * event-ui.c (build_edit_event_window): Improved layout quite a bit. Removed unnecessary code, deprecated function calls. 2003-03-23 Phil Blundell * Version 0.37 released. 2003-03-23 Phil Blundell * 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 * Version 0.36 released. 2003-03-22 Phil Blundell * event-ui.c (build_edit_event_window): Don't use GtkDialog. * Makefile (LDFLAGS): Add -rpath-link for libxsettings. 2003-03-19 Philip Blundell * 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 * event-ui.c: Indentation fixes. 2003-03-19 Christian Meyer * event-ui.c: Remove GTK 1 compatibility. 2003-03-19 Philip Blundell * 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 . * event-ui.c (build_edit_event_window): Remove frame around description. Put start/end dates and times in a table. Patch from Christian Meyer . 2003-03-19 Philip Blundell * xsettings.c (notify_func): Add missing const. Patch from Christian Meyer . * 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 * 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 . * 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 * 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 * version 0.35 2003-03-03 Joseph J. McCarthy * 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 * 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 * Version 0.34 released. 2003-02-13 Philip Blundell * 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 * 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 * 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 * 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 * Version 0.33 released. 2003-01-18 Philip Blundell * 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 * 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 * 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 * Makefile: removed reference to old-db.c 2003-01-08 Joseph J. McCarthy * main.c: Change "event-db.h" for * event-ui.c: fix notebook page handling on edit/new 2003-01-06 Philip Blundell * event-db.c, event-db.h: Deleted; moved to ../libeventdb. 2003-01-06 Luis Oliveira * Makefile (MEMBERS): remove event-db and old-db. (CPPFLAGS): add -I../libeventdb. Linking against libeventdb. * day_popup.c: Change "event-db.h" for * 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 * Version 0.32 released. 2003-01-06 Joseph J. McCarthy * Makefile: delete year_view 2003-01-06 Joseph J. McCarthy * 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 * 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 * 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 * 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 * familiar/control1 (Version): Version 0.31 released. 2003-01-05 Philip Blundell * event-db.c (event_db_clone): Add missing memcpy, duh. 2003-01-05 Philip Blundell * familiar/control1 (Version): Version 0.30 released. 2003-01-05 Philip Blundell * 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 * 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 * Version 0.29 released. 2003-01-04 Philip Blundell * 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 * 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 * Version 0.28 released. 2003-01-01 Philip Blundell * 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 * 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 * Version 0.27 released. 2002-12-15 Luis Oliveira * po/pt_PT.po: Updated translation. 2002-12-15 Philip Blundell * po/pt_PT.po: Set character set to iso-8859-15. 2002-10-31 Luis Oliveira * event-db.c (event_db_destroy): Fix memory leak. 2002-12-07 Philip Blundell * month_view.c (draw_expose_event): Remove unused variable. * event-db.c (insert_values): Remove spurious token-paste. 2002-12-06 Philip Blundell * gpe-calendar.desktop: New file. * Makefile (install): Install it. Patch from Matthew Allum 2002-11-30 Philip Blundell * Version 0.26 released. 2002-11-30 Philip Blundell * 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 * day_view.c (selection_made): Set viewtime when a row is single clicked. 2002-10-17 Philip Blundell * Version 0.25 released. 2002-10-17 Philip Blundell * 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 * event-ui.c (schedule_alarm): add DISPLAY to script 2002-10-13 Philip Blundell * week_view.c (draw_expose_event): Format time correctly. (week_view_update): Likewise. 2002-10-12 Philip Blundell * 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 * Makefile (GTK2): Default is yes. * main.c (main): Fix warnings. * week_view.c: Switch back to drawing area implementation. 2002-10-07 Philip Blundell * event-ui.c (edit_event_window): Fix memory leak. 2002-10-06 Philip Blundell * Version 0.23 released. 2002-10-06 Philip Blundell * 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 * 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 * 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 * 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 * 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 * 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 * month-view.c: fix daylight savings glitch * year-view.c: same 2002-09-08 Philip Blundell * 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 * 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 * 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 * Version 0.20 released. 2002-09-02 Philip Blundell * 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 * 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 * event-ui.c (edit_event_window): Put event box in a GtkScrolledWindow. 2002-08-31 Philip Blundell * 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 * 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 * 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 * 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 * event_db.h (struct calendar_time_s): New struct. 2002-08-30 Philip Blundell * 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 * 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 * 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 * 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 * 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 * old-db.c: write new schema version to db after update. * event-db.c: Use new database schema versioning. 2002-08-26 Philip Blundell * event-db.c (parse_date): New function. (load_data_callback): Use it. 2002-08-25 Philip Blundell * 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 * Makefile (DEBUG): Default off. * main.c (main): Remove historical font-loading cruft. 2002-08-22 Joseph J. McCarthy * 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 * 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 * main.c: Remove useless include of gdk_imlib.h 2002-07-29 Colin Marquardt * 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 * Version 0.10 released 2002-07-13 Philip Blundell * main.c (main): Remove call to what_init. 2002-07-09 Philip Blundell * Makefile (gpe-calendar): Link with libgpewidget before libgtk. 2002-06-22 Philip Blundell * 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 * 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 * 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 * main.c (main): Call what_init. 2002-06-18 Philip Blundell * 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 * main.c (my_pix): Add "cancel". * day_popup.c (day_popup): Use gpe_find_pixmap. 2002-06-15 Philip Blundell * Makefile: Don't link with gdk-imlib. (MEMBERS): Remove about. * about.c: Obsolete, deleted.