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, OnMenu
,
17 AROS_LHA(struct Window
*, window
, A0
),
18 AROS_LHA(UWORD
, menunumber
, D0
),
21 struct IntuitionBase
*, IntuitionBase
, 32, Intuition
)
24 Enable 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 enable
41 OffMenu(), ResetMenuStrip()
45 *****************************************************************************/
50 struct Menu
* thismenu
;
51 struct MenuItem
* thisitem
;
53 DEBUG_ONMENU(dprintf("OnMenu: 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
;
89 for (i
= 0; i
< SUBNUM(menunumber
) && thisitem
; i
++)
91 thisitem
= thisitem
->NextItem
;
98 thisitem
->Flags
|= ITEMENABLED
;
102 } /* if (thismenu) */
104 } /* if (MENUNUM(menunumber) != NOMENU) */