2 Copyright © 2002-2006, The AROS Development Team. All rights reserved.
6 #include <graphics/gfx.h>
7 #include <graphics/view.h>
8 #include <clib/alib_protos.h>
9 #include <libraries/asl.h>
10 #include <libraries/mui.h>
11 #include <mui/Rawimage_mcc.h>
12 #include <proto/exec.h>
13 #include <proto/graphics.h>
14 #include <proto/utility.h>
15 #include <proto/intuition.h>
16 #include <proto/muimaster.h>
19 #include <proto/alib.h>
22 #include "zunestuff.h"
26 /* #include <aros/debug.h> */
28 extern struct Library
*MUIMasterBase
;
30 struct MUI_GroupsPData
32 Object
*background_register_popimage
;
33 Object
*background_framed_popimage
;
34 Object
*background_page_popimage
;
35 Object
*spacing_vert_slider
;
36 Object
*spacing_horiz_slider
;
37 Object
*truncate_titles_checkmark
;
38 Object
*font_title_string
;
39 Object
*normal_popframe
;
40 Object
*virtual_popframe
;
41 Object
*title_position_cycle
;
42 Object
*title_color_cycle
;
45 static CONST_STRPTR positions_labels
[3];
46 static CONST_STRPTR color_labels
[5];
48 static IPTR
GroupsP_New(struct IClass
*cl
, Object
*obj
, struct opSet
*msg
)
50 struct MUI_GroupsPData
*data
;
51 struct MUI_GroupsPData d
;
53 positions_labels
[0] = _(MSG_ABOVE
);
54 positions_labels
[1] = _(MSG_CENTERED
);
56 color_labels
[0] = _(MSG_STANDARD
);
57 color_labels
[1] = _(MSG_HILITE
);
58 color_labels
[2] = _(MSG_3D
);
59 color_labels
[3] = _(MSG_OUTLINE
);
61 obj
= (Object
*) DoSuperNewTags
65 MUIA_Group_SameWidth
, TRUE
,
66 MUIA_Group_Horiz
, TRUE
,
69 GroupFrameT(_(MSG_TITLE
)),
70 Child
, (IPTR
) VSpace(0),
71 Child
, (IPTR
) ColGroup(2),
72 MUIA_Group_VertSpacing
, 2,
73 Child
, (IPTR
) Label(_(MSG_POSITION
)),
74 Child
, (IPTR
) (d
.title_position_cycle
=
75 MakeCycle(_(MSG_POSITION
), positions_labels
)),
76 Child
, (IPTR
) Label(_(MSG_COLOR
)),
77 Child
, (IPTR
) (d
.title_color_cycle
=
78 MakeCycle(_(MSG_COLOR
), color_labels
)),
79 Child
, (IPTR
) Label(_(MSG_FONT
)),
80 Child
, (IPTR
) (d
.font_title_string
= MakePopfont(FALSE
)),
82 Child
, (IPTR
) VSpace(0),
85 GroupFrameT(_(MSG_SPACING
)),
86 Child
, (IPTR
) VSpace(0),
87 Child
, (IPTR
) ColGroup(2),
88 MUIA_Group_VertSpacing
, 2,
89 Child
, (IPTR
) Label(_(MSG_HORIZONTAL
)),
90 Child
, (IPTR
) (d
.spacing_horiz_slider
= (Object
*)MakeSpacingSlider()),
91 Child
, (IPTR
) Label(_(MSG_VERTICAL
)),
92 Child
, (IPTR
) (d
.spacing_vert_slider
= (Object
*)MakeSpacingSlider()),
94 Child
, (IPTR
) VSpace(0),
97 GroupFrameT(_(MSG_REGISTER
)),
98 Child
, (IPTR
) VSpace(0),
100 Child
, (IPTR
) HSpace(0),
101 Child
, (IPTR
) Label1(_(MSG_DEFAULT_SIZE_TRUNCATE_TITLES
)),
102 Child
, (IPTR
) (d
.truncate_titles_checkmark
= MakeCheck(NULL
)),
103 End
, /* HGroup recessed CM */
104 Child
, (IPTR
) VSpace(0),
107 Child
, (IPTR
) VGroup
,
108 Child
, (IPTR
) HGroup
,
109 GroupFrameT(_(MSG_FRAME
)),
110 MUIA_Group_SameWidth
, TRUE
,
111 Child
, (IPTR
) VGroup
,
112 MUIA_Group_VertSpacing
, 1,
113 Child
, (IPTR
) (d
.normal_popframe
= MakePopframe()),
114 Child
, (IPTR
) CLabel(_(MSG_NORMAL
)),
116 Child
, (IPTR
) VGroup
,
117 MUIA_Group_VertSpacing
, 1,
118 Child
, (IPTR
) (d
.virtual_popframe
= MakePopframe()),
119 Child
, (IPTR
) CLabel(_(MSG_VIRTUAL
)),
122 Child
, (IPTR
) HGroup
,
123 GroupFrameT(_(MSG_BACKGROUND
)),
124 MUIA_Group_SameWidth
, TRUE
,
125 Child
, (IPTR
) VGroup
,
126 MUIA_Group_VertSpacing
, 1,
127 Child
, (IPTR
) (d
.background_framed_popimage
= MakeBackgroundPopimage()),
128 Child
, (IPTR
) CLabel(_(MSG_FRAMED
)),
130 Child
, (IPTR
) VGroup
,
131 MUIA_Group_VertSpacing
, 1,
132 Child
, (IPTR
) (d
.background_page_popimage
= MakeBackgroundPopimage()),
133 Child
, (IPTR
) CLabel(_(MSG_PAGE
)),
135 Child
, (IPTR
) VGroup
,
136 MUIA_Group_VertSpacing
, 1,
137 Child
, (IPTR
) (d
.background_register_popimage
= MakeBackgroundPopimage()),
138 Child
, (IPTR
) CLabel(_(MSG_REGISTER
)),
140 End
, /* Background */
142 TAG_MORE
, (IPTR
) msg
->ops_AttrList
145 if (!obj
) return FALSE
;
147 data
= INST_DATA(cl
, obj
);
154 static IPTR
GroupsP_ConfigToGadgets(struct IClass
*cl
, Object
*obj
,
155 struct MUIP_Settingsgroup_ConfigToGadgets
*msg
)
157 struct MUI_GroupsPData
*data
= INST_DATA(cl
, obj
);
161 setstring(data
->font_title_string
, (IPTR
)FindFont(MUICFG_Font_Title
));
164 spec
= (STRPTR
)DoMethod(msg
->configdata
, MUIM_Configdata_GetString
,
165 MUICFG_Background_Framed
);
166 set(data
->background_framed_popimage
,MUIA_Imagedisplay_Spec
, (IPTR
)spec
);
168 spec
= (STRPTR
)DoMethod(msg
->configdata
, MUIM_Configdata_GetString
,
169 MUICFG_Background_Register
);
170 set(data
->background_register_popimage
,MUIA_Imagedisplay_Spec
, (IPTR
)spec
);
172 spec
= (STRPTR
)DoMethod(msg
->configdata
, MUIM_Configdata_GetString
,
173 MUICFG_Background_Page
);
174 set(data
->background_page_popimage
,MUIA_Imagedisplay_Spec
, (IPTR
)spec
);
177 spec
= (STRPTR
)DoMethod(msg
->configdata
, MUIM_Configdata_GetString
,
179 set(data
->normal_popframe
, MUIA_Framedisplay_Spec
, (IPTR
)spec
);
181 spec
= (STRPTR
)DoMethod(msg
->configdata
, MUIM_Configdata_GetString
,
182 MUICFG_Frame_Virtual
);
183 set(data
->virtual_popframe
, MUIA_Framedisplay_Spec
, (IPTR
)spec
);
186 setslider(data
->spacing_horiz_slider
,
187 DoMethod(msg
->configdata
, MUIM_Configdata_GetULong
,
188 MUICFG_Group_HSpacing
));
189 setslider(data
->spacing_vert_slider
,
190 DoMethod(msg
->configdata
, MUIM_Configdata_GetULong
,
191 MUICFG_Group_VSpacing
));
194 setcheckmark(data
->truncate_titles_checkmark
,
195 DoMethod(msg
->configdata
, MUIM_Configdata_GetULong
,
196 MUICFG_Register_TruncateTitles
));
199 set(data
->title_position_cycle
, MUIA_Cycle_Active
,
200 DoMethod(msg
->configdata
, MUIM_Configdata_GetULong
, MUICFG_GroupTitle_Position
));
201 set(data
->title_color_cycle
, MUIA_Cycle_Active
,
202 DoMethod(msg
->configdata
, MUIM_Configdata_GetULong
, MUICFG_GroupTitle_Color
));
208 static IPTR
GroupsP_GadgetsToConfig(struct IClass
*cl
, Object
*obj
,
209 struct MUIP_Settingsgroup_GadgetsToConfig
*msg
)
211 struct MUI_GroupsPData
*data
= INST_DATA(cl
, obj
);
215 str
= getstring(data
->font_title_string
);
216 DoMethod(msg
->configdata
, MUIM_Configdata_SetFont
, MUICFG_Font_Title
, (IPTR
)str
);
219 str
= (STRPTR
)XGET(data
->background_framed_popimage
,MUIA_Imagedisplay_Spec
);
220 DoMethod(msg
->configdata
, MUIM_Configdata_SetImspec
, MUICFG_Background_Framed
,
223 str
= (STRPTR
)XGET(data
->background_register_popimage
,MUIA_Imagedisplay_Spec
);
224 DoMethod(msg
->configdata
, MUIM_Configdata_SetImspec
, MUICFG_Background_Register
,
227 str
= (STRPTR
)XGET(data
->background_page_popimage
,MUIA_Imagedisplay_Spec
);
228 DoMethod(msg
->configdata
, MUIM_Configdata_SetImspec
, MUICFG_Background_Page
,
232 str
= (STRPTR
)XGET(data
->normal_popframe
, MUIA_Framedisplay_Spec
);
233 DoMethod(msg
->configdata
, MUIM_Configdata_SetFramespec
, MUICFG_Frame_Group
,
235 str
= (STRPTR
)XGET(data
->virtual_popframe
, MUIA_Framedisplay_Spec
);
236 DoMethod(msg
->configdata
, MUIM_Configdata_SetFramespec
, MUICFG_Frame_Virtual
,
240 DoMethod(msg
->configdata
, MUIM_Configdata_SetULong
, MUICFG_Group_HSpacing
,
241 XGET(data
->spacing_horiz_slider
, MUIA_Numeric_Value
));
242 DoMethod(msg
->configdata
, MUIM_Configdata_SetULong
, MUICFG_Group_VSpacing
,
243 XGET(data
->spacing_vert_slider
, MUIA_Numeric_Value
));
246 DoMethod(msg
->configdata
, MUIM_Configdata_SetULong
, MUICFG_Register_TruncateTitles
,
247 XGET(data
->truncate_titles_checkmark
, MUIA_Selected
));
250 DoMethod(msg
->configdata
, MUIM_Configdata_SetULong
, MUICFG_GroupTitle_Position
,
251 XGET(data
->title_position_cycle
, MUIA_Cycle_Active
));
252 DoMethod(msg
->configdata
, MUIM_Configdata_SetULong
, MUICFG_GroupTitle_Color
,
253 XGET(data
->title_color_cycle
, MUIA_Cycle_Active
));
259 BOOPSI_DISPATCHER(IPTR
, GroupsP_Dispatcher
, cl
, obj
, msg
)
261 switch (msg
->MethodID
)
263 case OM_NEW
: return GroupsP_New(cl
, obj
, (struct opSet
*)msg
);
264 case MUIM_Settingsgroup_ConfigToGadgets
: return GroupsP_ConfigToGadgets(cl
,obj
,(APTR
)msg
);break;
265 case MUIM_Settingsgroup_GadgetsToConfig
: return GroupsP_GadgetsToConfig(cl
,obj
,(APTR
)msg
);break;
268 return DoSuperMethodA(cl
, obj
, msg
);
270 BOOPSI_DISPATCHER_END
275 const struct __MUIBuiltinClass _MUIP_Groups_desc
= {
278 sizeof(struct MUI_GroupsPData
),
279 (void*)GroupsP_Dispatcher
283 static const UBYTE icon32
[] =
285 0x00, 0x00, 0x00, 0x18, // width
286 0x00, 0x00, 0x00, 0x13, // height
288 0x00, 0x00, 0x00, 0x5d, // number of bytes
290 0x42, 0x5a, 0x68, 0x39, 0x31, 0x41, 0x59, 0x26, 0x53, 0x59, 0x6d, 0x7f,
291 0xa4, 0x99, 0x00, 0x02, 0x9e, 0x66, 0x02, 0xa0, 0x00, 0x20, 0x00, 0x02,
292 0x00, 0x02, 0x01, 0x42, 0x40, 0x00, 0x00, 0xa0, 0x00, 0x91, 0x10, 0x64,
293 0xc4, 0x05, 0x25, 0x44, 0x3c, 0xa7, 0x55, 0x65, 0x81, 0x65, 0x8b, 0x64,
294 0x5f, 0x54, 0x93, 0x94, 0x93, 0xb4, 0x93, 0xd1, 0x1c, 0xd5, 0x5f, 0xb0,
295 0x39, 0xca, 0x7c, 0xf7, 0x6f, 0x35, 0x53, 0x80, 0xbb, 0x8d, 0x33, 0x2c,
296 0x53, 0x15, 0x62, 0xc8, 0x9e, 0x15, 0x69, 0x78, 0x5b, 0x6b, 0xc5, 0xdc,
297 0x91, 0x4e, 0x14, 0x24, 0x1b, 0x5f, 0xe9, 0x26, 0x40,
301 Object
*groupsclass_get_icon(void)
303 return RawimageObject
,
304 MUIA_Rawimage_Data
, icon32
,