Monday, November 10, 2008

Status update

I have been lax in my updates recently, but some small amount of work has been going on anyway. I spent a lot of time working on the client code, which has been a complete pain in the ass. wxWidgets is a portable gui toolkit, but it's also grossly inconsistent, poorly documented, and fundamentally broken in certain ways. That said, it has enough advantages over the QT toolkit to justify switching. It's just painful.

One of the nastier sets of issues I've run into is getting scrolling and font size changes to work properly in a wxTextEdit. In the case of the scrollbar, I manually determine the character position of each line and apply direction hysteresis to scroll up or down using the function keys. For font size changes, I basically clear the buffer and rerender the whole thing. Both of these are trivial operations under QT. Further, the QT documentation is much, much better.

That said, QT is bloated beyond belief, and the licensing is going to be problematic for what I want to do in the future. But primarily, it's the bloat factor that is the biggest problem. With the new toolkit, I can get executables that are around 20% as big as the QT client.

Right now, I'm trying to get dialog boxes working, and it's -really- unclear how these stupid sizer objects are supposed to function. I have it displaying a disconnect dialog right now, but I can't figure out how to place text in it, put the buttons in the right place, or hook anything in it up. I may have to go digging through sample code to get it to work right.

No comments: