icnsClass (so it relates to all three of my icon programs): I've found another compression bug (from an icon that a user that kept crashing). However this one is very rare, so it's not as important as the previous ones. It happens when you have n * 130 + 1 or 2 pixels. Basically the maximum pixel repeat count is 130, so I have to divide up continuous areas into chunks of repeat pixels, then at the end I say to repeat whatever's left over. However if there are only one or two pixels left over they should be specified as "copy these pixels as they are" blocks, because there are to 1 and 2 pixel repeat blocks (I don't think that made much sense, but anyway, it was a simple matter of adding an if statement).
Icon Mangler: the image wells that I'm drawing didn't disable properly when I was putting the app in the background. In the end it turned out that I was checking whether or not to draw in the activate state by comparing the window the control belonged to and what FrontWindow() returned. However, when a program is in the background it still has a frontmost window, but it still should be drawn in a disabled state. I switched the check to comparing the hilghted state to the disabled state (which is set automatically when I disable the controls). I guess I should of done that from the beginning.
[my journal has just crossed the 10,000 word boundary :p]
The next step for Icon Mangler is to to able to edit the mask, the other bit depths (1, 4, 8) and the small size. I need to think of an interface for this, because I want the user to be able to drag and drop between them (so that the small size and other depths can be generated automatically). I'll fool around with Resorcerer/RealBasic for a while, and try to come up with a decent user interface.