12

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!

Community
  • 1
  • 1
Mason Zhang
  • 3,423
  • 24
  • 35
  • 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 Jan 17 '12 at 14:50
  • 2
    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 Jan 17 '12 at 14:51
  • @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 Jan 17 '12 at 14:57
  • @a_m0d, yes, I've tried the progress bar, it works great. But I've been using the Pomodoro Technique for months, and I'm getting used to this counting down timer to help me concentrate. – Mason Zhang Jan 17 '12 at 14:58
  • 2
    @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 Jan 17 '12 at 14:58
  • That's why I always use auto-hide taskbar... Transparent always-on-top window would be better for me. – lapk Jan 17 '12 at 15:03
  • @LightnessRacesinOrbit, thanks a bunch for your feedback. I may need an option for users to choose what the behavior of the timer looks like, no timer, or floating window. – Mason Zhang Jan 17 '12 at 15:41
  • I wonder why this is tagged C++? Can I remove that tag? – Johan Lundberg Jan 20 '12 at 10:51
  • @JohanLundberg my application is based on C++, so I hope the answer to this question provides a solution for C++. Thanks. – Mason Zhang Jan 20 '12 at 14:58
  • 1
    "focus on current *ask*"? ["ask" is not a noun](http://www.merriam-webster.com/dictionary/ask). – Ben Voigt Jan 26 '12 at 18:55

4 Answers4

2

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?

aggregate1166877
  • 2,196
  • 23
  • 38
1

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.

Moon
  • 33,439
  • 20
  • 81
  • 132
1

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

Mason Zhang
  • 3,423
  • 24
  • 35
0

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

geekboyUK
  • 498
  • 4
  • 14
  • In Vista and later, users can now hide system tray icons, and even Windows hides icons that are not frequently interacted with. Microsoft is trying to get people away from the system tray. – Remy Lebeau Jul 28 '12 at 00:46