Newsgroups: comp.lang.lisp.mcl
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!oitnews.harvard.edu!news.dfci.harvard.edu!camelot.ccs.neu.edu!chaos.dac.neu.edu!usenet.eel.ufl.edu!newsfeed.internetmci.com!news.sprintlink.net!howland.reston.ans.net!vixen.cso.uiuc.edu!uchinews!hammer.cs.uchicago.edu!user
From: alain@cs.uchicago.edu (Alain Roy)
Subject: Re: Bug in long pop-up menus?
X-Nntp-Posting-Host: hammer.cs.uchicago.edu
Message-ID: <alain-1807950928300001@hammer.cs.uchicago.edu>
Sender: news@midway.uchicago.edu (News Administrator)
Organization: None
References: <towle-1707951638030001@129.105.100.158>
Date: Tue, 18 Jul 1995 14:28:30 GMT
Lines: 35

In article <towle-1707951638030001@129.105.100.158>, towle@ils.nwu.edu
(Brendon Towle) wrote:

>I'm building an app that has some exorbitantly long (~50 items) pop-up
>menus which are designed to have some of the items disabled much of the
>time.  However, it seems that only items 0-31 can actually be disabled; 
>the rest are kept enabled by the system, for no apparent reason.

Poking though Inside Macintosh, Toolbox Essentials, we find the MenuInfo.
Each menu has an associated MenuInfo structure:

TYPE     MenuInfo =              {menu record}

RECORD
    menuID:           Integer;   {number that identifies the menu}
    menuWidth:        Integer;   {width (in pixels) of the menu}
    menuHeight:       Integer;   {height (in pixels) of the menu}
    menuProc:         Handle;    {menu definition procedure}
    enableFlags:      LongInt;   {indicates whether menu and }
                                 { menu items are enabled}
    menuData:         Str255;    {title of menu}
   {itemDefinitions}             {variable-length data that }
                                 { defines the menu items}
END;

And in the description of the enableFlags field:

enableFlags:  A value that represents the enabled state of the menu title
and  the first 31 items in the menu. All menu items greater than 31 are
enabled by default and can be disabled only by disabling the entire menu.

So, I guess that answers it for you. It's a problem in the system, not
Lisp or your code.

-alain
