In some past articles, Brad described his idea of a Todo plugin for ObjectDock. Since nobody seems to have taken on the idea, I decided to try to do build it myself.
This article is the first of a series that will describe the process of building the plugin. It will come with the source code. It will be licensed under the Creative Commons Attribution-ShareAlike License.
As I don't know how long I will be able to work on it (I'm currently looking for a job), I decided to limit the scope of the docklet (no drag&drop to create new task, no predefined and custom task icons, etc.).
The following spec is pretty crude and in no way complete (and as always subject to change). I will describe the behavior of the plugin as the user creates a task, modify it and finally delete it.
A new task is created when the user selects the 'TodoList Docklet' in the 'Add Entry' right-click menu.
The plugin is initialized with the default icon, the task name set to "Click to Edit…", the priority set to "0 - No Priority" and no description.
The user will then modify the task to fill the different fields. This is done either by left-clicking the icon or by right-clicking and selecting 'Edit Task'. The "TodoList Docklet Properties" Dialog is presented to the user (mockup from Visio).
The "Name" field contains the name of the task. It is shown when the user moves the mouse over the task icon.
The "Priority" is the priority of the task selected on a scale from 1 to 5. Here are the different icons quickly made by me (by now, you can probably see I'm no artist).
The different priority are:
0. No Priority
1. Not Urgent
2. Not Important
The default priority is "0 - No Priority".
(Got better names ? Comment! )
The "Description" is a more precise description of the task, and is optional.
The default icon (a slightly modified Knotes icon from the crystal icon pack by Everaldo) can be changed by clicking the "Change Image" button (opens the standard ObjectDock "Choose Image" dialog). You can revert to the default icon by pressing the "Default Image" button.
When the user is finished with the editing, he can either 'save' the changes by pressing "OK" or cancel the changes ("Cancel").
The task icon in the dock now looks like this:
The priority is shown as an overlay on the task image.
When the task is finished or no longer relevant, the user can delete it, either by dragging it off the dock or by right-clicking the icon and choosing 'Delete Task'.
That's it for today. In the next article, I will describe the framework for the plugin.