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, 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()
47 *****************************************************************************/
52 struct Menu
* thismenu
;
53 struct MenuItem
* thisitem
;
55 DEBUG_ONMENU(dprintf("OnMenu: Window 0x%lx MenuNumber 0x%lx\n", window
, menunumber
));
59 IntuitionBase
= IntuitionBase
; /* shut up the compiler */
61 thismenu
= window
->MenuStrip
;
63 if (MENUNUM(menunumber
) != NOMENU
)
65 for (i
= 0; i
< MENUNUM(menunumber
) && thismenu
; i
++)
67 thismenu
= thismenu
->NextMenu
;
72 if (ITEMNUM(menunumber
) == NOITEM
)
74 thismenu
->Flags
|= MENUENABLED
;
78 thisitem
= thismenu
->FirstItem
;
80 for (i
= 0; i
< ITEMNUM(menunumber
) && thisitem
; i
++)
82 thisitem
= thisitem
->NextItem
;
87 if (SUBNUM(menunumber
) != NOSUB
&& thisitem
->SubItem
)
89 thisitem
= thisitem
->SubItem
;
91 for (i
= 0; i
< SUBNUM(menunumber
) && thisitem
; i
++)
93 thisitem
= thisitem
->NextItem
;
100 thisitem
->Flags
|= ITEMENABLED
;
104 } /* if (thismenu) */
106 } /* if (MENUNUM(menunumber) != NOMENU) */