Slowly but surely
As I have mentioned before, I'm working on a native theme for the Mac OS X port of GTK+ from time to time. I recently spent some time on the theme engine to make Devhelp look a bit better on Mac, with focus on some widgets that are very visible in Devhelp: notebooks, scrolled windows (and other widgets) with shadows, and scrollbars.
It's clearly very difficult to get things to look exactly right and in some cases I think you will have to use platform specific code to arrange widgets differently to get a really good look. BUT, nevertheless it's getting better:

Comments
Exciting. Now also native Windows-widgets and gtk+ becomes nearly as good as qt :D
Posted by: myname | November 12, 2008 03:22 PM
Love the work and the attention to the detail.
I am hard pressed to find which parts are the problematic ones.
One question though: I get the feeling that MacOS has more than one set of controls (for example Safari) and I am wondering if the theme should support more than one rendering style?
Miguel.
Posted by: Miguel de Icaza | November 12, 2008 03:38 PM
@Miguel, some issues that come to mind off-hand are:
1. Buttons and other controls can't be drawn at random sizes, but at a number of preset sizes, and it's hard or difficult to get the size of for example a GtkButton to match that.
2. It's hard to get children placed correctly, like a label in a button or combobox. Often the x/ythickness has to be abused which doesn't always work. If all widgets had style properties for each side's border, it would be much easier I think.
3. More high level differences between how widgets are used, a good example is notebooks. On Mac they are rarely used to switch between documents (like devhelp does), they are normally used to switch pages in preference panes and similar UIs. Apps like safari or adium have their own controls for switching between documents.
Regarding different styles, Apple themselves are moving away from the brushed metal look (and moving to just one unified look instead).
Posted by: Richard | November 12, 2008 03:51 PM
great work!
Posted by: kenjiru | November 12, 2008 04:38 PM
I was wondering how did you manage to compile devhelp on OsX.
i know it can be done via jhbuild of , with a lot of pain, manually but...
I was just trying, without success, to build it in Xcode but i encoutered too much problem..
Posted by: giskard | November 12, 2008 05:16 PM
Have you seen this: http://code.google.com/p/gnome2-globalmenu/ ?
Basically Rainwoodman is building a Global Menu Bar for Gnome and he thinks it might be useful to the GTK+ port to MacOSX
Posted by: Pierre | November 12, 2008 05:30 PM
Great work Richard. For integration, is there some chance that the osx addons that you guys at Imendio recently published would be pushed back into Gtk+ as general parts? right now, for menubar integration, you need OSX-specific h{oo,ac}ks, could those be pushed naturally into Gtk+ so that all apps act natively on OSX?
Agian, thanks for your work on this, there is demand!
Posted by: Ronald | November 12, 2008 06:26 PM
Shouldn't the "tab-bar" be centered?
The bad things about ports is, they'll never feel native (in most cases).
What would be better, if you could put in different skins on your app, to re-arrange controls.
Honestly, that doesn't feel like an OS X app, does it?
Posted by: mike | November 12, 2008 07:12 PM
@giskard: Devhelp should build without any issues at all using the regular configure way if you have gtk+ and webkit built from jhbuild (using the jhbuild setup from the GTK+ OS X developer pages).
@Pierre, I have seen it, but I don't necessarily agree that this should be in gnome/x11.
@Ronald, the current implementation is not intended for inclusion in GTK+, this is a stop gap solution that comes with caveats and is not generically usable. A more high level approach is needed for that to work (like something based on GtkUIManager).
@mike, missed the title "slowly but surely" and the part where I say you have to have platform specific layouts in some cases? ;)
Thanks for the feedback all.
Posted by: Richard | November 12, 2008 08:09 PM
Those tabs are looking good to me. It's true they should be centered but they are still are nice looking for now. There is a tab style that more fits the GTK+ tab style but of course it has been depreciated mostly and the only two places I've seen it lately is in saft's preferences (the sideways old tabbed style) and as an option for drag thing tabs.
In Leopard no window has the brushed LOOK but the 'brushed' metal window type is still there and used in quite a few windows. It's just skinned differently to match the unified windows.
But anyway I'm happy to see more work being done on this. Right now I'm using a GTK theme that I edited to match (including the modified scrollbars I'm using) but a 'native' theme would be better.
Posted by: smoke_tetsu | November 12, 2008 08:13 PM
Sorry, I think I had to much bad energy.
And, a GTK-OS X port is much better, than not having the apps at all.
Even though the whole cross-platform-toolkit thing might be discussed again ;)
Posted by: mike | November 12, 2008 08:33 PM
That's looking better and better! Keep up the great work!
Ian
Posted by: Ian McKellar | November 12, 2008 08:47 PM
how can we test this out? I've got it built and installed, but the native port doesn't seem to respect a .gtkrc-2.0 file. Great work so far!
Posted by: Bobby | November 12, 2008 09:21 PM
@Bobby, if you install the theme in the same prefix as GTK+, you just need to have this in your rc file:
gtk-theme-name = "quartz"
However it will not be picked up by the prebuilt GTK+ framework yet, if that's what you mean.
Posted by: Richard | November 13, 2008 09:04 AM
yup, thats what I mean. thanks!
Posted by: Bobby | November 14, 2008 03:58 PM
Hope it supports the Graphite look as well as the way-too-garish Blue theme...
Posted by: SW | December 4, 2008 12:33 AM