Fixed codesets.
[AROS.git] / rom / intuition / helpcontrol.c
blob30d5f158e0f99d28b410075d3e8f6538e22c6c64
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 <proto/intuition.h>
14 AROS_LH2(void, HelpControl,
16 /* SYNOPSIS */
17 AROS_LHA(struct Window *, window, A0),
18 AROS_LHA(ULONG , flags, D0),
20 /* LOCATION */
21 struct IntuitionBase *, IntuitionBase, 138, Intuition)
23 /* FUNCTION
24 Turn on or off Gadget-Help for your window. Gadget-Help will also
25 be changed for all members of the same help-group to make
26 multiple-windows apps to behave well.
28 INPUTS
29 window - The window to affect. All windows of the same help-goup will
30 be affected as well.
31 flags - HC_GADGETHELP or zero for turning help on or off.
33 RESULT
34 None. Toggles gadget-help of one or more windows to on or off.
36 NOTES
38 EXAMPLE
40 BUGS
42 SEE ALSO
43 WA_HelpGroup
45 INTERNALS
47 *****************************************************************************/
49 AROS_LIBFUNC_INIT
51 ULONG ilock;
52 ULONG clearmask = 0;
53 ULONG setmask = 0;
55 ASSERT_VALID_PTR(window);
57 SANITY_CHECK(window)
59 ilock = LockIBase(0);
61 if (flags & HC_GADGETHELP)
63 setmask |= HELPF_GADGETHELP;
65 else
67 clearmask |= HELPF_GADGETHELP;
70 #define CHANGEHELPFLAGS(x) ( IW(x)->helpflags = (IW(x)->helpflags | setmask) & ~clearmask )
72 CHANGEHELPFLAGS(window);
74 if (IW(window)->helpflags & HELPF_ISHELPGROUP)
76 struct Screen *scr = IntuitionBase->FirstScreen;
78 for(; scr; scr = scr->NextScreen)
80 struct Window *win = scr->FirstWindow;
82 for(; win; win = win->NextWindow)
84 if ( (IW(win)->helpflags & HELPF_ISHELPGROUP) &&
85 (IW(win)->helpgroup == IW(window)->helpgroup) )
87 CHANGEHELPFLAGS(win);
93 UnlockIBase(ilock);
95 AROS_LIBFUNC_EXIT
96 } /* HelpControl */