Gratuitous Customization
While I haven’t been working much on the sculpture development platform much recently, I haven’t been idle. In fact, I’ve been getting to know the inner workings of .NET a little better by taking on some completely unnecessary and extremely difficult customizations to standard user controls. I had a large library of control modules in VB6 that allowed me to do all manner of amazing things with simple controls like Tabstrips and Edits (Textboxes)… and with .NET that library evaporated. The tabstrip and textbox are the first I’ve tried to tackle, and while they are only partly complete right now - the really hard stuff is behind me.
I started with some of my favorites - a textbox that includes a line number tray AND provides complete control over text and selection colors. The number tray is complete, as is the custom selection color. It responds to the mouse gestures as it should, and scrolls appropriately. I have not gotten around to keystroke redraws yet, but since the VB6 version has the requirements pretty much captured - I do not see it being an issue.
So what would that be useful for? In the development platform, it could be used for displaying action scripts, and when syntax checking is generated, it could help the user find the “errors” by calling out specific line numbers. In the sculpture control app, it could be used for printing out error messages or something.
The second item is the tabstrip - I don’t much care for the way a standard tabstrip is rendered, and while .NET makes ownerdrawing the “text” part of the tab areas easily, you have no control whatsoever around the “frame”. After a little effort, I figured out what it takes to override and draw the tabs, as well as the little child window that lets you scroll through them. I haven’t settled on exactly what I want the tabs to look like, but once I do - I can now make it happen.
I love how much power .NET has built into it, but I find that many of the items still require resorting to the Windows API calls, or at least that is how I have tackled (being somewhat ignorant of all .NET’s capabilities). Dealing with structures in the API calls seems a little problematic for me, but I’m sure its simply a lack of experience.
So anyways - that’s only barely related to brewing. I did brew 20 gallons of IPA this weekend with my friends Brian and Chris - turned out to be 1.074, and we used 1.5 pounds of hops… was killer. Its downstairs chugging away in the primaries.



