5,117,952 members and growing! (12,362 online)
Email Password   helpLost your password?
Web Development » Applications & Tools » Tools with source code     Intermediate License: The Creative Commons Attribution-ShareAlike 2.5 License

ToDoList 5.5.2 - A simple but effective way to keep on top of your tasks

By .dan.g.

A hierarchical task manager with native XML support for custom reporting.
VC6, VC7, VC7.1, VC8.0, C++Windows, Win2K, WinXP, Win2003, Vista, MFC, VS6, VS, CEO, Arch, DBA, Dev, QA

Posted: 3 Nov 2003
Updated: 8 May 2008
Views: 2,134,135
Announcements



Search    
Advanced Search
Sitemap
1517 votes for this Article.
Popularity: 15.17 Rating: 4.77 out of 5
38 votes, 2.5%
1
6 votes, 0.4%
2
9 votes, 0.6%
3
124 votes, 8.2%
4
1336 votes, 88.3%
5

Downloads

todolist.png

Latest Update (5.5 Feature Release)

5.5 sports a new Find Tasks dialog that allows searching on multiple attributes simultaneously eg. Find tasks having category 'a', allocated to 'b' and due before 'c'.

You can also choose whether two rules are 'OR-ed' together or 'AND-ed', with the one caveat that 'AND' always takes binds more tightly than 'OR'.

Consider the simple logic A AND B OR C. If you enter the rules exactly as shown then the result will be (A AND B) OR C. However, if what you wanted was A AND (B OR C) then you would need to set the rules up thus: A AND B OR A AND C.

What's New:

  • New Find Tasks dialog allows multiple attributes to be searched simultaneously
  • Due Time field
  • Task colouring extends to attribute columns
  • Better control of what attributes get exported/printed/etc
  • Multiple task dependencies (delimited by your regional list delimiter)
  • Undo/redo now concatenates edits of same type (within 5 second window)
  • Fixed multi-selected task display bug
  • Fixed filter bug
  • Fixed iCal exporter bugs
  • Fixed recurring task bug when completing via date or percent fields
  • Various minor UI 'improvements'

Related Links

After finally compiling a FAQ of the most relevant questions asked about ToDoList I've moved all resources related to ToDoList to a new page on my website.

Introduction

You know how it is - you start work on one project and halfway through, you find one or two side-projects crop up that have to be solved before you can continue on the original project.

This is one such project with the added twist that it too started its life as a side-project. Here's what happened:

<Cue wavy screen effect>

I can only imagine that the planets must have been in (mis-)alignment or something, because at one point a few months ago, I was suddenly fielding emails on four or five separate articles I had previously submitted to CodeProject, some asking for features and others for bug fixes.

Foolishly or otherwise, I largely agreed with all the points raised, and subsequently found myself with fourteen or fifteen separate issues to resolve.

The situation was also made worse because I was trying to use CodeProject to keep track of all the things I had agreed to do, meaning that I had to continuously trawl the comments section of each article to remind myself of what I was supposed to be working on.

It even got to the stage where I was worrying that I'd fail to deliver on something - silly I know, but there you are!

Keeping a list on paper was a definite step in the right direction, but since I do all my coding on the same machine, it seemed somewhat inelegant, and anyway, we all know what happens to crucial bits of paper left lying around on desks and such.

The next step was to hunt around on the web for a tool to meet the following requirements:

  • Simple interface
  • Support for hierarchical data
  • Numbered items/subitems
  • Open file format
  • Freeware

Simple, huh! not!

I will admit that I did not spend weeks searching, but I am still surprised at the general lack of software matching my needs.

On reflection, I think that the reason may be simple: people are so used to commercial software being 'feature-rich' that when they come to design software themselves, they (not unreasonably) think they too need to cram as much in as possible, often leading to software where a lot of essential functionality is hidden away in the menu bar.

So, surprise, surprise, I decided to write something myself.

However, it's fair to say that I did not originally intend to post it on CodeProject and am only really doing so because I had a heap of fun solving some very interesting problems and these are what I think make it worth it.

Using the Software

There's really very little I need to say here since every feature/function is explicitly visible in the interface.

Nevertheless, the following list of basic capabilities and omissions may go someway to answering any questions that arise:

  • Files are stored in XML format with .xml file extension.
  • Trying to load a non-tasklist file will generally fail (unless you read the code to see how to circumvent it).
  • The number of items/subitems is limited only by memory (although performance may be the deciding factor before you exhaust memory).
  • Marking a parent item as 'done' will also gray-out child items, but they are not disabled or automatically marked as 'done'.
  • An ellipsis (...) indicates that an item has sub-items.
  • All items can be expanded or collapsed (by double-clicking).
  • Top-level items and sub-items are created using different toolbar buttons.
  • There are task-specific context-menus.
  • The previously open tasklists are re-opened on startup.
  • The tasklist is automatically saved when closing the software or minimizing it to the system tray.
  • The priority of a task is shown as a grayscale box to the left of the item.

Points of Interest

Here's where we come to the side-projects I was talking about, the first two of which I intend to work up into follow-up articles.

They are:

  1. The 'ordered' tree control, which incorporates a non-client gutter for displaying the item numbers.

    The idea stemmed from research I did into alternative designs for a tree-list control, which did not solve it by creating a hybrid control incorporating a tree and a list.

    The hybrid control seems such an obvious solution that I suspect few people have stopped to question it, but it has still always struck me as looking far too much like hard work to be truly elegant ('square pegs' and 'round holes' spring to mind).

    One possible idea is to implement the 'list' portion entirely in the non-client area of the tree. I.e., shift the right hand client edge to the left and then render the list portion in the resulting non-client area.

    Whilst I've yet to get round to building a proof of concept, it was nevertheless this ongoing mental debate which prompted me to try to solve the requirement for numbered items and subitems by rendering the item/subitem numbers in the non-client area.

    Without going into too much detail (as this will subsequently be an article of its own), this is how I got it to work:

    • Handle TVM_INSERTITEM and TVM_DELETEITEM to know exactly when items are added and removed.
    • In these handlers recalculate the width of the gutter required to display the widest 'dotted' item/subitem number. (Note: this is not necessarily simply the deepest subitem.)
    • If the required gutter width changes, call SetWindowPos(NULL, 0, 0, 0, 0, SWP_FRAMECHANGED | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER) to force Windows to recalculate the non-client area of the control.
    • Handle WM_NCCALCSIZE when it does, and offset the left border by the required gutter width.
    • Handle WM_NCPAINT for painting the numbers.

    This is necessarily an over-simplification, but it captures the essence of the solution, and all that essentially remains is lots of fiddling about to ensure the non-client area gets redrawn at the the right times to stay synchronized with the client area.

  2. Embedding .RC control definition data directly in a .cpp file to break the dependency on binary resources (a.k.a. 'Runtime Dialogs').

    This is an idea that has been floating about for quite some time and which has only recently gelled into a workable solution.

    The problem, put simply, is that if you want to take advantage of the resource editor in Visual Studio (and who doesn't), then you very quickly find yourself stuck with having to load dialog templates from resources compiled into the binary file.

    This further means that if you want to make use of a dialog across multiple projects, then either you need to copy and paste the dialog template between project .RC files, or you need to build the dialog into a DLL from which it can be accessed.

    'Runtime Dialogs' (a snappy title I coined myself) is a solution that neatly sidesteps both the nuisance of copying dialog resources between resource files and the extra work (and maintenance) involved in packaging dialogs in DLLs.

    And it works like this:

    • First, you design your dialog template in the resource editor, create a CDialog derived class using class wizard, and wire up all the controls just as you normally would.
    • Next, you #include "runtimedlg.h" and change all instances of CDialog to CRuntimeDlg.
    • Then, you cut and paste the control definition section from the appropriate section in the .RC file and embed it directly in the dialog's .cpp file as a static string (with a bit of tweaking to handle double quotes and such like).
    • Finally, in the constructor of your dialog, you simply call CRuntimeDlg::AddRCControls(...) passing the control definitions as a string.
    • And CRuntimeDlg takes care of the rest including, if required, auto-sizing the dialog to suit the control layout.

    I'm certainly not suggesting that this is a 'win-win' solution for all situations but it certainly has merits in its closer coupling of dialog template to dialog code which makes sharing dialogs across multiple projects a breeze.

    P.S.: In case it's not clear here, I used CRuntimeDlg to create CToDoCtrl which encapsulates the ordered tree together with the priority, date and comments controls as a single simple-to-instantiate control.

    I'm also proposing to use them in the .NET port of my ProjectZip add-in for VC6.

  3. Embedding the XML file in a web page.

    This is possibly the most satisfying aspect of the whole project because it was completely unexpected.

    What I mean is that, until recently, my knowledge of DOM and XMLDOM was virtually non-existent, as it's only since I've become more interested in the presentation of AbstractSpoon that I've been forced to get to grips with the various implementations of DOM and XMLDOM out there.

    I'm pleased to say that the code on my site works under IE 6.0, Netscape 7.1, and Mozilla, although custom code was required to achieve this.

Generic MFC Classes that may prove Useful to You

The following table lists a wide range of utility classes written for this project. They can all be included in any MFC project provided you include any class dependencies too. Feel free to ask any questions relating to these specific classes and how to use them.

Class Name

Description

Class Dependencies
(apart from MFC)

CAboutDlg

Customizable "About…' dialog not requiring a dialog resource. Supports html encoded text

CRuntimeDlg, CRCCtrlParser

CAutoComboBox

Adds only unique items to the drop list and shuffles the list so that the last added item is at the top

CHoldRedraw

CAutoFlag

Encapsulates the setting and unsetting of a boolean variable thru the lifetime of the class instance

CColorButton

Non-ownerdraw button that displays the selected colour on the button face and displays the colour dialog when clicked

CEnColorDialog

CColorComboBox

Owner-draw combobox for displaying and selecting user defined colours

CDateHelper

Encapsulation of various rountines for calculating date spans and for formatting

CDeferWndMove

Encapsulation of the Win32 API

CDialogHelper

Re-implementation of the CDialog DDX/DDV rountines to avoid the MFC error messages when the user clears a number edit (for instance)

CDlgUnits

Encapsulates the MapDialogRect Win32 API

CDockManager

Class for managing the docking of one popup window to another.

*CSubclassWnd, CHoldRedraw, CAutoFlag

CDriveInfo

Encapsulates various rountines for querying about drives, files and disk space

CEnBitmap

Adds support to CBitmap for loading non-bmp files and resources.

CEnBitmapEx, CColorReplacer, CImageBlurrer, CImageColorizer, CImageContraster, CImageEmbosser, CImageFlipper, CImageGrayer, CImageLightener, CImageNegator, CImageResizer, CImageRotator, CImageSharpener, CImageShearer, CImageSysColorMapper, CImageTinter

Adds image manipulation funationality to CEnBitmap

CEnBitmap

CEnColorDialog

Adds saving and restoring of custom colours to CColorDialog

CEnCommandLineInfo

Adds functions for extracting and querying commandline switches

CEnEdit

Adds user-defined button capabilities to CEdit

CMaskEdit, CThemed, CDlgUnits

CEnToolBar

Adds support for using alternative resource or file images

CFileEdit

Adds buttons for browsing and displaying the file represented by the text in the edit control. Also shows the file's small icon.

CEnEdit, CFolderDialog, CMaskEdit, CDlgUnits, CThemed, CSysImageList

CHoldRedraw

Encapsulates WM_SETREDRAW

CHotKeyCtrlEx

Fixes a number of behavioural problems including the handling of certain keypresses

CHotTracker

Tracks the cursor movement over user-defined windows and posts event messages as necessary

*CSubclassWnd,

CLimitSingleInstance

Provides simple method to detect if another instance of an app is running

CMaskEdit

Adds simple character masking to CEdit

CNcGutter

Allows the UI of standard windows controls to be extended by supporting any number of columns to be added to the non-client area of the window. Favours tabular controls like lists, trees, etc

*CSubclassWnd, CHoldRedraw, CThemed, CDlgUnits

COrderedTreeCtrl

CTreeCtrl implementation of CNcGutter displaying a single column showing the hierarchical position of each tree item in '1.2.3.4' notation.

CHoldRedraw, CThemed

CPasswordDialog

Very simple password dialog not requiring a dialog resource

CRuntimeDlg, CRCCtrlParser

CPropertyPageHost

Simpler replacement for CPropertySheet allowing easier creation as a child window

CRCCtrlParser

Used by CRuntimeDlg for parsing dialog resource-like text

CRuntimeDlg

Adds support to CDialog for building dialogs at runtime ie. dialogs do not require a dialog resource

CRCCtrlParser

CShortcutManager

Class for handling application keyboard shortcuts.

*CSubclassWnd, CWinClasses

CSpellCheckDlg

Spellcheck dialog not requiring a dialog resource, which interfaces with ISpellCheck (interface to Open Office dictionaries)

CRuntimeDlg, CRCCtrlParser, ISpellCheck

CSysImageList

Encapsulates the Windows system image list (file/folder images)

CTabCtrlEx

Adds post rendering callback for the tabs without using owner-draw

CThemed

Encapsulates themed (XP) and non-themed (the rest) drawing of windows controls

CTimeEdit

Adds a button for specifying time units and provided routines for converting time to and from different time units

CEnEdit, CMaskEdit, CThemed, CDlgUnits

CToolbarHelper

Adds support for dialog toolbar tooltips, multiline tooltips and dropbuttons with menus

*CSubclassWnd, CEnBitmap, CEnBitmapEx

CTrayIcon

Encapsulates the Shell_NotifyIcon Win32 API. Also provides balloon tips and animation

*CSubclassWnd,

CUrlRichEditCtrl

Adds support for recognizing urls, clicking them and setting custom url callbacks

CWinClasses

Encapsulates the ::GetClassName Win32 functions

CXmlFile, CXmlItem

Non-Unicode class for reading and writing xml files

CXmlFileEx

Adds encryption capabilities to CXmlFile

CXmlFile, IEncryption

* CSubclassWnd was originally written by Paul DiLascia for MSJ magazine. The version I use has been heavily extended to suit my specific needs. The classes that depend on it here need this extended version.

License

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.

Further Work

Whilst this tool was originally intended for my personal use only, it is now a 'community' project, so if you find it useful and want to make suggestions for enhancements or bug fixes, then post below.

History

  • 5.5.2 (09 May 2008)
    • Find Tasks dialog displays completed task results using user preferences
    • Fixed bug in text 'equals' rule in Find dialog
    • Fixed About box for Asian users (and other minor font changes)
  • 5.5.1 (02 May 2008)
    • Fixed various font droplists issues
    • Removed cancelled new task from undo history
    • Fixed flicker when selecting task in calendar plugin
  • 5.5 Feature Release (30 Apr 2008)
    • New Find Tasks dialog
    • Due Time field
    • Task colouring extends to attribute columns
    • Better control of what attributes get exported/printed/etc
    • Multiple task dependencies (delimited by your regional list delimiter)
    • Various minor UI 'improvements'
    • Undo/redo now concatenates edits of same type (within 5 second window)
    • Fixed multi-selected task display bug
    • Fixed filter bug
    • Fixed iCal exporter bugs
    • Fixed recurring task bug when completing via date or percent fields
  • 5.4.11 (04 Apr 2008)
    • Fix for task multi-selection display bug
    • Fix for iCal exporter to support Google Calendars
  • 5.4.10 (12 Mar 2008)
    • Fix for task selection bug when selected colour is black.
  • 5.4.9 (10 Mar 2008)
    • Various fixed relating to the handling of UI extension plugins (eg. calendar)
    • Time spent now exported for completed tasks
  • 5.4.8 (21 Feb 2008)
    • Various selection related fixes
  • 5.4.7 (21 Feb 2008)
    • Fix for broken 5.4.6 (caused by the filter related fix).
  • 5.4.6 (20 Feb 2008)
    • Fix for text and html exporters not exporting costs
    • Fix for completed parent tasks appearing in 'Due ...' filters
    • Selected tasks retain selected appearance when the focus is not on the task tree
  • 5.4.5 (09 Feb 2008)
    • Fix for csv exporter not resetting columns
    • Fix for spurious content appearing in html due task notifications
    • Box drawn around selected tasks when the focus is not on the task tree
  • 5.4.4 (01 Feb 2008)
    • Fix for auto-sorting new tasks above completed tasks
  • 5.4.3 (31 Jan 2008)
    • Fix for Alloc-To column showing incorrect data
    • Fix for '&' in tasklist columns
    • Fix for non-working tabstops in rich text comments
  • 5.4.2 (25 Jan 2008)
    • Fix for incorrect undo when focus is on certain edit fields
    • Fix for ToDoList not updating calendar after filter change
  • 5.4.1 (23 Jan 2008)
    • Fix for ini file access when setting category colours
    • Drag'n'Drop honours user subtask placement settings
    • Fix for erroneous visibility of task position column
    • Fix for selection bug after drag'n'drop
    • Fix for erroneous downward scroll when moving tasks up
  • 5.4 Feature Release (19 Jan 2008)
    • Undo/Redo
    • Unified Import/Export dialogs
    • Import tasks from clipboard
    • Simple backup
    • FreeMind import/export plugin (by Guru Ramnath Kathiresan)
    • Word wrap button on RTF comments toolbar
    • Plain text importer now remembers it's settings
    • Editing any other task attribute while the task title is being edited causes the title edit to end
    • When a task is completed, it's subtasks are no longer evaluated when calculated percentage completion
    • The colour field now displays its colour in its background when the preference to use a task's colour for it's background is set
    • Placeholder for the selected task's file link has been added to the 'Tools' preferences page
    • Fix for the background text colour not being cleared from the RTF comments field when switching to a (new) task with no comments
    • Improved UI clean-up after drag-drop aborted
    • Fix for handling the rendering of '&' correctly
    • Fix for the handling of non-integer numeric preferences (default cost, time estimate, etc)
    • Simple text comments now only copies simple text (if that makes sense)Fix for bug with inherited task attributes
  • 5.3.11 (21 Nov 2007)
    • Fixed bug with saving new tasklists
    • Fixed data loss bug with copying multiple tasks
    • Fixed filtering bug
  • 5.3.10 (02 Nov 2007)
    • Fixed bug with category dropdown not retaining selection
    • Fixed bug with Shift+Ctrl+V (Paste Simple) shortcut in the RTF comments
    • Improved performance adding new tasks by only resorting the new task's parent rather than the entire tasklist
    • Fixed Filterbar resize problem causing filter controls to appear to be missing
    • Fixed sort state being lost for delay-loaded tasklists
    • Fixed tasklist category display bug
  • 5.3.9 (28 Sep 2007)
    • Fixed erroneous prompt to reload tasklist after switching tabs
  • 5.3.8 (25 Sep 2007)
    • Fixed filter combo droplist size bug
    • Set better multi-user source control defaults
    • Comments type no longer saved for each task is the task has no comments *and* the comments type is the same as the users defaul preference
  • 5.3.7 (21 Sep 2007)
    • Fixed exit crash
    • Column selection dialog defaults to 'Affects active tasklist only'
    • Tasklist tab omits file extension if no project name supplied
    • Fixed slowdown when moving tasks using the keyboard
  • 5.3.6 (15 Sep 2007)
    • Fixed global hotkey not turning off when disabled
    • Fixed global hotkey hiding ToDoList even when system tray icon not enabled
    • Fixed rendering synchronisation bug
    • GPExporter uses completion date in place of due date for completed tasks
    • Fixed synchronisation bug when setting priority via the Edit menu
    • Fixed bug where Version attribute was not being updated after pressing [enter]
    • Second attempt to fix multiple-Help bug
  • 5.3.5 (06 Sep 2007)
    • Use parent task's time units to display parent's accumulated time in tasklist
    • Always display print dialog when printing
  • 5.3.4 (04 Sep 2007)
    • Fix bug when encrypting large tasklists
    • Fix focus-change bug on category droplist
    • Fix comments split bug
  • 5.3.3 (29 Aug 2007)
    • Support for 'evernote://' urls added to comments field
    • Fixed 'View | Copy As...' menu commands
    • Improved rendering time when scrolling with the cursor keys
    • Fixed Priority field display bug
  • 5.3.2 (23 Aug 2007)
    • Fixed due task colouring bug when colouring by category
    • Fixed Help re-entrancy bug
    • Restored Ctrl+Up/Down as shortcuts for moving tasks
  • 5.3.1 (19 Aug 2007)
    • Fixed time estimate/spent editing so that the time units can be edited independently of the time amount
    • Fixed 'Copy as Task Reference/Dependency (Full)' to include the full path to the tasklist
  • 5.3 Feature Release (15 Aug 2007)
    • Added per-task comment types
    • Added start time to task time log
    • Added webLink to GanttProject export
    • Added preference to control balloon notifications
    • Added Preference to auto-save when alt-tabbing (i.e. app loses focus)
    • Added Preference to auto-save when switching tabs
    • Added Right-button drag and drop.
      This will facilitate the adding of dependencies and task links. ie. Right-button drag and drop one task on another and select from the popup menu that appears.
    • Added Find/replace to comments field
    • Added options dialog to Outline importing
    • Added check for software updates added when coming out of hibernation
    • Added a Task Color combo box in the lower bar (editing controls area)
    • Added 'all must match' check boxes to filterbar
    • Added double clicking of file link and dependency columns to open file links
    • Added more sub-categories to preferences to help find options more easily
    • Added Send task(s) as e-mail to File menu
    • Added ID of singly selected task to status bar
    • Added "Close all tasklists but this one" to tab context menu
    • Added 'Goto Next/Previous Task' to Move menu
    • Improved speed of moving tasks with keyboard
    • Improved ini file performance
    • Fixed rtf comments spell checking
    • Fixed flicker on editing task title
    • Fixed tdl:// browser links
    • Fixed non-persistent 'Due Today' task colour
    • Fixed global hotkey not turning off when disabled
  • 5.2.9 (20 Jun 2007)
    • Fixes for various bugs introduced into the auto-droplists in 5.2.7 (note: ESCAPE will no longer cancel changes in the category and alloc to droplists - it was just too hard to get it working consistently - I'll look at it further in 5.3)
    • Fix for unexpected appearance of find dialog after loading a tasklist
    • Fix for keyboard accelerators in Help menu
    • Fix for ToDoList closing after clicking in the list box in the About dialog and then pressing ESCAPE.
  • 5.2.8 (16 Jun 2007)
    • Fix for CTRL+TAB shortcut
    • Fix for cancel behaviour in auto-droplists. Only ESCAPE will cancel changes.
    • Fix for 'none' priority in infotips
    • Fix for delay-loaded tasklists reporting no due tasks
  • 5.2.7 (15 Jun 2007)
    • Fix for cancelling password prompt when switching tasklists which are delay-loaded
    • Fix for iCal exporter
    • Modified behaviour of auto-droplists (status, category, alloc by, alloc to) so that updating only occurs on completion of selection (by closing the droplist, or pressing ENTER)
  • 5.2.6 (12 Jun 2007)
    • Fix for WUW not closing ToDoList down
    • Fix for missing modified date in Find dialog results
    • Improved handling of save errors
  • 5.2.5 (11 Jun 2007)
    • Fix for ALT+B accelerator
    • Fix for CTRL+SHIFT+Space shortcut
    • Fix for missing comments using multibyte charsets (note: RTF comments using multibyte charsets are always displayed as plain text because the RTF2HTML converter does not yet handle multibyte charsets)
    • Source code tweak for VS2003
  • 5.2.4 (11 Jun 2007)
    • Further filter fix
    • Fix for iCal export
    • Fix for child due date erroneously appearing next to parents
  • 5.2.3 (08 Jun 2007)
    • Fix for some filter attributes not being saved/restored
    • Fix for some 'Find by date' not working
    • Various source code mods for VS2003
  • 5.2.2 (06 Jun 2007)
    • Fix for archive file not being un-encrypted when the associated tasklist has it's encryption disabled.
    • Various source code mods for VS2003
  • 5.2.1 (04 Jun 2007)
    • Warnings added for keyboard shortcuts which conflict with reserved shortcuts
    • Fix for not resorting after adding a new task
  • 5.2 Feature Release (31 May 2007)
    • Fix for Korean IME input bug
    • ToDoList always shows if notifying due tasks
    • Setting cost on parent tasks enabled
    • Fix for bug when importing non-latin scripts
    • Fix for tasks not being exported to iCal (now all tasks are exported)
    • Fix for tasks due 'tomorrow' being shown as due 'today'
    • Commandline support for 'tdl://' added (used to implement browser links)
    • Better handling of share violation file errors
    • Backups added to protect tasklist during file writing
    • Preference to use/display highest priority extended to apply to risk attribute too
    • 'Copy As > Task Reference (full path)' added to Edit Menu
    • 'Copy As > Task Dependency (full path)' added to Edit Menu
    • 'Select All' added to Edit menu
    • 'Copy As > Task Path' added to Edit Menu
    • Option added to Edit menu to remove a task's colour
    • Support added for assigning 'No Risk' to a task
    • Support added for assigning 'No Priority' to a task
    • New status bar which displays various attributes sums for selected tasks
    • Currency formatting in status bar and cost column fixed
    • Preference added to control colour of 'todays' tasks
    • Support added for per-tasklist column selection (info is stored in Preferences)
    • 'Select Columns...' to View menu
    • Support added for delayed loading of tasklists on startup
    • Support added for multiple 'allocated to' per task (implemented just like categories)
    • Code should now compile on VS200x
  • 1.1-5.1 (removed by .dan.g.)
  • 1.0 (4 Nov 2003)
    • Initial release.

License

This article, along with any associated source code and files, is licensed under The Creative Commons Attribution-ShareAlike 2.5 License

About the Author

.dan.g.


.dan.g. is a former chartered structural engineer from the uk. He's been programming for 25 years since university and has been developing commercial windows software in Australia since 1998. He has a shaved head and assorted whiskers should you want to recognize him. [update] Dan has now grown his hair and removed his whiskers in an attempt to appear more normal. However he can still be recognized (in the summer months) by the aqua nail-polish he uses on his big toes. [/update]

For all his latest freeware visit http://www.abstractspoon.com/
Occupation: Software Developer (Senior)
Location: Australia Australia

Other popular Applications & Tools articles:

Article Top
Sign Up to vote for this article
You must Sign In to use this message board.
FAQ FAQ Noise ToleranceSearch Search Messages 
 Layout  Per page   
 Msgs 1 to 25 of 10,977 (Total in Forum: 10,977) (Refresh)FirstPrevNext
Subject  Author Date 
GeneralToDoList hangs on Vistamembereliramh15hrs 28mins ago 
Generalodd behaviour for recurring task due-datemembercarloscascadilla21hrs 57mins ago 
GeneralTask Filter Enhancement Proposalmembertwixxino3:13 8 May '08  
GeneralRe: Task Filter Enhancement Proposalmember.dan.g.15:18 8 May '08  
GeneralImport from Outlook TasksmemberBuddyWork0:01 8 May '08  
GeneralRe: Import from Outlook Tasksmember.dan.g.22:52 8 May '08  
QuestionRe: Import from Outlook TasksmemberBuddyWork23:53 8 May '08  
AnswerRe: Import from Outlook Tasksmember.dan.g.1:02 9 May '08  
GeneralFeature request: RTF Exportmemberz9t10:48 7 May '08  
GeneralRe: Feature request: RTF Exportmember.dan.g.22:50 8 May '08  
GeneralNew Export Options ROCK!memberthecrumb3:34 7 May '08  
GeneralRe: New Export Options ROCK!member.dan.g.15:01 7 May '08  
GeneralTime Spent counting issuemembermaddogg23:25 6 May '08  
GeneralRe: Time Spent counting issuemember[d3m0n]3:22 7 May '08  
GeneralRe: Time Spent counting issuemembertwixxino4:22 7 May '08  
GeneralRe: Time Spent counting issuemembermaddogg22:07 9 May '08  
Generalexport to outlookmemberLMB11:35 6 May '08  
GeneralRe: export to outlookmember.dan.g.14:42 6 May '08  
GeneralRe: export to outlookmemberLMB6:13 8 May '08  
GeneralRe: export to outlookmember