That was pretty cool. I did something similar using Wpf  - took a couple weekends

http://www.limpidfox.com/hp97.htm