HIG from Apple for Java found here (Mac OS X Integration for Java) (it seems like these goals should be similar for Mono too):<br><br><a href="http://developer.apple.com/mac/library/documentation/Java/Conceptual/Java14Development/00-Intro/JavaDevelopment.html#//apple_ref/doc/uid/TP40001911">http://developer.apple.com/mac/library/documentation/Java/Conceptual/Java14Development/00-Intro/JavaDevelopment.html#//apple_ref/doc/uid/TP40001911</a><br>
<br>For example, it says:<br>By default, Swing applications in Mac OS X use the Aqua look and feel 
(LAF).<br><br>For example, it says:<br>Listing 5  Setting JScrollBar  policies to be more like those of Aqua<br>JScrollPane jsp = new JScrollPane();<br>jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);<br>
jsp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);<br><br>So it doesn&#39;t say &quot;rewrite your entire GUI just for Mac OS X&quot;, and it does say &quot;use the JScrollBar&quot; (Mono&#39;s equivalent of GTK# would be Java Swing - right?).<br>
<br>I didn&#39;t see anything about Interface Builder, or rewriting your entire GUI, in Apple&#39;s (Mac OS X Integration for Java) doc?<br><br>I realize that I may be confused...  But isn&#39;t your suggestion both (impractical / an unreasonable amount of extra work) and (a violation of Apple&#39;s &quot;Mac OS X Integration for Java&quot; guidelines)?<br>
<br>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&#39;s &quot;Mac OS X Integration for Java&quot; doc?<br>
<br>thank you<br><br><div class="gmail_quote">On Sun, Apr 4, 2010 at 4:52 AM, Joanna Carter <span dir="ltr">&lt;<a href="mailto:cocoasharp@carterconsulting.org.uk">cocoasharp@carterconsulting.org.uk</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Hi Elfen<br>
<div class="im"><br>
&gt; So you&#39;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:<br>

&gt;<br>
&gt; if (platform is windows or linux )<br>
&gt; {<br>
&gt; this.menuItem_File = new System.Windows.Forms.ToolStripMenuItem();<br>
&gt; this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();<br>
&gt; }<br>
&gt; else if (platform is mac os x)<br>
&gt; {<br>
&gt; do some crazy interface builder stuff<br>
&gt; }<br>
&gt;<br>
&gt; 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.<br>

<br>
</div>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.<br>

<br>
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 &quot;backend&quot; 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.<br>

<div class="im"><br>
&gt; I think you are from the context. Joanna has skipped a step in replying if so. Winforms is not the &quot;way to go&quot; 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.<br>

<br>
</div>Matt, see my reply, written whilst you were composing your reply :-)<br>
<div><div></div><div class="h5"><br>
Joanna<br>
<br>
--<br>
Joanna Carter<br>
Carter Consulting<br>
<br>
</div></div></blockquote></div><br>