bug: uses wrong list counter, which incurs an array overflow/undefined behaviour...
[AROS-Contrib.git] / libs / desktop / abstracticoncontainer.h
blobf30e278776055e3a436fc344f1398f3d5a310c02
1 /*
2 Copyright © 1995-2002, The AROS Development Team. All rights reserved.
3 $Id$
4 */
6 #ifndef ABSTRACTICONCONTAINER_H
7 #define ABSTRACTICONCONTAINER_H
9 #include "presentation.h"
11 #define AICA_BASE TAG_USER+1800
13 #define AICA_SelectedIcons AICA_BASE+1 // (--G)
14 #define AICA_MemberList AICA_BASE+2 // (--G)
15 #define AICA_Desktop AICA_BASE+3 // (ISG)
16 #define AICA_ApplyMethodsToMembers AICA_BASE+4 // (ISG)
18 // Unselect all icons.
19 #define AICM_UnselectAll AICA_BASE+4 // args: none
21 // an icon selection state has changed, call this method to
22 // update the selected list.
23 #define AICM_UpdateSelectList AICA_BASE+5 // args: Object *target, ULONG selectState
25 struct MemberNode
27 struct MinNode m_Node;
28 Object *m_Object;
31 struct opUpdateSelectList
33 ULONG methodID;
34 Object *target;
35 ULONG selectState;
38 struct AbstractIconContainerData
40 // list of MemberNodes
41 struct MinList memberList;
42 ULONG memberCount;
43 // list of MemberNodes
44 struct MinList selectedList;
45 // the container is on this desktop
46 Object *desktop;
47 BOOL applyMethodsToMembers;
50 struct __dummyAbstractIconContainerData__
52 struct MUI_NotifyData mnd;
53 struct MUI_AreaData mad;
54 struct PresentationClassData ocd;
55 struct AbstractIconContainerData aicd;
58 #define abstracticonContainerData(obj) (&(((struct __dummyAbstractIconContainerData__*)(obj))->aicd))
60 #define _memberList(obj) (abstracticonContainerData(obj)->memberList)
61 #define _memberCount(obj) (abstracticonContainerData(obj)->memberCount)
63 #endif