[Mono-osx] Menu Bar for Mac OS X?

Michael Hutchinson m.j.hutchinson at gmail.com
Mon Apr 5 06:12:57 EDT 2010


On Sun, Apr 4, 2010 at 7:35 PM, Joanna Carter
<cocoasharp at carterconsulting.org.uk> wrote:
> The GTK# frameworks do not support the generation of either the correct Winforms or the correct Aqua L&F UIs. GTK# UIs look like what they are, GTK# UIs. There are some frameworks that allow the compilation of GTK+2 programs on OS X but none, that I am aware of, for Mono applications.

What do you mean? GTK# applications on OS X use GTK+ on OS X, just
like any C GTK+ application would. GTK# is just a wrapper for GTK+.

> If you want to design a GTK# UI for Linux, it will be based on the Carbon widget libraries, which is no longer considered the "norm" for OS X where Cocoa is the "standard"; and it will look "wrong" on both Windows and OS X.

Carbon is the "old" native widget toolkit for OS X and looks "normal"
there. GTK+ looks different because it's completely custom-drawn, not
because it uses Carbon/Cocoa. You could write a completely
non-native-looking UI in Cocoa too if you wanted.

> Take a look at the screenshot in the link from Michael's post. You will see that the tabs and scrollbars are not true Cocoa and thus the application looks wrong, even though the menu is in the right place.

The GTK# theme that we ship on OS X was designed to look nice while
having some of the Mac feel, rather than being an exact copy. A theme
using the native widget drawing APIs is certainly possible - see
http://people.imendio.com/richard/archives/2008/02/native_mac_them_1.html.
However, Last time I tried that theme engine with MonoDevelop a few
weeks ago it had some rendering issues, and fixing/completing it would
require resources that are easier to justify spending on other things,
like bugfixes and features.

Note also that the GTK# scrollbar colouring mimics iTunes and iPhoto,
which do not use "native" scrollbars, i.e. Apple isn't 100% consistent
either.

You could also write a winforms theme to look like OS X. Such uxtheme
themes exist for Windows already, and Mono's winforms uses the uxtheme
drawing APIs, so ironically you can already make Mono's Winforms theme
look "Mac native" on Windows.

> Certainly, there are frameworks like Qt, that can be used, but that requires that the application is written in C++ and that the Qt libraries are deployed to the target machine.

Qt does the same thing that GTK# does, it just has a much more mature
native theme.

-- 
Michael Hutchinson
http://mjhutchinson.com


More information about the Mono-osx mailing list