Paolones's icons for Zune Prefs Editor.
[AROS.git] / workbench / prefs / Zune / groupsp.c
blob4342a67adb1a9a4fef0b4b2b226869e3d1007f54
1 /*
2 Copyright © 2002-2006, The AROS Development Team. All rights reserved.
3 $Id$
4 */
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>
18 #ifdef __AROS__
19 #include <proto/alib.h>
20 #endif
22 #include "zunestuff.h"
23 #include <string.h>
25 /* #define DEBUG 1 */
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
63 cl, obj, NULL,
65 MUIA_Group_SameWidth, TRUE,
66 MUIA_Group_Horiz, TRUE,
67 Child, (IPTR) VGroup,
68 Child, (IPTR) VGroup,
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)),
81 End, /* Title */
82 Child, (IPTR) VSpace(0),
83 End,
84 Child, (IPTR) VGroup,
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()),
93 End, /* Spacing */
94 Child, (IPTR) VSpace(0),
95 End,
96 Child, (IPTR) VGroup,
97 GroupFrameT(_(MSG_REGISTER)),
98 Child, (IPTR) VSpace(0),
99 Child, (IPTR) HGroup,
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),
105 End,
106 End,
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)),
115 End,
116 Child, (IPTR) VGroup,
117 MUIA_Group_VertSpacing, 1,
118 Child, (IPTR) (d.virtual_popframe = MakePopframe()),
119 Child, (IPTR) CLabel(_(MSG_VIRTUAL)),
120 End,
121 End, /* Frame */
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)),
129 End,
130 Child, (IPTR) VGroup,
131 MUIA_Group_VertSpacing, 1,
132 Child, (IPTR) (d.background_page_popimage = MakeBackgroundPopimage()),
133 Child, (IPTR) CLabel(_(MSG_PAGE)),
134 End,
135 Child, (IPTR) VGroup,
136 MUIA_Group_VertSpacing, 1,
137 Child, (IPTR) (d.background_register_popimage = MakeBackgroundPopimage()),
138 Child, (IPTR) CLabel(_(MSG_REGISTER)),
139 End,
140 End, /* Background */
141 End,
142 TAG_MORE, (IPTR) msg->ops_AttrList
145 if (!obj) return FALSE;
147 data = INST_DATA(cl, obj);
148 *data = d;
150 return (IPTR)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);
158 STRPTR spec;
160 /* Fonts */
161 setstring(data->font_title_string, (IPTR)FindFont(MUICFG_Font_Title));
163 /* Backgrounds */
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);
176 /* Frames */
177 spec = (STRPTR)DoMethod(msg->configdata, MUIM_Configdata_GetString,
178 MUICFG_Frame_Group);
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);
185 /* Spacing */
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));
193 /* Checkmark */
194 setcheckmark(data->truncate_titles_checkmark,
195 DoMethod(msg->configdata, MUIM_Configdata_GetULong,
196 MUICFG_Register_TruncateTitles));
198 /* Title (Cycles) */
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));
204 return 1;
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);
212 STRPTR str;
214 /* Fonts */
215 str = getstring(data->font_title_string);
216 DoMethod(msg->configdata, MUIM_Configdata_SetFont, MUICFG_Font_Title, (IPTR)str);
218 /* Backgrounds */
219 str = (STRPTR)XGET(data->background_framed_popimage,MUIA_Imagedisplay_Spec);
220 DoMethod(msg->configdata, MUIM_Configdata_SetImspec, MUICFG_Background_Framed,
221 (IPTR)str);
223 str = (STRPTR)XGET(data->background_register_popimage,MUIA_Imagedisplay_Spec);
224 DoMethod(msg->configdata, MUIM_Configdata_SetImspec, MUICFG_Background_Register,
225 (IPTR)str);
227 str = (STRPTR)XGET(data->background_page_popimage,MUIA_Imagedisplay_Spec);
228 DoMethod(msg->configdata, MUIM_Configdata_SetImspec, MUICFG_Background_Page,
229 (IPTR)str);
231 /* Frames */
232 str = (STRPTR)XGET(data->normal_popframe, MUIA_Framedisplay_Spec);
233 DoMethod(msg->configdata, MUIM_Configdata_SetFramespec, MUICFG_Frame_Group,
234 (IPTR)str);
235 str = (STRPTR)XGET(data->virtual_popframe, MUIA_Framedisplay_Spec);
236 DoMethod(msg->configdata, MUIM_Configdata_SetFramespec, MUICFG_Frame_Virtual,
237 (IPTR)str);
239 /* Spacing */
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));
245 /* Checkmark */
246 DoMethod(msg->configdata, MUIM_Configdata_SetULong, MUICFG_Register_TruncateTitles,
247 XGET(data->truncate_titles_checkmark, MUIA_Selected));
249 /* Title (Cycles) */
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));
255 return TRUE;
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
273 * Class descriptor.
275 const struct __MUIBuiltinClass _MUIP_Groups_desc = {
276 "Groups",
277 MUIC_Group,
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
287 'B', 'Z', '2', '\0',
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,
305 End;