Copyright (c) 1993 by Sanjay Ghemawat Bugs + Stuff to Fix =================== * Alarms are killed on flush: should be killed only if changed * Calendar that includes itself creates problems. See messages from Murray.Cameron * Select an item, do "Properties...", mark it as a todo item, click Okay. Pull down the Item menu, notice that "Todo" is not marked. * Tk 4.1 configuration does not pick up -lsocket -lnsl -lbsd etc... * Allow CFLAGS passing to sub-make invocations * Set the "wm client" and "wm command" properties. * Use -tearoffcommand to track menus that have to be updated * Do not change border widths to "1" on monochrome displays * Add menu entry for pasting text into an item * New alarms created by the ruler widget are not aligned properly * Add preferences to select WWW viewer * Fix focus list ordering for all toplevels * Fix documentation to reflect new menu items (if any) * Fix and re-enable insert-text/delete-text commands * Add control-u for editor bindings? * People keep complaining about overlap between scrollbar and NoteList Changes for Tcl 7.5/Tk 4.1 ========================== * How does Tk_CreateMainWindow get called now? * Use "package" stuff? * "foreach" is now better" * Use portable file IO? * "grid" geometry manager * Look for uses of "fd" and change to Tcl_File? * Switch to using the "clock" command? Various proposals ================= (PS. I am not sure if all of these are good ideas.) * Optionally use pair of dateeditors for item range setting * When indicating "late for appt", say how late. * Make "todo" items that are marked as "done" sort after normal items. * Israel weekends are Friday and Saturday. - fix dateeditor.tcl to hilite the appropriate columns - fix the "nth" working day stuff for monthly repetitions. Yikes! * Allow "ical -print" for generating postscript * Set up end range (for date range editing) by default to be a year away? * "Appointment range" changes do not affect window sizes if the window has already been resized. * Add a menu button to restart ical, which gets any new X resource settings. * Allow todo list items to also allow overflow, as with appointments. This lets todos take up only one line, but contain as much information as needed to describe the task. * Check for duplicate calendar inclusion? * Incremental searching * Keyboard shortcuts * Keyboard macros * TTY interface * Option to work with A4 paper (change /RealWidth to 8 inch?) * Alarms > 60 minutes * Ability to annotate items with long messages. * Different views (month, week, year) * Always leave a small box around today's date * Add more on-line editing of options * More control over queries (string dates/regexps/...) * De-iconify window on update to shared calendar * More hooks for various events -- ... * Allow reminder window to be completely overridden * Support for scheduling meetings? (look at ftp.cs.washington.edu: vsched). * Various converters (I will accept contributions...) * Viewing all the attributes of a bunch of appointments? * Use less screen space (as an option for people with smaller screens) * Quick way to jump to dates * Automatically delete blank entries * Start off with old settings when editing repetition info * Unhiding items somehow * Allow clicking in date editor past end of month to go to next month * Make the month heading in date editor a menu. * Distinguish between file/directory for permission denied. * Allow geometry spec/resizing for dayview * Different widths for appt/notice lists * Flag when some appts are not visible * Allow single click and drag to create and size appointment * Create option to control stay-up menus. * Item types (with icons)? (Merge Phillipe Defert's changes?) * Change owner field on each modification? * Clock * Working/lunch hours * Put month view in a small icon? Comments from "Steve Simmons..." * Turn the "Help" menu into a button * Merge "edit weekly" and "edit monthly" * Improve "edit range..." Hacks to compile with SGI compiler. Arghh!!!! * Does not like code after return statement in inline functions * Does not like inline functions with static variables * The file uses printf, but forgets to include * Build loadable libraries: - ical - screen saver reset? Cleanup ======= * Share code between apptlist/notelist * Move widget configurations into resource files? Speedups ======== Editing code ApptList::layout (Time spent computing offsets?) Todo Items ========== * Assign priority and category to each items * Implement TodoList widget for displaying todo items based on categories. * NoteList displays only the high priority items * TodoList widget: - list of items sorted by priority and then increasing/decreasing date - can mark item as done (done items go to "Category/Done" list) - can delete item - can change priority - can change category Merging Calendars ================= C++ Calendar* merge(Calendar* a, Calendar* ); Tcl merge [fileA] requires fileA is one of the included calendars in (fileA defaults to main if ommited) modifies volatile copy of fileA effects Reads calendar contents of and merges them into volatile copy of fileA Merging calendars ================= if item in exactly one of a, b, use as is. if item in both a, b then merge item if hide entry in any one of a, b then use it if include entry in any one of a, b then use it if option in exactly one of a, b then use it if option in both and same, then use it if option in both and different, report error Merging items ============= compare item unparsing, if same then no problem report error Logging Modifications ===================== All logged items have a time stamp + unique id for modifier Logged items: set delete ->