2 Copyright © 2002-2015, 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
35 #include <libraries/mui.h>
36 #if defined(TEST_ICONLIST)
37 #include "../../workbench/system/Wanderer/Classes/iconlist_attributes.h"
38 #include "../../workbench/system/Wanderer/Classes/iconlist.h"
41 #define STRING_COUNT 6
43 #define MULTI_LIST_COUNT 2
46 #define NUMERIC_MAX 100
48 static const TEXT digits
[] = "-0123456789";
49 static const TEXT default_accept_chars
[] = "aeiou?.";
50 static const TEXT default_reject_chars
[] = "*?";
51 static const ULONG default_color
[] = {155 << 24, 180 << 24, 255 << 24};
52 static const struct MUI_PenSpec default_penspec
= {"m0"};
53 static const TEXT list_format
[] = "BAR,BAR,";
70 struct Library
*MUIMasterBase
;
71 struct Library
*ColorWheelBase
;
83 Object
*strings
[STRING_COUNT
],
104 Object
*colorfield
, *colorfield2
, *colorfield_reset_button
, *colorfield_pen
;
106 Object
*pendisplay
, *pendisplay2
, *pendisplay_pen
, *pendisplay_spec
,
107 *reference_check
, *shine_button
, *shadow_button
, *yellow_button
, *poppen
;
110 Object
*filename_string
;
114 Object
*drawer_iconlist
;
115 Object
*volume_iconlist
;
117 AROS_UFH0(void, repeat_function
)
121 printf("MUI_Timer\n");
126 AROS_UFH0(void, wheel_function
)
130 nnset(r_slider
, MUIA_Numeric_Value
, (XGET(wheel
,
131 WHEEL_Red
) >> 24) & 0xff);
132 nnset(g_slider
, MUIA_Numeric_Value
, (XGET(wheel
,
133 WHEEL_Green
) >> 24) & 0xff);
134 nnset(b_slider
, MUIA_Numeric_Value
, (XGET(wheel
,
135 WHEEL_Blue
) >> 24) & 0xff);
140 AROS_UFH0(void, slider_function
)
144 struct ColorWheelRGB cw
;
145 ULONG red
= XGET(r_slider
, MUIA_Numeric_Value
);
146 ULONG green
= XGET(g_slider
, MUIA_Numeric_Value
);
147 ULONG blue
= XGET(b_slider
, MUIA_Numeric_Value
);
149 cw
.cw_Red
= (red
<< 24) | (red
<< 16) | (red
<< 8) | red
;
150 cw
.cw_Green
= (green
<< 24) | (green
<< 16) | (green
<< 8) | green
;
151 cw
.cw_Blue
= (blue
<< 24) | (blue
<< 16) | (blue
<< 8) | blue
;
153 nnset(wheel
, WHEEL_RGB
, &cw
);
154 set(hue_gauge
, MUIA_Gauge_Current
, XGET(wheel
, WHEEL_Hue
));
159 AROS_UFH0(void, objects_function
)
163 Object
*new_obj
= MUI_MakeObject(MUIO_Button
, "Button");
166 DoMethod(group
, MUIM_Group_InitChange
);
167 DoMethod(group
, OM_ADDMEMBER
, new_obj
);
168 DoMethod(group
, MUIM_Group_ExitChange
);
174 AROS_UFH0(void, about_function
)
178 static Object
*about_wnd
;
182 about_wnd
= AboutmuiObject
, MUIA_Aboutmui_Application
, app
, End
;
186 set(about_wnd
, MUIA_Window_Open
, TRUE
);
191 AROS_UFH0(void, ChangeStringAccept
)
195 STRPTR accept_chars
= NULL
, reject_chars
= NULL
;
199 accept_all
= XGET(string
.accept_all_check
, MUIA_Selected
);
200 SET(string
.accept_string
, MUIA_Disabled
, accept_all
);
201 SET(string
.reject_string
, MUIA_Disabled
, accept_all
);
205 GET(string
.accept_string
, MUIA_String_Contents
, &accept_chars
);
206 GET(string
.reject_string
, MUIA_String_Contents
, &reject_chars
);
209 for (i
= 0; i
< STRING_COUNT
; i
++)
211 SET(string
.strings
[i
], MUIA_String_Accept
, accept_chars
);
212 SET(string
.strings
[i
], MUIA_String_Reject
, reject_chars
);
218 AROS_UFH0(void, changepen_function
)
224 GET(colorfield_pen
, MUIA_String_Integer
, &pen
);
226 SET(colorfield
, MUIA_Colorfield_Pen
, pen
);
231 AROS_UFH0(void, ChangePendisplayPen
)
235 DoMethod(pendisplay
, MUIM_Pendisplay_SetColormap
,
236 XGET(pendisplay_pen
, MUIA_String_Integer
));
241 AROS_UFH3(void, display_function
,
242 AROS_UFHA(struct Hook
*, h
, A0
),
243 AROS_UFHA(char **, strings
, A2
),
244 AROS_UFHA(struct list_entry
*, entry
, A1
))
248 static char buf
[100];
252 sprintf(buf
, "%ld", (long)*(strings
- 1));
254 strings
[1] = entry
->column1
;
255 strings
[2] = entry
->column2
;
259 strings
[0] = "Number";
260 strings
[1] = "Column 1";
261 strings
[2] = "Column 2";
267 AROS_UFH3(void, display2_function
,
268 AROS_UFHA(struct Hook
*, h
, A0
),
269 AROS_UFHA(char **, strings
, A2
),
270 AROS_UFHA(struct list_entry
*, entry
, A1
))
274 static char buf
[100];
278 sprintf(buf
, "line num: %ld id: %p", (long)*(strings
- 1), entry
);
283 strings
[0] = "Number";
289 AROS_UFH0(void, save_function
)
293 char *text
= (char *)XGET(editor_text
, MUIA_String_Contents
);
294 char *filename
= (char *)XGET(filename_string
, MUIA_String_Contents
);
297 if (!strlen(filename
))
300 if ((fh
= Open(filename
, MODE_NEWFILE
)))
302 Write(fh
, text
, strlen(text
));
311 AROS_UFH0(void, add_function
)
315 DoMethod(list2
, MUIM_List_InsertSingle
, id
++,
316 MUIV_List_Insert_Bottom
);
321 #if defined(TEST_ICONLIST)
322 /* IconList callbacks */
323 void volume_doubleclicked(void)
326 struct IconList_Entry
*ent
= (void *)MUIV_IconList_NextIcon_Start
;
328 DoMethod(volume_iconlist
, MUIM_IconList_NextIcon
,
329 MUIV_IconList_NextIcon_Selected
, &ent
);
330 if ((IPTR
) ent
== MUIV_IconList_NextIcon_End
)
333 strcpy(buf
, ent
->label
);
335 set(drawer_iconlist
, MUIA_IconDrawerList_Drawer
, buf
);
338 void drawer_doubleclicked(void)
340 struct IconList_Entry
*ent
= (void *)MUIV_IconList_NextIcon_Start
;
342 DoMethod(drawer_iconlist
, MUIM_IconList_NextIcon
,
343 MUIV_IconList_NextIcon_Selected
, &ent
);
344 if ((IPTR
) ent
== MUIV_IconList_NextIcon_End
)
346 set(drawer_iconlist
, MUIA_IconDrawerList_Drawer
,
347 ent
->ile_IconEntry
->ie_IconNode
.ln_Name
);
351 static IPTR
create_balance_column(void)
353 return (IPTR
) VGroup
,
354 Child
, RectangleObject
,
357 Child
, BalanceObject
,
359 Child
, RectangleObject
,
362 Child
, BalanceObject
,
364 Child
, RectangleObject
,
367 Child
, BalanceObject
,
369 Child
, RectangleObject
,
372 Child
, BalanceObject
,
374 Child
, RectangleObject
,
380 /* The custom class */
389 struct Library
*KeymapBase
;
393 __saveds __asm IPTR
dispatcher(register __a0
struct IClass
*cl
,
394 register __a2 Object
*obj
, register __a1 Msg msg
)
396 AROS_UFH3S(IPTR
, dispatcher
,
397 AROS_UFHA(Class
*, cl
, A0
),
398 AROS_UFHA(Object
*, obj
, A2
), AROS_UFHA(Msg
, msg
, A1
))
403 switch (msg
->MethodID
)
406 return MUIV_DragQuery_Accept
;
409 struct DropText_Data
*data
=
410 (struct DropText_Data
*)INST_DATA(cl
, obj
);
413 sprintf(buf
, "%ld times", (long)data
->times
);
414 set(obj
, MUIA_Text_Contents
, buf
);
418 return DoSuperMethodA(cl
, obj
, (Msg
) msg
);
423 struct MUI_CustomClass
*CL_DropText
;
425 #define DropTextObject BOOPSIOBJMACRO_START(CL_DropText->mcc_Class)
429 static struct Hook hook_standard
;
431 AROS_UFH3(void, hook_func_standard
,
432 AROS_UFHA(struct Hook
*, h
, A0
),
433 AROS_UFHA(void *, dummy
, A2
), AROS_UFHA(void **, funcptr
, A1
))
437 void (*func
) (ULONG
*) = (void (*)(ULONG
*))(*funcptr
);
440 func((ULONG
*) funcptr
+ 1);
447 Object
*wnd
, *second_wnd
;
449 Object
*about_button
;
451 Object
*repeat_button
;
452 Object
*objects_button
;
453 Object
*about_item
, *quit_item
;
454 Object
*context_menu
;
455 Object
*popobject
, *listview
;
456 Object
*lists
[LIST_COUNT
];
457 Object
*list_add_button
, *list_remove_button
, *list_clear_button
;
458 Object
*dragsortable_check
, *showdropmarks_check
, *quiet_check
;
459 Object
*sort_button
, *clear_button
, *fill_button
, *enable_button
;
460 Object
*multi_lists
[MULTI_LIST_COUNT
];
461 Object
*format_string
;
462 Object
*column_string
;
464 Object
*showheadings_check
;
465 Object
*numerics
[NUMERIC_COUNT
];
466 Object
*min_string
, *max_string
;
467 Object
*slider_button
;
468 Object
*country_radio
[2];
471 static char *pages
[] =
472 {"General", "Text", "Boopsi", "Color", "Edit", "List", "Gauges",
474 #if defined(TEST_ICONLIST)
478 static char *text_pages
[] =
479 {"Text", "String", NULL
};
480 static char *color_pages
[] =
481 {"Palette", "Colors", "Pens", NULL
};
482 static char *list_pages
[] =
483 {"Single Column (1)", "Single Column (2)", "Multicolumn", NULL
};
484 static char **radio_entries1
= pages
;
485 static char *radio_entries2
[] =
486 {"Paris", "Pataya", "London", "New York", "Reykjavik", NULL
};
487 static char *fruits
[] = {"Strawberry", "Apple", "Banana", "Orange",
488 "Grapefruit", "Kumquat", "Plum", "Raspberry", "Apricot", "Grape",
489 "Peach", "Lemon", "Lime", "Date", "Pineapple", "Blueberry", "Papaya",
490 "Cranberry", "Gooseberry", "Pear", "Fig", "Coconut", "Melon",
493 static struct list_entry entry1
= {"Testentry1", "Col2: Entry1"};
494 static struct list_entry entry2
= {"Entry2", "Col2: Entry2"};
495 static struct list_entry entry3
= {"Entry3", "Col2: Entry3"};
496 static struct list_entry entry4
= {"Entry4", "Col2: Entry4"};
497 static struct list_entry entry5
= {"Entry5", "Col2: Entry5"};
498 static struct list_entry entry6
= {"Entry6", "Col2: Entry6"};
500 static struct list_entry
*entries
[] =
501 {&entry1
, &entry2
, &entry3
, &entry4
, &entry5
, &entry6
, NULL
};
504 struct Hook hook_wheel
;
505 struct Hook hook_slider
;
506 struct Hook hook_objects
;
507 struct Hook hook_display
;
508 struct Hook hook_display2
;
510 hook_standard
.h_Entry
= (HOOKFUNC
) hook_func_standard
;
512 MUIMasterBase
= (struct Library
*)OpenLibrary("muimaster.library", 0);
514 hook
.h_Entry
= (HOOKFUNC
) repeat_function
;
515 hook_wheel
.h_Entry
= (HOOKFUNC
) wheel_function
;
516 hook_slider
.h_Entry
= (HOOKFUNC
) slider_function
;
517 hook_objects
.h_Entry
= (HOOKFUNC
) objects_function
;
518 hook_display
.h_Entry
= (HOOKFUNC
) display_function
;
519 hook_display2
.h_Entry
= (HOOKFUNC
) display2_function
;
521 context_menu
= MenustripObject
,
522 MUIA_Family_Child
, MenuObject
,
523 MUIA_Menu_Title
, "Menutest",
524 MUIA_Family_Child
, about_item
= MenuitemObject
,
525 MUIA_Menuitem_Title
, "First Test Entry", End
,
526 MUIA_Family_Child
, quit_item
= MenuitemObject
,
527 MUIA_Menuitem_Title
, "Second Test Entry", End
,
531 /* should check the result in a real program! */
532 CL_DropText
= MUI_CreateCustomClass(NULL
, MUIC_Text
, NULL
,
533 sizeof(struct DropText_Data
), dispatcher
);
534 ColorWheelBase
= OpenLibrary("gadgets/colorwheel.gadget", 0);
536 pendisplay
= PendisplayObject
, MUIA_Pendisplay_Spec
, &default_penspec
, End
;
538 lists
[0] = ListviewObject
,
542 MUIA_List_Title
, "Fruits",
543 MUIA_List_SourceArray
, fruits
,
544 MUIA_ShortHelp
, "Default scroller",
546 MUIA_Listview_MultiSelect
,
547 MUIV_Listview_MultiSelect_None
,
550 lists
[1] = ListviewObject
,
554 MUIA_List_SourceArray
, fruits
,
555 MUIA_ShortHelp
, "Left scroller",
557 MUIA_Listview_ScrollerPos
,
558 MUIV_Listview_ScrollerPos_Left
,
561 lists
[2] = ListviewObject
,
565 MUIA_List_SourceArray
, fruits
,
566 MUIA_ShortHelp
, "Right scroller",
568 MUIA_Listview_MultiSelect
,
569 MUIV_Listview_MultiSelect_Shifted
,
570 MUIA_Listview_ScrollerPos
,
571 MUIV_Listview_ScrollerPos_Right
,
574 lists
[3] = ListviewObject
,
578 MUIA_List_SourceArray
, fruits
,
579 MUIA_ShortHelp
, "No scroller",
581 MUIA_Listview_MultiSelect
,
582 MUIV_Listview_MultiSelect_Always
,
583 MUIA_Listview_ScrollerPos
,
584 MUIV_Listview_ScrollerPos_None
,
587 lists
[4] = ListviewObject
,
591 MUIA_List_SourceArray
, fruits
,
592 MUIA_ShortHelp
, "Default scroller",
594 MUIA_Listview_Input
, FALSE
,
598 app
= ApplicationObject
,
599 MUIA_Application_Menustrip
, MenustripObject
,
600 MUIA_Family_Child
, MenuObject
,
601 MUIA_Menu_Title
, "Project",
602 MUIA_Family_Child
, about_item
= MenuitemObject
,
603 MUIA_Menuitem_Title
, "About...",
604 MUIA_Menuitem_Shortcut
, "?",
606 MUIA_Family_Child
, MenuitemObject
,
607 MUIA_Menuitem_Title
, (SIPTR
)-1,
609 MUIA_Family_Child
, quit_item
= MenuitemObject
,
610 MUIA_Menuitem_Title
, "Quit",
611 MUIA_Menuitem_Shortcut
, "Q",
616 SubWindow
, wnd
= WindowObject
,
617 MUIA_Window_Title
, "test",
618 MUIA_Window_Activate
, TRUE
,
620 WindowContents
, VGroup
,
621 Child
, RegisterGroup(pages
),
622 //MUIA_Background, "5:SYS:Prefs/Presets/Backdrops/StuccoBlue.pic",
627 GroupFrameT("A horizontal group"),
629 GroupFrameT("A column group"),
630 Child
, repeat_button
= TextObject
,
633 MUIA_Background
, MUII_ButtonBack
,
634 MUIA_Text_PreParse
, "\33c",
635 MUIA_Text_Contents
, "Repeat",
636 MUIA_InputMode
, MUIV_InputMode_RelVerify
,
641 MUIA_Background
, MUII_ButtonBack
,
642 MUIA_Text_PreParse
, "\33c",
643 MUIA_Text_Contents
, "Drag Me",
644 MUIA_Draggable
, TRUE
,
645 MUIA_InputMode
, MUIV_InputMode_RelVerify
,
647 Child
, open_button
= TextObject
,
650 MUIA_Background
, MUII_ButtonBack
,
651 MUIA_Text_PreParse
, "\33c",
652 MUIA_Text_Contents
, "Open Window",
653 MUIA_InputMode
, MUIV_InputMode_RelVerify
,
656 MUIA_ContextMenu
, context_menu
,
659 MUIA_Background
, MUII_ButtonBack
,
660 MUIA_Text_PreParse
, "\33c",
661 MUIA_Text_Contents
, "Press Right",
662 MUIA_InputMode
, MUIV_InputMode_RelVerify
,
664 Child
, objects_button
= TextObject
,
667 MUIA_Background
, MUII_ButtonBack
,
668 MUIA_Text_PreParse
, "\33c",
669 MUIA_Text_Contents
, "Add Objects",
670 MUIA_InputMode
, MUIV_InputMode_RelVerify
,
675 Child
, MUI_MakeObject(MUIO_Checkmark
,
679 Child
, MUI_MakeObject(MUIO_Label
,
686 Child
, group
= VGroup
,
687 GroupFrameT("A vertical group"),
688 Child
, DropTextObject
,
692 MUIA_Background
, MUII_ButtonBack
,
693 MUIA_Text_PreParse
, "\33c",
694 MUIA_Text_Contents
, "Drop Here",
696 MUIA_InputMode
, MUIV_InputMode_RelVerify
,
700 MUIA_Background
, MUII_MARKHALFSHINE
,
702 MUIA_Text_PreParse
, "\33c",
703 MUIA_Text_Contents
, "Pattern",
705 Child
, MUI_NewObject(MUIC_Popimage
, TAG_DONE
),
707 Child
, ScrollgroupObject
,
708 GroupFrameT("A scroll group"),
709 MUIA_Scrollgroup_Contents
, VGroupV
,
714 "Line1\nLine2\nLine3\nLine4\n"
715 "Line5\nLine6\nLine7\nLine8\n"
717 "Line9\nLine10\nLine11\n",
720 Child
, MUI_MakeObject(MUIO_Button
,
722 Child
, MUI_MakeObject(MUIO_Button
,
728 Child
, popobject
= PopobjectObject
,
729 MUIA_Popstring_String
,
730 MUI_MakeObject(MUIO_String
, NULL
, 200),
731 MUIA_Popstring_Button
, PopButton(MUII_PopUp
),
732 MUIA_Popobject_Object
, VGroup
,
734 MUIA_Text_Contents
, "test",
736 Child
, listview
= ListviewObject
,
737 MUIA_Listview_List
, ListObject
,
739 MUIA_List_DisplayHook
, &hook_display
,
740 MUIA_List_Format
, ",,",
741 MUIA_List_SourceArray
, entries
,
742 MUIA_List_Title
, TRUE
,
749 MUIA_Cycle_Entries
, pages
,
751 Child
, ScrollbarObject
,
752 MUIA_Group_Horiz
, TRUE
,
753 MUIA_Prop_Visible
, 100,
754 MUIA_Prop_Entries
, 300,
760 Child
, RegisterGroup(text_pages
),
764 MUIA_Background
, "2:cfffffff,cfffffff,10000000",
766 MUIA_Text_Contents
, "\33cHello World!\n"
767 "This is a text object\n\33lLeft \33bbold\33n\n"
770 Child
, RectangleObject
,
772 /* Seems to be not supported properly as orginal MUI
773 doesn't allow to alter the height of the window */
774 MUIA_Rectangle_HBar
, TRUE
,
775 MUIA_Rectangle_BarTitle
,"Enter a string",
780 MUIA_String_AdvanceOnCR
, TRUE
,
788 Child
, VGroup
, GroupFrameT("Default Alignment"),
789 Child
, string
.strings
[0] = StringObject
,
792 (IPTR
)default_accept_chars
,
794 (IPTR
)default_reject_chars
,
795 MUIA_String_AdvanceOnCR
, TRUE
,
796 MUIA_String_MaxLen
, 9,
798 MUIA_String_AttachedList
, lists
[0],
801 Child
, VGroup
, GroupFrameT("Left Aligned"),
802 Child
, string
.strings
[1] = StringObject
,
805 (IPTR
)default_accept_chars
,
807 (IPTR
)default_reject_chars
,
809 MUIV_String_Format_Left
,
810 MUIA_String_AdvanceOnCR
, TRUE
,
811 MUIA_String_MaxLen
, 9,
813 MUIA_String_Contents
,
814 (IPTR
)default_accept_chars
,
815 MUIA_String_BufferPos
, 3,
816 MUIA_String_AttachedList
, lists
[0],
819 Child
, VGroup
, GroupFrameT("Right Aligned"),
820 Child
, string
.strings
[2] = StringObject
,
823 (IPTR
)default_accept_chars
,
825 (IPTR
)default_reject_chars
,
827 MUIV_String_Format_Right
,
828 MUIA_String_AdvanceOnCR
, TRUE
,
829 MUIA_String_MaxLen
, 9,
831 MUIA_String_AttachedList
, lists
[0],
834 Child
, VGroup
, GroupFrameT("Centered"),
835 Child
, string
.strings
[3] = StringObject
,
838 (IPTR
)default_accept_chars
,
840 (IPTR
)default_reject_chars
,
842 MUIV_String_Format_Center
,
843 MUIA_String_AdvanceOnCR
, TRUE
,
844 MUIA_String_MaxLen
, 9,
846 MUIA_String_Integer
, 123,
847 MUIA_String_AttachedList
, lists
[0],
850 Child
, VGroup
, GroupFrameT("Secret"),
851 Child
, string
.strings
[4] = StringObject
,
854 (IPTR
)default_accept_chars
,
856 (IPTR
)default_reject_chars
,
858 MUIV_String_Format_Center
,
859 MUIA_String_Secret
, TRUE
,
860 MUIA_String_AdvanceOnCR
, TRUE
,
861 MUIA_String_MaxLen
, 9,
863 MUIA_String_AttachedList
, lists
[0],
866 Child
, HGroup
, GroupFrameT("Narrow"),
868 Child
, string
.strings
[5] = StringObject
,
871 (IPTR
)default_accept_chars
,
873 (IPTR
)default_reject_chars
,
875 MUIV_String_Format_Center
,
876 MUIA_String_AdvanceOnCR
, TRUE
,
878 MUIA_String_MaxLen
, 9,
880 MUIA_String_AttachedList
, lists
[0],
886 Child
, VGroup
, GroupFrameT("Controls"),
888 Child
, string
.accept_all_check
=
889 MUI_MakeObject(MUIO_Checkmark
, NULL
),
890 Child
, MUI_MakeObject(MUIO_Label
,
891 "Accept all characters", 0),
895 Child
, MUI_MakeObject(MUIO_Label
,
896 "Acceptable characters:", 0),
897 Child
, string
.accept_string
= StringObject
,
899 MUIA_String_Contents
,
900 (IPTR
)default_accept_chars
,
902 Child
, MUI_MakeObject(MUIO_Label
,
903 "Unacceptable characters:", 0),
904 Child
, string
.reject_string
= StringObject
,
907 Child
, MUI_MakeObject(MUIO_Label
,
908 "Cursor position:", 0),
909 Child
, string
.cursor_pos_slider
=
911 MUIA_Group_Horiz
, TRUE
,
914 Child
, MUI_MakeObject(MUIO_Label
,
915 "Display position:", 0),
916 Child
, string
.display_pos_slider
=
918 MUIA_Group_Horiz
, TRUE
,
921 Child
, MUI_MakeObject(MUIO_Label
,
922 "Integer value:", 0),
923 Child
, string
.integer_string
=
926 MUIA_String_Accept
, (IPTR
)digits
,
928 Child
, MUI_MakeObject(MUIO_Label
,
930 Child
, string
.plaintext_string
=
934 Child
, MUI_MakeObject(MUIO_Label
,
935 "Maximum string length:", 0),
936 Child
, string
.max_len_text
= TextObject
,
938 MUIA_Text_Contents
, "Unknown",
943 Child
, string
.cr_advance_check
=
944 MUI_MakeObject(MUIO_Checkmark
,
946 Child
, MUI_MakeObject(MUIO_Label
,
951 Child
, string
.attach_list_check
=
952 MUI_MakeObject(MUIO_Checkmark
,
954 Child
, MUI_MakeObject(MUIO_Label
,
960 Child
, string
.standard_hook_check
=
961 MUI_MakeObject(MUIO_Checkmark
,
963 Child
, MUI_MakeObject(MUIO_Label
,
964 "Use standard edit hook", 0),
968 Child
, string
.custom_hook_check
=
969 MUI_MakeObject(MUIO_Checkmark
,
971 Child
, MUI_MakeObject(MUIO_Label
,
972 "Use custom edit hook", 0),
985 Child
, wheel
= BoopsiObject
, /* MUI/Boopsi tags mixed */
987 /* boopsi objects don't know */
988 /* their sizes, so we help */
989 /* keep important values */
990 /* during window resize */
991 MUIA_Boopsi_ClassID
, "colorwheel.gadget",
992 MUIA_Boopsi_MinWidth
, 30,
993 MUIA_Boopsi_MinHeight
, 30,
994 MUIA_Boopsi_Remember
, WHEEL_Saturation
,
995 MUIA_Boopsi_Remember
, WHEEL_Hue
,
996 /* this magic fills in the screen pointer */
997 MUIA_Boopsi_TagScreen
, WHEEL_Screen
,
1000 GA_Top
, 0, /* MUI will automatically */
1001 GA_Width
, 0, /* fill in the correct values */
1003 ICA_TARGET
, ICTARGET_IDCMP
,
1004 /* needed for notification */
1005 WHEEL_Saturation
, 0, /* start in the center */
1006 MUIA_FillArea
, TRUE
,
1007 /* use this because it defaults to FALSE
1008 for boopsi gadgets but the colorwheel
1009 doesn't bother about redrawing its
1013 Child
, r_slider
= SliderObject
,
1014 MUIA_Group_Horiz
, TRUE
,
1015 MUIA_Numeric_Min
, 0,
1016 MUIA_Numeric_Max
, 255,
1018 Child
, g_slider
= SliderObject
,
1019 MUIA_Group_Horiz
, TRUE
,
1020 MUIA_Numeric_Min
, 0,
1021 MUIA_Numeric_Max
, 255,
1023 Child
, b_slider
= SliderObject
,
1024 MUIA_Group_Horiz
, TRUE
,
1025 MUIA_Numeric_Min
, 0,
1026 MUIA_Numeric_Max
, 255,
1028 Child
, hue_gauge
= GaugeObject
,
1030 MUIA_Gauge_Horiz
, TRUE
,
1031 MUIA_Gauge_Max
, 255,
1032 MUIA_Gauge_Divide
, 1<<24,
1033 MUIA_Gauge_InfoText
, "Hue: %ld",
1038 Child
, RegisterGroup(color_pages
),
1039 Child
, VGroup
, GroupFrameT("Palette"),
1040 Child
, PaletteObject
,
1044 Child
, VGroup
, GroupFrameT("Colorfield"),
1047 Child
, colorfield
= ColorfieldObject
,
1048 MUIA_Colorfield_RGB
, default_color
,
1049 MUIA_Colorfield_Pen
, 253,
1051 Child
, colorfield2
= ColorfieldObject
,
1052 MUIA_Colorfield_Red
, default_color
[0],
1053 MUIA_Colorfield_Green
, default_color
[1],
1054 MUIA_Colorfield_Blue
, default_color
[2],
1057 Child
, colorfield_reset_button
=
1058 MUI_MakeObject(MUIO_Button
,
1062 MUI_MakeObject(MUIO_Label
, "Pen:", 0),
1063 Child
, colorfield_pen
= StringObject
,
1068 Child
, VGroup
, GroupFrameT("Coloradjust"),
1069 Child
, coloradjust
= ColoradjustObject
,
1070 MUIA_Coloradjust_RGB
, default_color
,
1076 Child
, VGroup
, GroupFrameT("Pendisplay"),
1079 Child
, pendisplay2
= PendisplayObject
,
1080 MUIA_Pendisplay_RGBcolor
,
1087 MUIO_Label
, "Pen:", 0),
1089 Child
, pendisplay_pen
=
1090 StringObject
, StringFrame
,
1093 Child
, reference_check
=
1094 MUI_MakeObject(MUIO_Checkmark
,
1096 Child
, MUI_MakeObject(MUIO_Label
,
1101 MUIO_Label
, "Penspec:", 0),
1102 Child
, pendisplay_spec
= StringObject
,
1107 Child
, shine_button
=
1108 MUI_MakeObject(MUIO_Button
,
1110 Child
, shadow_button
=
1111 MUI_MakeObject(MUIO_Button
,
1113 Child
, yellow_button
=
1114 MUI_MakeObject(MUIO_Button
,
1118 Child
, VGroup
, GroupFrameT("Poppen"),
1119 Child
, poppen
= PoppenObject
,
1123 Child
, VGroup
, GroupFrameT("Penadjust"),
1124 Child
, PenadjustObject
,
1132 Child
, editor_text
= StringObject
,
1135 Child
, PopaslObject
,
1136 ASLFR_DoSaveMode
, TRUE
,
1137 MUIA_Popstring_String
, filename_string
=
1138 MUI_MakeObject(MUIO_String
, NULL
, 200),
1139 MUIA_Popstring_Button
, PopButton(MUII_PopFile
),
1141 Child
, save_button
=
1142 MUI_MakeObject(MUIO_Button
, "Save"),
1146 Child
, RegisterGroup(list_pages
),
1148 Child
, ColGroup(LIST_COUNT
),
1149 Child
, VGroup
, GroupFrameT("No Multiselect"),
1153 GroupFrameT("Default Multiselect"),
1157 GroupFrameT("Shifted Multiselect"),
1161 GroupFrameT("Unconditional Multiselect"),
1165 GroupFrameT("Read Only"),
1169 Child
, RectangleObject
,
1171 MUIA_Rectangle_HBar
, TRUE
,
1172 MUIA_Rectangle_BarTitle
, "List Controls",
1175 Child
, sort_button
=
1176 MUI_MakeObject(MUIO_Button
, "Sort"),
1177 Child
, clear_button
=
1178 MUI_MakeObject(MUIO_Button
, "Clear"),
1179 Child
, fill_button
=
1180 MUI_MakeObject(MUIO_Button
, "Fill"),
1181 Child
, enable_button
=
1182 MUI_MakeObject(MUIO_Button
, "Enable"),
1186 Child
, dragsortable_check
=
1187 MUI_MakeObject(MUIO_Checkmark
, NULL
),
1188 Child
, MUI_MakeObject(MUIO_Label
,
1189 "Drag sortable", 0),
1193 Child
, showdropmarks_check
=
1194 MUI_MakeObject(MUIO_Checkmark
, NULL
),
1195 Child
, MUI_MakeObject(MUIO_Label
,
1196 "Show drop marks", 0),
1200 Child
, quiet_check
=
1201 MUI_MakeObject(MUIO_Checkmark
,NULL
),
1202 Child
, MUI_MakeObject(MUIO_Label
,
1209 Child
, ListviewObject
,
1210 MUIA_Listview_List
, list2
= ListObject
,
1212 MUIA_List_DisplayHook
, &hook_display2
,
1216 Child
, list_add_button
=
1217 MUI_MakeObject(MUIO_Button
,"_Add"),
1218 Child
, list_remove_button
=
1219 MUI_MakeObject(MUIO_Button
,"_Remove"),
1220 Child
, list_clear_button
=
1221 MUI_MakeObject(MUIO_Button
,"_Clear"),
1225 Child
, ColGroup(LIST_COUNT
/ 2),
1226 Child
, VGroup
, GroupFrameT("Standard Format"),
1227 Child
, multi_lists
[0] = ListviewObject
,
1231 MUIA_List_DisplayHook
,
1233 MUIA_List_Format
, list_format
,
1234 MUIA_List_SourceArray
, entries
,
1235 MUIA_List_Title
, TRUE
,
1237 MUIA_Listview_MultiSelect
,
1238 MUIV_Listview_MultiSelect_None
,
1242 Child
, VGroup
, GroupFrameT("Custom Format"),
1243 Child
, multi_lists
[1] = ListviewObject
,
1247 MUIA_List_DisplayHook
,
1249 MUIA_List_Format
, list_format
,
1250 MUIA_List_SourceArray
, entries
,
1251 MUIA_List_Title
, TRUE
,
1253 MUIA_Listview_MultiSelect
,
1254 MUIV_Listview_MultiSelect_None
,
1259 Child
, RectangleObject
,
1261 MUIA_Rectangle_HBar
, TRUE
,
1262 MUIA_Rectangle_BarTitle
, "List Controls",
1265 Child
, MUI_MakeObject(MUIO_Label
, "Format:", 0),
1266 Child
, format_string
= StringObject
,
1268 MUIA_String_Contents
, list_format
,
1271 Child
, showheadings_check
=
1272 MUI_MakeObject(MUIO_Checkmark
, NULL
),
1273 Child
, MUI_MakeObject(MUIO_Label
,
1274 "Show column headings", 0),
1277 Child
, MUI_MakeObject(MUIO_Label
,
1278 "Clicked column:", 0),
1279 Child
, column_string
= StringObject
,
1282 Child
, column_text
= TextObject
,
1284 MUIA_Text_Contents
, "N/A",
1297 MUIA_Gauge_InfoText
, "%ld %%",
1298 MUIA_Gauge_Horiz
, TRUE
,
1299 MUIA_Gauge_Current
, 25,
1308 MUIA_Gauge_InfoText
, "%ld %%",
1309 MUIA_Gauge_Horiz
, TRUE
,
1310 MUIA_Gauge_Current
, 50,
1319 MUIA_Gauge_InfoText
, "%ld %%",
1320 MUIA_Gauge_Horiz
, TRUE
,
1321 MUIA_Gauge_Current
, 75,
1331 MUIA_Gauge_InfoText
, "%ld %%",
1332 MUIA_Gauge_Current
, 25,
1336 MUIA_Gauge_InfoText
, "%ld %%",
1337 MUIA_Gauge_Current
, 50,
1341 MUIA_Gauge_InfoText
, "%ld %%",
1342 MUIA_Gauge_Current
, 75,
1351 GroupFrameT("Horizontal Sliders"),
1352 Child
, MUI_MakeObject(MUIO_Label
, "Normal:", 0),
1353 Child
, numerics
[HNSLIDER
] = SliderObject
,
1354 MUIA_Slider_Horiz
, TRUE
,
1355 MUIA_Numeric_Min
, NUMERIC_MIN
,
1356 MUIA_Numeric_Max
, NUMERIC_MAX
,
1359 Child
, MUI_MakeObject(MUIO_Label
, "Reverse:", 0),
1360 Child
, numerics
[HRSLIDER
] = SliderObject
,
1361 MUIA_Numeric_Reverse
, TRUE
,
1362 MUIA_Numeric_Min
, NUMERIC_MIN
,
1363 MUIA_Numeric_Max
, NUMERIC_MAX
,
1366 Child
, MUI_MakeObject(MUIO_Label
, "Quiet:", 0),
1367 Child
, numerics
[HQSLIDER
] = SliderObject
,
1368 MUIA_Slider_Quiet
, TRUE
,
1369 MUIA_Numeric_Min
, NUMERIC_MIN
,
1370 MUIA_Numeric_Max
, NUMERIC_MAX
,
1375 GroupFrameT("Vertical Sliders"),
1376 Child
, MUI_MakeObject(MUIO_Label
, "Normal", 0),
1377 Child
, MUI_MakeObject(MUIO_Label
, "Reverse", 0),
1378 Child
, MUI_MakeObject(MUIO_Label
, "Quiet", 0),
1379 Child
, numerics
[VNSLIDER
] = SliderObject
,
1380 MUIA_Slider_Horiz
, FALSE
,
1381 MUIA_Numeric_Min
, NUMERIC_MIN
,
1382 MUIA_Numeric_Max
, NUMERIC_MAX
,
1385 Child
, numerics
[VRSLIDER
] = SliderObject
,
1386 MUIA_Slider_Horiz
, FALSE
,
1387 MUIA_Numeric_Reverse
, TRUE
,
1388 MUIA_Numeric_Min
, NUMERIC_MIN
,
1389 MUIA_Numeric_Max
, NUMERIC_MAX
,
1392 Child
, numerics
[VQSLIDER
] = SliderObject
,
1393 MUIA_Slider_Horiz
, FALSE
,
1394 MUIA_Slider_Quiet
, TRUE
,
1395 MUIA_Numeric_Min
, NUMERIC_MIN
,
1396 MUIA_Numeric_Max
, NUMERIC_MAX
,
1401 GroupFrameT("Numeric Buttons"),
1402 Child
, MUI_MakeObject(MUIO_Label
, "Normal:", 0),
1403 Child
, numerics
[NNUMERICBUTTON
] =
1404 NumericbuttonObject
,
1405 MUIA_Numeric_Min
, NUMERIC_MIN
,
1406 MUIA_Numeric_Max
, NUMERIC_MAX
,
1409 Child
, MUI_MakeObject(MUIO_Label
, "Reverse:", 0),
1410 Child
, numerics
[RNUMERICBUTTON
] =
1411 NumericbuttonObject
,
1412 MUIA_Numeric_Reverse
, TRUE
,
1413 MUIA_Numeric_Min
, NUMERIC_MIN
,
1414 MUIA_Numeric_Max
, NUMERIC_MAX
,
1419 GroupFrameT("Knobs"),
1420 Child
, MUI_MakeObject(MUIO_Label
, "Normal", 0),
1421 Child
, MUI_MakeObject(MUIO_Label
, "Reverse", 0),
1422 Child
, numerics
[NKNOB
] = KnobObject
,
1423 MUIA_Numeric_Min
, NUMERIC_MIN
,
1424 MUIA_Numeric_Max
, NUMERIC_MAX
,
1427 Child
, numerics
[RKNOB
] = KnobObject
,
1428 MUIA_Numeric_Reverse
, TRUE
,
1429 MUIA_Numeric_Min
, NUMERIC_MIN
,
1430 MUIA_Numeric_Max
, NUMERIC_MAX
,
1435 Child
, MUI_MakeObject(MUIO_Label
,
1436 "Minimum Value:", 0),
1437 Child
, min_string
= (Object
*)StringObject
,
1439 MUIA_String_Accept
, (IPTR
)digits
,
1440 MUIA_String_Integer
, NUMERIC_MIN
,
1443 Child
, MUI_MakeObject(MUIO_Label
,
1444 "Maximum Value:", 0),
1445 Child
, max_string
= (Object
*)StringObject
,
1447 MUIA_String_Accept
, (IPTR
)digits
,
1448 MUIA_String_Integer
, NUMERIC_MAX
,
1451 Child
, slider_button
= TextObject
,
1453 MUIA_InputMode
, MUIV_InputMode_RelVerify
,
1455 MUIA_Background
, MUII_ButtonBack
,
1456 MUIA_Text_PreParse
, "\33c",
1458 "Change Slider Orientations",
1460 Child
, MUI_MakeObject(MUIO_Label
, "", 0),
1469 MUIA_Radio_Entries
, radio_entries1
,
1471 Child
, country_radio
[0] = RadioObject
,
1473 MUIA_Radio_Entries
, radio_entries2
,
1474 MUIA_Radio_Active
, 1,
1480 MUIA_Radio_Entries
, radio_entries1
,
1482 Child
, country_radio
[1] = RadioObject
,
1484 MUIA_Radio_Entries
, radio_entries2
,
1485 MUIA_Radio_Active
, 1,
1490 #if defined(TEST_ICONLIST)
1493 Child
, volume_iconlist
=
1494 MUI_NewObject(MUIC_IconVolumeList
, GroupFrame
,
1496 Child
, drawer_iconlist
=
1497 MUI_NewObject(MUIC_IconDrawerList
, GroupFrame
,
1498 MUIA_IconDrawerList_Drawer
, "SYS:",
1505 Child
, create_balance_column(),
1506 Child
, BalanceObject
,
1509 Child
, create_balance_column(),
1510 Child
, BalanceObject
,
1513 Child
, create_balance_column(),
1514 Child
, BalanceObject
,
1517 Child
, create_balance_column(),
1518 Child
, BalanceObject
,
1521 Child
, create_balance_column(),
1528 Child
, about_button
= TextObject
,
1530 MUIA_InputMode
, MUIV_InputMode_RelVerify
,
1532 MUIA_Background
, MUII_ButtonBack
,
1533 MUIA_Text_PreParse
, "\33c",
1534 MUIA_Text_Contents
, "About",
1536 Child
, quit_button
= TextObject
,
1538 MUIA_InputMode
, MUIV_InputMode_RelVerify
,
1540 MUIA_Background
, MUII_ButtonBack
,
1541 MUIA_ControlChar
, 'q',
1542 MUIA_Text_HiChar
, 'q',
1543 MUIA_Text_PreParse
, "\33c",
1544 MUIA_Text_Contents
, "Quit",
1550 SubWindow
, second_wnd
= WindowObject
,
1551 MUIA_Window_Title
, "Second window",
1552 WindowContents
, VGroup
,
1553 Child
, DropTextObject
,
1554 MUIA_Text_Contents
, "Drop here",
1555 MUIA_Dropable
, TRUE
,
1566 DoMethod(wnd
, MUIM_Notify
, MUIA_Window_CloseRequest
, TRUE
, app
, 2,
1567 MUIM_Application_ReturnID
, MUIV_Application_ReturnID_Quit
);
1568 DoMethod(second_wnd
, MUIM_Notify
, MUIA_Window_CloseRequest
, TRUE
,
1569 second_wnd
, 3, MUIM_Set
, MUIA_Window_Open
, FALSE
);
1570 DoMethod(open_button
, MUIM_Notify
, MUIA_Pressed
, FALSE
, second_wnd
,
1571 3, MUIM_Set
, MUIA_Window_Open
, TRUE
);
1572 DoMethod(about_button
, MUIM_Notify
, MUIA_Pressed
, FALSE
, app
, 2,
1573 MUIM_Application_AboutMUI
, NULL
);
1574 DoMethod(quit_button
, MUIM_Notify
, MUIA_Pressed
, FALSE
, app
, 2,
1575 MUIM_Application_ReturnID
, MUIV_Application_ReturnID_Quit
);
1576 DoMethod(objects_button
, MUIM_Notify
, MUIA_Pressed
, FALSE
, app
, 2,
1577 MUIM_CallHook
, &hook_objects
);
1578 DoMethod(repeat_button
, MUIM_Notify
, MUIA_Timer
, MUIV_EveryTime
,
1579 app
, 2, MUIM_CallHook
, &hook
);
1581 /* Notifications and set-up for string objects */
1582 DoMethod(string
.max_len_text
, MUIM_SetAsString
, MUIA_Text_Contents
,
1583 "%ld", XGET(string
.strings
[0], MUIA_String_MaxLen
) - 1);
1584 set(string
.cursor_pos_slider
, MUIA_Numeric_Max
,
1585 XGET(string
.strings
[0], MUIA_String_MaxLen
) - 1);
1586 set(string
.display_pos_slider
, MUIA_Numeric_Max
,
1587 XGET(string
.strings
[0], MUIA_String_MaxLen
) - 1);
1588 set(string
.cr_advance_check
, MUIA_Selected
, TRUE
);
1589 set(string
.attach_list_check
, MUIA_Selected
, TRUE
);
1590 set(string
.strings
[1], MUIA_Disabled
,
1591 XGET(string
.strings
[1], MUIA_String_Format
)
1592 != MUIV_String_Format_Left
);
1593 set(string
.strings
[2], MUIA_Disabled
,
1594 XGET(string
.strings
[2], MUIA_String_Format
)
1595 != MUIV_String_Format_Right
);
1596 set(string
.strings
[3], MUIA_Disabled
,
1597 XGET(string
.strings
[3], MUIA_String_Format
)
1598 != MUIV_String_Format_Center
);
1599 set(string
.strings
[4], MUIA_Disabled
,
1600 !XGET(string
.strings
[4], MUIA_String_Secret
));
1601 set(string
.strings
[0], MUIA_String_MaxLen
, 100);
1602 set(string
.reject_string
, MUIA_String_Contents
,
1603 (IPTR
)default_reject_chars
);
1605 for (i
= 0; i
< STRING_COUNT
; i
++)
1609 DoMethod(string
.accept_string
, MUIM_Notify
,
1610 MUIA_String_Contents
, MUIV_EveryTime
, string
.strings
[i
],
1611 3, MUIM_Set
, MUIA_String_Accept
, MUIV_TriggerValue
);
1612 DoMethod(string
.cr_advance_check
, MUIM_Notify
, MUIA_Selected
,
1613 MUIV_EveryTime
, string
.strings
[i
], 3, MUIM_Set
,
1614 MUIA_String_AdvanceOnCR
, MUIV_TriggerValue
);
1615 DoMethod(string
.cursor_pos_slider
, MUIM_Notify
,
1616 MUIA_Numeric_Value
, MUIV_EveryTime
, string
.strings
[i
], 3,
1617 MUIM_Set
, MUIA_String_BufferPos
, MUIV_TriggerValue
);
1618 DoMethod(string
.display_pos_slider
, MUIM_Notify
,
1619 MUIA_Numeric_Value
, MUIV_EveryTime
, string
.strings
[i
], 3,
1620 MUIM_Set
, MUIA_String_DisplayPos
, MUIV_TriggerValue
);
1621 DoMethod(string
.attach_list_check
, MUIM_Notify
, MUIA_Selected
,
1622 TRUE
, string
.strings
[i
], 3, MUIM_Set
,
1623 MUIA_String_AttachedList
, lists
[0]);
1624 DoMethod(string
.attach_list_check
, MUIM_Notify
, MUIA_Selected
,
1625 FALSE
, string
.strings
[i
], 3, MUIM_Set
,
1626 MUIA_String_AttachedList
, NULL
);
1630 DoMethod(string
.strings
[0], MUIM_Notify
, MUIA_String_Accept
,
1631 MUIV_EveryTime
, string
.strings
[i
], 3, MUIM_Set
,
1632 MUIA_String_Accept
, MUIV_TriggerValue
);
1633 DoMethod(string
.strings
[0], MUIM_Notify
,
1634 MUIA_String_AdvanceOnCR
, MUIV_EveryTime
,
1635 string
.strings
[i
], 3, MUIM_Set
, MUIA_String_AdvanceOnCR
,
1637 DoMethod(string
.strings
[0], MUIM_Notify
,
1638 MUIA_String_BufferPos
, MUIV_EveryTime
,
1639 string
.strings
[i
], 3, MUIM_Set
, MUIA_String_BufferPos
,
1641 DoMethod(string
.strings
[0], MUIM_Notify
,
1642 MUIA_String_DisplayPos
, MUIV_EveryTime
,
1643 string
.strings
[i
], 3, MUIM_Set
, MUIA_String_DisplayPos
,
1645 DoMethod(string
.strings
[0], MUIM_Notify
,
1646 MUIA_String_AttachedList
, MUIV_EveryTime
,
1647 string
.strings
[i
], 3, MUIM_Set
,
1648 MUIA_String_AttachedList
, MUIV_TriggerValue
);
1650 DoMethod(string
.reject_string
, MUIM_Notify
, MUIA_String_Contents
,
1651 MUIV_EveryTime
, string
.strings
[i
], 3, MUIM_Set
,
1652 MUIA_String_Reject
, MUIV_TriggerValue
);
1653 DoMethod(string
.strings
[i
], MUIM_Notify
, MUIA_String_Integer
,
1654 MUIV_EveryTime
, string
.integer_string
, 3, MUIM_NoNotifySet
,
1655 MUIA_String_Integer
, MUIV_TriggerValue
);
1656 DoMethod(string
.integer_string
, MUIM_Notify
, MUIA_String_Integer
,
1657 MUIV_EveryTime
, string
.strings
[i
], 3, MUIM_NoNotifySet
,
1658 MUIA_String_Integer
, MUIV_TriggerValue
);
1660 DoMethod(string
.accept_all_check
, MUIM_Notify
, MUIA_Selected
,
1661 MUIV_EveryTime
, app
, 3, MUIM_CallHook
, &hook_standard
,
1662 ChangeStringAccept
);
1663 DoMethod(string
.strings
[4], MUIM_Notify
, MUIA_String_Acknowledge
,
1664 MUIV_EveryTime
, string
.plaintext_string
, 3, MUIM_NoNotifySet
,
1665 MUIA_String_Contents
, MUIV_TriggerValue
);
1666 DoMethod(string
.plaintext_string
, MUIM_Notify
,
1667 MUIA_String_Acknowledge
, MUIV_EveryTime
, string
.strings
[4], 3,
1668 MUIM_NoNotifySet
, MUIA_String_Contents
, MUIV_TriggerValue
);
1670 DoMethod(wheel
, MUIM_Notify
, WHEEL_Hue
, MUIV_EveryTime
, app
, 2,
1671 MUIM_CallHook
, &hook_wheel
);
1672 DoMethod(wheel
, MUIM_Notify
, WHEEL_Saturation
, MUIV_EveryTime
, app
,
1673 2, MUIM_CallHook
, &hook_wheel
);
1674 DoMethod(r_slider
, MUIM_Notify
, MUIA_Numeric_Value
, MUIV_EveryTime
,
1675 app
, 2, MUIM_CallHook
, &hook_slider
);
1676 DoMethod(g_slider
, MUIM_Notify
, MUIA_Numeric_Value
, MUIV_EveryTime
,
1677 app
, 2, MUIM_CallHook
, &hook_slider
);
1678 DoMethod(b_slider
, MUIM_Notify
, MUIA_Numeric_Value
, MUIV_EveryTime
,
1679 app
, 2, MUIM_CallHook
, &hook_slider
);
1681 DoMethod(save_button
, MUIM_Notify
, MUIA_Pressed
, FALSE
, app
, 3,
1682 MUIM_CallHook
, &hook_standard
, save_function
);
1684 DoMethod(quit_item
, MUIM_Notify
, MUIA_Menuitem_Trigger
,
1685 MUIV_EveryTime
, app
, 2, MUIM_Application_ReturnID
,
1686 MUIV_Application_ReturnID_Quit
);
1687 DoMethod(about_item
, MUIM_Notify
, MUIA_Menuitem_Trigger
,
1688 MUIV_EveryTime
, app
, 3, MUIM_CallHook
, &hook_standard
,
1691 /* Notifications for color objects */
1692 DoMethod(colorfield
, MUIM_Notify
, MUIA_Colorfield_Red
,
1693 MUIV_EveryTime
, colorfield2
, 3, MUIM_Set
, MUIA_Colorfield_Red
,
1695 DoMethod(colorfield
, MUIM_Notify
, MUIA_Colorfield_Green
,
1696 MUIV_EveryTime
, colorfield2
, 3, MUIM_Set
, MUIA_Colorfield_Green
,
1698 DoMethod(colorfield
, MUIM_Notify
, MUIA_Colorfield_Blue
,
1699 MUIV_EveryTime
, colorfield2
, 3, MUIM_Set
, MUIA_Colorfield_Blue
,
1701 DoMethod(coloradjust
, MUIM_Notify
, MUIA_Coloradjust_Red
,
1702 MUIV_EveryTime
, colorfield
, 3, MUIM_Set
, MUIA_Colorfield_Red
,
1704 DoMethod(coloradjust
, MUIM_Notify
, MUIA_Coloradjust_Green
,
1705 MUIV_EveryTime
, colorfield
, 3, MUIM_Set
, MUIA_Colorfield_Green
,
1707 DoMethod(coloradjust
, MUIM_Notify
, MUIA_Coloradjust_Blue
,
1708 MUIV_EveryTime
, colorfield
, 3, MUIM_Set
, MUIA_Colorfield_Blue
,
1710 DoMethod(colorfield
, MUIM_Notify
, MUIA_Colorfield_Pen
,
1711 MUIV_EveryTime
, colorfield_pen
, 3, MUIM_Set
,
1712 MUIA_String_Integer
, MUIV_TriggerValue
);
1713 DoMethod(colorfield_pen
, MUIM_Notify
, MUIA_String_Acknowledge
,
1714 MUIV_EveryTime
, app
, 3, MUIM_CallHook
, &hook_standard
,
1715 changepen_function
);
1716 DoMethod(colorfield_reset_button
, MUIM_Notify
, MUIA_Pressed
, FALSE
,
1717 colorfield
, 3, MUIM_Set
, MUIA_Colorfield_RGB
, default_color
);
1719 /* Notifications for pen objects */
1720 DoMethod(pendisplay
, MUIM_Notify
, MUIA_Pendisplay_Pen
,
1721 MUIV_EveryTime
, pendisplay_pen
, 3, MUIM_NoNotifySet
,
1722 MUIA_String_Integer
, MUIV_TriggerValue
);
1723 DoMethod(pendisplay_pen
, MUIM_Notify
, MUIA_String_Acknowledge
,
1724 MUIV_EveryTime
, app
, 3, MUIM_CallHook
, &hook_standard
,
1725 ChangePendisplayPen
);
1726 DoMethod(pendisplay
, MUIM_Notify
, MUIA_Pendisplay_Spec
,
1727 MUIV_EveryTime
, pendisplay_spec
, 3, MUIM_Set
,
1728 MUIA_String_Contents
, MUIV_TriggerValue
);
1729 DoMethod(colorfield
, MUIM_Notify
, MUIA_Colorfield_RGB
,
1730 MUIV_EveryTime
, pendisplay
, 3, MUIM_Set
,
1731 MUIA_Pendisplay_RGBcolor
, MUIV_TriggerValue
);
1732 DoMethod(pendisplay
, MUIM_Notify
, MUIA_Pendisplay_RGBcolor
,
1733 MUIV_EveryTime
, poppen
, 3, MUIM_Set
, MUIA_Pendisplay_RGBcolor
,
1735 DoMethod(pendisplay_spec
, MUIM_Notify
, MUIA_String_Contents
,
1736 MUIV_EveryTime
, pendisplay
, 3, MUIM_Set
, MUIA_Pendisplay_Spec
,
1738 DoMethod(reference_check
, MUIM_Notify
, MUIA_Selected
, TRUE
,
1739 pendisplay2
, 3, MUIM_Set
, MUIA_Pendisplay_Reference
, pendisplay
);
1740 DoMethod(reference_check
, MUIM_Notify
, MUIA_Selected
, FALSE
,
1741 pendisplay2
, 3, MUIM_Set
, MUIA_Pendisplay_Reference
, NULL
);
1742 DoMethod(shine_button
, MUIM_Notify
, MUIA_Pressed
, FALSE
, pendisplay
,
1743 2, MUIM_Pendisplay_SetMUIPen
, MPEN_SHINE
);
1744 DoMethod(shadow_button
, MUIM_Notify
, MUIA_Pressed
, FALSE
, pendisplay
,
1745 2, MUIM_Pendisplay_SetMUIPen
, MPEN_SHADOW
);
1746 DoMethod(yellow_button
, MUIM_Notify
, MUIA_Pressed
, FALSE
, pendisplay
,
1747 4, MUIM_Pendisplay_SetRGB
, 0xffffffff, 0xffffffff, 0);
1750 set(showdropmarks_check
, MUIA_Selected
, TRUE
);
1751 for (i
= 0; i
< LIST_COUNT
; i
++)
1753 DoMethod(lists
[i
], MUIM_Notify
, MUIA_Listview_DoubleClick
,
1754 MUIV_EveryTime
, lists
[i
], 3, MUIM_Set
, MUIA_Disabled
, TRUE
);
1755 DoMethod(sort_button
, MUIM_Notify
, MUIA_Pressed
, FALSE
,
1756 lists
[i
], 1, MUIM_List_Sort
);
1757 DoMethod(clear_button
, MUIM_Notify
, MUIA_Pressed
, FALSE
,
1758 lists
[i
], 1, MUIM_List_Clear
);
1759 DoMethod(fill_button
, MUIM_Notify
, MUIA_Pressed
, FALSE
,
1760 lists
[i
], 4, MUIM_List_Insert
, fruits
, -1,
1761 MUIV_List_Insert_Bottom
);
1762 DoMethod(enable_button
, MUIM_Notify
, MUIA_Pressed
, FALSE
,
1763 lists
[i
], 3, MUIM_Set
, MUIA_Disabled
, FALSE
);
1764 DoMethod(dragsortable_check
, MUIM_Notify
, MUIA_Selected
,
1765 MUIV_EveryTime
, lists
[i
], 3, MUIM_Set
,
1766 MUIA_List_DragSortable
, MUIV_TriggerValue
);
1767 DoMethod(showdropmarks_check
, MUIM_Notify
, MUIA_Selected
,
1768 MUIV_EveryTime
, lists
[i
], 3, MUIM_Set
,
1769 MUIA_List_ShowDropMarks
, MUIV_TriggerValue
);
1770 DoMethod(quiet_check
, MUIM_Notify
, MUIA_Selected
,
1771 MUIV_EveryTime
, lists
[i
], 3, MUIM_Set
, MUIA_List_Quiet
,
1775 set(showheadings_check
, MUIA_Selected
, TRUE
);
1776 DoMethod(format_string
, MUIM_Notify
, MUIA_String_Acknowledge
,
1777 MUIV_EveryTime
, multi_lists
[1], 3, MUIM_Set
, MUIA_List_Format
,
1779 for (i
= 0; i
< MULTI_LIST_COUNT
; i
++)
1781 DoMethod(showheadings_check
, MUIM_Notify
, MUIA_Selected
,
1782 MUIV_EveryTime
, multi_lists
[i
], 3, MUIM_Set
,
1783 MUIA_List_Title
, MUIV_TriggerValue
);
1784 DoMethod(multi_lists
[i
], MUIM_Notify
, MUIA_Listview_ClickColumn
,
1785 MUIV_EveryTime
, column_string
, 3, MUIM_Set
,
1786 MUIA_String_Integer
, MUIV_TriggerValue
);
1788 DoMethod(column_string
, MUIM_Notify
, MUIA_String_Contents
,
1789 MUIV_EveryTime
, column_text
, 3, MUIM_Set
, MUIA_Text_Contents
,
1792 DoMethod(listview
, MUIM_Notify
, MUIA_Listview_DoubleClick
, TRUE
,
1793 popobject
, 2, MUIM_Popstring_Close
, TRUE
);
1795 /* The callbacks of the buttons within the list page */
1796 DoMethod(list_add_button
, MUIM_Notify
, MUIA_Pressed
, FALSE
, app
, 3,
1797 MUIM_CallHook
, &hook_standard
, add_function
);
1798 DoMethod(list_remove_button
, MUIM_Notify
, MUIA_Pressed
, FALSE
,
1799 list2
, 2, MUIM_List_Remove
, MUIV_List_Remove_Active
);
1800 DoMethod(list_clear_button
, MUIM_Notify
, MUIA_Pressed
, FALSE
, list2
,
1801 1, MUIM_List_Clear
);
1804 for (i
= 0; i
< NUMERIC_COUNT
; i
++)
1806 DoMethod(min_string
, MUIM_Notify
, MUIA_String_Integer
,
1807 MUIV_EveryTime
, numerics
[i
], 3, MUIM_Set
, MUIA_Numeric_Min
,
1809 DoMethod(max_string
, MUIM_Notify
, MUIA_String_Integer
,
1810 MUIV_EveryTime
, numerics
[i
], 3, MUIM_Set
, MUIA_Numeric_Max
,
1813 DoMethod(slider_button
, MUIM_Notify
, MUIA_Pressed
, FALSE
,
1814 numerics
[HRSLIDER
], 3, MUIM_Set
, MUIA_Slider_Horiz
, FALSE
);
1817 DoMethod(country_radio
[0], MUIM_Notify
, MUIA_Radio_Active
,
1818 MUIV_EveryTime
, country_radio
[1], 3, MUIM_NoNotifySet
,
1819 MUIA_Radio_Active
, MUIV_TriggerValue
);
1820 DoMethod(country_radio
[1], MUIM_Notify
, MUIA_Radio_Active
,
1821 MUIV_EveryTime
, country_radio
[0], 3, MUIM_NoNotifySet
,
1822 MUIA_Radio_Active
, MUIV_TriggerValue
);
1824 #if defined(TEST_ICONLIST)
1826 DoMethod(volume_iconlist
, MUIM_Notify
, MUIA_IconList_DoubleClick
,
1827 TRUE
, volume_iconlist
, 3, MUIM_CallHook
, &hook_standard
,
1828 volume_doubleclicked
);
1829 DoMethod(drawer_iconlist
, MUIM_Notify
, MUIA_IconList_DoubleClick
,
1830 TRUE
, drawer_iconlist
, 3, MUIM_CallHook
, &hook_standard
,
1831 drawer_doubleclicked
);
1834 set(wnd
, MUIA_Window_Open
, TRUE
);
1835 set(wnd
, MUIA_Window_ScreenTitle
, "Zune Test application");
1837 /* Set pen fields */
1838 set(colorfield_pen
, MUIA_String_Integer
,
1839 XGET(colorfield
, MUIA_Colorfield_Pen
));
1842 nnset(pendisplay_pen
, MUIA_String_Integer
,
1843 XGET(pendisplay
, MUIA_Pendisplay_Pen
));
1845 struct MUI_PenSpec
*pen_spec
= NULL
;
1846 GET(pendisplay
, MUIA_Pendisplay_Spec
, &pen_spec
);
1847 strncpy(pen_str
, pen_spec
->buf
, 10);
1848 set(pendisplay_spec
, MUIA_String_Contents
, pen_str
);
1850 while ((LONG
) DoMethod(app
, MUIM_Application_NewInput
,
1851 &sigs
) != MUIV_Application_ReturnID_Quit
)
1855 sigs
= Wait(sigs
| SIGBREAKF_CTRL_C
| SIGBREAKF_CTRL_D
);
1856 if (sigs
& SIGBREAKF_CTRL_C
)
1858 if (sigs
& SIGBREAKF_CTRL_D
)
1863 MUI_DisposeObject(app
);
1866 MUI_DisposeObject(context_menu
);
1867 CloseLibrary(ColorWheelBase
);
1868 MUI_DeleteCustomClass(CL_DropText
);
1870 CloseLibrary(MUIMasterBase
);