This year I’m going to sell some gosh-darn product! It’s not like I need to move a thousand units a day or anything, I just need enough to keep me going. Surely that’s a reasonable goal…
One more time
Well, I finally lost patience with the standard ListView control, and the way it was screwing me around under 98. Made my own version which supports mixing proportional and fixed width columns, and doesn’t behave differently under 98. Using eLibrary as the test case, because of the large number of list items it works with, but will incorporate it into other products, like HTML Editor.
While in one way I acknowlege it is a bit of a waste of time to create a proprietary version of a common control, it hasn’t taken up that much of my time, and it makes future tasks so much easier. Stuff that I never get round to doing because of the dread of processing hideously arcane WM_NOTIFY messages, will now be a breeze because of the overridable nature of C++ code. Also I can build intelligent sorting into the control itself, as well as key based jumping (where the user types a few characters to jump to an entry). That functionality, while probably regarded by most people as "standard" behaviour, is not currently incorporated into the common control. So every time you implement the thing you have to add your own sort routines and key navigation! Convenient eh?
A good argument against roll-yer-own
There are some very good arguments for not replacing well tested long serving controls with one’s own versions, and one of the best ones I’ve encountered is the dreaded: Internationalization!
Internationalization is very scary for us English speaking ASCII types, who spend most of our lives blithely ignorant of the needs of non-english speaking computer users (and non-english speakers in general). So I might feel pretty smug about my new list control and recommend that everyone use it, without even considering the need for foreign language support and extended character sets (UNICODE). Right to Left text direction? What the hell is that? Surely no one actually reads from right to left?
Anyway, I finally found someone online who doesn’t dismiss the roll-yer-own approach out of hand. Joel Spolsky writes a log/column which looks like it might be worth reading, kind of like the stuff I like to write but with strong credentials to back it up.