cleanup composer/compositing/composition -> compositor
[AROS.git] / test / Zune / test.c
blob6dee3e65065067e6d33675454435db96bcd84d12
1 /*
2 Copyright © 2002-2013, The AROS Development Team.
3 All rights reserved.
5 $Id$
6 */
8 #define INTUITION_NO_INLINE_STDARG
10 #include <exec/types.h>
11 #include <stdlib.h>
12 #include <stdio.h>
13 #include <string.h>
15 #include <clib/alib_protos.h>
16 #include <intuition/gadgetclass.h>
17 #include <intuition/icclass.h>
18 #include <libraries/asl.h>
19 #include <gadgets/colorwheel.h>
20 #include <proto/exec.h>
21 #include <proto/intuition.h>
22 #include <proto/dos.h>
23 #include <proto/muimaster.h>
24 #include <proto/graphics.h>
25 #include <aros/debug.h>
27 /* the following should go in a single include file which then only
28 ** constits of the public constants and members. Actually this is easy
31 #define TEST_ICONLIST
33 #include <libraries/mui.h>
34 #if defined(TEST_ICONLIST)
35 #include "../../workbench/system/Wanderer/Classes/iconlist_attributes.h"
36 #include "../../workbench/system/Wanderer/Classes/iconlist.h"
37 #endif
39 struct Library *MUIMasterBase;
40 struct Library *ColorWheelBase;
42 struct list_entry
44 char *column1;
45 char *column2;
48 Object *app;
50 Object *wheel;
51 Object *r_slider;
52 Object *g_slider;
53 Object *b_slider;
54 Object *hue_gauge;
55 Object *group;
56 Object *editor_text;
57 Object *filename_string;
58 Object *save_button;
59 Object *list2;
61 Object *drawer_iconlist;
62 Object *volume_iconlist;
64 AROS_UFH0(void, repeat_function)
66 AROS_USERFUNC_INIT
68 printf("MUI_Timer\n");
70 AROS_USERFUNC_EXIT
73 AROS_UFH0(void, wheel_function)
75 AROS_USERFUNC_INIT
77 nnset(r_slider,MUIA_Numeric_Value, (XGET(wheel,WHEEL_Red) >> 24) & 0xff);
78 nnset(g_slider,MUIA_Numeric_Value, (XGET(wheel,WHEEL_Green) >> 24) & 0xff);
79 nnset(b_slider,MUIA_Numeric_Value, (XGET(wheel,WHEEL_Blue) >> 24) & 0xff);
81 AROS_USERFUNC_EXIT
84 AROS_UFH0(void, slider_function)
86 AROS_USERFUNC_INIT
88 struct ColorWheelRGB cw;
89 ULONG red = XGET(r_slider,MUIA_Numeric_Value);
90 ULONG green = XGET(g_slider,MUIA_Numeric_Value);
91 ULONG blue = XGET(b_slider,MUIA_Numeric_Value);
93 cw.cw_Red = (red<<24)|(red<<16)|(red<<8)|red;
94 cw.cw_Green = (green<<24)|(green<<16)|(green<<8)|green;
95 cw.cw_Blue = (blue<<24)|(blue<<16)|(blue<<8)|blue;
97 nnset(wheel, WHEEL_RGB, &cw);
98 set(hue_gauge, MUIA_Gauge_Current, XGET(wheel,WHEEL_Hue));
100 AROS_USERFUNC_EXIT
103 AROS_UFH0(void, objects_function)
105 AROS_USERFUNC_INIT
107 Object *new_obj = MUI_MakeObject(MUIO_Button,"Button");
108 if (new_obj)
110 DoMethod(group, MUIM_Group_InitChange);
111 DoMethod(group, OM_ADDMEMBER, new_obj);
112 DoMethod(group, MUIM_Group_ExitChange);
115 AROS_USERFUNC_EXIT
118 AROS_UFH0(void, about_function)
120 AROS_USERFUNC_INIT
122 static Object *about_wnd;
123 if (!about_wnd)
125 about_wnd = AboutmuiObject,
126 MUIA_Aboutmui_Application, app,
127 End;
130 if (about_wnd) set(about_wnd,MUIA_Window_Open,TRUE);
132 AROS_USERFUNC_EXIT
135 AROS_UFH3(void, display_function,
136 AROS_UFHA(struct Hook *, h, A0),
137 AROS_UFHA(char **, strings, A2),
138 AROS_UFHA(struct list_entry *, entry, A1))
140 AROS_USERFUNC_INIT
142 static char buf[100];
143 if (entry)
145 sprintf(buf,"%ld", (long) *(strings-1));
146 strings[0] = buf;
147 strings[1] = entry->column1;
148 strings[2] = entry->column2;
149 } else
151 strings[0] = "Number";
152 strings[1] = "Column 1";
153 strings[2] = "Column 2";
156 AROS_USERFUNC_EXIT
159 AROS_UFH3(void, display2_function,
160 AROS_UFHA(struct Hook *, h, A0),
161 AROS_UFHA(char **, strings, A2),
162 AROS_UFHA(struct list_entry *, entry, A1))
164 AROS_USERFUNC_INIT
166 static char buf[100];
167 if (entry)
169 sprintf(buf,"line num: %ld id: %p", (long) *(strings-1), entry);
170 strings[0] = buf;
171 } else
173 strings[0] = "Number";
176 AROS_USERFUNC_EXIT
179 AROS_UFH0(void, save_function)
181 AROS_USERFUNC_INIT
183 char *text = (char*)XGET(editor_text, MUIA_Text_Contents);
184 char *filename = (char*)XGET(filename_string, MUIA_String_Contents);
185 BPTR fh;
187 if (!strlen(filename)) return;
189 if ((fh = Open(filename,MODE_NEWFILE)))
191 Write(fh,text,strlen(text));
192 Close(fh);
195 AROS_USERFUNC_EXIT
198 static int id = 1;
200 AROS_UFH0(void, add_function)
202 AROS_USERFUNC_INIT
204 DoMethod(list2,MUIM_List_InsertSingle, id++, MUIV_List_Insert_Bottom);
206 AROS_USERFUNC_EXIT
209 #if defined(TEST_ICONLIST)
210 /* IconList callbacks */
211 void volume_doubleclicked(void)
213 char buf[200];
214 struct IconList_Entry *ent = (void*)MUIV_IconList_NextIcon_Start;
215 DoMethod(volume_iconlist, MUIM_IconList_NextIcon, MUIV_IconList_NextIcon_Selected, &ent);
216 if ((IPTR)ent == MUIV_IconList_NextIcon_End) return;
218 strcpy(buf,ent->label);
219 strcat(buf,":");
220 set(drawer_iconlist,MUIA_IconDrawerList_Drawer,buf);
223 void drawer_doubleclicked(void)
225 struct IconList_Entry *ent = (void*)MUIV_IconList_NextIcon_Start;
227 DoMethod(drawer_iconlist, MUIM_IconList_NextIcon, MUIV_IconList_NextIcon_Selected, &ent);
228 if ((IPTR)ent == MUIV_IconList_NextIcon_End) return;
229 set(drawer_iconlist,MUIA_IconDrawerList_Drawer,ent->ile_IconEntry->ie_IconNode.ln_Name);
231 #endif
233 static IPTR create_balance_column(void)
235 return (IPTR) VGroup,
236 Child, RectangleObject, GaugeFrame, End,
237 Child, BalanceObject, End,
238 Child, RectangleObject, GaugeFrame, End,
239 Child, BalanceObject, End,
240 Child, RectangleObject, GaugeFrame, End,
241 Child, BalanceObject, End,
242 Child, RectangleObject, GaugeFrame, End,
243 Child, BalanceObject, End,
244 Child, RectangleObject, GaugeFrame, End,
245 End;
248 /* The custom class */
250 struct DropText_Data
252 ULONG times;
255 #ifdef __MAXON__
256 #undef KeymapBase
257 struct Library *KeymapBase;
258 #endif
260 #ifndef __AROS__
261 __saveds __asm IPTR dispatcher(register __a0 struct IClass *cl, register __a2 Object *obj, register __a1 Msg msg)
262 #else
263 AROS_UFH3S(IPTR, dispatcher,
264 AROS_UFHA(Class *, cl, A0),
265 AROS_UFHA(Object *, obj, A2),
266 AROS_UFHA(Msg , msg, A1))
267 #endif
269 AROS_USERFUNC_INIT
271 switch (msg->MethodID)
273 case MUIM_DragQuery: return MUIV_DragQuery_Accept;
274 case MUIM_DragDrop:
276 struct DropText_Data *data = (struct DropText_Data*)INST_DATA(cl,obj);
277 char buf[100];
278 data->times++;
279 sprintf(buf,"%ld times",(long)data->times); /* no MUIM_SetAsString yet */
280 set(obj,MUIA_Text_Contents,buf);
284 return DoSuperMethodA(cl,obj,(Msg)msg);
286 AROS_USERFUNC_EXIT
289 struct MUI_CustomClass *CL_DropText;
291 #define DropTextObject BOOPSIOBJMACRO_START(CL_DropText->mcc_Class)
293 /* Main prog */
295 static struct Hook hook_standard;
297 AROS_UFH3(void, hook_func_standard,
298 AROS_UFHA(struct Hook *, h, A0),
299 AROS_UFHA(void *, dummy, A2),
300 AROS_UFHA(void **, funcptr, A1))
302 AROS_USERFUNC_INIT
304 void (*func) (ULONG *) = (void (*)(ULONG *)) (*funcptr);
306 if (func) func((ULONG *) funcptr + 1);
308 AROS_USERFUNC_EXIT
311 int main(void)
313 Object *wnd,*second_wnd;
314 Object *open_button;
315 Object *about_button;
316 Object *quit_button;
317 Object *repeat_button;
318 Object *objects_button;
319 Object *about_item, *quit_item;
320 Object *context_menu;
321 Object *popobject, *listview;
322 Object *list_add_button, *list_remove_button, *list_clear_button;
323 Object *country_radio[2];
325 static char *pages[] = {"Groups","Colorwheel","Virtual Group","Edit","List","Gauges","Numeric","Radio","Icon List","Balancing",NULL};
326 static char **radio_entries1 = pages;
327 static char *radio_entries2[] = {"Paris","Pataya","London","New York","Reykjavik",NULL};
329 static struct list_entry entry1 = {"Testentry1","Col2: Entry1"};
330 static struct list_entry entry2 = {"Entry2","Col2: Entry2"};
331 static struct list_entry entry3 = {"Entry3","Col2: Entry3"};
332 static struct list_entry entry4 = {"Entry4","Col2: Entry4"};
333 static struct list_entry entry5 = {"Entry5","Col2: Entry5"};
334 static struct list_entry entry6 = {"Entry6","Col2: Entry6"};
336 static struct list_entry *entries[] =
337 {&entry1,&entry2,&entry3,&entry4,&entry5,&entry6,NULL};
339 struct Hook hook;
340 struct Hook hook_wheel;
341 struct Hook hook_slider;
342 struct Hook hook_objects;
343 struct Hook hook_display;
344 struct Hook hook_display2;
346 hook_standard.h_Entry = (HOOKFUNC)hook_func_standard;
348 MUIMasterBase = (struct Library*)OpenLibrary("muimaster.library",0);
350 hook.h_Entry = (HOOKFUNC)repeat_function;
351 hook_wheel.h_Entry = (HOOKFUNC)wheel_function;
352 hook_slider.h_Entry = (HOOKFUNC)slider_function;
353 hook_objects.h_Entry = (HOOKFUNC)objects_function;
354 hook_display.h_Entry = (HOOKFUNC)display_function;
355 hook_display2.h_Entry = (HOOKFUNC)display2_function;
357 context_menu = MenuitemObject,
358 MUIA_Family_Child, MenuitemObject,
359 MUIA_Menuitem_Title, "Menutest",
360 MUIA_Family_Child, about_item = MenuitemObject, MUIA_Menuitem_Title, "First Test Entry", End,
361 MUIA_Family_Child, quit_item = MenuitemObject, MUIA_Menuitem_Title, "Second Test Entry", End,
362 End,
363 End;
365 /* should check the result in a real program! */
366 CL_DropText = MUI_CreateCustomClass(NULL,MUIC_Text,NULL,sizeof(struct DropText_Data), dispatcher);
367 ColorWheelBase = OpenLibrary("gadgets/colorwheel.gadget",0);
369 app = ApplicationObject,
370 MUIA_Application_Menustrip, MenuitemObject,
371 MUIA_Family_Child, MenuitemObject,
372 MUIA_Menuitem_Title, "Project",
373 MUIA_Family_Child, about_item = MenuitemObject, MUIA_Menuitem_Title, "About...", MUIA_Menuitem_Shortcut, "?", End,
374 MUIA_Family_Child, MenuitemObject, MUIA_Menuitem_Title, (SIPTR)-1, End,
375 MUIA_Family_Child, quit_item = MenuitemObject, MUIA_Menuitem_Title, "Quit", MUIA_Menuitem_Shortcut, "Q", End,
376 End,
377 End,
378 SubWindow, wnd = WindowObject,
379 MUIA_Window_Title, "test",
380 MUIA_Window_Activate, TRUE,
382 WindowContents, VGroup,
383 Child, TextObject, MUIA_Background, "2:cfffffff,cfffffff,10000000", TextFrame, MUIA_Text_Contents, "\33cHello World!!\nThis is a text object\n\33lLeft \33bbold\33n\n\33rRight",End,
384 Child, popobject = PopobjectObject,
385 MUIA_Popstring_String, MUI_MakeObject(MUIO_String, NULL, 200),
386 MUIA_Popstring_Button, PopButton(MUII_PopUp),
387 MUIA_Popobject_Object, VGroup,
388 Child, TextObject,MUIA_Text_Contents,"test",End,
389 Child, listview = ListviewObject,
390 MUIA_Listview_List, ListObject,
391 InputListFrame,
392 MUIA_List_DisplayHook, &hook_display,
393 MUIA_List_Format, ",,",
394 MUIA_List_SourceArray, entries,
395 MUIA_List_Title, TRUE,
396 End,
397 End,
398 End,
399 End,
400 Child, RegisterGroup(pages),
401 // MUIA_Background, "5:SYS:Prefs/Presets/Backdrops/StuccoBlue.pic",
402 Child, HGroup,
403 GroupFrameT("A horizontal group"),
404 Child, ColGroup(2),
405 GroupFrameT("A column group"),
406 Child, repeat_button = TextObject, MUIA_CycleChain, 1, ButtonFrame, MUIA_Background, MUII_ButtonBack, MUIA_Text_PreParse, "\33c", MUIA_Text_Contents, "Repeat", MUIA_InputMode, MUIV_InputMode_RelVerify, End,
407 Child, TextObject, MUIA_CycleChain, 1, ButtonFrame, MUIA_Background, MUII_ButtonBack, MUIA_Text_PreParse, "\33c", MUIA_Text_Contents, "Drag Me", MUIA_Draggable, TRUE, MUIA_InputMode, MUIV_InputMode_RelVerify, End,
408 Child, open_button = TextObject, MUIA_CycleChain, 1, ButtonFrame, MUIA_Background, MUII_ButtonBack, MUIA_Text_PreParse, "\33c", MUIA_Text_Contents, "Open Window", MUIA_InputMode, MUIV_InputMode_RelVerify, End,
409 Child, TextObject, MUIA_ContextMenu, context_menu, MUIA_CycleChain, 1, ButtonFrame, MUIA_Background, MUII_ButtonBack, MUIA_Text_PreParse, "\33c", MUIA_Text_Contents, "Press Right", MUIA_InputMode, MUIV_InputMode_RelVerify, End,
410 Child, objects_button = TextObject, MUIA_CycleChain, 1, ButtonFrame, MUIA_Background, MUII_ButtonBack, MUIA_Text_PreParse, "\33c", MUIA_Text_Contents, "Add Objects", MUIA_InputMode, MUIV_InputMode_RelVerify, End,
411 Child, HVSpace, //TextObject, MUIA_CycleChain, 1, ButtonFrame, MUIA_Background, MUII_ButtonBack, MUIA_Text_PreParse, "\33c", MUIA_Text_Contents, "Button6", MUIA_InputMode, MUIV_InputMode_RelVerify, End,
412 Child, MUI_MakeObject(MUIO_Label,"_Checkmark",0),
413 Child, MUI_MakeObject(MUIO_Checkmark,"_Checkmark"),
414 End,
415 Child, group = VGroup,
416 GroupFrameT("A vertical group"),
417 Child, DropTextObject, MUIA_Dropable, TRUE, MUIA_CycleChain, 1, ButtonFrame, MUIA_Background, MUII_ButtonBack, MUIA_Text_PreParse, "\33c", MUIA_Text_Contents, "Drop Here", MUIA_Dropable, TRUE, MUIA_InputMode, MUIV_InputMode_RelVerify, End,
418 Child, TextObject, TextFrame, MUIA_Background, MUII_MARKHALFSHINE, MUIA_CycleChain, 1, MUIA_Text_PreParse, "\33c", MUIA_Text_Contents, "Pattern", End,
419 Child, ColoradjustObject, End,
421 End,
422 Child, MUI_NewObject(MUIC_Popimage, TAG_DONE),
423 End,
425 Child, VGroup,
426 Child, wheel = BoopsiObject, /* MUI and Boopsi tags mixed */
427 GroupFrame,
428 MUIA_Boopsi_ClassID , "colorwheel.gadget",
429 MUIA_Boopsi_MinWidth , 30, /* boopsi objects don't know */
430 MUIA_Boopsi_MinHeight, 30, /* their sizes, so we help */
431 MUIA_Boopsi_Remember , WHEEL_Saturation, /* keep important values */
432 MUIA_Boopsi_Remember , WHEEL_Hue, /* during window resize */
433 MUIA_Boopsi_TagScreen, WHEEL_Screen, /* this magic fills in */
434 WHEEL_Screen , NULL, /* the screen pointer */
435 GA_Left , 0,
436 GA_Top , 0, /* MUI will automatically */
437 GA_Width , 0, /* fill in the correct values */
438 GA_Height , 0,
439 ICA_TARGET , ICTARGET_IDCMP, /* needed for notification */
440 WHEEL_Saturation, 0, /* start in the center */
441 MUIA_FillArea, TRUE, /* use this because it defaults to FALSE
442 for boopsi gadgets but the colorwheel
443 doesnt bother about redrawing its backgorund */
444 End,
446 Child, r_slider = SliderObject, MUIA_Group_Horiz, TRUE, MUIA_Numeric_Min, 0, MUIA_Numeric_Max, 255, End,
447 Child, g_slider = SliderObject, MUIA_Group_Horiz, TRUE, MUIA_Numeric_Min, 0, MUIA_Numeric_Max, 255, End,
448 Child, b_slider = SliderObject, MUIA_Group_Horiz, TRUE, MUIA_Numeric_Min, 0, MUIA_Numeric_Max, 255, End,
450 Child, hue_gauge = GaugeObject, GaugeFrame, MUIA_Gauge_Horiz, TRUE, MUIA_Gauge_Max, 255, MUIA_Gauge_Divide, 1<<24, MUIA_Gauge_InfoText, "Hue: %ld",End,
451 End,
453 Child, ScrollgroupObject,
454 MUIA_Scrollgroup_Contents, VGroupV,
455 VirtualFrame,
456 Child, TextObject,
457 TextFrame,
458 MUIA_Text_Contents, "Line1\nLine2\nLine3\nLine4\nLine5\nLine6\nLine7\nLine8\n\n\n\nLine9\nLine10\nLine11\n",
459 End,
460 Child, HGroup,
461 Child, MUI_MakeObject(MUIO_Button,"Button9"),
462 Child, MUI_MakeObject(MUIO_Button,"Button10"),
463 End,
464 End,
465 End,
466 Child, VGroup,
467 Child, editor_text = StringObject,
468 StringFrame,
469 MUIA_Text_Multiline, TRUE,
470 End,
471 Child, PopaslObject,
472 ASLFR_DoSaveMode, TRUE,
473 MUIA_Popstring_String, filename_string = MUI_MakeObject(MUIO_String, NULL, 200),
474 MUIA_Popstring_Button, PopButton(MUII_PopFile),
475 End,
476 Child, save_button = MUI_MakeObject(MUIO_Button, "Save"),
477 End,
478 Child, VGroup,
479 Child, ListviewObject,
480 MUIA_Listview_List, list2 = ListObject,
481 InputListFrame,
482 MUIA_List_DisplayHook, &hook_display2,
483 End,
484 End,
485 Child, HGroup,
486 Child, list_add_button = MUI_MakeObject(MUIO_Button,"_Add"),
487 Child, list_remove_button = MUI_MakeObject(MUIO_Button,"_Remove"),
488 Child, list_clear_button = MUI_MakeObject(MUIO_Button,"_Clear"),
489 End,
490 End,
492 /* gauges */
493 Child, HGroup,
494 Child, VGroup,
495 Child, VGroup, GroupFrame,
496 Child, GaugeObject, GaugeFrame, MUIA_Gauge_InfoText, "%ld %%", MUIA_Gauge_Horiz, TRUE, MUIA_Gauge_Current, 25, End,
497 Child, ScaleObject, End,
498 End,
499 Child, VGroup, GroupFrame,
500 Child, GaugeObject, GaugeFrame, MUIA_Gauge_InfoText, "%ld %%", MUIA_Gauge_Horiz, TRUE, MUIA_Gauge_Current, 50, End,
501 Child, ScaleObject, End,
502 End,
503 Child, VGroup, GroupFrame,
504 Child, GaugeObject, GaugeFrame, MUIA_Gauge_InfoText, "%ld %%", MUIA_Gauge_Horiz, TRUE, MUIA_Gauge_Current, 75, End,
505 Child, ScaleObject, End,
506 End,
507 End,
508 Child, HGroup,
509 Child, HVSpace,
510 Child, GaugeObject, GaugeFrame, MUIA_Gauge_InfoText, "%ld %%", MUIA_Gauge_Current, 25, End,
511 Child, GaugeObject, GaugeFrame, MUIA_Gauge_InfoText, "%ld %%", MUIA_Gauge_Current, 50, End,
512 Child, GaugeObject, GaugeFrame, MUIA_Gauge_InfoText, "%ld %%", MUIA_Gauge_Current, 75, End,
513 Child, HVSpace,
514 End,
515 End,
517 /* numeric */
518 Child, HGroup,
519 Child, ColGroup(2), GroupFrameT("Horizontal Sliders"),
520 Child, MUI_MakeObject(MUIO_Label,"Normal:",0),
521 Child, SliderObject,
522 MUIA_Slider_Horiz, TRUE,
523 MUIA_Numeric_Min, 0,
524 MUIA_Numeric_Max, 100,
525 MUIA_CycleChain, 1,
526 End,
527 Child, MUI_MakeObject(MUIO_Label,"Reverse:",0),
528 Child, SliderObject,
529 MUIA_Numeric_Reverse, TRUE,
530 MUIA_Numeric_Min, 0,
531 MUIA_Numeric_Max, 100,
532 MUIA_CycleChain, 1,
533 End,
534 Child, MUI_MakeObject(MUIO_Label,"Quiet:",0),
535 Child, SliderObject,
536 MUIA_Slider_Quiet, TRUE,
537 MUIA_Numeric_Min, 0,
538 MUIA_Numeric_Max, 100,
539 MUIA_CycleChain, 1,
540 End,
541 End,
542 Child, ColGroup(3), GroupFrameT("Vertical Sliders"),
543 Child, MUI_MakeObject(MUIO_Label,"Normal",0),
544 Child, MUI_MakeObject(MUIO_Label,"Reverse",0),
545 Child, MUI_MakeObject(MUIO_Label,"Quiet",0),
546 Child, SliderObject,
547 MUIA_Slider_Horiz, FALSE,
548 MUIA_Numeric_Min, 0,
549 MUIA_Numeric_Max, 100,
550 MUIA_CycleChain, 1,
551 End,
552 Child, SliderObject,
553 MUIA_Slider_Horiz, FALSE,
554 MUIA_Numeric_Reverse, TRUE,
555 MUIA_Numeric_Min, 0,
556 MUIA_Numeric_Max, 100,
557 MUIA_CycleChain, 1,
558 End,
559 Child, SliderObject,
560 MUIA_Slider_Horiz, FALSE,
561 MUIA_Slider_Quiet, TRUE,
562 MUIA_Numeric_Min, 0,
563 MUIA_Numeric_Max, 100,
564 MUIA_CycleChain, 1,
565 End,
566 End,
567 Child, ColGroup(2), GroupFrameT("Numeric Buttons"),
568 Child, MUI_MakeObject(MUIO_Label,"Normal:",0),
569 Child, NumericbuttonObject,
570 MUIA_Numeric_Min, 0,
571 MUIA_Numeric_Max, 100,
572 MUIA_CycleChain, 1,
573 End,
574 Child, MUI_MakeObject(MUIO_Label,"Reverse:",0),
575 Child, NumericbuttonObject,
576 MUIA_Numeric_Reverse, TRUE,
577 MUIA_Numeric_Min, 0,
578 MUIA_Numeric_Max, 100,
579 MUIA_CycleChain, 1,
580 End,
581 End,
582 Child, ColGroup(2), GroupFrameT("Knobs"),
583 Child, MUI_MakeObject(MUIO_Label,"Normal",0),
584 Child, MUI_MakeObject(MUIO_Label,"Reverse",0),
585 Child, KnobObject,
586 MUIA_Numeric_Min, 0,
587 MUIA_Numeric_Max, 100,
588 MUIA_CycleChain, 1,
589 End,
590 Child, KnobObject,
591 MUIA_Numeric_Reverse, TRUE,
592 MUIA_Numeric_Min, 0,
593 MUIA_Numeric_Max, 100,
594 MUIA_CycleChain, 1,
595 End,
596 End,
597 End,
599 /* radios */
600 Child, HGroup,
601 Child, VGroup,
602 Child, RadioObject, GroupFrame, MUIA_Radio_Entries, radio_entries1, End,
603 Child, country_radio[0] = RadioObject, GroupFrame, MUIA_Radio_Entries, radio_entries2, MUIA_Radio_Active, 1, End,
604 End,
605 Child, HGroup,
606 Child, RadioObject, GroupFrame, MUIA_Radio_Entries, radio_entries1, End,
607 Child, country_radio[1] = RadioObject, GroupFrame, MUIA_Radio_Entries, radio_entries2, MUIA_Radio_Active, 1, End,
608 End,
609 End,
610 #if defined(TEST_ICONLIST)
611 /* iconlist */
612 Child, HGroup,
613 Child, volume_iconlist = MUI_NewObject(MUIC_IconVolumeList, GroupFrame, TAG_DONE),
614 Child, drawer_iconlist = MUI_NewObject(MUIC_IconDrawerList, GroupFrame, MUIA_IconDrawerList_Drawer,"SYS:",TAG_DONE),
615 End,
616 #endif
617 Child,HGroup,
619 Child, create_balance_column(),
620 Child, BalanceObject, End,
621 Child, create_balance_column(),
622 Child, BalanceObject, End,
624 Child, create_balance_column(),
625 Child, BalanceObject, End,
627 Child, create_balance_column(),
628 Child, BalanceObject, End,
630 Child, create_balance_column(),
632 End,
633 End,
635 Child, RectangleObject,
636 MUIA_VertWeight,0, /* Seems to be not supported properly as orginal MUI doesn't allow to alter the height of the window */
637 MUIA_Rectangle_HBar, TRUE,
638 MUIA_Rectangle_BarTitle,"Enter a string",
639 End,
641 Child, StringObject,
642 StringFrame,
643 MUIA_CycleChain,1,
644 MUIA_String_AdvanceOnCR, TRUE,
645 End,
647 Child, CycleObject,
648 ButtonFrame,
649 MUIA_Cycle_Entries, pages,
650 End,
651 Child, ScrollbarObject,
652 MUIA_Group_Horiz, TRUE,
653 MUIA_Prop_Visible, 100,
654 MUIA_Prop_Entries, 300,
655 MUIA_Prop_First, 50,
656 End,
658 Child, HGroup,
659 Child, about_button = TextObject,
660 ButtonFrame,
661 MUIA_InputMode, MUIV_InputMode_RelVerify,
662 MUIA_CycleChain, 1,
663 MUIA_Background, MUII_ButtonBack,
664 MUIA_Text_PreParse, "\33c",
665 MUIA_Text_Contents, "About",
666 End,
667 Child, quit_button = TextObject,
668 ButtonFrame,
669 MUIA_InputMode, MUIV_InputMode_RelVerify,
670 MUIA_CycleChain, 1,
671 MUIA_Background, MUII_ButtonBack,
672 MUIA_ControlChar, 'q',
673 MUIA_Text_HiChar, 'q',
674 MUIA_Text_PreParse, "\33c",
675 MUIA_Text_Contents, "Quit",
676 End,
677 End,
678 End,
679 End,
680 SubWindow, second_wnd = WindowObject,
681 MUIA_Window_Title, "Second window",
683 WindowContents, VGroup,
684 Child, DropTextObject,
685 MUIA_Text_Contents, "Drop here",
686 MUIA_Dropable, TRUE, End,
687 End,
688 End,
689 End;
691 if (app)
693 ULONG sigs = 0;
695 DoMethod(wnd, MUIM_Notify, MUIA_Window_CloseRequest, TRUE, app, 2, MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit);
696 DoMethod(second_wnd, MUIM_Notify, MUIA_Window_CloseRequest, TRUE, second_wnd, 3, MUIM_Set, MUIA_Window_Open, FALSE);
697 DoMethod(open_button, MUIM_Notify, MUIA_Pressed, FALSE, second_wnd, 3, MUIM_Set, MUIA_Window_Open, TRUE);
698 DoMethod(about_button, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_AboutMUI, NULL);
699 DoMethod(quit_button, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit);
700 DoMethod(objects_button, MUIM_Notify, MUIA_Pressed, FALSE, app, 2, MUIM_CallHook, &hook_objects);
701 DoMethod(repeat_button, MUIM_Notify, MUIA_Timer, MUIV_EveryTime, app, 2, MUIM_CallHook, &hook);
703 DoMethod(wheel, MUIM_Notify,WHEEL_Hue , MUIV_EveryTime, app, 2, MUIM_CallHook, &hook_wheel);
704 DoMethod(wheel, MUIM_Notify,WHEEL_Saturation, MUIV_EveryTime, app, 2, MUIM_CallHook, &hook_wheel);
705 DoMethod(r_slider, MUIM_Notify, MUIA_Numeric_Value, MUIV_EveryTime, app, 2, MUIM_CallHook, &hook_slider);
706 DoMethod(g_slider, MUIM_Notify, MUIA_Numeric_Value, MUIV_EveryTime, app, 2, MUIM_CallHook, &hook_slider);
707 DoMethod(b_slider, MUIM_Notify, MUIA_Numeric_Value, MUIV_EveryTime, app, 2, MUIM_CallHook, &hook_slider);
709 DoMethod(save_button, MUIM_Notify, MUIA_Pressed, FALSE, app, 3, MUIM_CallHook, &hook_standard, save_function);
711 DoMethod(quit_item, MUIM_Notify, MUIA_Menuitem_Trigger, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit);
712 DoMethod(about_item, MUIM_Notify, MUIA_Menuitem_Trigger, MUIV_EveryTime, app, 3, MUIM_CallHook, &hook_standard, about_function);
714 DoMethod(listview, MUIM_Notify, MUIA_Listview_DoubleClick, TRUE, popobject, 2, MUIM_Popstring_Close, TRUE);
716 /* The callbacks of the buttons within the list page */
717 DoMethod(list_add_button, MUIM_Notify, MUIA_Pressed, FALSE, app, 3, MUIM_CallHook, &hook_standard, add_function);
718 DoMethod(list_remove_button, MUIM_Notify, MUIA_Pressed, FALSE, list2, 2, MUIM_List_Remove, MUIV_List_Remove_Active);
719 DoMethod(list_clear_button, MUIM_Notify, MUIA_Pressed, FALSE, list2, 1, MUIM_List_Clear);
721 /* radio */
722 DoMethod(country_radio[0], MUIM_Notify, MUIA_Radio_Active, MUIV_EveryTime, country_radio[1], 3, MUIM_NoNotifySet, MUIA_Radio_Active, MUIV_TriggerValue);
723 DoMethod(country_radio[1], MUIM_Notify, MUIA_Radio_Active, MUIV_EveryTime, country_radio[0], 3, MUIM_NoNotifySet, MUIA_Radio_Active, MUIV_TriggerValue);
725 #if defined(TEST_ICONLIST)
726 /* iconlist */
727 DoMethod(volume_iconlist, MUIM_Notify, MUIA_IconList_DoubleClick, TRUE, volume_iconlist, 3, MUIM_CallHook, &hook_standard, volume_doubleclicked);
728 DoMethod(drawer_iconlist, MUIM_Notify, MUIA_IconList_DoubleClick, TRUE, drawer_iconlist, 3, MUIM_CallHook, &hook_standard, drawer_doubleclicked);
729 #endif
731 set(wnd,MUIA_Window_Open,TRUE);
732 set(wnd,MUIA_Window_ScreenTitle, "Zune Test application");
734 while((LONG) DoMethod(app, MUIM_Application_NewInput, &sigs) != MUIV_Application_ReturnID_Quit)
736 if (sigs)
738 sigs = Wait(sigs | SIGBREAKF_CTRL_C | SIGBREAKF_CTRL_D);
739 if (sigs & SIGBREAKF_CTRL_C) break;
740 if (sigs & SIGBREAKF_CTRL_D) break;
744 MUI_DisposeObject(app);
746 if (context_menu) MUI_DisposeObject(context_menu);
747 CloseLibrary(ColorWheelBase);
748 MUI_DeleteCustomClass(CL_DropText);
750 CloseLibrary(MUIMasterBase);
751 return 0;