12
votes

My software Pomodoro Timer is going to display a dynamic icon on Windows 7 taskbar. You may wonder why the application icon need to be dynamic. It's actually a counting down timer for me to help me focus on current task, so called the pomodoro technique:

enter image description here

My way to change the icon is to simply change the Window icon. It works fine when I start the application, but after I pinned it to taskbar, it will display the default icon for the application. The dynamic counter down number will disappear. More worse, after I unpinned it from taskbar, the default behavior will never be recovered, that is, the dynamic icon will not able to be updated correctly. When I start the application again, it will display the default icon, unless I pinned it and unpinned it again, the counting down icon displays again.

I've searched this forum, and Change pinned taskbar icon (windows 7), and tried to change the overlay icon. It works, but not fulfill my requirement, the overlay icon can only display 16x16, and no enough room to display 4 digits.

I also read the MSDN article Application User Model IDs, but i am still not clear whether it can make it or not.

Anyone can help on this? Thanks a lot!

4
I would have thought a ticking clock in the taskbar would be a distraction. Are you really likely to get much done in those last few minutes, being all-too-aware that your time is about to run out?Lightness Races in Orbit
Perhaps you can use a progress bar instead of an icon to show how much time is left? Might be easier to code, and less intrusive.a_m0d
@Lightness Races in Orbit, right, I'm used to do this. Actually another popular tool called focusbooster, displays a counting down timer on top of others as a floating window. This counting down timer is actually how the Pomodoro Technique works. Yes, if user does not like it, they can choose not to show a dynamic counting down timer.Mason Zhang
@MasonChang: I'm familiar with Pomodoro. An intrusive ticking clock mechanic is not required to implement it; only a countdown of some kind that goes off when your time is up. I just set an alarm and send it to the background. (At least, I did before I gave up on Pomodoro.) Of course, do what's best for you; just sayin'.Lightness Races in Orbit
"focus on current ask"? "ask" is not a noun.Ben Voigt

4 Answers

2
votes

Windows 7 supports having a green progress bar be shown over an icon, and pinning doesnt effect the progress bar. So, instead of changing the icon every second, why not change it every few seconds, but have the progress bar count down from 100% of the original set counter value?

1
votes

The pinned items in the Taskbar are stored as a shortcut at:
%appdata%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar

You can try changing the icon of the Shortcut of your program.

1
votes

My final solution is:

  • on Windows: use icon overlay. You can get more screen shots here.
  • on Mac: use different icon. You can get more screen shots here.

I use different solution for Windows and Mac.

enter image description here

enter image description here

0
votes

Generally an application would make use of the System Tray to show interactive state such as this to the user. There is a whole API set for interacting with it, setting icons, menus, providing text feedback (balloons), and so on.

The following is a good article on how such functionality can be achieved: http://www.codeproject.com/Articles/74/Adding-Icons-to-the-System-Tray