Register nameservers dynamically instead of writing them to disk. It is
[AROS.git] / rom / intuition / offmenu.c
blobb7a5250a4de11f206d6130e0d3e6075a10fe01a9
1 /*
2 Copyright © 1995-2007, The AROS Development Team. All rights reserved.
3 Copyright © 2001-2003, The MorphOS Development Team. All Rights Reserved.
4 $Id$
5 */
7 #include "intuition_intern.h"
9 /*****************************************************************************
11 NAME */
12 #include <intuition/intuition.h>
14 AROS_LH2(void, OffMenu,
16 /* SYNOPSIS */
17 AROS_LHA(struct Window *, window, A0),
18 AROS_LHA(UWORD , menunumber, D0),
20 /* LOCATION */
21 struct IntuitionBase *, IntuitionBase, 30, Intuition)
23 /* FUNCTION
24 Disable a whole menu, an item or a sub-item depending on
25 the menunumber.
27 INPUTS
28 window - The window, the menu belongs to
29 menunumber - The packed information on what piece of menu to disable
31 RESULT
32 None.
34 NOTES
36 EXAMPLE
38 BUGS
40 SEE ALSO
41 OnMenu(), ResetMenuStrip()
43 INTERNALS
45 HISTORY
47 *****************************************************************************/
49 AROS_LIBFUNC_INIT
51 int i;
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;
68 if (thismenu)
70 if (ITEMNUM(menunumber) == NOITEM)
72 thismenu->Flags &= ~MENUENABLED;
74 else
76 thisitem = thismenu->FirstItem;
78 for (i = 0; i < ITEMNUM(menunumber) && thisitem; i++)
80 thisitem = thisitem->NextItem;
83 if (thisitem)
85 if (SUBNUM(menunumber) != NOSUB && thisitem->SubItem)
87 thisitem = thisitem->SubItem;
88 for (i = 0; i < SUBNUM(menunumber) && thisitem; i++)
90 thisitem = thisitem->NextItem;
95 if (thisitem)
97 thisitem->Flags &= ~ITEMENABLED;
101 } /* if (thismenu) */
103 } /* if (MENUNUM(menunumber) != NOMENU) */
105 AROS_LIBFUNC_EXIT
106 } /* OffMenu */