Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion Groups
General
GeneralPortable MacsHardwareNetworking
Applications
Mac ApplicationsEudoraFirefox / MozillaInternet ExplorerOutlook ExpressMS OfficeEntourageExcelPowerPointWordVirtual PCMedia PlayerOther MS Products
Programming
Mac ProgrammingCodeWarriorPerl
Country Specific
Australian Mac GroupUK Mac Group

Mac Forum / Programming / CodeWarrior / June 2005



Tip: Looking for answers? Try searching our database.

Menu disabling  in Tiger

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Michael McLaughlin - 26 Jun 2005 00:35 GMT
After switching to Tiger, I cannot get a menu (as opposed to a menu
item) to disable in my PPx app, i.e., to appear "ghosted out".  It was
my understanding that the menu "autodisable" option in IB was supposed
to do this and, in 10.3.9, it did.  Now, it does not.  Even manually
diabling menus does not ghost them out although it does make them stop
working.

Can anyone shed any light on this?  In my app, there are entire menus
that are sometimes inappropriate and they need to show up as disabled to
comply with the standard user experience.

Thanks.

--
Mike McLaughlin
larry@skytag.com - 26 Jun 2005 01:46 GMT
> After switching to Tiger, I cannot get a menu (as opposed to a menu
> item) to disable in my PPx app, i.e., to appear "ghosted out".

The term is "dimmed."

>  It was
> my understanding that the menu "autodisable" option in IB was supposed
> to do this and, in 10.3.9, it did.  Now, it does not.  Even manually
> diabling menus does not ghost them out although it does make them stop
> working.

Have you tried invalidating the menu bar to force a redraw?

> Can anyone shed any light on this?  In my app, there are entire menus
> that are sometimes inappropriate and they need to show up as disabled to
> comply with the standard user experience.

I'd post questions like this to Apple's carbon-dev list, where the
relevant engineer often hangs out. I tend to use this forum for CW
issues, no Mac development issues like this. Sounds like a bug to me
and I'd file it in Radar, but someone on the carbon-dev list may have
some useful thoughts.

Larry
Chris Baum - 26 Jun 2005 04:39 GMT
> After switching to Tiger, I cannot get a menu (as opposed to a menu
> item) to disable

This was covered in the 10.4 release notes which you can read here:

http://developer.apple.com/releasenotes/Carbon/HIToolbox.html

Here's a clip for you:

The Aqua Human Interface Guidelines for Mac OS X 10.4 have changed in
regard to the enabling of menu titles. Previous guidelines recommended
that a menu title be disabled if all items in the menu are disabled.
The new guidelines instead recommend that menu titles should always be
enabled, to indicate that the menu is always browseable, even if all
items in the menu are disabled. To support this new guideline, we have
made these changes:

- menu titles are always drawn with an enabled appearance, even if the
menu title (item 0) of the menu is disabled

- the kMenuAttrAutoDisable menu attribute no longer has any effect; the
title of a menu with this attribute is no longer disabled automatically
if all items in the menu are disabled

- the Menu Manager no longer sends kEventMenuEnableItems events at idle
time to menus in the menubar (although this may return in the future
once we support tear-off menus, which will require idle-time enabling).

Note that it is still possible to explicitly disable a menu's title
using DisableMenuItem(menu, 0), and that this will still affect the
availability of the menu items in the menu for purposes such as command
key matching. Disabling the menu title is still a legitimate way to
quickly disable all of the items in the menu, and the items will still
be drawn with a disabled appearance; only the menu title will be drawn
enabled.
larry@skytag.com - 26 Jun 2005 07:55 GMT
>> After switching to Tiger, I cannot get a menu (as opposed to a menu
>> item) to disable

> This was covered in the 10.4 release notes which you can read here:

Oops. I forgot about that. Hadn't read it in a while and I'm still
using Panther.

Larry
Michael McLaughlin - 26 Jun 2005 16:52 GMT
Thanks for passing this on.  I had not seen it.

IMHO, this change is for the worse.  Dimming is/was supposed to convey
information to the user.  In my app, it conveys the fact that some
choice categories exist but are inappropriate for the data file input.
In my case, there are so many options (models) available (currently,
about 70) that they are partitioned by menu, submenu then item.
However, not all models are valid for all datasets. Here, at the top
(menu) level, there are Equation, Continuous and Discrete menus, all
mutually exclusive.  Were they implemented as submenus, there would be
too many hierarchical levels for a user to traverse (very messy and
error-prone).

>>After switching to Tiger, I cannot get a menu (as opposed to a menu
>>item) to disable
[quoted text clipped - 31 lines]
> be drawn with a disabled appearance; only the menu title will be drawn
> enabled.
larry@skytag.com - 27 Jun 2005 01:23 GMT
> IMHO, this change is for the worse.  Dimming is/was supposed to convey
> information to the user.

It does, and therein lay the problem. Dimming conveys that something is
disabled and won't respond to clicks, as with a dimmed push button,
popup button, radio button, and so on. Menus with dimmed titles would
respond to clicks and open the menu, which was inconsistent with the
behavior of other interface elements.

> In my app, it conveys the fact that some
> choice categories exist but are inappropriate for the data file input.

Understood. You could try adding and removing menus as appropriate
instead of disabling and enabling them.

Larry
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.