So, here are my changes.
No Marque.
I got rid of the scrolling entirely. It's gone completely.
However, I didn't get rid of the ability to move items to different places along the bar. It is still a simple matter to click and drag to rearrange the order that items appear.
This means that I have a bit more work to do, namely I have to add in a way to "snap" items in place. It's a little hard to explain, since the English language doesn't have a word or short phrase to describe this... so here's the problem and how I want to solve it:
Imagine that you have three items in your list, and you just don't like the way they're sorted... You want to exchange item 2 with item 3. Right now, you can click and drag item 2 over to where item 3 sits, then move item 3 in place... but it would be a lot easier for every day use if you just dragged item 2, and 3 moves automatically to the space recently vacated. Understand what I'm getting at? A sort of "gravity" effect towards the front of the list, items moving to the front in the absence of any other task to keep them in place.
In fact, writing this out is helping me to form a plan... have a "shadow" of the task stay in place, until the middle that task is more than 50% to the other side of another task... then have a short animation of the tasks switching place. The animation lets the users know what is really happening. Also have a shadow of the task you're dragging attached to the cursor, so that the user knows that the program is responding to their actions. (Note to programmers world-wide: always let the users know that the program is listening and responding.)
Task Windows
I have also added pop-up windows, after the task is clicked on. (The windows do not appear if the user dragged the tasks at all... I'll have to do some tuning on this, as right now, it is ultra sensitive, and not everyone uses track balls like me. Mice are such imprecise tools that should be thrown away at the soonest possible moment. This means that for most people who have never learned the joy of control that a trackball gives, it might be a chore to click on a task without inadvertently dragging the task a pixel or two over, turning the click into a click-and-drag.)
The task windows show a description of the task, hopefully more in-depth than the task's short title which appears in the app bar... but it can be as concise or elaborate as the user wants... it can even be completely empty. The windows, right now, have 5 buttons with the following functions:
- Set the task to inactive
- Set the task to "currently working" (or back to the normal, "active" mode, if you're taking a break)
- Edit the task
- Open a web page associated with the task
- Close the window
The first button, to set the task to inactive, will be the button to push when you're done with the task... at least, done for now. If it's a one-time task, i.e., pick up mom from the airport, then the task will remove itself afterwards. (Future versions will have an option to log the task for statistics, but this isn't a feature planned for the 1.0 release.) If it's a recurring task, i.e., check email, then the task will be removed from the app bar until it is scheduled to reappear. (It will still be available in the main list of tasks, so that it can be edited.)
The second button, to switch a task's status to currently working, will be for marking a task as the one you're working on right now. It will move the task into a special area on the app bar, and provide quick buttons for marking the task as done and opening its web page. This is a bit of forward thinking, which will tie into the statistics tracking in future versions, but in version 1.0, it will just be a handy shortcut and reminder for the easily distracted like myself. Only one task can be the working task at a time... if any other task is set to currently working, it will automatically demote the working task back to a normal active status before setting the new one's status up to currently working.
The third button, to edit a task, is pretty self-explanatory. Clicking it opens the task editor, and loads the task, allowing you to do anything you want to that task. (Future versions... {far, far future versions, like 3.0 server edition versions... yeah, it'll be a while...} will have client/server support, and you can only edit tasks that you have permission to edit... but that will be quite a while, as the soonest I'm planning on writing a server for this is version 3, a few years down the road. No firm plans on when to release a server edition, so please don't hold your breath.)
The fourth button will open a web page associated with the task, if appropriate. Obviously there is no web page for a task telling you to pick weeds or go to the store... but if the task is to write a post in your blog, or check your email, then the button will open that page for you.
And the final button will let you close the window. Simple, sweet, and easy.
Program Options
I've added a window for setting program options... things like the default position of the app bar (top of the screen, bottom, or the last position used), where to save the data files, etc. Nothing works on it yet, mainly because I won't be working on saving files (and program options require configuration files) until I'm confident that there won't be any major changes in the structure of tasks. Still, having the window allows me to add the options in as they become relevant, rather than taking notes somewhere and hoping I check them a few months down the line.
Up Next
As much as I want to tackle the interesting task of snapping tasks into place when other tasks are moved, I really need to get the the more meaty, and more boring, parts of the program. Mainly, I need a way to create and edit tasks, without changing the source code... So next up, it's time to make a window for managing my tasks.
On another note...
I installed a program today to add virtual desktops to my computer... kinda sorta like having multiple monitors... but not quite. Unix and Linux users know what I'm talking about, but I don't have the time to explain what it is here. Well, I'm running into an interesting problem: When TimeAgent is running, and I switch desktops, my program disappears from the screen, but it doesn't release the screen real-estate. I'd like to find a way to address this within TimeAgent itself, so that there is never a problem with other people's computers, but I'll probably have to find a way within the virtual desktops program, and give instructions on how to get around it.
No comments:
Post a Comment