- MUIM_Group_ExitChange now only does a relayout if objects have been added
[AROS.git] / workbench / libs / muimaster / classes / group.h
blob36298967ed21ad88955b5f4e7f565440364662ec
1 #ifndef _MUI_CLASSES_GROUP_H
2 #define _MUI_CLASSES_GROUP_H
4 /*
5 Copyright © 1999, David Le Corfec.
6 Copyright © 2002-2012, The AROS Development Team.
7 All rights reserved.
9 $Id$
12 /*** Name *******************************************************************/
13 #define MUIC_Group "Group.mui"
15 /*** Identifier base (for Zune extensions) **********************************/
16 #define MUIB_Group (MUIB_ZUNE | 0x00001000)
18 /*** Methods ****************************************************************/
19 #define MUIM_Group_AddHead (MUIB_MUI | 0x0042e200) /* MUI: V8 */
20 #define MUIM_Group_AddTail (MUIB_MUI | 0x0042d752) /* MUI: V8 */
21 #define MUIM_Group_ExitChange (MUIB_MUI | 0x0042d1cc) /* MUI: V11 */
22 #define MUIM_Group_ExitChange2 (MUIB_MUI | 0x0042e541) /* MUI: PRIV */
23 #define MUIM_Group_InitChange (MUIB_MUI | 0x00420887) /* MUI: V11 */
24 #define MUIM_Group_Sort (MUIB_MUI | 0x00427417) /* MUI: V4 */
25 #define MUIM_Group_Remove (MUIB_MUI | 0x0042f8a9) /* MUI: V8 */
27 struct MUIP_Group_AddHead
29 STACKED ULONG MethodID;
30 STACKED Object *obj;
33 struct MUIP_Group_AddTail
35 STACKED ULONG MethodID;
36 STACKED Object *obj;
39 struct MUIP_Group_ExitChange
41 STACKED ULONG MethodID;
44 struct MUIP_Group_ExitChange2 /* PRIV */
45 { /* PRIV */
46 STACKED ULONG MethodID; /* PRIV */
47 STACKED ULONG flags; /* PRIV */
48 }; /* PRIV */
50 struct MUIP_Group_InitChange
52 STACKED ULONG MethodID;
55 struct MUIP_Group_Sort
57 STACKED ULONG MethodID;
58 STACKED Object *obj[1];
61 struct MUIP_Group_Remove
63 STACKED ULONG MethodID;
64 STACKED Object *obj;
67 #define MUIM_Group_DoMethodNoForward (MUIB_Group | 0x00000000)
68 struct MUIP_Group_DoMethodNoForward
70 STACKED ULONG MethodID;
71 STACKED ULONG DoMethodID;
72 }; /* msg stuff follows */
74 /*** Attributes *************************************************************/
75 #define MUIA_Group_ActivePage \
76 (MUIB_MUI | 0x00424199) /* MUI: V5 isg LONG */
77 #define MUIA_Group_Child \
78 (MUIB_MUI | 0x004226e6) /* MUI: V4 i.. Object * */
79 #define MUIA_Group_ChildList \
80 (MUIB_MUI | 0x00424748) /* MUI: V4 ..g struct List * */
81 #define MUIA_Group_Columns \
82 (MUIB_MUI | 0x0042f416) /* MUI: V4 is. LONG */
83 #define MUIA_Group_Forward \
84 (MUIB_MUI | 0x00421422) /* MUI: V11 .s. BOOL */
85 #define MUIA_Group_Horiz \
86 (MUIB_MUI | 0x0042536b) /* MUI: V4 i.. BOOL */
87 #define MUIA_Group_HorizSpacing \
88 (MUIB_MUI | 0x0042c651) /* MUI: V4 isg LONG */
89 #define MUIA_Group_LayoutHook \
90 (MUIB_MUI | 0x0042c3b2) /* MUI: V11 i.. struct Hook * */
91 #define MUIA_Group_PageMode \
92 (MUIB_MUI | 0x00421a5f) /* MUI: V5 i.. BOOL */
93 #define MUIA_Group_Rows \
94 (MUIB_MUI | 0x0042b68f) /* MUI: V4 is. LONG */
95 #define MUIA_Group_SameHeight \
96 (MUIB_MUI | 0x0042037e) /* MUI: V4 i.. BOOL */
97 #define MUIA_Group_SameSize \
98 (MUIB_MUI | 0x00420860) /* MUI: V4 i.. BOOL */
99 #define MUIA_Group_SameWidth \
100 (MUIB_MUI | 0x0042b3ec) /* MUI: V4 i.. BOOL */
101 #define MUIA_Group_Spacing \
102 (MUIB_MUI | 0x0042866d) /* MUI: V4 is. LONG */
103 #define MUIA_Group_VertSpacing \
104 (MUIB_MUI | 0x0042e1bf) /* MUI: V4 isg LONG */
106 #define MUIA_Group_Virtual \
107 (MUIB_Group | 0x00000000) /* Zune: V1 i.. BOOL */
109 enum
111 MUIV_Group_ActivePage_First = 0,
112 MUIV_Group_ActivePage_Last = -1,
113 MUIV_Group_ActivePage_Prev = -2,
114 MUIV_Group_ActivePage_Next = -3,
115 MUIV_Group_ActivePage_Advance = -4,
118 /* This is the message you get if your custom layout hook is called */
119 struct MUI_LayoutMsg
121 STACKED ULONG lm_Type; /* the message type */
122 STACKED struct MinList *lm_Children; /* exec list of the children
123 * of this group */
124 STACKED struct MUI_MinMax lm_MinMax; /* here you have to place the
125 * MUILM_MINMAX results */
126 struct
128 STACKED LONG Width;
129 STACKED LONG Height;
130 STACKED ULONG priv5;
131 STACKED ULONG priv6;
132 } lm_Layout; /* size (and result) for MUILM_LAYOUT */
135 /* lm_Type */
136 enum
138 MUILM_MINMAX = 1, /* Please calc your min & max sizes */
139 MUILM_LAYOUT = 2, /* Please layout your children */
142 #define MUILM_UNKNOWN -1 /* should be returned if the hook function
143 * doesn't understand lm_Type */
146 extern const struct __MUIBuiltinClass _MUI_Group_desc; /* PRIV */
148 #endif /* _MUI_CLASSES_GROUP_H */