Returned to the filled ellipse code today. Now that I’ve got a better idea of what it’s doing (and Jeff helpfully pointed out that it’s trying to draw negative heights), fixing it was easy. The SuperBitmap class now has both filled and unfilled ellipse methods. One more off the SourceForge list.
I’ve split the data portion of the ListBox into a separate class: “ListData”, believe it or not. This deals with all of the tedium of sorting the data, managing single/multiple selections, etc. The ListBox itself is now really just a display mechanism, but it presents a facade interface to its instance of the ListData class to ensure that the display is always in sync. This means that all ListBox-derived classes have the sorted insert functionality of the FileRequester.
Hmm, I wonder if having the ListData class call functions in its containing list to notify it of changes would be a better approach than the facade, which has crufted up the ListBox classes?
I’ve removed the path handling code from the FileRequester and split that out into a “FilePath” class. Makes things a bit tidier. As you’d expect, this class is in the “bonus” folder rather than the main code folder.