wxWidgets gets better and better
Categories: Crypto, TechnologyDevelopers often have a love/hate relationship with wxWidgets, especially on the Mac. The common complaint, which I can’t dispute, is that wx applications don’t look and feel particularly well-integrated on the Mac. If you devote some effort to polishing the look and feel, this doesn’t have to be the case. It can be a lot of effort though, to build something that really feels native. That said, sometimes I’m just amazed at what you get for free. Here’s one of the test applications for PKIF, with no tweaks other than some mild build system manipulation, running on the Mac (not an officially supported platform). Screenshot after the jump.
I’m one of the maintainers of our PKI-enablement library, PKIF. It’s open source, cross platform, and does a lot. Our main target platforms are Red Hat, Windows and Solaris 10. Every once in a while, I’ll build and test elsewhere mainly to make sure accidental assumptions haven’t crept into our code or build process. Tonight, I gave it a run on OS X Leopard and was just amazed at how much “just worked” for free (or for minor tweaks to the build system, which will be folded into the next release) especially in the GUI library and test applications. You won’t mistake it for something developed from the ground up for the Mac, but you can certainly use it. I’m particularly surprised at how well the GUI works without even a little tweaking of the interface for Mac, all thanks to wxWidgets.
I’d suggest not trying this at home until you see 2.1.6 on the sourceforge site, though, as the ease of accomplishing this is an indirect result of many improvements to our build scripts, which will be available for download with 2.1.6.
2 Responses to “wxWidgets gets better and better”
Leave a Reply
You must be logged in to post a comment.
Click to embiggen
November 15th, 2008 at 12:44 am
I’m considering using wxWidgets for deleveloping applications for the Mac and other platforms. You’ve mentioned that wxWidgets applications don’t look and feel well integrated on the Mac.
Could you possibly provide a few examples of troublesome areas to watch out for. Thanks.
December 14th, 2008 at 11:40 am
Hi,
Sorry for being so slow on the reply! Your comment got lost in a flood of comment spam which caused me to hold them all for manual approval :-/. I need a better system.
In the screenshot above, you can see a couple of examples. There are two “Help” menus because the system provides one and PKIThing has one in the cross platform code. Inside the help menu, there’s an “About PKIThing” item that needs to be inside the “PKIThing” menu on the mac. The “Quit” item is called “Exit” on most other platforms and is generally on the “File” menu, but needs to be in the application menu (”PKIThing”) in the screenshot on the mac. The preferences menu item is in the “Tools” menu in the sample above, but needs to be in the application menu. The border on the wxNotebook is too close to the window border. That’s good on Windows or Linux but looks weird on the Mac. The field for the file to hash in the screenshot above is not inline with the Mac conventions and should really accept drag and drop to fit in on the platform.
The use of the tabs for that UI is truthfully a little weird relative to other Mac applications. I should probably do something more like Safari’s preferences UI for the functions you see above.
There are other things I’m sure, but most all fall into areas I’d consider minor polish (similar to what I’ve listed). The major functionality is in place, and in general wxMac applications feel much better integrated than, say, Java. It’s just a lot more work with wx to get the level of polish that’s present in Cocoa by default. For some programs, though, that’s a valuable trade-off. I’ve certainly got a few in that category.