Improvements to AutoDocs.
[aros:aros.git] / AROS / rom / intuition / setattrsa.c
1 /*
2     Copyright © 1995-2013, The AROS Development Team. All rights reserved.
3     Copyright © 2001-2003, The MorphOS Development Team. All Rights Reserved.
4     $Id$
5 */
6
7 #include <proto/alib.h>
8 #include <proto/utility.h>
9 #include "intuition_intern.h"
10
11 /*****************************************************************************
12  
13     NAME */
14 #include <intuition/classusr.h>
15 #include <proto/intuition.h>
16
17     AROS_LH2(ULONG, SetAttrsA,
18
19 /*  SYNOPSIS */
20         AROS_LHA(APTR            , object, A0),
21         AROS_LHA(struct TagItem *, tagList, A1),
22
23 /*  LOCATION */
24         struct IntuitionBase *, IntuitionBase, 108, Intuition)
25
26 /*  FUNCTION
27         Changes several attributes of an object at the same time. How the
28         object interprets the new attributes depends on the class.
29
30     INPUTS
31         object - Change the attributes of this object
32         tagList - This is a list of attribute/value-pairs
33
34     RESULT
35         Depends on the class. For gadgets, this value is non-zero if
36         they need redrawing after the values have changed. Other classes
37         will define other return values.
38
39     NOTES
40         This function sends OM_SET to the object.
41
42     EXAMPLE
43
44     BUGS
45
46     SEE ALSO
47         NewObjectA(), DisposeObject(), GetAttr(), MakeClass(),
48         "Basic Object-Oriented Programming System for Intuition" and
49         "boopsi Class Reference" Document.
50
51     INTERNALS
52
53 *****************************************************************************/
54 {
55     AROS_LIBFUNC_INIT
56
57     struct opSet ops;
58     ULONG        result;
59
60     DEBUG_SETATTRS(dprintf("SetAttrs[0x%p]: Object 0x%p Tags 0x%p\n", &ops, object, tagList));
61
62     SANITY_CHECKR(object,FALSE)
63     SANITY_CHECKR(tagList,FALSE)
64
65 #if DEBUG > 1
66     if (tagList)
67     {
68         struct TagItem *state = tagList;
69         struct TagItem *tag;
70
71         while (tag = NextTagItem(&state))
72         {
73             dprintf("\t0x%p 0x%p\n", tag->ti_Tag, tag->ti_Data);
74         }
75     }
76 #endif
77
78     ops.MethodID     = OM_SET;
79     ops.ops_AttrList = tagList;
80     ops.ops_GInfo    = NULL;
81
82     result = DoMethodA (object, (Msg)&ops);
83
84     DEBUG_SETATTRS(dprintf("SetAttrs[0x%p]: Return 0x%08X\n", &ops, result));
85
86     return result;
87
88     AROS_LIBFUNC_EXIT
89 } /* SetAttrsA() */