| Code by Kevin | |||||
|
Subscribe to RSS Feed 2008 2007 2006 Categories Business Software General |
home
Tue, 24 Jul 2007 Things have been pretty quiet here for the past month, but that's mainly because I have been hard at work on updating my applications. My current focus is a new update to PortAuthority, my GUI for MacPorts. This update started out as a minor refreshing of the UI, but has turned into a pretty significant overhaul. The current interface of PortAuthority, shown below, works well enough, but it's a bit cluttered. The port categories, placed in the side tree view, are obscured by the table view of installed ports below them. The interface also makes use of two separate "split" views (placing data side by side); these data displays are very asymmetrical in their appearance, which makes getting information "at a glance" harder than it should be. The colors don't look quite right for a modern Mac application (the tree view's background is white, instead of the gentle light blue that you see in apps such as Mail). Finally, the UI makes use of several odd-looking controls (the buttons don't look like Mac toolbar buttons, the search field isn't rounded, and there is a thin black line around the table views).
These are the unavoidable limitations when you use a cross-plaform GUI toolkit, Tk. Out of the box, it may not look quite right on a given platform. This is especially true on the Mac, where interface conventions are more rigidly defined, and interface fashions tend to change more quickly; it's hard for a cross-platform toolkit to keep up.
All is not lost, however. The beauty of Tk--one of the main reasons I use it instead of a Mac-only toolkit--is that it is almost infinitely configurable. Tk itself provides just the bare bones of a graphical interface, but those basic elements can be configured in a vast number of ways--both visually, and in terms of their behavior. Furthermore, Tk's vast array of extension packages allow a developer to quickly snap together different components and assemble a sophisticated interface that very closely matches platform-specific conventions.
With that idea in mind, I have done a fair amount of work customizing some Tk components to be more Mac-like, and incorporating those into the new version of PortAuthority. A sneak peek is below:
| ||||