2 Copyright © 1995-2007, The AROS Development Team. All rights reserved.
3 Copyright © 2001-2003, The MorphOS Development Team. All Rights Reserved.
7 #include "intuition_intern.h"
9 /*****************************************************************************
12 #include <intuition/intuition.h>
14 AROS_LH2(void, OffMenu
,
17 AROS_LHA(struct Window
*, window
, A0
),
18 AROS_LHA(UWORD
, menunumber
, D0
),
21 struct IntuitionBase
*, IntuitionBase
, 30, Intuition
)
24 Disable a whole menu, an item or a sub-item depending on
28 window - The window, the menu belongs to
29 menunumber - The packed information on what piece of menu to disable
41 OnMenu(), ResetMenuStrip()
47 *****************************************************************************/
52 struct Menu
*thismenu
;
53 struct MenuItem
*thisitem
;
55 DEBUG_OFFMENU(dprintf("OffMenu: Window 0x%lx MenuNumber 0x%lx\n", window
, menunumber
));
57 IntuitionBase
= IntuitionBase
; /* shut up the compiler */
59 thismenu
= window
->MenuStrip
;
61 if (MENUNUM(menunumber
) != NOMENU
)
63 for (i
= 0; i
< MENUNUM(menunumber
) && thismenu
; i
++)
65 thismenu
= thismenu
->NextMenu
;
70 if (ITEMNUM(menunumber
) == NOITEM
)
72 thismenu
->Flags
&= ~MENUENABLED
;
76 thisitem
= thismenu
->FirstItem
;
78 for (i
= 0; i
< ITEMNUM(menunumber
) && thisitem
; i
++)
80 thisitem
= thisitem
->NextItem
;
85 if (SUBNUM(menunumber
) != NOSUB
&& thisitem
->SubItem
)
87 thisitem
= thisitem
->SubItem
;
88 for (i
= 0; i
< SUBNUM(menunumber
) && thisitem
; i
++)
90 thisitem
= thisitem
->NextItem
;
97 thisitem
->Flags
&= ~ITEMENABLED
;
101 } /* if (thismenu) */
103 } /* if (MENUNUM(menunumber) != NOMENU) */