2 Copyright © 1995-2013, 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()
45 *****************************************************************************/
50 struct Menu
*thismenu
;
51 struct MenuItem
*thisitem
;
53 DEBUG_OFFMENU(dprintf("OffMenu: Window 0x%lx MenuNumber 0x%lx\n", window
, menunumber
));
55 IntuitionBase
= IntuitionBase
; /* shut up the compiler */
57 thismenu
= window
->MenuStrip
;
59 if (MENUNUM(menunumber
) != NOMENU
)
61 for (i
= 0; i
< MENUNUM(menunumber
) && thismenu
; i
++)
63 thismenu
= thismenu
->NextMenu
;
68 if (ITEMNUM(menunumber
) == NOITEM
)
70 thismenu
->Flags
&= ~MENUENABLED
;
74 thisitem
= thismenu
->FirstItem
;
76 for (i
= 0; i
< ITEMNUM(menunumber
) && thisitem
; i
++)
78 thisitem
= thisitem
->NextItem
;
83 if (SUBNUM(menunumber
) != NOSUB
&& thisitem
->SubItem
)
85 thisitem
= thisitem
->SubItem
;
86 for (i
= 0; i
< SUBNUM(menunumber
) && thisitem
; i
++)
88 thisitem
= thisitem
->NextItem
;
95 thisitem
->Flags
&= ~ITEMENABLED
;
101 } /* if (MENUNUM(menunumber) != NOMENU) */