On Jun 21, 2005, at 1:36 AM, Maciej Stachowiak wrote:
[snip]
For OS X at least, we intend to make the controls look and feel just like the native ones to a pretty exacting level of detail. We will only fall back to a generic look if the page specifies custom styling info, this is desirable for web compatibility in any case. So please do not assume the themed controls will look lame and generic. In fact, I believe the Firefox controls look and feel very much like the native ones on Windows, and even respect Windows theming.
Sorry, I never meant to imply they would look lame and generic, but as you point out with Firefox, they put more effort into maintaining Windows theming than Mac theming. Thus the Firefox buttons look like Windows buttons, which is great on Windows but not much help on Mac. (Or take IE for Mac, where they still have Classic-style controls.) In this case, things would be the opposite way around. You could now see aqua (or possibly generic) buttons on, say, Windows, where it would look just as awkward as Firefox controls do on Mac.
That being said, I can see how it might be a tough technical challenge for some toolkits to implement the theme API, especially multiplatform toolkits that rely on native widgets under the covers. I am not sure what to do about that, as maintaininga dual-track approach to form controls is likely to be painful in the long run.
The challenge for us is not that we can't use native widgets, it's that emulating them successfully on several platforms, and platform versions, is a significant challenge. We'd have to be able to correctly emulate native look and feel for several GUI toolkits, and each major version of those toolkits that are still supported (along with special issues like themes on some platforms). If we can't make that work, which is likely too much work to get right, we'd have to settle for a button that's generic on almost all platforms. In short, maintaining emulated native controls for all these combinations, and getting it right, looks to be a pretty significant challenge. A lot of work that just using the native controls would save us the trouble of doing.
I don't know the API you're thinking of at the moment, so I can't really say how difficult this would be, but IMHO it would be ideal if we could come up with some way to at least have the option of letting a port use generic or native controls. Perhaps have a QPushButton that can optionally be set to use a theme or become "non-native" if it's given style properties, making the native/non-native distinction an implementation detail?
Thanks,
Kevin
Regards,
Maciej