Don't print the bus number in ata_InitBus() debug messages: with the
[AROS.git] / test / Zune / test.c
blobeac234b5e68952ecd42a3ec97dfd912d6ec189e5
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 ** consists 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 #define LIST_COUNT 5
41 #define NUMERIC_MIN 0
42 #define NUMERIC_MAX 100
44 enum
46 HNSLIDER,
47 HRSLIDER,
48 HQSLIDER,
49 VNSLIDER,
50 VRSLIDER,
51 VQSLIDER,
52 NNUMERICBUTTON,
53 RNUMERICBUTTON,
54 NKNOB,
55 RKNOB,
56 NUMERIC_COUNT
59 struct Library *MUIMasterBase;
60 struct Library *ColorWheelBase;
62 struct list_entry
64 char *column1;
65 char *column2;
68 Object *app;
70 Object *wheel;
71 Object *r_slider;
72 Object *g_slider;
73 Object *b_slider;
74 Object *hue_gauge;
75 Object *group;
76 Object *editor_text;
77 Object *filename_string;
78 Object *save_button;
79 Object *list2;
81 Object *drawer_iconlist;
82 Object *volume_iconlist;
84 AROS_UFH0(void, repeat_function)
86 AROS_USERFUNC_INIT
88 printf("MUI_Timer\n");
90 AROS_USERFUNC_EXIT
93 AROS_UFH0(void, wheel_function)
95 AROS_USERFUNC_INIT
97 nnset(r_slider, MUIA_Numeric_Value, (XGET(wheel,
98 WHEEL_Red) >> 24) & 0xff);
99 nnset(g_slider, MUIA_Numeric_Value, (XGET(wheel,
100 WHEEL_Green) >> 24) & 0xff);
101 nnset(b_slider, MUIA_Numeric_Value, (XGET(wheel,
102 WHEEL_Blue) >> 24) & 0xff);
104 AROS_USERFUNC_EXIT
107 AROS_UFH0(void, slider_function)
109 AROS_USERFUNC_INIT
111 struct ColorWheelRGB cw;
112 ULONG red = XGET(r_slider, MUIA_Numeric_Value);
113 ULONG green = XGET(g_slider, MUIA_Numeric_Value);
114 ULONG blue = XGET(b_slider, MUIA_Numeric_Value);
116 cw.cw_Red = (red << 24) | (red << 16) | (red << 8) | red;
117 cw.cw_Green = (green << 24) | (green << 16) | (green << 8) | green;
118 cw.cw_Blue = (blue << 24) | (blue << 16) | (blue << 8) | blue;
120 nnset(wheel, WHEEL_RGB, &cw);
121 set(hue_gauge, MUIA_Gauge_Current, XGET(wheel, WHEEL_Hue));
123 AROS_USERFUNC_EXIT
126 AROS_UFH0(void, objects_function)
128 AROS_USERFUNC_INIT
130 Object *new_obj = MUI_MakeObject(MUIO_Button, "Button");
131 if (new_obj)
133 DoMethod(group, MUIM_Group_InitChange);
134 DoMethod(group, OM_ADDMEMBER, new_obj);
135 DoMethod(group, MUIM_Group_ExitChange);
138 AROS_USERFUNC_EXIT
141 AROS_UFH0(void, about_function)
143 AROS_USERFUNC_INIT
145 static Object *about_wnd;
147 if (!about_wnd)
149 about_wnd = AboutmuiObject, MUIA_Aboutmui_Application, app, End;
152 if (about_wnd)
153 set(about_wnd, MUIA_Window_Open, TRUE);
155 AROS_USERFUNC_EXIT
158 AROS_UFH3(void, display_function,
159 AROS_UFHA(struct Hook *, h, A0),
160 AROS_UFHA(char **, strings, A2),
161 AROS_UFHA(struct list_entry *, entry, A1))
163 AROS_USERFUNC_INIT
165 static char buf[100];
167 if (entry)
169 sprintf(buf, "%ld", (long)*(strings - 1));
170 strings[0] = buf;
171 strings[1] = entry->column1;
172 strings[2] = entry->column2;
174 else
176 strings[0] = "Number";
177 strings[1] = "Column 1";
178 strings[2] = "Column 2";
181 AROS_USERFUNC_EXIT
184 AROS_UFH3(void, display2_function,
185 AROS_UFHA(struct Hook *, h, A0),
186 AROS_UFHA(char **, strings, A2),
187 AROS_UFHA(struct list_entry *, entry, A1))
189 AROS_USERFUNC_INIT
191 static char buf[100];
193 if (entry)
195 sprintf(buf, "line num: %ld id: %p", (long)*(strings - 1), entry);
196 strings[0] = buf;
198 else
200 strings[0] = "Number";
203 AROS_USERFUNC_EXIT
206 AROS_UFH0(void, save_function)
208 AROS_USERFUNC_INIT
210 char *text = (char *)XGET(editor_text, MUIA_Text_Contents);
211 char *filename = (char *)XGET(filename_string, MUIA_String_Contents);
212 BPTR fh;
214 if (!strlen(filename))
215 return;
217 if ((fh = Open(filename, MODE_NEWFILE)))
219 Write(fh, text, strlen(text));
220 Close(fh);
223 AROS_USERFUNC_EXIT
226 static int id = 1;
228 AROS_UFH0(void, add_function)
230 AROS_USERFUNC_INIT
232 DoMethod(list2, MUIM_List_InsertSingle, id++,
233 MUIV_List_Insert_Bottom);
235 AROS_USERFUNC_EXIT
238 #if defined(TEST_ICONLIST)
239 /* IconList callbacks */
240 void volume_doubleclicked(void)
242 char buf[200];
243 struct IconList_Entry *ent = (void *)MUIV_IconList_NextIcon_Start;
245 DoMethod(volume_iconlist, MUIM_IconList_NextIcon,
246 MUIV_IconList_NextIcon_Selected, &ent);
247 if ((IPTR) ent == MUIV_IconList_NextIcon_End)
248 return;
250 strcpy(buf, ent->label);
251 strcat(buf, ":");
252 set(drawer_iconlist, MUIA_IconDrawerList_Drawer, buf);
255 void drawer_doubleclicked(void)
257 struct IconList_Entry *ent = (void *)MUIV_IconList_NextIcon_Start;
259 DoMethod(drawer_iconlist, MUIM_IconList_NextIcon,
260 MUIV_IconList_NextIcon_Selected, &ent);
261 if ((IPTR) ent == MUIV_IconList_NextIcon_End)
262 return;
263 set(drawer_iconlist, MUIA_IconDrawerList_Drawer,
264 ent->ile_IconEntry->ie_IconNode.ln_Name);
266 #endif
268 static IPTR create_balance_column(void)
270 return (IPTR) VGroup,
271 Child, RectangleObject,
272 GaugeFrame,
273 End,
274 Child, BalanceObject,
275 End,
276 Child, RectangleObject,
277 GaugeFrame,
278 End,
279 Child, BalanceObject,
280 End,
281 Child, RectangleObject,
282 GaugeFrame,
283 End,
284 Child, BalanceObject,
285 End,
286 Child, RectangleObject,
287 GaugeFrame,
288 End,
289 Child, BalanceObject,
290 End,
291 Child, RectangleObject,
292 GaugeFrame,
293 End,
294 End;
297 /* The custom class */
299 struct DropText_Data
301 ULONG times;
304 #ifdef __MAXON__
305 #undef KeymapBase
306 struct Library *KeymapBase;
307 #endif
309 #ifndef __AROS__
310 __saveds __asm IPTR dispatcher(register __a0 struct IClass *cl,
311 register __a2 Object *obj, register __a1 Msg msg)
312 #else
313 AROS_UFH3S(IPTR, dispatcher,
314 AROS_UFHA(Class *, cl, A0),
315 AROS_UFHA(Object *, obj, A2), AROS_UFHA(Msg, msg, A1))
316 #endif
318 AROS_USERFUNC_INIT
320 switch (msg->MethodID)
322 case MUIM_DragQuery:
323 return MUIV_DragQuery_Accept;
324 case MUIM_DragDrop:
326 struct DropText_Data *data =
327 (struct DropText_Data *)INST_DATA(cl, obj);
328 char buf[100];
329 data->times++;
330 sprintf(buf, "%ld times", (long)data->times);
331 /* no MUIM_SetAsString yet */
332 set(obj, MUIA_Text_Contents, buf);
336 return DoSuperMethodA(cl, obj, (Msg) msg);
338 AROS_USERFUNC_EXIT
341 struct MUI_CustomClass *CL_DropText;
343 #define DropTextObject BOOPSIOBJMACRO_START(CL_DropText->mcc_Class)
345 /* Main prog */
347 static struct Hook hook_standard;
349 AROS_UFH3(void, hook_func_standard,
350 AROS_UFHA(struct Hook *, h, A0),
351 AROS_UFHA(void *, dummy, A2), AROS_UFHA(void **, funcptr, A1))
353 AROS_USERFUNC_INIT
355 void (*func) (ULONG *) = (void (*)(ULONG *))(*funcptr);
357 if (func)
358 func((ULONG *) funcptr + 1);
360 AROS_USERFUNC_EXIT
363 int main(void)
365 Object *wnd, *second_wnd;
366 Object *open_button;
367 Object *about_button;
368 Object *quit_button;
369 Object *repeat_button;
370 Object *objects_button;
371 Object *about_item, *quit_item;
372 Object *context_menu;
373 Object *popobject, *listview;
374 Object *lists[LIST_COUNT];
375 Object *list_add_button, *list_remove_button, *list_clear_button;
376 Object *dragsortable_check, *showdropmarks_check, *quiet_check;
377 Object *sort_button, *clear_button, *fill_button;
378 Object *numerics[NUMERIC_COUNT];
379 Object *min_string, *max_string;
380 Object *slider_button;
381 Object *country_radio[2];
382 UWORD i;
384 static char *pages[] =
385 {"Groups", "Colorwheel", "Virtual Group", "Edit", "List", "Gauges",
386 "Numeric", "Radio", "Icon List", "Balancing", NULL};
387 static char *list_pages[] =
388 {"Single Column (1)", "Single Column (2)", NULL};
389 static char **radio_entries1 = pages;
390 static char *radio_entries2[] =
391 {"Paris", "Pataya", "London", "New York", "Reykjavik", NULL};
392 static char *fruits[] = {"Strawberry", "Apple", "Banana", "Orange",
393 "Grapefruit", "Kumquat", "Plum", "Raspberry", "Apricot", "Grape",
394 "Peach", "Lemon", "Lime", "Date", "Pineapple", "Blueberry", "Papaya",
395 "Cranberry", "Gooseberry", "Pear", "Fig", "Coconut", "Melon",
396 "Pumpkin", NULL};
398 static struct list_entry entry1 = {"Testentry1", "Col2: Entry1"};
399 static struct list_entry entry2 = {"Entry2", "Col2: Entry2"};
400 static struct list_entry entry3 = {"Entry3", "Col2: Entry3"};
401 static struct list_entry entry4 = {"Entry4", "Col2: Entry4"};
402 static struct list_entry entry5 = {"Entry5", "Col2: Entry5"};
403 static struct list_entry entry6 = {"Entry6", "Col2: Entry6"};
405 static struct list_entry *entries[] =
406 {&entry1, &entry2, &entry3, &entry4, &entry5, &entry6, NULL};
408 struct Hook hook;
409 struct Hook hook_wheel;
410 struct Hook hook_slider;
411 struct Hook hook_objects;
412 struct Hook hook_display;
413 struct Hook hook_display2;
415 hook_standard.h_Entry = (HOOKFUNC) hook_func_standard;
417 MUIMasterBase = (struct Library *)OpenLibrary("muimaster.library", 0);
419 hook.h_Entry = (HOOKFUNC) repeat_function;
420 hook_wheel.h_Entry = (HOOKFUNC) wheel_function;
421 hook_slider.h_Entry = (HOOKFUNC) slider_function;
422 hook_objects.h_Entry = (HOOKFUNC) objects_function;
423 hook_display.h_Entry = (HOOKFUNC) display_function;
424 hook_display2.h_Entry = (HOOKFUNC) display2_function;
426 context_menu = MenuitemObject,
427 MUIA_Family_Child, MenuitemObject,
428 MUIA_Menuitem_Title, "Menutest",
429 MUIA_Family_Child, about_item = MenuitemObject,
430 MUIA_Menuitem_Title, "First Test Entry", End,
431 MUIA_Family_Child, quit_item = MenuitemObject,
432 MUIA_Menuitem_Title, "Second Test Entry", End,
433 End,
434 End;
436 /* should check the result in a real program! */
437 CL_DropText = MUI_CreateCustomClass(NULL, MUIC_Text, NULL,
438 sizeof(struct DropText_Data), dispatcher);
439 ColorWheelBase = OpenLibrary("gadgets/colorwheel.gadget", 0);
441 app = ApplicationObject,
442 MUIA_Application_Menustrip, MenuitemObject,
443 MUIA_Family_Child, MenuitemObject,
444 MUIA_Menuitem_Title, "Project",
445 MUIA_Family_Child, about_item = MenuitemObject,
446 MUIA_Menuitem_Title, "About...",
447 MUIA_Menuitem_Shortcut, "?",
448 End,
449 MUIA_Family_Child, MenuitemObject,
450 MUIA_Menuitem_Title, (SIPTR)-1,
451 End,
452 MUIA_Family_Child, quit_item = MenuitemObject,
453 MUIA_Menuitem_Title, "Quit",
454 MUIA_Menuitem_Shortcut, "Q",
455 End,
456 End,
457 End,
459 SubWindow, wnd = WindowObject,
460 MUIA_Window_Title, "test",
461 MUIA_Window_Activate, TRUE,
463 WindowContents, VGroup,
464 Child, TextObject,
465 MUIA_Background, "2:cfffffff,cfffffff,10000000",
466 TextFrame,
467 MUIA_Text_Contents, "\33cHello World!\n"
468 "This is a text object\n\33lLeft \33bbold\33n\n"
469 "\33rRight",
470 End,
471 Child, popobject = PopobjectObject,
472 MUIA_Popstring_String,
473 MUI_MakeObject(MUIO_String, NULL, 200),
474 MUIA_Popstring_Button, PopButton(MUII_PopUp),
475 MUIA_Popobject_Object, VGroup,
476 Child, TextObject,
477 MUIA_Text_Contents, "test",
478 End,
479 Child, listview = ListviewObject,
480 MUIA_Listview_List, ListObject,
481 InputListFrame,
482 MUIA_List_DisplayHook, &hook_display,
483 MUIA_List_Format, ",,",
484 MUIA_List_SourceArray, entries,
485 MUIA_List_Title, TRUE,
486 End,
487 End,
488 End,
489 End,
490 Child, RegisterGroup(pages),
491 //MUIA_Background, "5:SYS:Prefs/Presets/Backdrops/StuccoBlue.pic",
492 Child, HGroup,
493 GroupFrameT("A horizontal group"),
494 Child, ColGroup(2),
495 GroupFrameT("A column group"),
496 Child, repeat_button = TextObject,
497 MUIA_CycleChain, 1,
498 ButtonFrame,
499 MUIA_Background, MUII_ButtonBack,
500 MUIA_Text_PreParse, "\33c",
501 MUIA_Text_Contents, "Repeat",
502 MUIA_InputMode, MUIV_InputMode_RelVerify,
503 End,
504 Child, TextObject,
505 MUIA_CycleChain, 1,
506 ButtonFrame,
507 MUIA_Background, MUII_ButtonBack,
508 MUIA_Text_PreParse, "\33c",
509 MUIA_Text_Contents, "Drag Me",
510 MUIA_Draggable, TRUE,
511 MUIA_InputMode, MUIV_InputMode_RelVerify,
512 End,
513 Child, open_button = TextObject,
514 MUIA_CycleChain, 1,
515 ButtonFrame,
516 MUIA_Background, MUII_ButtonBack,
517 MUIA_Text_PreParse, "\33c",
518 MUIA_Text_Contents, "Open Window",
519 MUIA_InputMode, MUIV_InputMode_RelVerify,
520 End,
521 Child, TextObject,
522 MUIA_ContextMenu, context_menu,
523 MUIA_CycleChain, 1,
524 ButtonFrame,
525 MUIA_Background, MUII_ButtonBack,
526 MUIA_Text_PreParse, "\33c",
527 MUIA_Text_Contents, "Press Right",
528 MUIA_InputMode, MUIV_InputMode_RelVerify,
529 End,
530 Child, objects_button = TextObject,
531 MUIA_CycleChain, 1,
532 ButtonFrame,
533 MUIA_Background, MUII_ButtonBack,
534 MUIA_Text_PreParse, "\33c",
535 MUIA_Text_Contents, "Add Objects",
536 MUIA_InputMode, MUIV_InputMode_RelVerify,
537 End,
538 Child, HVSpace,
539 #if 0
540 TextObject,
541 MUIA_CycleChain, 1,
542 ButtonFrame,
543 MUIA_Background, MUII_ButtonBack,
544 MUIA_Text_PreParse, "\33c",
545 MUIA_Text_Contents, "Button6",
546 MUIA_InputMode, MUIV_InputMode_RelVerify,
547 End,
548 #endif
549 Child, MUI_MakeObject(MUIO_Label, "_Checkmark", 0),
550 Child, MUI_MakeObject(MUIO_Checkmark, "_Checkmark"),
551 End,
552 Child, group = VGroup,
553 GroupFrameT("A vertical group"),
554 Child, DropTextObject,
555 MUIA_Dropable, TRUE,
556 MUIA_CycleChain, 1,
557 ButtonFrame,
558 MUIA_Background, MUII_ButtonBack,
559 MUIA_Text_PreParse, "\33c",
560 MUIA_Text_Contents, "Drop Here",
561 MUIA_Dropable, TRUE,
562 MUIA_InputMode, MUIV_InputMode_RelVerify,
563 End,
564 Child, TextObject,
565 TextFrame,
566 MUIA_Background, MUII_MARKHALFSHINE,
567 MUIA_CycleChain, 1,
568 MUIA_Text_PreParse, "\33c",
569 MUIA_Text_Contents, "Pattern",
570 End,
571 Child, ColoradjustObject,
572 End,
573 End,
574 Child, MUI_NewObject(MUIC_Popimage, TAG_DONE),
575 End,
577 Child, VGroup,
578 Child, wheel = BoopsiObject, /* MUI/Boopsi tags mixed */
579 GroupFrame,
580 /* boopsi objects don't know */
581 /* their sizes, so we help */
582 /* keep important values */
583 /* during window resize */
584 MUIA_Boopsi_ClassID, "colorwheel.gadget",
585 MUIA_Boopsi_MinWidth , 30,
586 MUIA_Boopsi_MinHeight, 30,
587 MUIA_Boopsi_Remember , WHEEL_Saturation,
588 MUIA_Boopsi_Remember , WHEEL_Hue,
589 /* this magic fills in the screen pointer */
590 MUIA_Boopsi_TagScreen, WHEEL_Screen,
591 WHEEL_Screen, NULL,
592 GA_Left, 0,
593 GA_Top, 0, /* MUI will automatically */
594 GA_Width, 0, /* fill in the correct values */
595 GA_Height, 0,
596 ICA_TARGET, ICTARGET_IDCMP,
597 /* needed for notification */
598 WHEEL_Saturation, 0, /* start in the center */
599 MUIA_FillArea, TRUE,
600 /* use this because it defaults to FALSE
601 for boopsi gadgets but the colorwheel
602 doesn't bother about redrawing its
603 background */
604 End,
606 Child, r_slider = SliderObject,
607 MUIA_Group_Horiz, TRUE,
608 MUIA_Numeric_Min, 0,
609 MUIA_Numeric_Max, 255,
610 End,
611 Child, g_slider = SliderObject,
612 MUIA_Group_Horiz, TRUE,
613 MUIA_Numeric_Min, 0,
614 MUIA_Numeric_Max, 255,
615 End,
616 Child, b_slider = SliderObject,
617 MUIA_Group_Horiz, TRUE,
618 MUIA_Numeric_Min, 0,
619 MUIA_Numeric_Max, 255,
620 End,
621 Child, hue_gauge = GaugeObject,
622 GaugeFrame,
623 MUIA_Gauge_Horiz, TRUE,
624 MUIA_Gauge_Max, 255,
625 MUIA_Gauge_Divide, 1<<24,
626 MUIA_Gauge_InfoText, "Hue: %ld",
627 End,
628 End,
630 Child, ScrollgroupObject,
631 MUIA_Scrollgroup_Contents, VGroupV,
632 VirtualFrame,
633 Child, TextObject,
634 TextFrame,
635 MUIA_Text_Contents,
636 "Line1\nLine2\nLine3\nLine4\nLine5\n"
637 "Line6\nLine7\nLine8\n\n\n\nLine9\n"
638 "Line10\nLine11\n",
639 End,
640 Child, HGroup,
641 Child, MUI_MakeObject(MUIO_Button,"Button9"),
642 Child, MUI_MakeObject(MUIO_Button,"Button10"),
643 End,
644 End,
645 End,
646 Child, VGroup,
647 Child, editor_text = StringObject,
648 StringFrame,
649 MUIA_Text_Multiline, TRUE,
650 End,
651 Child, PopaslObject,
652 ASLFR_DoSaveMode, TRUE,
653 MUIA_Popstring_String, filename_string =
654 MUI_MakeObject(MUIO_String, NULL, 200),
655 MUIA_Popstring_Button, PopButton(MUII_PopFile),
656 End,
657 Child, save_button =
658 MUI_MakeObject(MUIO_Button, "Save"),
659 End,
661 /* lists */
662 Child, RegisterGroup(list_pages),
663 Child, VGroup,
664 Child, ColGroup(LIST_COUNT),
665 Child, VGroup, GroupFrameT("No Multiselect"),
666 Child, ListviewObject,
667 MUIA_Listview_List,
668 lists[0] = ListObject,
669 InputListFrame,
670 MUIA_List_SourceArray, fruits,
671 End,
672 MUIA_Listview_MultiSelect,
673 MUIV_Listview_MultiSelect_None,
674 MUIA_CycleChain, 1,
675 End,
676 End,
677 Child, VGroup,
678 GroupFrameT("Default Multiselect"),
679 Child, ListviewObject,
680 MUIA_Listview_List,
681 lists[1] = ListObject,
682 InputListFrame,
683 MUIA_List_SourceArray, fruits,
684 End,
685 MUIA_Listview_ScrollerPos,
686 MUIV_Listview_ScrollerPos_Left,
687 MUIA_CycleChain, 1,
688 End,
689 End,
690 Child, VGroup,
691 GroupFrameT("Shifted Multiselect"),
692 Child, ListviewObject,
693 MUIA_Listview_List,
694 lists[2] = ListObject,
695 InputListFrame,
696 MUIA_List_SourceArray, fruits,
697 End,
698 MUIA_Listview_MultiSelect,
699 MUIV_Listview_MultiSelect_Shifted,
700 MUIA_Listview_ScrollerPos,
701 MUIV_Listview_ScrollerPos_Right,
702 MUIA_CycleChain, 1,
703 End,
704 End,
705 Child, VGroup,
706 GroupFrameT("Unconditional Multiselect"),
707 Child, ListviewObject,
708 MUIA_Listview_List,
709 lists[3] = ListObject,
710 InputListFrame,
711 MUIA_List_SourceArray, fruits,
712 End,
713 MUIA_Listview_MultiSelect,
714 MUIV_Listview_MultiSelect_Always,
715 MUIA_Listview_ScrollerPos,
716 MUIV_Listview_ScrollerPos_None,
717 MUIA_CycleChain, 1,
718 End,
719 End,
720 Child, VGroup,
721 GroupFrameT("Read Only"),
722 Child, ListviewObject,
723 MUIA_Listview_List,
724 lists[4] = ListObject,
725 ReadListFrame,
726 MUIA_List_SourceArray, fruits,
727 End,
728 MUIA_Listview_Input, FALSE,
729 MUIA_CycleChain, 1,
730 End,
731 End,
732 End,
733 Child, RectangleObject,
734 MUIA_VertWeight, 0,
735 MUIA_Rectangle_HBar, TRUE,
736 MUIA_Rectangle_BarTitle, "List Controls",
737 End,
738 Child, ColGroup(3),
739 Child, sort_button =
740 MUI_MakeObject(MUIO_Button, "Sort"),
741 Child, clear_button =
742 MUI_MakeObject(MUIO_Button, "Clear"),
743 Child, fill_button =
744 MUI_MakeObject(MUIO_Button, "Fill"),
745 Child, HGroup,
746 Child, dragsortable_check =
747 MUI_MakeObject(MUIO_Checkmark, NULL),
748 Child, MUI_MakeObject(MUIO_Label,
749 "Drag sortable", 0),
750 Child, HVSpace,
751 End,
752 Child, HGroup,
753 Child, showdropmarks_check =
754 MUI_MakeObject(MUIO_Checkmark, NULL),
755 Child, MUI_MakeObject(MUIO_Label,
756 "Show drop marks", 0),
757 Child, HVSpace,
758 End,
759 Child, HGroup,
760 Child, quiet_check =
761 MUI_MakeObject(MUIO_Checkmark,NULL),
762 Child, MUI_MakeObject(MUIO_Label,
763 "Quiet", 0),
764 Child, HVSpace,
765 End,
766 End,
767 End,
768 Child, VGroup,
769 Child, ListviewObject,
770 MUIA_Listview_List, list2 = ListObject,
771 InputListFrame,
772 MUIA_List_DisplayHook, &hook_display2,
773 End,
774 End,
775 Child, HGroup,
776 Child, list_add_button =
777 MUI_MakeObject(MUIO_Button,"_Add"),
778 Child, list_remove_button =
779 MUI_MakeObject(MUIO_Button,"_Remove"),
780 Child, list_clear_button =
781 MUI_MakeObject(MUIO_Button,"_Clear"),
782 End,
783 End,
784 End,
786 /* gauges */
787 Child, HGroup,
788 Child, VGroup,
789 Child, VGroup,
790 GroupFrame,
791 Child, GaugeObject,
792 GaugeFrame,
793 MUIA_Gauge_InfoText, "%ld %%",
794 MUIA_Gauge_Horiz, TRUE,
795 MUIA_Gauge_Current, 25,
796 End,
797 Child, ScaleObject,
798 End,
799 End,
800 Child, VGroup,
801 GroupFrame,
802 Child, GaugeObject,
803 GaugeFrame,
804 MUIA_Gauge_InfoText, "%ld %%",
805 MUIA_Gauge_Horiz, TRUE,
806 MUIA_Gauge_Current, 50,
807 End,
808 Child, ScaleObject,
809 End,
810 End,
811 Child, VGroup,
812 GroupFrame,
813 Child, GaugeObject,
814 GaugeFrame,
815 MUIA_Gauge_InfoText, "%ld %%",
816 MUIA_Gauge_Horiz, TRUE,
817 MUIA_Gauge_Current, 75,
818 End,
819 Child, ScaleObject,
820 End,
821 End,
822 End,
823 Child, HGroup,
824 Child, HVSpace,
825 Child, GaugeObject,
826 GaugeFrame,
827 MUIA_Gauge_InfoText, "%ld %%",
828 MUIA_Gauge_Current, 25,
829 End,
830 Child, GaugeObject,
831 GaugeFrame,
832 MUIA_Gauge_InfoText, "%ld %%",
833 MUIA_Gauge_Current, 50,
834 End,
835 Child, GaugeObject,
836 GaugeFrame,
837 MUIA_Gauge_InfoText, "%ld %%",
838 MUIA_Gauge_Current, 75,
839 End,
840 Child, HVSpace,
841 End,
842 End,
844 /* numeric */
845 Child, HGroup,
846 Child, ColGroup(2),
847 GroupFrameT("Horizontal Sliders"),
848 Child, MUI_MakeObject(MUIO_Label, "Normal:", 0),
849 Child, numerics[HNSLIDER] = SliderObject,
850 MUIA_Slider_Horiz, TRUE,
851 MUIA_Numeric_Min, NUMERIC_MIN,
852 MUIA_Numeric_Max, NUMERIC_MAX,
853 MUIA_CycleChain, 1,
854 End,
855 Child, MUI_MakeObject(MUIO_Label, "Reverse:", 0),
856 Child, numerics[HRSLIDER] = SliderObject,
857 MUIA_Numeric_Reverse, TRUE,
858 MUIA_Numeric_Min, NUMERIC_MIN,
859 MUIA_Numeric_Max, NUMERIC_MAX,
860 MUIA_CycleChain, 1,
861 End,
862 Child, MUI_MakeObject(MUIO_Label, "Quiet:", 0),
863 Child, numerics[HQSLIDER] = SliderObject,
864 MUIA_Slider_Quiet, TRUE,
865 MUIA_Numeric_Min, NUMERIC_MIN,
866 MUIA_Numeric_Max, NUMERIC_MAX,
867 MUIA_CycleChain, 1,
868 End,
869 End,
870 Child, ColGroup(3),
871 GroupFrameT("Vertical Sliders"),
872 Child, MUI_MakeObject(MUIO_Label, "Normal", 0),
873 Child, MUI_MakeObject(MUIO_Label, "Reverse", 0),
874 Child, MUI_MakeObject(MUIO_Label, "Quiet", 0),
875 Child, numerics[VNSLIDER] = SliderObject,
876 MUIA_Slider_Horiz, FALSE,
877 MUIA_Numeric_Min, NUMERIC_MIN,
878 MUIA_Numeric_Max, NUMERIC_MAX,
879 MUIA_CycleChain, 1,
880 End,
881 Child, numerics[VRSLIDER] = SliderObject,
882 MUIA_Slider_Horiz, FALSE,
883 MUIA_Numeric_Reverse, TRUE,
884 MUIA_Numeric_Min, NUMERIC_MIN,
885 MUIA_Numeric_Max, NUMERIC_MAX,
886 MUIA_CycleChain, 1,
887 End,
888 Child, numerics[VQSLIDER] = SliderObject,
889 MUIA_Slider_Horiz, FALSE,
890 MUIA_Slider_Quiet, TRUE,
891 MUIA_Numeric_Min, NUMERIC_MIN,
892 MUIA_Numeric_Max, NUMERIC_MAX,
893 MUIA_CycleChain, 1,
894 End,
895 End,
896 Child, ColGroup(2),
897 GroupFrameT("Numeric Buttons"),
898 Child, MUI_MakeObject(MUIO_Label, "Normal:", 0),
899 Child, numerics[NNUMERICBUTTON] =
900 NumericbuttonObject,
901 MUIA_Numeric_Min, NUMERIC_MIN,
902 MUIA_Numeric_Max, NUMERIC_MAX,
903 MUIA_CycleChain, 1,
904 End,
905 Child, MUI_MakeObject(MUIO_Label, "Reverse:", 0),
906 Child, numerics[RNUMERICBUTTON] =
907 NumericbuttonObject,
908 MUIA_Numeric_Reverse, TRUE,
909 MUIA_Numeric_Min, NUMERIC_MIN,
910 MUIA_Numeric_Max, NUMERIC_MAX,
911 MUIA_CycleChain, 1,
912 End,
913 End,
914 Child, ColGroup(2),
915 GroupFrameT("Knobs"),
916 Child, MUI_MakeObject(MUIO_Label, "Normal", 0),
917 Child, MUI_MakeObject(MUIO_Label, "Reverse", 0),
918 Child, numerics[NKNOB] = KnobObject,
919 MUIA_Numeric_Min, NUMERIC_MIN,
920 MUIA_Numeric_Max, NUMERIC_MAX,
921 MUIA_CycleChain, 1,
922 End,
923 Child, numerics[RKNOB] = KnobObject,
924 MUIA_Numeric_Reverse, TRUE,
925 MUIA_Numeric_Min, NUMERIC_MIN,
926 MUIA_Numeric_Max, NUMERIC_MAX,
927 MUIA_CycleChain, 1,
928 End,
929 End,
930 Child, ColGroup(2),
931 Child, MUI_MakeObject(MUIO_Label,
932 "Minimum Value:", 0),
933 Child, min_string = (Object *)StringObject,
934 StringFrame,
935 MUIA_String_Accept, (IPTR)"-0123456789",
936 MUIA_String_Integer, NUMERIC_MIN,
937 MUIA_CycleChain, 1,
938 End,
939 Child, MUI_MakeObject(MUIO_Label,
940 "Maximum Value:", 0),
941 Child, max_string = (Object *)StringObject,
942 StringFrame,
943 MUIA_String_Accept, (IPTR)"-0123456789",
944 MUIA_String_Integer, NUMERIC_MAX,
945 MUIA_CycleChain, 1,
946 End,
947 Child, slider_button = TextObject,
948 ButtonFrame,
949 MUIA_InputMode, MUIV_InputMode_RelVerify,
950 MUIA_CycleChain, 1,
951 MUIA_Background, MUII_ButtonBack,
952 MUIA_Text_PreParse, "\33c",
953 MUIA_Text_Contents,
954 "Change Slider Orientations",
955 End,
956 Child, MUI_MakeObject(MUIO_Label, "", 0),
957 End,
958 End,
960 /* radios */
961 Child, HGroup,
962 Child, VGroup,
963 Child, RadioObject,
964 GroupFrame,
965 MUIA_Radio_Entries, radio_entries1,
966 End,
967 Child, country_radio[0] = RadioObject,
968 GroupFrame,
969 MUIA_Radio_Entries, radio_entries2,
970 MUIA_Radio_Active, 1,
971 End,
972 End,
973 Child, HGroup,
974 Child, RadioObject,
975 GroupFrame,
976 MUIA_Radio_Entries, radio_entries1,
977 End,
978 Child, country_radio[1] = RadioObject,
979 GroupFrame,
980 MUIA_Radio_Entries, radio_entries2,
981 MUIA_Radio_Active, 1,
982 End,
983 End,
984 End,
986 #if defined(TEST_ICONLIST)
987 /* iconlist */
988 Child, HGroup,
989 Child, volume_iconlist =
990 MUI_NewObject(MUIC_IconVolumeList, GroupFrame,
991 TAG_DONE),
992 Child, drawer_iconlist =
993 MUI_NewObject(MUIC_IconDrawerList, GroupFrame,
994 MUIA_IconDrawerList_Drawer, "SYS:",
995 TAG_DONE),
996 End,
997 #endif
999 Child, HGroup,
1000 Child, create_balance_column(),
1001 Child, BalanceObject,
1002 End,
1004 Child, create_balance_column(),
1005 Child, BalanceObject,
1006 End,
1008 Child, create_balance_column(),
1009 Child, BalanceObject,
1010 End,
1012 Child, create_balance_column(),
1013 Child, BalanceObject,
1014 End,
1016 Child, create_balance_column(),
1018 End,
1020 End,
1022 Child, RectangleObject,
1023 MUIA_VertWeight, 0,
1024 /* Seems to be not supported properly as orginal MUI
1025 doesn't allow to alter the height of the window */
1026 MUIA_Rectangle_HBar, TRUE,
1027 MUIA_Rectangle_BarTitle,"Enter a string",
1028 End,
1030 Child, StringObject,
1031 StringFrame,
1032 MUIA_CycleChain,1,
1033 MUIA_String_AdvanceOnCR, TRUE,
1034 End,
1036 Child, CycleObject,
1037 ButtonFrame,
1038 MUIA_Cycle_Entries, pages,
1039 End,
1040 Child, ScrollbarObject,
1041 MUIA_Group_Horiz, TRUE,
1042 MUIA_Prop_Visible, 100,
1043 MUIA_Prop_Entries, 300,
1044 MUIA_Prop_First, 50,
1045 End,
1047 Child, HGroup,
1048 Child, about_button = TextObject,
1049 ButtonFrame,
1050 MUIA_InputMode, MUIV_InputMode_RelVerify,
1051 MUIA_CycleChain, 1,
1052 MUIA_Background, MUII_ButtonBack,
1053 MUIA_Text_PreParse, "\33c",
1054 MUIA_Text_Contents, "About",
1055 End,
1056 Child, quit_button = TextObject,
1057 ButtonFrame,
1058 MUIA_InputMode, MUIV_InputMode_RelVerify,
1059 MUIA_CycleChain, 1,
1060 MUIA_Background, MUII_ButtonBack,
1061 MUIA_ControlChar, 'q',
1062 MUIA_Text_HiChar, 'q',
1063 MUIA_Text_PreParse, "\33c",
1064 MUIA_Text_Contents, "Quit",
1065 End,
1066 End,
1067 End,
1068 End,
1070 SubWindow, second_wnd = WindowObject,
1071 MUIA_Window_Title, "Second window",
1072 WindowContents, VGroup,
1073 Child, DropTextObject,
1074 MUIA_Text_Contents, "Drop here",
1075 MUIA_Dropable, TRUE,
1076 End,
1077 End,
1078 End,
1080 End;
1082 if (app)
1084 ULONG sigs = 0;
1086 DoMethod(wnd, MUIM_Notify, MUIA_Window_CloseRequest, TRUE, app, 2,
1087 MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit);
1088 DoMethod(second_wnd, MUIM_Notify, MUIA_Window_CloseRequest, TRUE,
1089 second_wnd, 3, MUIM_Set, MUIA_Window_Open, FALSE);
1090 DoMethod(open_button, MUIM_Notify, MUIA_Pressed, FALSE, second_wnd,
1091 3, MUIM_Set, MUIA_Window_Open, TRUE);
1092 DoMethod(about_button, MUIM_Notify, MUIA_Pressed, FALSE, app, 2,
1093 MUIM_Application_AboutMUI, NULL);
1094 DoMethod(quit_button, MUIM_Notify, MUIA_Pressed, FALSE, app, 2,
1095 MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit);
1096 DoMethod(objects_button, MUIM_Notify, MUIA_Pressed, FALSE, app, 2,
1097 MUIM_CallHook, &hook_objects);
1098 DoMethod(repeat_button, MUIM_Notify, MUIA_Timer, MUIV_EveryTime,
1099 app, 2, MUIM_CallHook, &hook);
1101 DoMethod(wheel, MUIM_Notify, WHEEL_Hue, MUIV_EveryTime, app, 2,
1102 MUIM_CallHook, &hook_wheel);
1103 DoMethod(wheel, MUIM_Notify, WHEEL_Saturation, MUIV_EveryTime, app,
1104 2, MUIM_CallHook, &hook_wheel);
1105 DoMethod(r_slider, MUIM_Notify, MUIA_Numeric_Value, MUIV_EveryTime,
1106 app, 2, MUIM_CallHook, &hook_slider);
1107 DoMethod(g_slider, MUIM_Notify, MUIA_Numeric_Value, MUIV_EveryTime,
1108 app, 2, MUIM_CallHook, &hook_slider);
1109 DoMethod(b_slider, MUIM_Notify, MUIA_Numeric_Value, MUIV_EveryTime,
1110 app, 2, MUIM_CallHook, &hook_slider);
1112 DoMethod(save_button, MUIM_Notify, MUIA_Pressed, FALSE, app, 3,
1113 MUIM_CallHook, &hook_standard, save_function);
1115 DoMethod(quit_item, MUIM_Notify, MUIA_Menuitem_Trigger,
1116 MUIV_EveryTime, app, 2, MUIM_Application_ReturnID,
1117 MUIV_Application_ReturnID_Quit);
1118 DoMethod(about_item, MUIM_Notify, MUIA_Menuitem_Trigger,
1119 MUIV_EveryTime, app, 3, MUIM_CallHook, &hook_standard,
1120 about_function);
1122 /* list */
1123 set(showdropmarks_check, MUIA_Selected, TRUE);
1124 for (i = 0; i < LIST_COUNT; i++)
1126 DoMethod(sort_button, MUIM_Notify, MUIA_Pressed, FALSE,
1127 lists[i], 1, MUIM_List_Sort);
1128 DoMethod(clear_button, MUIM_Notify, MUIA_Pressed, FALSE,
1129 lists[i], 1, MUIM_List_Clear);
1130 DoMethod(fill_button, MUIM_Notify, MUIA_Pressed, FALSE,
1131 lists[i], 4, MUIM_List_Insert, fruits, -1,
1132 MUIV_List_Insert_Bottom);
1133 DoMethod(dragsortable_check, MUIM_Notify, MUIA_Selected,
1134 MUIV_EveryTime, lists[i], 3, MUIM_Set,
1135 MUIA_List_DragSortable, MUIV_TriggerValue);
1136 DoMethod(showdropmarks_check, MUIM_Notify, MUIA_Selected,
1137 MUIV_EveryTime, lists[i], 3, MUIM_Set,
1138 MUIA_List_ShowDropMarks, MUIV_TriggerValue);
1139 DoMethod(quiet_check, MUIM_Notify, MUIA_Selected,
1140 MUIV_EveryTime, lists[i], 3, MUIM_Set, MUIA_List_Quiet,
1141 MUIV_TriggerValue);
1144 DoMethod(listview, MUIM_Notify, MUIA_Listview_DoubleClick, TRUE,
1145 popobject, 2, MUIM_Popstring_Close, TRUE);
1147 /* The callbacks of the buttons within the list page */
1148 DoMethod(list_add_button, MUIM_Notify, MUIA_Pressed, FALSE, app, 3,
1149 MUIM_CallHook, &hook_standard, add_function);
1150 DoMethod(list_remove_button, MUIM_Notify, MUIA_Pressed, FALSE,
1151 list2, 2, MUIM_List_Remove, MUIV_List_Remove_Active);
1152 DoMethod(list_clear_button, MUIM_Notify, MUIA_Pressed, FALSE, list2,
1153 1, MUIM_List_Clear);
1155 /* numeric */
1156 for (i = 0; i < NUMERIC_COUNT; i++)
1158 DoMethod(min_string, MUIM_Notify, MUIA_String_Integer,
1159 MUIV_EveryTime, numerics[i], 3, MUIM_Set, MUIA_Numeric_Min,
1160 MUIV_TriggerValue);
1161 DoMethod(max_string, MUIM_Notify, MUIA_String_Integer,
1162 MUIV_EveryTime, numerics[i], 3, MUIM_Set, MUIA_Numeric_Max,
1163 MUIV_TriggerValue);
1165 DoMethod(slider_button, MUIM_Notify, MUIA_Pressed, FALSE,
1166 numerics[HRSLIDER], 3, MUIM_Set, MUIA_Slider_Horiz, FALSE);
1168 /* radio */
1169 DoMethod(country_radio[0], MUIM_Notify, MUIA_Radio_Active,
1170 MUIV_EveryTime, country_radio[1], 3, MUIM_NoNotifySet,
1171 MUIA_Radio_Active, MUIV_TriggerValue);
1172 DoMethod(country_radio[1], MUIM_Notify, MUIA_Radio_Active,
1173 MUIV_EveryTime, country_radio[0], 3, MUIM_NoNotifySet,
1174 MUIA_Radio_Active, MUIV_TriggerValue);
1176 #if defined(TEST_ICONLIST)
1177 /* iconlist */
1178 DoMethod(volume_iconlist, MUIM_Notify, MUIA_IconList_DoubleClick,
1179 TRUE, volume_iconlist, 3, MUIM_CallHook, &hook_standard,
1180 volume_doubleclicked);
1181 DoMethod(drawer_iconlist, MUIM_Notify, MUIA_IconList_DoubleClick,
1182 TRUE, drawer_iconlist, 3, MUIM_CallHook, &hook_standard,
1183 drawer_doubleclicked);
1184 #endif
1186 set(wnd, MUIA_Window_Open, TRUE);
1187 set(wnd, MUIA_Window_ScreenTitle, "Zune Test application");
1189 while ((LONG) DoMethod(app, MUIM_Application_NewInput,
1190 &sigs) != MUIV_Application_ReturnID_Quit)
1192 if (sigs)
1194 sigs = Wait(sigs | SIGBREAKF_CTRL_C | SIGBREAKF_CTRL_D);
1195 if (sigs & SIGBREAKF_CTRL_C)
1196 break;
1197 if (sigs & SIGBREAKF_CTRL_D)
1198 break;
1202 MUI_DisposeObject(app);
1204 if (context_menu)
1205 MUI_DisposeObject(context_menu);
1206 CloseLibrary(ColorWheelBase);
1207 MUI_DeleteCustomClass(CL_DropText);
1209 CloseLibrary(MUIMasterBase);
1210 return 0;