[Mono-osx] Menu Bar for Mac OS X?
Elfen
pem.accounts.spam at gmail.com
Sun Apr 4 17:41:57 EDT 2010
HIG from Apple for Java found here (Mac OS X Integration for Java) (it seems
like these goals should be similar for Mono too):
http://developer.apple.com/mac/library/documentation/Java/Conceptual/Java14Development/00-Intro/JavaDevelopment.html#//apple_ref/doc/uid/TP40001911
For example, it says:
By default, Swing applications in Mac OS X use the Aqua look and feel (LAF).
For example, it says:
Listing 5 Setting JScrollBar policies to be more like those of Aqua
JScrollPane jsp = new JScrollPane();
jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
jsp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
So it doesn't say "rewrite your entire GUI just for Mac OS X", and it does
say "use the JScrollBar" (Mono's equivalent of GTK# would be Java Swing -
right?).
I didn't see anything about Interface Builder, or rewriting your entire GUI,
in Apple's (Mac OS X Integration for Java) doc?
I realize that I may be confused... But isn't your suggestion both
(impractical / an unreasonable amount of extra work) and (a violation of
Apple's "Mac OS X Integration for Java" guidelines)?
I hope my comments do not sound adversarial... I am just having trouble
understanding how (rewrite the entire GUI using Interface Builder) is
consistent with Apple's "Mac OS X Integration for Java" doc?
thank you
On Sun, Apr 4, 2010 at 4:52 AM, Joanna Carter <
cocoasharp at carterconsulting.org.uk> wrote:
> Hi Elfen
>
> > So you're saying I should have something like: if platform is windows or
> linux then use winforms, else if platform is mac os x then use interface
> builder? I think the correct thing to do for cross-platform development is
> only use platform conditional on the minimum amount of code. Yes I am
> asking about System.Windows.Forms. For example, it sounds like you are
> saying:
> >
> > if (platform is windows or linux )
> > {
> > this.menuItem_File = new System.Windows.Forms.ToolStripMenuItem();
> > this.exitToolStripMenuItem = new
> System.Windows.Forms.ToolStripMenuItem();
> > }
> > else if (platform is mac os x)
> > {
> > do some crazy interface builder stuff
> > }
> >
> > Btw, I was hoping for some kind of simple tutorial / doc... Since I
> would expect this to be an extremely common thing. Any application that
> follows Mac OS X interface guidelines will use the menu bar, rather than the
> Windows/Linux per-window menu style.
>
> See my other reply. Cross-platform apps are not something that can be
> created without a lot of effort, especially if you ever expect MAc users to
> accept them. Neither Winforms nor GTK UIs are acceptable in the OS X Aqua
> world.
>
> Fortunately, Apple have used the MVC design pattern to separate UI design
> from the business model, thus allowing you to use Mono to create the
> "backend" code, whilst using the Monobjc bridge to talk to UIs created in
> Interface Builder. Of course, you will also have to adhere to the same
> separation of concerns when creating the Winforms and GTK versions.
>
> > I think you are from the context. Joanna has skipped a step in replying
> if so. Winforms is not the "way to go" and you would have a more Mac alike
> experience using one of the Cocoa wrappers and Interface Builder. Yes, you
> will not get straight reuse, but you will otherwise be fitting a square peg
> into a round hole.
>
> Matt, see my reply, written whilst you were composing your reply :-)
>
> Joanna
>
> --
> Joanna Carter
> Carter Consulting
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-osx/attachments/20100404/3e0e4d45/attachment-0001.html
More information about the Mono-osx
mailing list