2 Copyright © 2002-2013, The AROS Development Team.
8 #define INTUITION_NO_INLINE_STDARG
10 #include <exec/types.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
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"
42 #define NUMERIC_MAX 100
59 struct Library
*MUIMasterBase
;
60 struct Library
*ColorWheelBase
;
77 Object
*filename_string
;
81 Object
*drawer_iconlist
;
82 Object
*volume_iconlist
;
84 AROS_UFH0(void, repeat_function
)
88 printf("MUI_Timer\n");
93 AROS_UFH0(void, wheel_function
)
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);
107 AROS_UFH0(void, slider_function
)
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
));
126 AROS_UFH0(void, objects_function
)
130 Object
*new_obj
= MUI_MakeObject(MUIO_Button
, "Button");
133 DoMethod(group
, MUIM_Group_InitChange
);
134 DoMethod(group
, OM_ADDMEMBER
, new_obj
);
135 DoMethod(group
, MUIM_Group_ExitChange
);
141 AROS_UFH0(void, about_function
)
145 static Object
*about_wnd
;
149 about_wnd
= AboutmuiObject
, MUIA_Aboutmui_Application
, app
, End
;
153 set(about_wnd
, MUIA_Window_Open
, TRUE
);
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
))
165 static char buf
[100];
169 sprintf(buf
, "%ld", (long)*(strings
- 1));
171 strings
[1] = entry
->column1
;
172 strings
[2] = entry
->column2
;
176 strings
[0] = "Number";
177 strings
[1] = "Column 1";
178 strings
[2] = "Column 2";
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
))
191 static char buf
[100];
195 sprintf(buf
, "line num: %ld id: %p", (long)*(strings
- 1), entry
);
200 strings
[0] = "Number";
206 AROS_UFH0(void, save_function
)
210 char *text
= (char *)XGET(editor_text
, MUIA_Text_Contents
);
211 char *filename
= (char *)XGET(filename_string
, MUIA_String_Contents
);
214 if (!strlen(filename
))
217 if ((fh
= Open(filename
, MODE_NEWFILE
)))
219 Write(fh
, text
, strlen(text
));
228 AROS_UFH0(void, add_function
)
232 DoMethod(list2
, MUIM_List_InsertSingle
, id
++,
233 MUIV_List_Insert_Bottom
);
238 #if defined(TEST_ICONLIST)
239 /* IconList callbacks */
240 void volume_doubleclicked(void)
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
)
250 strcpy(buf
, ent
->label
);
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
)
263 set(drawer_iconlist
, MUIA_IconDrawerList_Drawer
,
264 ent
->ile_IconEntry
->ie_IconNode
.ln_Name
);
268 static IPTR
create_balance_column(void)
270 return (IPTR
) VGroup
,
271 Child
, RectangleObject
,
274 Child
, BalanceObject
,
276 Child
, RectangleObject
,
279 Child
, BalanceObject
,
281 Child
, RectangleObject
,
284 Child
, BalanceObject
,
286 Child
, RectangleObject
,
289 Child
, BalanceObject
,
291 Child
, RectangleObject
,
297 /* The custom class */
306 struct Library
*KeymapBase
;
310 __saveds __asm IPTR
dispatcher(register __a0
struct IClass
*cl
,
311 register __a2 Object
*obj
, register __a1 Msg msg
)
313 AROS_UFH3S(IPTR
, dispatcher
,
314 AROS_UFHA(Class
*, cl
, A0
),
315 AROS_UFHA(Object
*, obj
, A2
), AROS_UFHA(Msg
, msg
, A1
))
320 switch (msg
->MethodID
)
323 return MUIV_DragQuery_Accept
;
326 struct DropText_Data
*data
=
327 (struct DropText_Data
*)INST_DATA(cl
, obj
);
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
);
341 struct MUI_CustomClass
*CL_DropText
;
343 #define DropTextObject BOOPSIOBJMACRO_START(CL_DropText->mcc_Class)
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
))
355 void (*func
) (ULONG
*) = (void (*)(ULONG
*))(*funcptr
);
358 func((ULONG
*) funcptr
+ 1);
365 Object
*wnd
, *second_wnd
;
367 Object
*about_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];
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",
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
};
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
,
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
, "?",
449 MUIA_Family_Child
, MenuitemObject
,
450 MUIA_Menuitem_Title
, (SIPTR
)-1,
452 MUIA_Family_Child
, quit_item
= MenuitemObject
,
453 MUIA_Menuitem_Title
, "Quit",
454 MUIA_Menuitem_Shortcut
, "Q",
459 SubWindow
, wnd
= WindowObject
,
460 MUIA_Window_Title
, "test",
461 MUIA_Window_Activate
, TRUE
,
463 WindowContents
, VGroup
,
465 MUIA_Background
, "2:cfffffff,cfffffff,10000000",
467 MUIA_Text_Contents
, "\33cHello World!\n"
468 "This is a text object\n\33lLeft \33bbold\33n\n"
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
,
477 MUIA_Text_Contents
, "test",
479 Child
, listview
= ListviewObject
,
480 MUIA_Listview_List
, ListObject
,
482 MUIA_List_DisplayHook
, &hook_display
,
483 MUIA_List_Format
, ",,",
484 MUIA_List_SourceArray
, entries
,
485 MUIA_List_Title
, TRUE
,
490 Child
, RegisterGroup(pages
),
491 //MUIA_Background, "5:SYS:Prefs/Presets/Backdrops/StuccoBlue.pic",
493 GroupFrameT("A horizontal group"),
495 GroupFrameT("A column group"),
496 Child
, repeat_button
= TextObject
,
499 MUIA_Background
, MUII_ButtonBack
,
500 MUIA_Text_PreParse
, "\33c",
501 MUIA_Text_Contents
, "Repeat",
502 MUIA_InputMode
, MUIV_InputMode_RelVerify
,
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
,
513 Child
, open_button
= TextObject
,
516 MUIA_Background
, MUII_ButtonBack
,
517 MUIA_Text_PreParse
, "\33c",
518 MUIA_Text_Contents
, "Open Window",
519 MUIA_InputMode
, MUIV_InputMode_RelVerify
,
522 MUIA_ContextMenu
, context_menu
,
525 MUIA_Background
, MUII_ButtonBack
,
526 MUIA_Text_PreParse
, "\33c",
527 MUIA_Text_Contents
, "Press Right",
528 MUIA_InputMode
, MUIV_InputMode_RelVerify
,
530 Child
, objects_button
= TextObject
,
533 MUIA_Background
, MUII_ButtonBack
,
534 MUIA_Text_PreParse
, "\33c",
535 MUIA_Text_Contents
, "Add Objects",
536 MUIA_InputMode
, MUIV_InputMode_RelVerify
,
543 MUIA_Background
, MUII_ButtonBack
,
544 MUIA_Text_PreParse
, "\33c",
545 MUIA_Text_Contents
, "Button6",
546 MUIA_InputMode
, MUIV_InputMode_RelVerify
,
549 Child
, MUI_MakeObject(MUIO_Label
, "_Checkmark", 0),
550 Child
, MUI_MakeObject(MUIO_Checkmark
, "_Checkmark"),
552 Child
, group
= VGroup
,
553 GroupFrameT("A vertical group"),
554 Child
, DropTextObject
,
558 MUIA_Background
, MUII_ButtonBack
,
559 MUIA_Text_PreParse
, "\33c",
560 MUIA_Text_Contents
, "Drop Here",
562 MUIA_InputMode
, MUIV_InputMode_RelVerify
,
566 MUIA_Background
, MUII_MARKHALFSHINE
,
568 MUIA_Text_PreParse
, "\33c",
569 MUIA_Text_Contents
, "Pattern",
571 Child
, ColoradjustObject
,
574 Child
, MUI_NewObject(MUIC_Popimage
, TAG_DONE
),
578 Child
, wheel
= BoopsiObject
, /* MUI/Boopsi tags mixed */
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
,
593 GA_Top
, 0, /* MUI will automatically */
594 GA_Width
, 0, /* fill in the correct values */
596 ICA_TARGET
, ICTARGET_IDCMP
,
597 /* needed for notification */
598 WHEEL_Saturation
, 0, /* start in the center */
600 /* use this because it defaults to FALSE
601 for boopsi gadgets but the colorwheel
602 doesn't bother about redrawing its
606 Child
, r_slider
= SliderObject
,
607 MUIA_Group_Horiz
, TRUE
,
609 MUIA_Numeric_Max
, 255,
611 Child
, g_slider
= SliderObject
,
612 MUIA_Group_Horiz
, TRUE
,
614 MUIA_Numeric_Max
, 255,
616 Child
, b_slider
= SliderObject
,
617 MUIA_Group_Horiz
, TRUE
,
619 MUIA_Numeric_Max
, 255,
621 Child
, hue_gauge
= GaugeObject
,
623 MUIA_Gauge_Horiz
, TRUE
,
625 MUIA_Gauge_Divide
, 1<<24,
626 MUIA_Gauge_InfoText
, "Hue: %ld",
630 Child
, ScrollgroupObject
,
631 MUIA_Scrollgroup_Contents
, VGroupV
,
636 "Line1\nLine2\nLine3\nLine4\nLine5\n"
637 "Line6\nLine7\nLine8\n\n\n\nLine9\n"
641 Child
, MUI_MakeObject(MUIO_Button
,"Button9"),
642 Child
, MUI_MakeObject(MUIO_Button
,"Button10"),
647 Child
, editor_text
= StringObject
,
649 MUIA_Text_Multiline
, TRUE
,
652 ASLFR_DoSaveMode
, TRUE
,
653 MUIA_Popstring_String
, filename_string
=
654 MUI_MakeObject(MUIO_String
, NULL
, 200),
655 MUIA_Popstring_Button
, PopButton(MUII_PopFile
),
658 MUI_MakeObject(MUIO_Button
, "Save"),
662 Child
, RegisterGroup(list_pages
),
664 Child
, ColGroup(LIST_COUNT
),
665 Child
, VGroup
, GroupFrameT("No Multiselect"),
666 Child
, ListviewObject
,
668 lists
[0] = ListObject
,
670 MUIA_List_SourceArray
, fruits
,
672 MUIA_Listview_MultiSelect
,
673 MUIV_Listview_MultiSelect_None
,
678 GroupFrameT("Default Multiselect"),
679 Child
, ListviewObject
,
681 lists
[1] = ListObject
,
683 MUIA_List_SourceArray
, fruits
,
685 MUIA_Listview_ScrollerPos
,
686 MUIV_Listview_ScrollerPos_Left
,
691 GroupFrameT("Shifted Multiselect"),
692 Child
, ListviewObject
,
694 lists
[2] = ListObject
,
696 MUIA_List_SourceArray
, fruits
,
698 MUIA_Listview_MultiSelect
,
699 MUIV_Listview_MultiSelect_Shifted
,
700 MUIA_Listview_ScrollerPos
,
701 MUIV_Listview_ScrollerPos_Right
,
706 GroupFrameT("Unconditional Multiselect"),
707 Child
, ListviewObject
,
709 lists
[3] = ListObject
,
711 MUIA_List_SourceArray
, fruits
,
713 MUIA_Listview_MultiSelect
,
714 MUIV_Listview_MultiSelect_Always
,
715 MUIA_Listview_ScrollerPos
,
716 MUIV_Listview_ScrollerPos_None
,
721 GroupFrameT("Read Only"),
722 Child
, ListviewObject
,
724 lists
[4] = ListObject
,
726 MUIA_List_SourceArray
, fruits
,
728 MUIA_Listview_Input
, FALSE
,
733 Child
, RectangleObject
,
735 MUIA_Rectangle_HBar
, TRUE
,
736 MUIA_Rectangle_BarTitle
, "List Controls",
740 MUI_MakeObject(MUIO_Button
, "Sort"),
741 Child
, clear_button
=
742 MUI_MakeObject(MUIO_Button
, "Clear"),
744 MUI_MakeObject(MUIO_Button
, "Fill"),
746 Child
, dragsortable_check
=
747 MUI_MakeObject(MUIO_Checkmark
, NULL
),
748 Child
, MUI_MakeObject(MUIO_Label
,
753 Child
, showdropmarks_check
=
754 MUI_MakeObject(MUIO_Checkmark
, NULL
),
755 Child
, MUI_MakeObject(MUIO_Label
,
756 "Show drop marks", 0),
761 MUI_MakeObject(MUIO_Checkmark
,NULL
),
762 Child
, MUI_MakeObject(MUIO_Label
,
769 Child
, ListviewObject
,
770 MUIA_Listview_List
, list2
= ListObject
,
772 MUIA_List_DisplayHook
, &hook_display2
,
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"),
793 MUIA_Gauge_InfoText
, "%ld %%",
794 MUIA_Gauge_Horiz
, TRUE
,
795 MUIA_Gauge_Current
, 25,
804 MUIA_Gauge_InfoText
, "%ld %%",
805 MUIA_Gauge_Horiz
, TRUE
,
806 MUIA_Gauge_Current
, 50,
815 MUIA_Gauge_InfoText
, "%ld %%",
816 MUIA_Gauge_Horiz
, TRUE
,
817 MUIA_Gauge_Current
, 75,
827 MUIA_Gauge_InfoText
, "%ld %%",
828 MUIA_Gauge_Current
, 25,
832 MUIA_Gauge_InfoText
, "%ld %%",
833 MUIA_Gauge_Current
, 50,
837 MUIA_Gauge_InfoText
, "%ld %%",
838 MUIA_Gauge_Current
, 75,
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
,
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
,
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
,
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
,
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
,
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
,
897 GroupFrameT("Numeric Buttons"),
898 Child
, MUI_MakeObject(MUIO_Label
, "Normal:", 0),
899 Child
, numerics
[NNUMERICBUTTON
] =
901 MUIA_Numeric_Min
, NUMERIC_MIN
,
902 MUIA_Numeric_Max
, NUMERIC_MAX
,
905 Child
, MUI_MakeObject(MUIO_Label
, "Reverse:", 0),
906 Child
, numerics
[RNUMERICBUTTON
] =
908 MUIA_Numeric_Reverse
, TRUE
,
909 MUIA_Numeric_Min
, NUMERIC_MIN
,
910 MUIA_Numeric_Max
, NUMERIC_MAX
,
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
,
923 Child
, numerics
[RKNOB
] = KnobObject
,
924 MUIA_Numeric_Reverse
, TRUE
,
925 MUIA_Numeric_Min
, NUMERIC_MIN
,
926 MUIA_Numeric_Max
, NUMERIC_MAX
,
931 Child
, MUI_MakeObject(MUIO_Label
,
932 "Minimum Value:", 0),
933 Child
, min_string
= (Object
*)StringObject
,
935 MUIA_String_Accept
, (IPTR
)"-0123456789",
936 MUIA_String_Integer
, NUMERIC_MIN
,
939 Child
, MUI_MakeObject(MUIO_Label
,
940 "Maximum Value:", 0),
941 Child
, max_string
= (Object
*)StringObject
,
943 MUIA_String_Accept
, (IPTR
)"-0123456789",
944 MUIA_String_Integer
, NUMERIC_MAX
,
947 Child
, slider_button
= TextObject
,
949 MUIA_InputMode
, MUIV_InputMode_RelVerify
,
951 MUIA_Background
, MUII_ButtonBack
,
952 MUIA_Text_PreParse
, "\33c",
954 "Change Slider Orientations",
956 Child
, MUI_MakeObject(MUIO_Label
, "", 0),
965 MUIA_Radio_Entries
, radio_entries1
,
967 Child
, country_radio
[0] = RadioObject
,
969 MUIA_Radio_Entries
, radio_entries2
,
970 MUIA_Radio_Active
, 1,
976 MUIA_Radio_Entries
, radio_entries1
,
978 Child
, country_radio
[1] = RadioObject
,
980 MUIA_Radio_Entries
, radio_entries2
,
981 MUIA_Radio_Active
, 1,
986 #if defined(TEST_ICONLIST)
989 Child
, volume_iconlist
=
990 MUI_NewObject(MUIC_IconVolumeList
, GroupFrame
,
992 Child
, drawer_iconlist
=
993 MUI_NewObject(MUIC_IconDrawerList
, GroupFrame
,
994 MUIA_IconDrawerList_Drawer
, "SYS:",
1000 Child
, create_balance_column(),
1001 Child
, BalanceObject
,
1004 Child
, create_balance_column(),
1005 Child
, BalanceObject
,
1008 Child
, create_balance_column(),
1009 Child
, BalanceObject
,
1012 Child
, create_balance_column(),
1013 Child
, BalanceObject
,
1016 Child
, create_balance_column(),
1022 Child
, RectangleObject
,
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",
1030 Child
, StringObject
,
1033 MUIA_String_AdvanceOnCR
, TRUE
,
1038 MUIA_Cycle_Entries
, pages
,
1040 Child
, ScrollbarObject
,
1041 MUIA_Group_Horiz
, TRUE
,
1042 MUIA_Prop_Visible
, 100,
1043 MUIA_Prop_Entries
, 300,
1044 MUIA_Prop_First
, 50,
1048 Child
, about_button
= TextObject
,
1050 MUIA_InputMode
, MUIV_InputMode_RelVerify
,
1052 MUIA_Background
, MUII_ButtonBack
,
1053 MUIA_Text_PreParse
, "\33c",
1054 MUIA_Text_Contents
, "About",
1056 Child
, quit_button
= TextObject
,
1058 MUIA_InputMode
, MUIV_InputMode_RelVerify
,
1060 MUIA_Background
, MUII_ButtonBack
,
1061 MUIA_ControlChar
, 'q',
1062 MUIA_Text_HiChar
, 'q',
1063 MUIA_Text_PreParse
, "\33c",
1064 MUIA_Text_Contents
, "Quit",
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
,
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
,
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
,
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
);
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
,
1161 DoMethod(max_string
, MUIM_Notify
, MUIA_String_Integer
,
1162 MUIV_EveryTime
, numerics
[i
], 3, MUIM_Set
, MUIA_Numeric_Max
,
1165 DoMethod(slider_button
, MUIM_Notify
, MUIA_Pressed
, FALSE
,
1166 numerics
[HRSLIDER
], 3, MUIM_Set
, MUIA_Slider_Horiz
, FALSE
);
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)
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
);
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
)
1194 sigs
= Wait(sigs
| SIGBREAKF_CTRL_C
| SIGBREAKF_CTRL_D
);
1195 if (sigs
& SIGBREAKF_CTRL_C
)
1197 if (sigs
& SIGBREAKF_CTRL_D
)
1202 MUI_DisposeObject(app
);
1205 MUI_DisposeObject(context_menu
);
1206 CloseLibrary(ColorWheelBase
);
1207 MUI_DeleteCustomClass(CL_DropText
);
1209 CloseLibrary(MUIMasterBase
);