> How do you folks handle designing menubars for both Mac and Windows?

I have only just begun creating menus in MetaCard, but so far I am pleased with the 
results. I created a group of buttons whose content becomes the items of the menu, and 
a tab nests the menuItems to create hierarchical menus. This menubar appears inside 
the window of the stack when the stack is run under Windoze, as it does under Mac when 
the "editMenus" property is true, but when the "editMenus" property is set to false 
and your on a Mac, then the buttons scroll off-screen and the system-wide menubar 
becomes your custom menubar.

> As we've discussed here before, the ideal solution would be
> to have support for Windows' MDI ("Multiple Document Interface")...

I am not sure what this implies, 
or whether my solution is compliant with it.

> so we could make one menu bar and it would be at the top of 
> the MDI parent window on Windows, and in the menu bar on Mac OS.

That seems to me what is happening with my solution. With the "editMenus" property set 
to false, the menubar appears at the top of the screen, while the same menubar appears 
in each card window that contains it when using Windoze.

>  a) Replicate the menubar at the top of each window

This is not as bad as it sounds. The menubar is a group. You can place the menubar 
group in the background, e.g. so that it appears on all cards of the stack without any 
unnecessary duplication.

>     Upside:   More closely complies with the Win HIG

Yeah, if and whenever the menubar is inside the window
instead of at the top of the screen.

> Requires a compromise to either the Mac HIG or Win HIG...

Not necessarily.

> you either make complete copies of the menu bar for all windows...

The way that I am working now, this is true, albeit it is easy to script this copying 
on newStack.

> and then have things look right on Mac but having irrelevant
> menu items in Windows, or you tailor each menu bar group for
> each window, and it feels more Windows-like but breaks the Mac HIG 
> (disabling menu items is considered better than having 
> the menu items appear and disappear).

I have tried enabling/diabling menus and menuItems, 
with the following statements, and it works!

  disable menu "Text"
  enable menu "Text"
  disable menuItem 4 of menu "Edit"
  enable menuItem 4 of menu "Edit"
  hilite menuItem 9 of menu "Text"

> Another downside is that you have to be careful
> that all your scripts which update menu items,
> like a standard Windows menu, are all updated; 
> increases overall maintenance costs.

Humm ... kind of unavoidable.
  
>  b) Detach the menubar into a separate window
>     Upside:   Dirt simple to update; one menu bar lowers
>               maintenance costs
>     Downside: Not very Windows-like at all.

You mean a separate floating window, but what about the technique that MetaCard uses 
itself for its menubar? Inside the stackInfo dialog, you specify which stack will be 
this stack's menubar. Type: topLevel "MetaCard menu bar" and you will see that the 
menubar is a stack. But, when it's in use, the menubar is at the top of the screen. 
Switching stacks can change the menubar, but there is a property that allows you to 
specify the default menubar when a stack (any) does not have a menubar specified.
 
> Given these trade-offs, which model do you folks use, 
> and why do you prefer it?

Need I say more  ;-)

Alain Farmer
mailto:[EMAIL PROTECTED]
__________________________________________________________________
Get your own FREE, personal Netscape Webmail account today at 
http://webmail.netscape.com/

Archives: http://www.mail-archive.com/metacard@lists.runrev.com/
Info: http://www.xworlds.com/metacard/mailinglist.htm
Please send bug reports to <[EMAIL PROTECTED]>, not this list.

Reply via email to