Added two new modes for the removal of list items. In order to test
[AROS.git] / test / Zune / test.c
blob6ce7faa98acfe7fe8c6a32a17be6705d2a324d0e
1 /*
2 Copyright © 2002-2015, 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 #if 0
32 #define TEST_ICONLIST
33 #endif
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"
39 #endif
41 #define STRING_COUNT 6
42 #define LIST_COUNT 5
43 #define MULTI_LIST_COUNT 2
45 #define NUMERIC_MIN 0
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 char *fruits[] = {"Strawberry", "Apple", "Banana", "Orange",
54 "Grapefruit", "Kumquat", "Plum", "Raspberry", "Apricot", "Grape",
55 "Peach", "Lemon", "Lime", "Date", "Pineapple", "Blueberry", "Papaya",
56 "Cranberry", "Gooseberry", "Pear", "Fig", "Coconut", "Melon",
57 "Pumpkin", NULL};
58 static const char *empty[] = {"", "", "", "", "", NULL};
59 static const LONG list_active_positions[] =
61 MUIV_List_Active_Top,
62 MUIV_List_Active_Bottom,
63 MUIV_List_Active_Off,
64 MUIV_List_Active_Off,
65 MUIV_List_Active_Off
67 static const CONST_STRPTR list_move1_modes[] =
68 {"Index", "Top", "Active", "Bottom", NULL};
69 static const CONST_STRPTR list_move2_modes[] =
70 {"Index", "Top", "Active", "Bottom", "Next", "Previous", NULL};
71 static const CONST_STRPTR list_jump_modes[] =
72 {"Index", "Top", "Active", "Bottom", "Down", "Up", NULL};
73 static const CONST_STRPTR list_insert_modes[] =
74 {"Index", "Top", "Active", "Sorted", "Bottom", NULL};
75 static const CONST_STRPTR list_remove_modes[] =
76 {"Index", "First", "Active", "Last", "Selected", "Unsafe Loop",
77 "Safe Loop", NULL};
78 static const CONST_STRPTR list_activate_modes[] =
79 {"Index", "Top", "Bottom", "Up", "Down", "Page Up", "Page Down", NULL};
80 static const CONST_STRPTR list_select_modes[] =
81 {"Index", "Active", "All", NULL};
82 static const TEXT list_format[] = "BAR,BAR,";
84 enum
86 HNSLIDER,
87 HRSLIDER,
88 HQSLIDER,
89 VNSLIDER,
90 VRSLIDER,
91 VQSLIDER,
92 NNUMERICBUTTON,
93 RNUMERICBUTTON,
94 NKNOB,
95 RKNOB,
96 NUMERIC_COUNT
99 struct Library *MUIMasterBase;
100 struct Library *ColorWheelBase;
102 struct list_entry
104 char *column1;
105 char *column2;
108 Object *app;
110 static struct
112 Object *strings[STRING_COUNT],
113 *accept_string,
114 *reject_string,
115 *cursor_pos_slider,
116 *display_pos_slider,
117 *integer_string,
118 *plaintext_string,
119 *max_len_text,
120 *cr_advance_check,
121 *attach_list_check,
122 *standard_hook_check,
123 *custom_hook_check,
124 *accept_all_check;
126 string;
128 static struct
130 Object *lists[LIST_COUNT],
131 *list_radios,
132 *index1_string,
133 *index2_string,
134 *title_string,
135 *move1_cycle,
136 *move2_cycle,
137 *jump_cycle,
138 *select_cycle,
139 *insert_cycle,
140 *remove_cycle,
141 *activate_cycle,
142 *sort_button,
143 *clear_button,
144 *enable_button,
145 *reset_button,
146 *select_button,
147 *deselect_button,
148 *toggle_button,
149 *move_button,
150 *exchange_button,
151 *jump_button,
152 *redraw_button,
153 *insert_single_button,
154 *insert_multiple_button,
155 *remove_button,
156 *activate_button,
157 *deactivate_button,
158 *dragsortable_check,
159 *showdropmarks_check,
160 *quiet_check,
161 *autovisible_check,
162 *entries_text,
163 *visible_text,
164 *first_text,
165 *insert_text,
166 *active_text,
167 *multi_lists[MULTI_LIST_COUNT],
168 *format_string,
169 *column_string,
170 *column_text,
171 *def_column_string,
172 *showheadings_check;
173 LONG quiet[LIST_COUNT];
175 list;
177 static Object *wheel;
178 static Object *r_slider;
179 static Object *g_slider;
180 static Object *b_slider;
181 static Object *hue_gauge;
182 static Object *colorfield, *colorfield2, *colorfield_reset_button,
183 *colorfield_pen;
184 static Object *coloradjust;
185 static Object *pendisplay, *pendisplay2, *pendisplay_pen, *pendisplay_spec,
186 *reference_check, *shine_button, *shadow_button, *yellow_button, *poppen;
187 static Object *group;
188 static Object *editor_text;
189 static Object *filename_string;
190 static Object *save_button;
191 static Object *list2;
193 static Object *drawer_iconlist;
194 static Object *volume_iconlist;
196 AROS_UFH0(void, repeat_function)
198 AROS_USERFUNC_INIT
200 printf("MUI_Timer\n");
202 AROS_USERFUNC_EXIT
205 AROS_UFH0(void, wheel_function)
207 AROS_USERFUNC_INIT
209 nnset(r_slider, MUIA_Numeric_Value, (XGET(wheel,
210 WHEEL_Red) >> 24) & 0xff);
211 nnset(g_slider, MUIA_Numeric_Value, (XGET(wheel,
212 WHEEL_Green) >> 24) & 0xff);
213 nnset(b_slider, MUIA_Numeric_Value, (XGET(wheel,
214 WHEEL_Blue) >> 24) & 0xff);
216 AROS_USERFUNC_EXIT
219 AROS_UFH0(void, slider_function)
221 AROS_USERFUNC_INIT
223 struct ColorWheelRGB cw;
224 ULONG red = XGET(r_slider, MUIA_Numeric_Value);
225 ULONG green = XGET(g_slider, MUIA_Numeric_Value);
226 ULONG blue = XGET(b_slider, MUIA_Numeric_Value);
228 cw.cw_Red = (red << 24) | (red << 16) | (red << 8) | red;
229 cw.cw_Green = (green << 24) | (green << 16) | (green << 8) | green;
230 cw.cw_Blue = (blue << 24) | (blue << 16) | (blue << 8) | blue;
232 nnset(wheel, WHEEL_RGB, &cw);
233 set(hue_gauge, MUIA_Gauge_Current, XGET(wheel, WHEEL_Hue));
235 AROS_USERFUNC_EXIT
238 AROS_UFH0(void, objects_function)
240 AROS_USERFUNC_INIT
242 Object *new_obj = MUI_MakeObject(MUIO_Button, "Button");
243 if (new_obj)
245 DoMethod(group, MUIM_Group_InitChange);
246 DoMethod(group, OM_ADDMEMBER, new_obj);
247 DoMethod(group, MUIM_Group_ExitChange);
250 AROS_USERFUNC_EXIT
253 static void About(void)
255 static Object *about_wnd;
257 if (!about_wnd)
259 about_wnd = AboutmuiObject, MUIA_Aboutmui_Application, app, End;
262 if (about_wnd)
263 set(about_wnd, MUIA_Window_Open, TRUE);
266 static void ChangeStringAccept(void)
268 STRPTR accept_chars = NULL, reject_chars = NULL;
269 BOOL accept_all;
270 UWORD i;
272 accept_all = XGET(string.accept_all_check, MUIA_Selected);
273 SET(string.accept_string, MUIA_Disabled, accept_all);
274 SET(string.reject_string, MUIA_Disabled, accept_all);
276 if (!accept_all)
278 GET(string.accept_string, MUIA_String_Contents, &accept_chars);
279 GET(string.reject_string, MUIA_String_Contents, &reject_chars);
282 for (i = 0; i < STRING_COUNT; i++)
284 SET(string.strings[i], MUIA_String_Accept, accept_chars);
285 SET(string.strings[i], MUIA_String_Reject, reject_chars);
289 static void ChangePen(void)
291 SIPTR pen = -1;
293 GET(colorfield_pen, MUIA_String_Integer, &pen);
294 if (pen >= 0)
295 SET(colorfield, MUIA_Colorfield_Pen, pen);
298 static void ChangePendisplayPen(void)
300 DoMethod(pendisplay, MUIM_Pendisplay_SetColormap,
301 XGET(pendisplay_pen, MUIA_String_Integer));
304 static void ChangeListTitle(void)
306 STRPTR title = NULL;
307 UWORD i;
309 i = XGET(list.list_radios, MUIA_Radio_Active);
311 GET(list.lists[i], MUIA_List_Title, &title);
312 FreeVec(title);
314 GET(list.title_string, MUIA_String_Contents, &title);
315 if (title[0] == '\0')
316 title = NULL;
318 title = StrDup(title);
320 SET(list.lists[i], MUIA_List_Title, title);
323 static void UpdateListInfo(void)
325 STRPTR title = NULL;
326 UWORD i;
327 LONG value = 0;
329 i = XGET(list.list_radios, MUIA_Radio_Active);
331 GET(list.lists[i], MUIA_List_DragSortable, &value);
332 NNSET(list.dragsortable_check, MUIA_Selected, value);
333 GET(list.lists[i], MUIA_List_ShowDropMarks, &value);
334 NNSET(list.showdropmarks_check, MUIA_Selected, value);
335 value = list.quiet[i]; // MUIA_List_Quiet is not gettable!
336 NNSET(list.quiet_check, MUIA_Selected, value);
337 GET(list.lists[i], MUIA_List_AutoVisible, &value);
338 NNSET(list.autovisible_check, MUIA_Selected, value);
340 GET(list.lists[i], MUIA_List_Title, &title);
341 NNSET(list.title_string, MUIA_String_Contents, title);
343 GET(list.lists[i], MUIA_List_Entries, &value);
344 DoMethod(list.entries_text, MUIM_SetAsString, MUIA_Text_Contents,
345 "%ld", value);
346 GET(list.lists[i], MUIA_List_Visible, &value);
347 DoMethod(list.visible_text, MUIM_SetAsString, MUIA_Text_Contents,
348 "%ld", value);
349 GET(list.lists[i], MUIA_List_First, &value);
350 DoMethod(list.first_text, MUIM_SetAsString, MUIA_Text_Contents,
351 "%ld", value);
352 GET(list.lists[i], MUIA_List_InsertPosition, &value);
353 DoMethod(list.insert_text, MUIM_SetAsString, MUIA_Text_Contents,
354 "%ld", value);
355 GET(list.lists[i], MUIA_List_Active, &value);
356 if (value == MUIV_List_Active_Off)
357 SET(list.active_text, MUIA_Text_Contents, "N/A");
358 else
359 DoMethod(list.active_text, MUIM_SetAsString, MUIA_Text_Contents,
360 "%ld", value);
363 static void ListGetVisible(void)
365 UWORD i;
366 LONG value = 0;
368 i = XGET(list.list_radios, MUIA_Radio_Active);
370 GET(list.lists[i], MUIA_List_Visible, &value);
371 DoMethod(list.visible_text, MUIM_SetAsString, MUIA_Text_Contents,
372 "%ld", value);
375 static void ListGetFirst(void)
377 UWORD i;
378 LONG value = 0;
380 i = XGET(list.list_radios, MUIA_Radio_Active);
382 GET(list.lists[i], MUIA_List_First, &value);
383 DoMethod(list.first_text, MUIM_SetAsString, MUIA_Text_Contents,
384 "%ld", value);
387 static void ListSetDragSortable(void)
389 UWORD i;
390 LONG value = 0;
392 i = XGET(list.list_radios, MUIA_Radio_Active);
394 GET(list.dragsortable_check, MUIA_Selected, &value);
395 SET(list.lists[i], MUIA_List_DragSortable, value);
398 static void ListSetShowDropMarks(void)
400 UWORD i;
401 LONG value = 0;
403 i = XGET(list.list_radios, MUIA_Radio_Active);
405 GET(list.showdropmarks_check, MUIA_Selected, &value);
406 SET(list.lists[i], MUIA_List_ShowDropMarks, value);
409 static void ListSetQuiet(void)
411 UWORD i;
412 LONG value = 0;
414 i = XGET(list.list_radios, MUIA_Radio_Active);
416 GET(list.quiet_check, MUIA_Selected, &value);
417 SET(list.lists[i], MUIA_List_Quiet, value);
418 list.quiet[i] = value;
421 static void ListSetAutoVisible(void)
423 UWORD i;
424 LONG value = 0;
426 i = XGET(list.list_radios, MUIA_Radio_Active);
428 GET(list.autovisible_check, MUIA_Selected, &value);
429 SET(list.lists[i], MUIA_List_AutoVisible, value);
432 static void ListReset(void)
434 UWORD i;
436 i = XGET(list.list_radios, MUIA_Radio_Active);
438 SET(list.lists[i], MUIA_List_Active, list_active_positions[i]);
441 static void ListMove(void)
443 LONG mode, pos1, pos2;
444 UWORD i;
446 i = XGET(list.list_radios, MUIA_Radio_Active);
448 mode = XGET(list.move1_cycle, MUIA_Cycle_Active);
450 if (mode == 0)
451 pos1 = XGET(list.index1_string, MUIA_String_Integer);
452 else
453 pos1 = 1 - mode;
455 mode = XGET(list.move2_cycle, MUIA_Cycle_Active);
457 if (mode == 0)
458 pos2 = XGET(list.index2_string, MUIA_String_Integer);
459 else
460 pos2 = 1 - mode;
462 DoMethod(list.lists[i], MUIM_List_Move, pos1, pos2);
465 static void ListSort(void)
467 UWORD i;
469 i = XGET(list.list_radios, MUIA_Radio_Active);
471 DoMethod(list.lists[i], MUIM_List_Sort);
474 static void ListEnable(void)
476 UWORD i;
478 i = XGET(list.list_radios, MUIA_Radio_Active);
480 SET(list.lists[i], MUIA_Disabled, FALSE);
483 static void ListExchange(void)
485 LONG mode, pos1, pos2;
486 UWORD i;
488 i = XGET(list.list_radios, MUIA_Radio_Active);
490 mode = XGET(list.move1_cycle, MUIA_Cycle_Active);
492 if (mode == 0)
493 pos1 = XGET(list.index1_string, MUIA_String_Integer);
494 else
495 pos1 = 1 - mode;
497 mode = XGET(list.move2_cycle, MUIA_Cycle_Active);
499 if (mode == 0)
500 pos2 = XGET(list.index2_string, MUIA_String_Integer);
501 else
502 pos2 = 1 - mode;
504 DoMethod(list.lists[i], MUIM_List_Exchange, pos1, pos2);
507 static void ListJump(void)
509 LONG mode, pos;
510 UWORD i;
512 i = XGET(list.list_radios, MUIA_Radio_Active);
514 mode = XGET(list.jump_cycle, MUIA_Cycle_Active);
516 if (mode == 0)
517 pos = XGET(list.index1_string, MUIA_String_Integer);
518 else
519 pos = 1 - mode;
521 DoMethod(list.lists[i], MUIM_List_Jump, pos);
524 static void ListSelect(void)
526 LONG mode, pos;
527 UWORD i;
529 i = XGET(list.list_radios, MUIA_Radio_Active);
531 mode = XGET(list.select_cycle, MUIA_Cycle_Active);
533 if (mode == 0)
534 pos = XGET(list.index1_string, MUIA_String_Integer);
535 else
536 pos = 0 - mode;
538 DoMethod(list.lists[i], MUIM_List_Select, pos, MUIV_List_Select_On,
539 NULL);
542 static void ListDeselect(void)
544 LONG mode, pos;
545 UWORD i;
547 i = XGET(list.list_radios, MUIA_Radio_Active);
549 mode = XGET(list.select_cycle, MUIA_Cycle_Active);
551 if (mode == 0)
552 pos = XGET(list.index1_string, MUIA_String_Integer);
553 else
554 pos = 0 - mode;
556 DoMethod(list.lists[i], MUIM_List_Select, pos, MUIV_List_Select_Off,
557 NULL);
560 static void ListToggle(void)
562 LONG mode, pos;
563 UWORD i;
565 i = XGET(list.list_radios, MUIA_Radio_Active);
567 mode = XGET(list.select_cycle, MUIA_Cycle_Active);
569 if (mode == 0)
570 pos = XGET(list.index1_string, MUIA_String_Integer);
571 else
572 pos = 0 - mode;
574 DoMethod(list.lists[i], MUIM_List_Select, pos,
575 MUIV_List_Select_Toggle, NULL);
578 static void ListRedraw(void)
580 LONG mode, pos;
581 UWORD i;
583 i = XGET(list.list_radios, MUIA_Radio_Active);
585 mode = XGET(list.select_cycle, MUIA_Cycle_Active);
587 if (mode == 0)
588 pos = XGET(list.index1_string, MUIA_String_Integer);
589 else
590 pos = 0 - mode;
592 DoMethod(list.lists[i], MUIM_List_Redraw, pos);
595 static void ListInsertSingle(void)
597 LONG mode, pos;
598 UWORD i;
600 i = XGET(list.list_radios, MUIA_Radio_Active);
602 mode = XGET(list.insert_cycle, MUIA_Cycle_Active);
604 if (mode == 0)
605 pos = XGET(list.index1_string, MUIA_String_Integer);
606 else
607 pos = 1 - mode;
609 DoMethod(list.lists[i], MUIM_List_InsertSingle, "Tomato", pos);
612 static void ListInsert(void)
614 LONG mode, pos;
615 UWORD i;
617 i = XGET(list.list_radios, MUIA_Radio_Active);
619 mode = XGET(list.insert_cycle, MUIA_Cycle_Active);
621 if (mode == 0)
622 pos = XGET(list.index1_string, MUIA_String_Integer);
623 else
624 pos = 1 - mode;
626 DoMethod(list.lists[i], MUIM_List_Insert, fruits, -1, pos);
629 static void ListRemove(void)
631 LONG mode, pos, count, j, *selections;
632 UWORD i;
634 i = XGET(list.list_radios, MUIA_Radio_Active);
636 mode = XGET(list.remove_cycle, MUIA_Cycle_Active);
638 if (mode == 0)
639 pos = XGET(list.index1_string, MUIA_String_Integer);
640 else
641 pos = 1 - mode;
643 if (mode == 5)
645 /* Remove selected entries in a loop to test MUIM_List_NextSelected.
646 This doesn't work as expected in MUI or Zune */
647 pos = MUIV_List_NextSelected_Start - 1;
648 while (pos != MUIV_List_NextSelected_End)
650 if (pos == MUIV_List_NextSelected_Start - 1)
651 pos++;
652 DoMethod(list.lists[i], MUIM_List_NextSelected, (IPTR) &pos);
653 if (pos != MUIV_List_NextSelected_End)
654 DoMethod(list.lists[i], MUIM_List_Remove, pos);
657 else if (mode == 6)
659 /* Remove selected entries safely by first retrieving them with
660 MUIM_List_NextSelected and then removing them one by one */
661 DoMethod(list.lists[i], MUIM_List_Select, MUIV_List_Select_All,
662 MUIV_List_Select_Ask, &count);
663 selections = AllocVec(sizeof(LONG) * count, MEMF_ANY);
664 if (selections != NULL)
666 pos = MUIV_List_NextSelected_Start;
667 for (j = 0; j < count; j++)
669 DoMethod(list.lists[i], MUIM_List_NextSelected, (IPTR) &pos);
670 selections[j] = pos;
673 /* We must remove the entries in reverse order; otherwise the
674 later indices will become invalid */
675 while (count > 0)
676 DoMethod(list.lists[i], MUIM_List_Remove, selections[--count]);
677 FreeVec(selections);
680 else
681 DoMethod(list.lists[i], MUIM_List_Remove, pos);
684 static void ListClear(void)
686 UWORD i;
688 i = XGET(list.list_radios, MUIA_Radio_Active);
690 DoMethod(list.lists[i], MUIM_List_Clear);
693 static void ListActivate(void)
695 LONG mode, pos;
696 UWORD i;
698 i = XGET(list.list_radios, MUIA_Radio_Active);
700 mode = XGET(list.activate_cycle, MUIA_Cycle_Active);
702 if (mode == 0)
703 pos = XGET(list.index1_string, MUIA_String_Integer);
704 else
705 pos = -1 - mode;
707 SET(list.lists[i], MUIA_List_Active, pos);
710 static void ListDeactivate(void)
712 UWORD i;
714 i = XGET(list.list_radios, MUIA_Radio_Active);
716 SET(list.lists[i], MUIA_List_Active, MUIV_List_Active_Off);
719 AROS_UFH3(static void, display_function,
720 AROS_UFHA(struct Hook *, h, A0),
721 AROS_UFHA(char **, strings, A2),
722 AROS_UFHA(struct list_entry *, entry, A1))
724 AROS_USERFUNC_INIT
726 static char buf[100];
728 if (entry)
730 sprintf(buf, "%ld", (long)*(strings - 1));
731 strings[0] = buf;
732 strings[1] = entry->column1;
733 strings[2] = entry->column2;
735 else
737 strings[0] = "Number";
738 strings[1] = "Column 1";
739 strings[2] = "Column 2";
742 AROS_USERFUNC_EXIT
745 static void Save(void)
747 char *text = (char *)XGET(editor_text, MUIA_String_Contents);
748 char *filename = (char *)XGET(filename_string, MUIA_String_Contents);
749 BPTR fh;
751 if (!strlen(filename))
752 return;
754 if ((fh = Open(filename, MODE_NEWFILE)))
756 Write(fh, text, strlen(text));
757 Close(fh);
761 #if defined(TEST_ICONLIST)
762 /* IconList callbacks */
763 static void volume_doubleclicked(void)
765 char buf[200];
766 struct IconList_Entry *ent = (void *)MUIV_IconList_NextIcon_Start;
768 DoMethod(volume_iconlist, MUIM_IconList_NextIcon,
769 MUIV_IconList_NextIcon_Selected, &ent);
770 if ((IPTR) ent == MUIV_IconList_NextIcon_End)
771 return;
773 strcpy(buf, ent->label);
774 strcat(buf, ":");
775 set(drawer_iconlist, MUIA_IconDrawerList_Drawer, buf);
778 static void drawer_doubleclicked(void)
780 struct IconList_Entry *ent = (void *)MUIV_IconList_NextIcon_Start;
782 DoMethod(drawer_iconlist, MUIM_IconList_NextIcon,
783 MUIV_IconList_NextIcon_Selected, &ent);
784 if ((IPTR) ent == MUIV_IconList_NextIcon_End)
785 return;
786 set(drawer_iconlist, MUIA_IconDrawerList_Drawer,
787 ent->ile_IconEntry->ie_IconNode.ln_Name);
789 #endif
791 static IPTR create_balance_column(void)
793 return (IPTR) VGroup,
794 Child, RectangleObject,
795 GaugeFrame,
796 End,
797 Child, BalanceObject,
798 End,
799 Child, RectangleObject,
800 GaugeFrame,
801 End,
802 Child, BalanceObject,
803 End,
804 Child, RectangleObject,
805 GaugeFrame,
806 End,
807 Child, BalanceObject,
808 End,
809 Child, RectangleObject,
810 GaugeFrame,
811 End,
812 Child, BalanceObject,
813 End,
814 Child, RectangleObject,
815 GaugeFrame,
816 End,
817 End;
820 /* The custom class */
822 struct DropText_Data
824 ULONG times;
827 #ifdef __MAXON__
828 #undef KeymapBase
829 struct Library *KeymapBase;
830 #endif
832 #ifndef __AROS__
833 __saveds __asm IPTR dispatcher(register __a0 struct IClass *cl,
834 register __a2 Object *obj, register __a1 Msg msg)
835 #else
836 AROS_UFH3S(IPTR, dispatcher,
837 AROS_UFHA(Class *, cl, A0),
838 AROS_UFHA(Object *, obj, A2), AROS_UFHA(Msg, msg, A1))
839 #endif
841 AROS_USERFUNC_INIT
843 switch (msg->MethodID)
845 case MUIM_DragQuery:
846 return MUIV_DragQuery_Accept;
847 case MUIM_DragDrop:
849 struct DropText_Data *data =
850 (struct DropText_Data *)INST_DATA(cl, obj);
851 char buf[100];
852 data->times++;
853 sprintf(buf, "%ld times", (long)data->times);
854 set(obj, MUIA_Text_Contents, buf);
858 return DoSuperMethodA(cl, obj, (Msg) msg);
860 AROS_USERFUNC_EXIT
863 static struct MUI_CustomClass *CL_DropText;
865 #define DropTextObject BOOPSIOBJMACRO_START(CL_DropText->mcc_Class)
867 /* Main prog */
869 static struct Hook hook_standard;
871 AROS_UFH3S(void, hook_func_standard,
872 AROS_UFHA(struct Hook *, h, A0),
873 AROS_UFHA(void *, dummy, A2), AROS_UFHA(void **, funcptr, A1))
875 AROS_USERFUNC_INIT
877 void (*func) (ULONG *) = (void (*)(ULONG *))(*funcptr);
879 if (func)
880 func((ULONG *) funcptr + 1);
882 AROS_USERFUNC_EXIT
885 int main(void)
887 APTR pool;
888 Object *wnd, *second_wnd;
889 Object *open_button;
890 Object *about_button;
891 Object *quit_button;
892 Object *repeat_button;
893 Object *objects_button;
894 Object *about_item, *quit_item;
895 Object *context_menu;
896 Object *popobject, *listview;
897 Object *numerics[NUMERIC_COUNT];
898 Object *min_string, *max_string;
899 Object *slider_button;
900 Object *country_radio[2];
901 CONST_STRPTR title;
902 UWORD i;
903 LONG value;
905 static char *pages[] =
906 {"General", "Text", "Boopsi", "Color", "Edit", "List", "Gauges",
907 "Numeric", "Radio",
908 #if defined(TEST_ICONLIST)
909 "Icon List",
910 #endif
911 "Balancing", NULL};
912 static char *text_pages[] =
913 {"Text", "String", NULL};
914 static char *color_pages[] =
915 {"Palette", "Colors", "Pens", NULL};
916 static char *list_pages[] =
917 {"Single Column", "Multicolumn", NULL};
918 static char **radio_entries1 = pages;
919 static char *radio_entries2[] =
920 {"Paris", "Pataya", "London", "New York", "Reykjavik", NULL};
922 static struct list_entry entry1 = {"Testentry1", "Col2: Entry1"};
923 static struct list_entry entry2 = {"Entry2", "Col2: Entry2"};
924 static struct list_entry entry3 = {"Entry3", "Col2: Entry3"};
925 static struct list_entry entry4 = {"Entry4", "Col2: Entry4"};
926 static struct list_entry entry5 = {"Entry5", "Col2: Entry5"};
927 static struct list_entry entry6 = {"Entry6", "Col2: Entry6"};
929 static struct list_entry *entries[] =
930 {&entry1, &entry2, &entry3, &entry4, &entry5, &entry6, NULL};
932 struct Hook hook;
933 struct Hook hook_wheel;
934 struct Hook hook_slider;
935 struct Hook hook_objects;
936 struct Hook hook_display;
938 hook_standard.h_Entry = (HOOKFUNC) hook_func_standard;
940 pool = CreatePool(MEMF_ANY, 4096, 4096);
942 MUIMasterBase = (struct Library *)OpenLibrary("muimaster.library", 0);
944 hook.h_Entry = (HOOKFUNC) repeat_function;
945 hook_wheel.h_Entry = (HOOKFUNC) wheel_function;
946 hook_slider.h_Entry = (HOOKFUNC) slider_function;
947 hook_objects.h_Entry = (HOOKFUNC) objects_function;
948 hook_display.h_Entry = (HOOKFUNC) display_function;
950 context_menu = MenustripObject,
951 MUIA_Family_Child, MenuObject,
952 MUIA_Menu_Title, "Menutest",
953 MUIA_Family_Child, about_item = MenuitemObject,
954 MUIA_Menuitem_Title, "First Test Entry", End,
955 MUIA_Family_Child, quit_item = MenuitemObject,
956 MUIA_Menuitem_Title, "Second Test Entry", End,
957 End,
958 End;
960 /* should check the result in a real program! */
961 CL_DropText = MUI_CreateCustomClass(NULL, MUIC_Text, NULL,
962 sizeof(struct DropText_Data), dispatcher);
963 ColorWheelBase = OpenLibrary("gadgets/colorwheel.gadget", 0);
965 pendisplay = PendisplayObject, MUIA_Pendisplay_Spec, &default_penspec, End;
967 title = StrDup("Fruits");
968 list.lists[0] = ListviewObject,
969 MUIA_Listview_List,
970 ListObject,
971 InputListFrame,
972 MUIA_List_Title, title,
973 MUIA_List_SourceArray, fruits,
974 MUIA_List_Active, MUIV_List_Active_Top,
975 MUIA_List_PoolThreshSize, 256,
976 MUIA_ShortHelp, "Default scroller\nTop entry active",
977 End,
978 MUIA_Listview_MultiSelect,
979 MUIV_Listview_MultiSelect_None,
980 MUIA_CycleChain, 1,
981 End;
982 list.lists[1] = ListviewObject,
983 MUIA_Listview_List,
984 ListObject,
985 InputListFrame,
986 MUIA_List_SourceArray, fruits,
987 MUIA_List_Active, MUIV_List_Active_Bottom,
988 MUIA_List_PoolPuddleSize, 512,
989 MUIA_ShortHelp, "Left scroller\nBottom entry active",
990 End,
991 MUIA_Listview_ScrollerPos,
992 MUIV_Listview_ScrollerPos_Left,
993 MUIA_CycleChain, 1,
994 End;
995 list.lists[2] = ListviewObject,
996 MUIA_Listview_List,
997 ListObject,
998 InputListFrame,
999 MUIA_List_SourceArray, fruits,
1000 MUIA_List_Active, MUIV_List_Active_Off,
1001 MUIA_List_Pool, pool,
1002 MUIA_ShortHelp, "Right scroller\nNo active entry",
1003 End,
1004 MUIA_Listview_MultiSelect,
1005 MUIV_Listview_MultiSelect_Shifted,
1006 MUIA_Listview_ScrollerPos,
1007 MUIV_Listview_ScrollerPos_Right,
1008 MUIA_CycleChain, 1,
1009 End;
1010 list.lists[3] = ListviewObject,
1011 MUIA_Listview_List,
1012 ListObject,
1013 InputListFrame,
1014 MUIA_List_SourceArray, fruits,
1015 MUIA_List_Pool, NULL,
1016 MUIA_ShortHelp, "No scroller\nDefault active entry",
1017 End,
1018 MUIA_Listview_MultiSelect,
1019 MUIV_Listview_MultiSelect_Always,
1020 MUIA_Listview_ScrollerPos,
1021 MUIV_Listview_ScrollerPos_None,
1022 MUIA_CycleChain, 1,
1023 End;
1024 list.lists[4] = ListviewObject,
1025 MUIA_Listview_List,
1026 ListObject,
1027 ReadListFrame,
1028 MUIA_List_SourceArray, fruits,
1029 MUIA_ShortHelp, "Default scroller\nDefault active entry",
1030 End,
1031 MUIA_Listview_Input, FALSE,
1032 MUIA_CycleChain, 1,
1033 End;
1035 app = ApplicationObject,
1036 MUIA_Application_Menustrip, MenustripObject,
1037 MUIA_Family_Child, MenuObject,
1038 MUIA_Menu_Title, "Project",
1039 MUIA_Family_Child, about_item = MenuitemObject,
1040 MUIA_Menuitem_Title, "About...",
1041 MUIA_Menuitem_Shortcut, "?",
1042 End,
1043 MUIA_Family_Child, MenuitemObject,
1044 MUIA_Menuitem_Title, (SIPTR)-1,
1045 End,
1046 MUIA_Family_Child, quit_item = MenuitemObject,
1047 MUIA_Menuitem_Title, "Quit",
1048 MUIA_Menuitem_Shortcut, "Q",
1049 End,
1050 End,
1051 End,
1053 SubWindow, wnd = WindowObject,
1054 MUIA_Window_Title, "test",
1055 MUIA_Window_Activate, TRUE,
1057 WindowContents, VGroup,
1058 Child, RegisterGroup(pages),
1059 //MUIA_Background, "5:SYS:Prefs/Presets/Backdrops/StuccoBlue.pic",
1061 /* general */
1062 Child, VGroup,
1063 Child, HGroup,
1064 GroupFrameT("A horizontal group"),
1065 Child, ColGroup(2),
1066 GroupFrameT("A column group"),
1067 Child, repeat_button = TextObject,
1068 MUIA_CycleChain, 1,
1069 ButtonFrame,
1070 MUIA_Background, MUII_ButtonBack,
1071 MUIA_Text_PreParse, "\33c",
1072 MUIA_Text_Contents, "Repeat",
1073 MUIA_InputMode, MUIV_InputMode_RelVerify,
1074 End,
1075 Child, TextObject,
1076 MUIA_CycleChain, 1,
1077 ButtonFrame,
1078 MUIA_Background, MUII_ButtonBack,
1079 MUIA_Text_PreParse, "\33c",
1080 MUIA_Text_Contents, "Drag Me",
1081 MUIA_Draggable, TRUE,
1082 MUIA_InputMode, MUIV_InputMode_RelVerify,
1083 End,
1084 Child, open_button = TextObject,
1085 MUIA_CycleChain, 1,
1086 ButtonFrame,
1087 MUIA_Background, MUII_ButtonBack,
1088 MUIA_Text_PreParse, "\33c",
1089 MUIA_Text_Contents, "Open Window",
1090 MUIA_InputMode, MUIV_InputMode_RelVerify,
1091 End,
1092 Child, TextObject,
1093 MUIA_ContextMenu, context_menu,
1094 MUIA_CycleChain, 1,
1095 ButtonFrame,
1096 MUIA_Background, MUII_ButtonBack,
1097 MUIA_Text_PreParse, "\33c",
1098 MUIA_Text_Contents, "Press Right",
1099 MUIA_InputMode, MUIV_InputMode_RelVerify,
1100 End,
1101 Child, objects_button = TextObject,
1102 MUIA_CycleChain, 1,
1103 ButtonFrame,
1104 MUIA_Background, MUII_ButtonBack,
1105 MUIA_Text_PreParse, "\33c",
1106 MUIA_Text_Contents, "Add Objects",
1107 MUIA_InputMode, MUIV_InputMode_RelVerify,
1108 End,
1109 Child, HVSpace,
1110 Child, HGroup,
1111 Child, HVSpace,
1112 Child, MUI_MakeObject(MUIO_Checkmark,
1113 "_Checkmark"),
1114 End,
1115 Child, HGroup,
1116 Child, MUI_MakeObject(MUIO_Label,
1117 "_Checkmark", 0),
1118 Child, HVSpace,
1119 End,
1120 Child, HVSpace,
1121 Child, HVSpace,
1122 End,
1123 Child, group = VGroup,
1124 GroupFrameT("A vertical group"),
1125 Child, DropTextObject,
1126 MUIA_Dropable, TRUE,
1127 MUIA_CycleChain, 1,
1128 ButtonFrame,
1129 MUIA_Background, MUII_ButtonBack,
1130 MUIA_Text_PreParse, "\33c",
1131 MUIA_Text_Contents, "Drop Here",
1132 MUIA_Dropable, TRUE,
1133 MUIA_InputMode, MUIV_InputMode_RelVerify,
1134 End,
1135 Child, TextObject,
1136 TextFrame,
1137 MUIA_Background, MUII_MARKHALFSHINE,
1138 MUIA_CycleChain, 1,
1139 MUIA_Text_PreParse, "\33c",
1140 MUIA_Text_Contents, "Pattern",
1141 End,
1142 Child, MUI_NewObject(MUIC_Popimage, TAG_DONE),
1143 End,
1144 Child, ScrollgroupObject,
1145 GroupFrameT("A scroll group"),
1146 MUIA_Scrollgroup_Contents, VGroupV,
1147 VirtualFrame,
1148 Child, TextObject,
1149 TextFrame,
1150 MUIA_Text_Contents,
1151 "Line1\nLine2\nLine3\nLine4\n"
1152 "Line5\nLine6\nLine7\nLine8\n"
1153 "\n\n\n"
1154 "Line9\nLine10\nLine11\n",
1155 End,
1156 Child, HGroup,
1157 Child, MUI_MakeObject(MUIO_Button,
1158 "Button9"),
1159 Child, MUI_MakeObject(MUIO_Button,
1160 "Button10"),
1161 End,
1162 End,
1163 End,
1164 End,
1165 Child, popobject = PopobjectObject,
1166 MUIA_Popstring_String,
1167 MUI_MakeObject(MUIO_String, NULL, 200),
1168 MUIA_Popstring_Button, PopButton(MUII_PopUp),
1169 MUIA_Popobject_Object, VGroup,
1170 Child, TextObject,
1171 MUIA_Text_Contents, "test",
1172 End,
1173 Child, listview = ListviewObject,
1174 MUIA_Listview_List, ListObject,
1175 InputListFrame,
1176 MUIA_List_DisplayHook, &hook_display,
1177 MUIA_List_Format, ",,",
1178 MUIA_List_SourceArray, entries,
1179 MUIA_List_Title, TRUE,
1180 End,
1181 End,
1182 End,
1183 End,
1184 Child, CycleObject,
1185 ButtonFrame,
1186 MUIA_Cycle_Entries, pages,
1187 End,
1188 Child, ScrollbarObject,
1189 MUIA_Group_Horiz, TRUE,
1190 MUIA_Prop_Visible, 100,
1191 MUIA_Prop_Entries, 300,
1192 MUIA_Prop_First, 50,
1193 End,
1194 End,
1196 /* text */
1197 Child, RegisterGroup(text_pages),
1199 Child, VGroup,
1200 Child, TextObject,
1201 MUIA_Background, "2:cfffffff,cfffffff,10000000",
1202 TextFrame,
1203 MUIA_Text_Contents, "\33cHello World!\n"
1204 "This is a text object\n\33lLeft \33bbold\33n\n"
1205 "\33rRight",
1206 End,
1207 Child, RectangleObject,
1208 MUIA_VertWeight, 0,
1209 /* Seems to be not supported properly as orginal MUI
1210 doesn't allow to alter the height of the window */
1211 MUIA_Rectangle_HBar, TRUE,
1212 MUIA_Rectangle_BarTitle,"Enter a string",
1213 End,
1214 Child, StringObject,
1215 StringFrame,
1216 MUIA_CycleChain,1,
1217 MUIA_String_AdvanceOnCR, TRUE,
1218 End,
1219 Child, HVSpace,
1220 End,
1222 /* string */
1223 Child, HGroup,
1224 Child, VGroup,
1225 Child, VGroup, GroupFrameT("Default Alignment"),
1226 Child, string.strings[0] = StringObject,
1227 StringFrame,
1228 MUIA_String_Accept,
1229 (IPTR)default_accept_chars,
1230 MUIA_String_Reject,
1231 (IPTR)default_reject_chars,
1232 MUIA_String_AdvanceOnCR, TRUE,
1233 MUIA_String_MaxLen, 9,
1234 MUIA_CycleChain, 1,
1235 MUIA_String_AttachedList, list.lists[0],
1236 End,
1237 End,
1238 Child, VGroup, GroupFrameT("Left Aligned"),
1239 Child, string.strings[1] = StringObject,
1240 StringFrame,
1241 MUIA_String_Accept,
1242 (IPTR)default_accept_chars,
1243 MUIA_String_Reject,
1244 (IPTR)default_reject_chars,
1245 MUIA_String_Format,
1246 MUIV_String_Format_Left,
1247 MUIA_String_AdvanceOnCR, TRUE,
1248 MUIA_String_MaxLen, 9,
1249 MUIA_CycleChain, 1,
1250 MUIA_String_Contents,
1251 (IPTR)default_accept_chars,
1252 MUIA_String_BufferPos, 3,
1253 MUIA_String_AttachedList, list.lists[0],
1254 End,
1255 End,
1256 Child, VGroup, GroupFrameT("Right Aligned"),
1257 Child, string.strings[2] = StringObject,
1258 StringFrame,
1259 MUIA_String_Accept,
1260 (IPTR)default_accept_chars,
1261 MUIA_String_Reject,
1262 (IPTR)default_reject_chars,
1263 MUIA_String_Format,
1264 MUIV_String_Format_Right,
1265 MUIA_String_AdvanceOnCR, TRUE,
1266 MUIA_String_MaxLen, 9,
1267 MUIA_CycleChain, 1,
1268 MUIA_String_AttachedList, list.lists[0],
1269 End,
1270 End,
1271 Child, VGroup, GroupFrameT("Centered"),
1272 Child, string.strings[3] = StringObject,
1273 StringFrame,
1274 MUIA_String_Accept,
1275 (IPTR)default_accept_chars,
1276 MUIA_String_Reject,
1277 (IPTR)default_reject_chars,
1278 MUIA_String_Format,
1279 MUIV_String_Format_Center,
1280 MUIA_String_AdvanceOnCR, TRUE,
1281 MUIA_String_MaxLen, 9,
1282 MUIA_CycleChain, 1,
1283 MUIA_String_Integer, 123,
1284 MUIA_String_AttachedList, list.lists[0],
1285 End,
1286 End,
1287 Child, VGroup, GroupFrameT("Secret"),
1288 Child, string.strings[4] = StringObject,
1289 StringFrame,
1290 MUIA_String_Accept,
1291 (IPTR)default_accept_chars,
1292 MUIA_String_Reject,
1293 (IPTR)default_reject_chars,
1294 MUIA_String_Format,
1295 MUIV_String_Format_Center,
1296 MUIA_String_Secret, TRUE,
1297 MUIA_String_AdvanceOnCR, TRUE,
1298 MUIA_String_MaxLen, 9,
1299 MUIA_CycleChain, 1,
1300 MUIA_String_AttachedList, list.lists[0],
1301 End,
1302 End,
1303 Child, HGroup, GroupFrameT("Narrow"),
1304 Child, HVSpace,
1305 Child, string.strings[5] = StringObject,
1306 StringFrame,
1307 MUIA_String_Accept,
1308 (IPTR)default_accept_chars,
1309 MUIA_String_Reject,
1310 (IPTR)default_reject_chars,
1311 MUIA_String_Format,
1312 MUIV_String_Format_Center,
1313 MUIA_String_AdvanceOnCR, TRUE,
1314 MUIA_MaxWidth, 20,
1315 MUIA_String_MaxLen, 9,
1316 MUIA_CycleChain, 1,
1317 MUIA_String_AttachedList, list.lists[0],
1318 End,
1319 Child, HVSpace,
1320 End,
1321 Child, HVSpace,
1322 End,
1323 Child, VGroup, GroupFrameT("Controls"),
1324 Child, HGroup,
1325 Child, string.accept_all_check =
1326 MUI_MakeObject(MUIO_Checkmark, NULL),
1327 Child, MUI_MakeObject(MUIO_Label,
1328 "Accept all characters", 0),
1329 Child, HVSpace,
1330 End,
1331 Child, ColGroup(2),
1332 Child, MUI_MakeObject(MUIO_Label,
1333 "Acceptable characters:", 0),
1334 Child, string.accept_string = StringObject,
1335 StringFrame,
1336 MUIA_String_Contents,
1337 (IPTR)default_accept_chars,
1338 End,
1339 Child, MUI_MakeObject(MUIO_Label,
1340 "Unacceptable characters:", 0),
1341 Child, string.reject_string = StringObject,
1342 StringFrame,
1343 End,
1344 Child, MUI_MakeObject(MUIO_Label,
1345 "Cursor position:", 0),
1346 Child, string.cursor_pos_slider =
1347 SliderObject,
1348 MUIA_Group_Horiz, TRUE,
1349 MUIA_Numeric_Min, 0,
1350 End,
1351 Child, MUI_MakeObject(MUIO_Label,
1352 "Display position:", 0),
1353 Child, string.display_pos_slider =
1354 SliderObject,
1355 MUIA_Group_Horiz, TRUE,
1356 MUIA_Numeric_Min, 0,
1357 End,
1358 Child, MUI_MakeObject(MUIO_Label,
1359 "Integer value:", 0),
1360 Child, string.integer_string =
1361 StringObject,
1362 StringFrame,
1363 MUIA_String_Accept, (IPTR)digits,
1364 End,
1365 Child, MUI_MakeObject(MUIO_Label,
1366 "Plaintext:", 0),
1367 Child, string.plaintext_string =
1368 StringObject,
1369 StringFrame,
1370 End,
1371 Child, MUI_MakeObject(MUIO_Label,
1372 "Maximum string length:", 0),
1373 Child, string.max_len_text = TextObject,
1374 TextFrame,
1375 MUIA_Text_Contents, "Unknown",
1376 End,
1377 End,
1378 Child, VGroup,
1379 Child, HGroup,
1380 Child, string.cr_advance_check =
1381 MUI_MakeObject(MUIO_Checkmark,
1382 NULL),
1383 Child, MUI_MakeObject(MUIO_Label,
1384 "Advance on CR", 0),
1385 Child, HVSpace,
1386 End,
1387 Child, HGroup,
1388 Child, string.attach_list_check =
1389 MUI_MakeObject(MUIO_Checkmark,
1390 NULL),
1391 Child, MUI_MakeObject(MUIO_Label,
1392 "Attach list", 0),
1393 Child, HVSpace,
1394 End,
1395 #if 0
1396 Child, HGroup,
1397 Child, string.standard_hook_check =
1398 MUI_MakeObject(MUIO_Checkmark,
1399 NULL),
1400 Child, MUI_MakeObject(MUIO_Label,
1401 "Use standard edit hook", 0),
1402 Child, HVSpace,
1403 End,
1404 Child, HGroup,
1405 Child, string.custom_hook_check =
1406 MUI_MakeObject(MUIO_Checkmark,
1407 NULL),
1408 Child, MUI_MakeObject(MUIO_Label,
1409 "Use custom edit hook", 0),
1410 Child, HVSpace,
1411 End,
1412 #endif
1413 End,
1414 Child, HVSpace,
1415 End,
1417 End,
1418 End,
1420 /* boopsi */
1421 Child, VGroup,
1422 Child, wheel = BoopsiObject, /* MUI/Boopsi tags mixed */
1423 GroupFrame,
1424 /* boopsi objects don't know */
1425 /* their sizes, so we help */
1426 /* keep important values */
1427 /* during window resize */
1428 MUIA_Boopsi_ClassID, "colorwheel.gadget",
1429 MUIA_Boopsi_MinWidth , 30,
1430 MUIA_Boopsi_MinHeight, 30,
1431 MUIA_Boopsi_Remember , WHEEL_Saturation,
1432 MUIA_Boopsi_Remember , WHEEL_Hue,
1433 /* this magic fills in the screen pointer */
1434 MUIA_Boopsi_TagScreen, WHEEL_Screen,
1435 WHEEL_Screen, NULL,
1436 GA_Left, 0,
1437 GA_Top, 0, /* MUI will automatically */
1438 GA_Width, 0, /* fill in the correct values */
1439 GA_Height, 0,
1440 ICA_TARGET, ICTARGET_IDCMP,
1441 /* needed for notification */
1442 WHEEL_Saturation, 0, /* start in the center */
1443 MUIA_FillArea, TRUE,
1444 /* use this because it defaults to FALSE
1445 for boopsi gadgets but the colorwheel
1446 doesn't bother about redrawing its
1447 background */
1448 End,
1450 Child, r_slider = SliderObject,
1451 MUIA_Group_Horiz, TRUE,
1452 MUIA_Numeric_Min, 0,
1453 MUIA_Numeric_Max, 255,
1454 End,
1455 Child, g_slider = SliderObject,
1456 MUIA_Group_Horiz, TRUE,
1457 MUIA_Numeric_Min, 0,
1458 MUIA_Numeric_Max, 255,
1459 End,
1460 Child, b_slider = SliderObject,
1461 MUIA_Group_Horiz, TRUE,
1462 MUIA_Numeric_Min, 0,
1463 MUIA_Numeric_Max, 255,
1464 End,
1465 Child, hue_gauge = GaugeObject,
1466 GaugeFrame,
1467 MUIA_Gauge_Horiz, TRUE,
1468 MUIA_Gauge_Max, 255,
1469 MUIA_Gauge_Divide, 1<<24,
1470 MUIA_Gauge_InfoText, "Hue: %ld",
1471 End,
1472 End,
1474 /* color */
1475 Child, RegisterGroup(color_pages),
1476 Child, VGroup, GroupFrameT("Palette"),
1477 Child, PaletteObject,
1478 End,
1479 End,
1480 Child, HGroup,
1481 Child, VGroup, GroupFrameT("Colorfield"),
1483 Child, HGroup,
1484 Child, colorfield = ColorfieldObject,
1485 MUIA_Colorfield_RGB, default_color,
1486 MUIA_Colorfield_Pen, 253,
1487 End,
1488 Child, colorfield2 = ColorfieldObject,
1489 MUIA_Colorfield_Red, default_color[0],
1490 MUIA_Colorfield_Green, default_color[1],
1491 MUIA_Colorfield_Blue, default_color[2],
1492 End,
1493 End,
1494 Child, colorfield_reset_button =
1495 MUI_MakeObject(MUIO_Button,
1496 "Reset"),
1497 Child, HGroup,
1498 Child,
1499 MUI_MakeObject(MUIO_Label, "Pen:", 0),
1500 Child, colorfield_pen = StringObject,
1501 StringFrame,
1502 End,
1503 End,
1504 End,
1505 Child, VGroup, GroupFrameT("Coloradjust"),
1506 Child, coloradjust = ColoradjustObject,
1507 MUIA_Coloradjust_RGB, default_color,
1508 End,
1509 End,
1510 End,
1511 Child, HGroup,
1512 Child, VGroup,
1513 Child, VGroup, GroupFrameT("Pendisplay"),
1514 Child, HGroup,
1515 Child, pendisplay,
1516 Child, pendisplay2 = PendisplayObject,
1517 MUIA_Pendisplay_RGBcolor,
1518 default_color,
1519 End,
1520 End,
1521 Child, ColGroup(2),
1522 Child,
1523 MUI_MakeObject(
1524 MUIO_Label, "Pen:", 0),
1525 Child, HGroup,
1526 Child, pendisplay_pen =
1527 StringObject, StringFrame,
1528 End,
1529 Child, HVSpace,
1530 Child, reference_check =
1531 MUI_MakeObject(MUIO_Checkmark,
1532 NULL),
1533 Child, MUI_MakeObject(MUIO_Label,
1534 "Reference", 0),
1535 End,
1536 Child,
1537 MUI_MakeObject(
1538 MUIO_Label, "Penspec:", 0),
1539 Child, pendisplay_spec = StringObject,
1540 StringFrame,
1541 End,
1542 End,
1543 Child, HGroup,
1544 Child, shine_button =
1545 MUI_MakeObject(MUIO_Button,
1546 "Shine"),
1547 Child, shadow_button =
1548 MUI_MakeObject(MUIO_Button,
1549 "Shadow"),
1550 Child, yellow_button =
1551 MUI_MakeObject(MUIO_Button,
1552 "Yellow"),
1553 End,
1554 End,
1555 Child, VGroup, GroupFrameT("Poppen"),
1556 Child, poppen = PoppenObject,
1557 End,
1558 End,
1559 End,
1560 Child, VGroup, GroupFrameT("Penadjust"),
1561 Child, PenadjustObject,
1562 End,
1563 End,
1564 End,
1565 End,
1567 /* edit */
1568 Child, VGroup,
1569 Child, editor_text = StringObject,
1570 StringFrame,
1571 End,
1572 Child, PopaslObject,
1573 ASLFR_DoSaveMode, TRUE,
1574 MUIA_Popstring_String, filename_string =
1575 MUI_MakeObject(MUIO_String, NULL, 200),
1576 MUIA_Popstring_Button, PopButton(MUII_PopFile),
1577 End,
1578 Child, save_button =
1579 MUI_MakeObject(MUIO_Button, "Save"),
1580 End,
1582 /* lists */
1583 Child, RegisterGroup(list_pages),
1584 Child, VGroup,
1585 Child, ColGroup(LIST_COUNT),
1586 Child, VGroup, GroupFrameT("No Multiselect"),
1587 Child, list.lists[0],
1588 End,
1589 Child, VGroup,
1590 GroupFrameT("Default Multiselect"),
1591 Child, list.lists[1],
1592 End,
1593 Child, VGroup,
1594 GroupFrameT("Shifted Multiselect"),
1595 Child, list.lists[2],
1596 End,
1597 Child, VGroup,
1598 GroupFrameT("Unconditional Multiselect"),
1599 Child, list.lists[3],
1600 End,
1601 Child, VGroup,
1602 GroupFrameT("Read Only"),
1603 Child, list.lists[4],
1604 End,
1605 End,
1606 Child, HGroup,
1607 MUIA_Group_HorizSpacing, 0,
1608 Child, RectangleObject,
1609 MUIA_HorizWeight, 1,
1610 End,
1611 Child, list.list_radios = RadioObject,
1612 MUIA_Radio_Entries, empty,
1613 MUIA_Group_Horiz, TRUE,
1614 MUIA_HorizWeight, 1000,
1615 End,
1616 Child, RectangleObject,
1617 MUIA_HorizWeight, 1,
1618 End,
1619 End,
1620 Child, RectangleObject,
1621 MUIA_VertWeight, 0,
1622 MUIA_Rectangle_HBar, TRUE,
1623 MUIA_Rectangle_BarTitle, "List Controls",
1624 End,
1625 Child, ColGroup(6),
1626 Child, MUI_MakeObject(MUIO_Label,
1627 "Affected index 1:", 0),
1628 Child, list.index1_string =
1629 StringObject,
1630 StringFrame,
1631 MUIA_String_Accept, (IPTR)digits,
1632 MUIA_String_Integer, 0,
1633 End,
1634 Child, HGroup,
1635 Child, list.dragsortable_check =
1636 MUI_MakeObject(MUIO_Checkmark, NULL),
1637 Child, MUI_MakeObject(MUIO_Label,
1638 "Drag sortable", 0),
1639 Child, HVSpace,
1640 End,
1641 Child, HGroup,
1642 Child, list.showdropmarks_check =
1643 MUI_MakeObject(MUIO_Checkmark, NULL),
1644 Child, MUI_MakeObject(MUIO_Label,
1645 "Show drop marks", 0),
1646 Child, HVSpace,
1647 End,
1648 Child, HVSpace,
1649 Child, HVSpace,
1651 Child, MUI_MakeObject(MUIO_Label,
1652 "Affected index 2:", 0),
1653 Child, list.index2_string =
1654 StringObject,
1655 StringFrame,
1656 MUIA_String_Accept, (IPTR)digits,
1657 MUIA_String_Integer, 0,
1658 End,
1659 Child, HGroup,
1660 Child, list.quiet_check =
1661 MUI_MakeObject(MUIO_Checkmark,NULL),
1662 Child, MUI_MakeObject(MUIO_Label,
1663 "Quiet", 0),
1664 Child, HVSpace,
1665 End,
1666 Child, HGroup,
1667 Child, list.autovisible_check =
1668 MUI_MakeObject(MUIO_Checkmark,NULL),
1669 Child, MUI_MakeObject(MUIO_Label,
1670 "Auto visible", 0),
1671 Child, HVSpace,
1672 End,
1673 Child, list.reset_button =
1674 MUI_MakeObject(MUIO_Button, "Reset"),
1675 Child, HVSpace,
1677 Child, MUI_MakeObject(MUIO_Label,
1678 "Move/exchange mode 1:", 0),
1679 Child, list.move1_cycle = CycleObject,
1680 ButtonFrame,
1681 MUIA_Cycle_Entries, list_move1_modes,
1682 End,
1683 Child, list.move_button =
1684 MUI_MakeObject(MUIO_Button, "Move"),
1685 Child, list.sort_button =
1686 MUI_MakeObject(MUIO_Button, "Sort"),
1687 Child, list.enable_button =
1688 MUI_MakeObject(MUIO_Button, "Enable"),
1689 Child, HVSpace,
1691 Child, MUI_MakeObject(MUIO_Label,
1692 "Move/exchange mode 2:", 0),
1693 Child, list.move2_cycle = CycleObject,
1694 ButtonFrame,
1695 MUIA_Cycle_Entries, list_move2_modes,
1696 End,
1697 Child, list.exchange_button =
1698 MUI_MakeObject(MUIO_Button, "Exchange"),
1699 Child, list.redraw_button =
1700 MUI_MakeObject(MUIO_Button, "Redraw"),
1701 Child, MUI_MakeObject(MUIO_Label,
1702 "Title:", 0),
1703 Child, list.title_string =
1704 StringObject,
1705 StringFrame,
1706 End,
1708 Child, MUI_MakeObject(MUIO_Label,
1709 "Jump mode:", 0),
1710 Child, list.jump_cycle = CycleObject,
1711 ButtonFrame,
1712 MUIA_Cycle_Entries, list_jump_modes,
1713 End,
1714 Child, list.jump_button =
1715 MUI_MakeObject(MUIO_Button, "Jump"),
1716 Child, list.toggle_button =
1717 MUI_MakeObject(MUIO_Button, "Toggle"),
1718 Child, MUI_MakeObject(MUIO_Label,
1719 "Entries:", 0),
1720 Child, list.entries_text = TextObject,
1721 TextFrame,
1722 MUIA_Text_Contents, "N/A",
1723 End,
1725 Child, MUI_MakeObject(MUIO_Label,
1726 "Select/redraw mode:", 0),
1727 Child, list.select_cycle = CycleObject,
1728 ButtonFrame,
1729 MUIA_Cycle_Entries, list_select_modes,
1730 End,
1731 Child, list.select_button =
1732 MUI_MakeObject(MUIO_Button, "Select"),
1733 Child, list.deselect_button =
1734 MUI_MakeObject(MUIO_Button, "Deselect"),
1735 Child, MUI_MakeObject(MUIO_Label,
1736 "Visible entries:", 0),
1737 Child, list.visible_text = TextObject,
1738 TextFrame,
1739 MUIA_Text_Contents, "N/A",
1740 End,
1742 Child, MUI_MakeObject(MUIO_Label,
1743 "Insert mode:", 0),
1744 Child, list.insert_cycle = CycleObject,
1745 ButtonFrame,
1746 MUIA_Cycle_Entries, list_insert_modes,
1747 End,
1748 Child, list.insert_single_button =
1749 MUI_MakeObject(MUIO_Button, "Insert Single"),
1750 Child, list.insert_multiple_button =
1751 MUI_MakeObject(MUIO_Button, "Insert Multiple"),
1752 Child, MUI_MakeObject(MUIO_Label,
1753 "First visible index:", 0),
1754 Child, list.first_text = TextObject,
1755 TextFrame,
1756 MUIA_Text_Contents, "N/A",
1757 End,
1759 Child, MUI_MakeObject(MUIO_Label,
1760 "Remove mode:", 0),
1761 Child, list.remove_cycle = CycleObject,
1762 ButtonFrame,
1763 MUIA_Cycle_Entries, list_remove_modes,
1764 End,
1765 Child, list.remove_button =
1766 MUI_MakeObject(MUIO_Button, "Remove"),
1767 Child, list.clear_button =
1768 MUI_MakeObject(MUIO_Button, "Clear"),
1769 Child, MUI_MakeObject(MUIO_Label,
1770 "Last insertion index:", 0),
1771 Child, list.insert_text = TextObject,
1772 TextFrame,
1773 MUIA_Text_Contents, "N/A",
1774 End,
1776 Child, MUI_MakeObject(MUIO_Label,
1777 "Activate mode:", 0),
1778 Child, list.activate_cycle = CycleObject,
1779 ButtonFrame,
1780 MUIA_Cycle_Entries, list_activate_modes,
1781 End,
1782 Child, list.activate_button =
1783 MUI_MakeObject(MUIO_Button, "Activate"),
1784 Child, list.deactivate_button =
1785 MUI_MakeObject(MUIO_Button, "Deactivate"),
1786 Child, MUI_MakeObject(MUIO_Label,
1787 "Active index:", 0),
1788 Child, list.active_text = TextObject,
1789 TextFrame,
1790 MUIA_Text_Contents, "N/A",
1791 End,
1792 End,
1793 End,
1794 Child, VGroup,
1795 Child, ColGroup(LIST_COUNT / 2),
1796 Child, VGroup, GroupFrameT("Standard Format"),
1797 Child, list.multi_lists[0] = ListviewObject,
1798 MUIA_Listview_List,
1799 ListObject,
1800 InputListFrame,
1801 MUIA_List_DisplayHook,
1802 &hook_display,
1803 MUIA_List_Format, list_format,
1804 MUIA_List_SourceArray, entries,
1805 MUIA_List_Title, TRUE,
1806 End,
1807 MUIA_Listview_MultiSelect,
1808 MUIV_Listview_MultiSelect_None,
1809 MUIA_Listview_DefClickColumn, 1,
1810 MUIA_CycleChain, 1,
1811 End,
1812 End,
1813 Child, VGroup, GroupFrameT("Custom Format"),
1814 Child, list.multi_lists[1] = ListviewObject,
1815 MUIA_Listview_List,
1816 ListObject,
1817 InputListFrame,
1818 MUIA_List_DisplayHook,
1819 &hook_display,
1820 MUIA_List_Format, list_format,
1821 MUIA_List_SourceArray, entries,
1822 MUIA_List_Title, TRUE,
1823 End,
1824 MUIA_Listview_MultiSelect,
1825 MUIV_Listview_MultiSelect_None,
1826 MUIA_CycleChain, 1,
1827 End,
1828 End,
1829 End,
1830 Child, RectangleObject,
1831 MUIA_VertWeight, 0,
1832 MUIA_Rectangle_HBar, TRUE,
1833 MUIA_Rectangle_BarTitle, "List Controls",
1834 End,
1835 Child, HGroup,
1836 Child, MUI_MakeObject(MUIO_Label, "Format:", 0),
1837 Child, list.format_string = StringObject,
1838 StringFrame,
1839 MUIA_CycleChain, 1,
1840 End,
1841 Child, list.showheadings_check =
1842 MUI_MakeObject(MUIO_Checkmark, NULL),
1843 Child, MUI_MakeObject(MUIO_Label,
1844 "Show column headings", 0),
1845 End,
1846 Child, HGroup,
1847 Child, MUI_MakeObject(MUIO_Label,
1848 "Default clicked column:", 0),
1849 Child, list.def_column_string = StringObject,
1850 StringFrame,
1851 MUIA_String_Accept, (IPTR)digits,
1852 MUIA_String_Integer, -1,
1853 MUIA_CycleChain, 1,
1854 End,
1855 Child, MUI_MakeObject(MUIO_Label,
1856 "Clicked column:", 0),
1857 Child, list.column_string = StringObject,
1858 MUIA_ShowMe, FALSE,
1859 End,
1860 Child, list.column_text = TextObject,
1861 TextFrame,
1862 MUIA_Text_Contents, "N/A",
1863 End,
1864 End,
1865 End,
1866 End,
1868 /* gauges */
1869 Child, HGroup,
1870 Child, VGroup,
1871 Child, VGroup,
1872 GroupFrame,
1873 Child, GaugeObject,
1874 GaugeFrame,
1875 MUIA_Gauge_InfoText, "%ld %%",
1876 MUIA_Gauge_Horiz, TRUE,
1877 MUIA_Gauge_Current, 25,
1878 End,
1879 Child, ScaleObject,
1880 End,
1881 End,
1882 Child, VGroup,
1883 GroupFrame,
1884 Child, GaugeObject,
1885 GaugeFrame,
1886 MUIA_Gauge_InfoText, "%ld %%",
1887 MUIA_Gauge_Horiz, TRUE,
1888 MUIA_Gauge_Current, 50,
1889 End,
1890 Child, ScaleObject,
1891 End,
1892 End,
1893 Child, VGroup,
1894 GroupFrame,
1895 Child, GaugeObject,
1896 GaugeFrame,
1897 MUIA_Gauge_InfoText, "%ld %%",
1898 MUIA_Gauge_Horiz, TRUE,
1899 MUIA_Gauge_Current, 75,
1900 End,
1901 Child, ScaleObject,
1902 End,
1903 End,
1904 End,
1905 Child, HGroup,
1906 Child, HVSpace,
1907 Child, GaugeObject,
1908 GaugeFrame,
1909 MUIA_Gauge_InfoText, "%ld %%",
1910 MUIA_Gauge_Current, 25,
1911 End,
1912 Child, GaugeObject,
1913 GaugeFrame,
1914 MUIA_Gauge_InfoText, "%ld %%",
1915 MUIA_Gauge_Current, 50,
1916 End,
1917 Child, GaugeObject,
1918 GaugeFrame,
1919 MUIA_Gauge_InfoText, "%ld %%",
1920 MUIA_Gauge_Current, 75,
1921 End,
1922 Child, HVSpace,
1923 End,
1924 End,
1926 /* numeric */
1927 Child, HGroup,
1928 Child, ColGroup(2),
1929 GroupFrameT("Horizontal Sliders"),
1930 Child, MUI_MakeObject(MUIO_Label, "Normal:", 0),
1931 Child, numerics[HNSLIDER] = SliderObject,
1932 MUIA_Slider_Horiz, TRUE,
1933 MUIA_Numeric_Min, NUMERIC_MIN,
1934 MUIA_Numeric_Max, NUMERIC_MAX,
1935 MUIA_CycleChain, 1,
1936 End,
1937 Child, MUI_MakeObject(MUIO_Label, "Reverse:", 0),
1938 Child, numerics[HRSLIDER] = SliderObject,
1939 MUIA_Numeric_Reverse, TRUE,
1940 MUIA_Numeric_Min, NUMERIC_MIN,
1941 MUIA_Numeric_Max, NUMERIC_MAX,
1942 MUIA_CycleChain, 1,
1943 End,
1944 Child, MUI_MakeObject(MUIO_Label, "Quiet:", 0),
1945 Child, numerics[HQSLIDER] = SliderObject,
1946 MUIA_Slider_Quiet, TRUE,
1947 MUIA_Numeric_Min, NUMERIC_MIN,
1948 MUIA_Numeric_Max, NUMERIC_MAX,
1949 MUIA_CycleChain, 1,
1950 End,
1951 End,
1952 Child, ColGroup(3),
1953 GroupFrameT("Vertical Sliders"),
1954 Child, MUI_MakeObject(MUIO_Label, "Normal", 0),
1955 Child, MUI_MakeObject(MUIO_Label, "Reverse", 0),
1956 Child, MUI_MakeObject(MUIO_Label, "Quiet", 0),
1957 Child, numerics[VNSLIDER] = SliderObject,
1958 MUIA_Slider_Horiz, FALSE,
1959 MUIA_Numeric_Min, NUMERIC_MIN,
1960 MUIA_Numeric_Max, NUMERIC_MAX,
1961 MUIA_CycleChain, 1,
1962 End,
1963 Child, numerics[VRSLIDER] = SliderObject,
1964 MUIA_Slider_Horiz, FALSE,
1965 MUIA_Numeric_Reverse, TRUE,
1966 MUIA_Numeric_Min, NUMERIC_MIN,
1967 MUIA_Numeric_Max, NUMERIC_MAX,
1968 MUIA_CycleChain, 1,
1969 End,
1970 Child, numerics[VQSLIDER] = SliderObject,
1971 MUIA_Slider_Horiz, FALSE,
1972 MUIA_Slider_Quiet, TRUE,
1973 MUIA_Numeric_Min, NUMERIC_MIN,
1974 MUIA_Numeric_Max, NUMERIC_MAX,
1975 MUIA_CycleChain, 1,
1976 End,
1977 End,
1978 Child, ColGroup(2),
1979 GroupFrameT("Numeric Buttons"),
1980 Child, MUI_MakeObject(MUIO_Label, "Normal:", 0),
1981 Child, numerics[NNUMERICBUTTON] =
1982 NumericbuttonObject,
1983 MUIA_Numeric_Min, NUMERIC_MIN,
1984 MUIA_Numeric_Max, NUMERIC_MAX,
1985 MUIA_CycleChain, 1,
1986 End,
1987 Child, MUI_MakeObject(MUIO_Label, "Reverse:", 0),
1988 Child, numerics[RNUMERICBUTTON] =
1989 NumericbuttonObject,
1990 MUIA_Numeric_Reverse, TRUE,
1991 MUIA_Numeric_Min, NUMERIC_MIN,
1992 MUIA_Numeric_Max, NUMERIC_MAX,
1993 MUIA_CycleChain, 1,
1994 End,
1995 End,
1996 Child, ColGroup(2),
1997 GroupFrameT("Knobs"),
1998 Child, MUI_MakeObject(MUIO_Label, "Normal", 0),
1999 Child, MUI_MakeObject(MUIO_Label, "Reverse", 0),
2000 Child, numerics[NKNOB] = KnobObject,
2001 MUIA_Numeric_Min, NUMERIC_MIN,
2002 MUIA_Numeric_Max, NUMERIC_MAX,
2003 MUIA_CycleChain, 1,
2004 End,
2005 Child, numerics[RKNOB] = KnobObject,
2006 MUIA_Numeric_Reverse, TRUE,
2007 MUIA_Numeric_Min, NUMERIC_MIN,
2008 MUIA_Numeric_Max, NUMERIC_MAX,
2009 MUIA_CycleChain, 1,
2010 End,
2011 End,
2012 Child, ColGroup(2),
2013 Child, MUI_MakeObject(MUIO_Label,
2014 "Minimum Value:", 0),
2015 Child, min_string = (Object *)StringObject,
2016 StringFrame,
2017 MUIA_String_Accept, (IPTR)digits,
2018 MUIA_String_Integer, NUMERIC_MIN,
2019 MUIA_CycleChain, 1,
2020 End,
2021 Child, MUI_MakeObject(MUIO_Label,
2022 "Maximum Value:", 0),
2023 Child, max_string = (Object *)StringObject,
2024 StringFrame,
2025 MUIA_String_Accept, (IPTR)digits,
2026 MUIA_String_Integer, NUMERIC_MAX,
2027 MUIA_CycleChain, 1,
2028 End,
2029 Child, slider_button = TextObject,
2030 ButtonFrame,
2031 MUIA_InputMode, MUIV_InputMode_RelVerify,
2032 MUIA_CycleChain, 1,
2033 MUIA_Background, MUII_ButtonBack,
2034 MUIA_Text_PreParse, "\33c",
2035 MUIA_Text_Contents,
2036 "Change Slider Orientations",
2037 End,
2038 Child, MUI_MakeObject(MUIO_Label, "", 0),
2039 End,
2040 End,
2042 /* radios */
2043 Child, HGroup,
2044 Child, VGroup,
2045 Child, RadioObject,
2046 GroupFrame,
2047 MUIA_Radio_Entries, radio_entries1,
2048 End,
2049 Child, country_radio[0] = RadioObject,
2050 GroupFrame,
2051 MUIA_Radio_Entries, radio_entries2,
2052 MUIA_Radio_Active, 1,
2053 End,
2054 End,
2055 Child, HGroup,
2056 Child, RadioObject,
2057 GroupFrame,
2058 MUIA_Radio_Entries, radio_entries1,
2059 End,
2060 Child, country_radio[1] = RadioObject,
2061 GroupFrame,
2062 MUIA_Radio_Entries, radio_entries2,
2063 MUIA_Radio_Active, 1,
2064 End,
2065 End,
2066 End,
2068 #if defined(TEST_ICONLIST)
2069 /* iconlist */
2070 Child, HGroup,
2071 Child, volume_iconlist =
2072 MUI_NewObject(MUIC_IconVolumeList, GroupFrame,
2073 TAG_DONE),
2074 Child, drawer_iconlist =
2075 MUI_NewObject(MUIC_IconDrawerList, GroupFrame,
2076 MUIA_IconDrawerList_Drawer, "SYS:",
2077 TAG_DONE),
2078 End,
2079 #endif
2081 /* balancing */
2082 Child, HGroup,
2083 Child, create_balance_column(),
2084 Child, BalanceObject,
2085 End,
2087 Child, create_balance_column(),
2088 Child, BalanceObject,
2089 End,
2091 Child, create_balance_column(),
2092 Child, BalanceObject,
2093 End,
2095 Child, create_balance_column(),
2096 Child, BalanceObject,
2097 End,
2099 Child, create_balance_column(),
2101 End,
2103 End,
2105 Child, HGroup,
2106 Child, about_button = TextObject,
2107 ButtonFrame,
2108 MUIA_InputMode, MUIV_InputMode_RelVerify,
2109 MUIA_CycleChain, 1,
2110 MUIA_Background, MUII_ButtonBack,
2111 MUIA_Text_PreParse, "\33c",
2112 MUIA_Text_Contents, "About",
2113 End,
2114 Child, quit_button = TextObject,
2115 ButtonFrame,
2116 MUIA_InputMode, MUIV_InputMode_RelVerify,
2117 MUIA_CycleChain, 1,
2118 MUIA_Background, MUII_ButtonBack,
2119 MUIA_ControlChar, 'q',
2120 MUIA_Text_HiChar, 'q',
2121 MUIA_Text_PreParse, "\33c",
2122 MUIA_Text_Contents, "Quit",
2123 End,
2124 End,
2125 End,
2126 End,
2128 SubWindow, second_wnd = WindowObject,
2129 MUIA_Window_Title, "Second window",
2130 WindowContents, VGroup,
2131 Child, DropTextObject,
2132 MUIA_Text_Contents, "Drop here",
2133 MUIA_Dropable, TRUE,
2134 End,
2135 End,
2136 End,
2138 End;
2140 if (app)
2142 ULONG sigs = 0;
2144 DoMethod(wnd, MUIM_Notify, MUIA_Window_CloseRequest, TRUE, app, 2,
2145 MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit);
2146 DoMethod(second_wnd, MUIM_Notify, MUIA_Window_CloseRequest, TRUE,
2147 second_wnd, 3, MUIM_Set, MUIA_Window_Open, FALSE);
2148 DoMethod(open_button, MUIM_Notify, MUIA_Pressed, FALSE, second_wnd,
2149 3, MUIM_Set, MUIA_Window_Open, TRUE);
2150 DoMethod(about_button, MUIM_Notify, MUIA_Pressed, FALSE, app, 2,
2151 MUIM_Application_AboutMUI, NULL);
2152 DoMethod(quit_button, MUIM_Notify, MUIA_Pressed, FALSE, app, 2,
2153 MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit);
2154 DoMethod(objects_button, MUIM_Notify, MUIA_Pressed, FALSE, app, 2,
2155 MUIM_CallHook, &hook_objects);
2156 DoMethod(repeat_button, MUIM_Notify, MUIA_Timer, MUIV_EveryTime,
2157 app, 2, MUIM_CallHook, &hook);
2159 /* Notifications and set-up for string objects */
2160 DoMethod(string.max_len_text, MUIM_SetAsString, MUIA_Text_Contents,
2161 "%ld", XGET(string.strings[0], MUIA_String_MaxLen) - 1);
2162 set(string.cursor_pos_slider, MUIA_Numeric_Max,
2163 XGET(string.strings[0], MUIA_String_MaxLen) - 1);
2164 set(string.display_pos_slider, MUIA_Numeric_Max,
2165 XGET(string.strings[0], MUIA_String_MaxLen) - 1);
2166 set(string.cr_advance_check, MUIA_Selected, TRUE);
2167 set(string.attach_list_check, MUIA_Selected, TRUE);
2168 set(string.strings[1], MUIA_Disabled,
2169 XGET(string.strings[1], MUIA_String_Format)
2170 != MUIV_String_Format_Left);
2171 set(string.strings[2], MUIA_Disabled,
2172 XGET(string.strings[2], MUIA_String_Format)
2173 != MUIV_String_Format_Right);
2174 set(string.strings[3], MUIA_Disabled,
2175 XGET(string.strings[3], MUIA_String_Format)
2176 != MUIV_String_Format_Center);
2177 set(string.strings[4], MUIA_Disabled,
2178 !XGET(string.strings[4], MUIA_String_Secret));
2179 set(string.strings[0], MUIA_String_MaxLen, 100);
2180 set(string.reject_string, MUIA_String_Contents,
2181 (IPTR)default_reject_chars);
2183 for (i = 0; i < STRING_COUNT; i++)
2185 if (i == 0)
2187 DoMethod(string.accept_string, MUIM_Notify,
2188 MUIA_String_Contents, MUIV_EveryTime, string.strings[i],
2189 3, MUIM_Set, MUIA_String_Accept, MUIV_TriggerValue);
2190 DoMethod(string.cr_advance_check, MUIM_Notify, MUIA_Selected,
2191 MUIV_EveryTime, string.strings[i], 3, MUIM_Set,
2192 MUIA_String_AdvanceOnCR, MUIV_TriggerValue);
2193 DoMethod(string.cursor_pos_slider, MUIM_Notify,
2194 MUIA_Numeric_Value, MUIV_EveryTime, string.strings[i], 3,
2195 MUIM_Set, MUIA_String_BufferPos, MUIV_TriggerValue);
2196 DoMethod(string.display_pos_slider, MUIM_Notify,
2197 MUIA_Numeric_Value, MUIV_EveryTime, string.strings[i], 3,
2198 MUIM_Set, MUIA_String_DisplayPos, MUIV_TriggerValue);
2199 DoMethod(string.attach_list_check, MUIM_Notify, MUIA_Selected,
2200 TRUE, string.strings[i], 3, MUIM_Set,
2201 MUIA_String_AttachedList, list.lists[0]);
2202 DoMethod(string.attach_list_check, MUIM_Notify, MUIA_Selected,
2203 FALSE, string.strings[i], 3, MUIM_Set,
2204 MUIA_String_AttachedList, NULL);
2206 else
2208 DoMethod(string.strings[0], MUIM_Notify, MUIA_String_Accept,
2209 MUIV_EveryTime, string.strings[i], 3, MUIM_Set,
2210 MUIA_String_Accept, MUIV_TriggerValue);
2211 DoMethod(string.strings[0], MUIM_Notify,
2212 MUIA_String_AdvanceOnCR, MUIV_EveryTime,
2213 string.strings[i], 3, MUIM_Set, MUIA_String_AdvanceOnCR,
2214 MUIV_TriggerValue);
2215 DoMethod(string.strings[0], MUIM_Notify,
2216 MUIA_String_BufferPos, MUIV_EveryTime,
2217 string.strings[i], 3, MUIM_Set, MUIA_String_BufferPos,
2218 MUIV_TriggerValue);
2219 DoMethod(string.strings[0], MUIM_Notify,
2220 MUIA_String_DisplayPos, MUIV_EveryTime,
2221 string.strings[i], 3, MUIM_Set, MUIA_String_DisplayPos,
2222 MUIV_TriggerValue);
2223 DoMethod(string.strings[0], MUIM_Notify,
2224 MUIA_String_AttachedList, MUIV_EveryTime,
2225 string.strings[i], 3, MUIM_Set,
2226 MUIA_String_AttachedList, MUIV_TriggerValue);
2228 DoMethod(string.reject_string, MUIM_Notify, MUIA_String_Contents,
2229 MUIV_EveryTime, string.strings[i], 3, MUIM_Set,
2230 MUIA_String_Reject, MUIV_TriggerValue);
2231 DoMethod(string.strings[i], MUIM_Notify, MUIA_String_Integer,
2232 MUIV_EveryTime, string.integer_string, 3, MUIM_NoNotifySet,
2233 MUIA_String_Integer, MUIV_TriggerValue);
2234 DoMethod(string.integer_string, MUIM_Notify, MUIA_String_Integer,
2235 MUIV_EveryTime, string.strings[i], 3, MUIM_NoNotifySet,
2236 MUIA_String_Integer, MUIV_TriggerValue);
2238 DoMethod(string.accept_all_check, MUIM_Notify, MUIA_Selected,
2239 MUIV_EveryTime, app, 3, MUIM_CallHook, &hook_standard,
2240 ChangeStringAccept);
2241 DoMethod(string.strings[4], MUIM_Notify, MUIA_String_Acknowledge,
2242 MUIV_EveryTime, string.plaintext_string, 3, MUIM_NoNotifySet,
2243 MUIA_String_Contents, MUIV_TriggerValue);
2244 DoMethod(string.plaintext_string, MUIM_Notify,
2245 MUIA_String_Acknowledge, MUIV_EveryTime, string.strings[4], 3,
2246 MUIM_NoNotifySet, MUIA_String_Contents, MUIV_TriggerValue);
2248 DoMethod(wheel, MUIM_Notify, WHEEL_Hue, MUIV_EveryTime, app, 2,
2249 MUIM_CallHook, &hook_wheel);
2250 DoMethod(wheel, MUIM_Notify, WHEEL_Saturation, MUIV_EveryTime, app,
2251 2, MUIM_CallHook, &hook_wheel);
2252 DoMethod(r_slider, MUIM_Notify, MUIA_Numeric_Value, MUIV_EveryTime,
2253 app, 2, MUIM_CallHook, &hook_slider);
2254 DoMethod(g_slider, MUIM_Notify, MUIA_Numeric_Value, MUIV_EveryTime,
2255 app, 2, MUIM_CallHook, &hook_slider);
2256 DoMethod(b_slider, MUIM_Notify, MUIA_Numeric_Value, MUIV_EveryTime,
2257 app, 2, MUIM_CallHook, &hook_slider);
2259 DoMethod(save_button, MUIM_Notify, MUIA_Pressed, FALSE, app, 3,
2260 MUIM_CallHook, &hook_standard, Save);
2262 DoMethod(quit_item, MUIM_Notify, MUIA_Menuitem_Trigger,
2263 MUIV_EveryTime, app, 2, MUIM_Application_ReturnID,
2264 MUIV_Application_ReturnID_Quit);
2265 DoMethod(about_item, MUIM_Notify, MUIA_Menuitem_Trigger,
2266 MUIV_EveryTime, app, 3, MUIM_CallHook, &hook_standard,
2267 About);
2269 /* Notifications for color objects */
2270 DoMethod(colorfield, MUIM_Notify, MUIA_Colorfield_Red,
2271 MUIV_EveryTime, colorfield2, 3, MUIM_Set, MUIA_Colorfield_Red,
2272 MUIV_TriggerValue);
2273 DoMethod(colorfield, MUIM_Notify, MUIA_Colorfield_Green,
2274 MUIV_EveryTime, colorfield2, 3, MUIM_Set, MUIA_Colorfield_Green,
2275 MUIV_TriggerValue);
2276 DoMethod(colorfield, MUIM_Notify, MUIA_Colorfield_Blue,
2277 MUIV_EveryTime, colorfield2, 3, MUIM_Set, MUIA_Colorfield_Blue,
2278 MUIV_TriggerValue);
2279 DoMethod(coloradjust, MUIM_Notify, MUIA_Coloradjust_Red,
2280 MUIV_EveryTime, colorfield, 3, MUIM_Set, MUIA_Colorfield_Red,
2281 MUIV_TriggerValue);
2282 DoMethod(coloradjust, MUIM_Notify, MUIA_Coloradjust_Green,
2283 MUIV_EveryTime, colorfield, 3, MUIM_Set, MUIA_Colorfield_Green,
2284 MUIV_TriggerValue);
2285 DoMethod(coloradjust, MUIM_Notify, MUIA_Coloradjust_Blue,
2286 MUIV_EveryTime, colorfield, 3, MUIM_Set, MUIA_Colorfield_Blue,
2287 MUIV_TriggerValue);
2288 DoMethod(colorfield, MUIM_Notify, MUIA_Colorfield_Pen,
2289 MUIV_EveryTime, colorfield_pen, 3, MUIM_Set,
2290 MUIA_String_Integer, MUIV_TriggerValue);
2291 DoMethod(colorfield_pen, MUIM_Notify, MUIA_String_Acknowledge,
2292 MUIV_EveryTime, app, 3, MUIM_CallHook, &hook_standard,
2293 ChangePen);
2294 DoMethod(colorfield_reset_button, MUIM_Notify, MUIA_Pressed, FALSE,
2295 colorfield, 3, MUIM_Set, MUIA_Colorfield_RGB, default_color);
2297 /* Notifications for pen objects */
2298 DoMethod(pendisplay, MUIM_Notify, MUIA_Pendisplay_Pen,
2299 MUIV_EveryTime, pendisplay_pen, 3, MUIM_NoNotifySet,
2300 MUIA_String_Integer, MUIV_TriggerValue);
2301 DoMethod(pendisplay_pen, MUIM_Notify, MUIA_String_Acknowledge,
2302 MUIV_EveryTime, app, 3, MUIM_CallHook, &hook_standard,
2303 ChangePendisplayPen);
2304 DoMethod(pendisplay, MUIM_Notify, MUIA_Pendisplay_Spec,
2305 MUIV_EveryTime, pendisplay_spec, 3, MUIM_Set,
2306 MUIA_String_Contents, MUIV_TriggerValue);
2307 DoMethod(colorfield, MUIM_Notify, MUIA_Colorfield_RGB,
2308 MUIV_EveryTime, pendisplay, 3, MUIM_Set,
2309 MUIA_Pendisplay_RGBcolor, MUIV_TriggerValue);
2310 DoMethod(pendisplay, MUIM_Notify, MUIA_Pendisplay_RGBcolor,
2311 MUIV_EveryTime, poppen, 3, MUIM_Set, MUIA_Pendisplay_RGBcolor,
2312 MUIV_TriggerValue);
2313 DoMethod(pendisplay_spec, MUIM_Notify, MUIA_String_Contents,
2314 MUIV_EveryTime, pendisplay, 3, MUIM_Set, MUIA_Pendisplay_Spec,
2315 MUIV_TriggerValue);
2316 DoMethod(reference_check, MUIM_Notify, MUIA_Selected, TRUE,
2317 pendisplay2, 3, MUIM_Set, MUIA_Pendisplay_Reference, pendisplay);
2318 DoMethod(reference_check, MUIM_Notify, MUIA_Selected, FALSE,
2319 pendisplay2, 3, MUIM_Set, MUIA_Pendisplay_Reference, NULL);
2320 DoMethod(shine_button, MUIM_Notify, MUIA_Pressed, FALSE, pendisplay,
2321 2, MUIM_Pendisplay_SetMUIPen, MPEN_SHINE);
2322 DoMethod(shadow_button, MUIM_Notify, MUIA_Pressed, FALSE, pendisplay,
2323 2, MUIM_Pendisplay_SetMUIPen, MPEN_SHADOW);
2324 DoMethod(yellow_button, MUIM_Notify, MUIA_Pressed, FALSE, pendisplay,
2325 4, MUIM_Pendisplay_SetRGB, 0xffffffff, 0xffffffff, 0);
2327 /* Notifications and set-up for list objects */
2328 set(list.showdropmarks_check, MUIA_Selected, TRUE);
2329 UpdateListInfo();
2330 for (i = 0; i < LIST_COUNT; i++)
2332 DoMethod(list.lists[i], MUIM_Notify, MUIA_Listview_DoubleClick,
2333 MUIV_EveryTime, list.lists[i], 3, MUIM_Set, MUIA_Disabled,
2334 TRUE);
2335 DoMethod(list.lists[i], MUIM_Notify, MUIA_List_Entries,
2336 MUIV_EveryTime, list.entries_text, 4, MUIM_SetAsString,
2337 MUIA_Text_Contents, "%ld", MUIV_TriggerValue);
2338 DoMethod(list.lists[i], MUIM_Notify, MUIA_List_Visible,
2339 MUIV_EveryTime, app, 3, MUIM_CallHook, &hook_standard,
2340 ListGetVisible);
2341 DoMethod(list.lists[i], MUIM_Notify, MUIA_List_First,
2342 MUIV_EveryTime, app, 3, MUIM_CallHook, &hook_standard,
2343 ListGetFirst);
2344 DoMethod(list.lists[i], MUIM_Notify, MUIA_List_InsertPosition,
2345 MUIV_EveryTime, list.insert_text, 4, MUIM_SetAsString,
2346 MUIA_Text_Contents, "%ld", MUIV_TriggerValue);
2347 DoMethod(list.lists[i], MUIM_Notify, MUIA_List_Active,
2348 MUIV_EveryTime, app, 3, MUIM_CallHook, &hook_standard,
2349 UpdateListInfo);
2351 DoMethod(list.dragsortable_check, MUIM_Notify, MUIA_Selected,
2352 MUIV_EveryTime, app, 3, MUIM_CallHook, &hook_standard,
2353 ListSetDragSortable);
2354 DoMethod(list.showdropmarks_check, MUIM_Notify, MUIA_Selected,
2355 MUIV_EveryTime, app, 3, MUIM_CallHook, &hook_standard,
2356 ListSetShowDropMarks);
2357 DoMethod(list.quiet_check, MUIM_Notify, MUIA_Selected,
2358 MUIV_EveryTime, app, 3, MUIM_CallHook, &hook_standard,
2359 ListSetQuiet);
2360 DoMethod(list.autovisible_check, MUIM_Notify, MUIA_Selected,
2361 MUIV_EveryTime, app, 3, MUIM_CallHook, &hook_standard,
2362 ListSetAutoVisible);
2363 DoMethod(list.reset_button, MUIM_Notify, MUIA_Pressed, FALSE,
2364 app, 3, MUIM_CallHook, &hook_standard, ListReset);
2365 DoMethod(list.move_button, MUIM_Notify, MUIA_Pressed, FALSE,
2366 app, 3, MUIM_CallHook, &hook_standard, ListMove);
2367 DoMethod(list.sort_button, MUIM_Notify, MUIA_Pressed, FALSE,
2368 app, 3, MUIM_CallHook, &hook_standard, ListSort);
2369 DoMethod(list.enable_button, MUIM_Notify, MUIA_Pressed, FALSE,
2370 app, 3, MUIM_CallHook, &hook_standard, ListEnable);
2371 DoMethod(list.exchange_button, MUIM_Notify, MUIA_Pressed, FALSE,
2372 app, 3, MUIM_CallHook, &hook_standard, ListExchange);
2373 DoMethod(list.jump_button, MUIM_Notify, MUIA_Pressed, FALSE,
2374 app, 3, MUIM_CallHook, &hook_standard, ListJump);
2375 DoMethod(list.select_button, MUIM_Notify, MUIA_Pressed, FALSE,
2376 app, 3, MUIM_CallHook, &hook_standard, ListSelect);
2377 DoMethod(list.deselect_button, MUIM_Notify, MUIA_Pressed, FALSE,
2378 app, 3, MUIM_CallHook, &hook_standard, ListDeselect);
2379 DoMethod(list.toggle_button, MUIM_Notify, MUIA_Pressed, FALSE,
2380 app, 3, MUIM_CallHook, &hook_standard, ListToggle);
2381 DoMethod(list.redraw_button, MUIM_Notify, MUIA_Pressed, FALSE,
2382 app, 3, MUIM_CallHook, &hook_standard, ListRedraw);
2383 DoMethod(list.insert_single_button, MUIM_Notify, MUIA_Pressed, FALSE,
2384 app, 3, MUIM_CallHook, &hook_standard, ListInsertSingle);
2385 DoMethod(list.insert_multiple_button, MUIM_Notify, MUIA_Pressed, FALSE,
2386 app, 3, MUIM_CallHook, &hook_standard, ListInsert);
2387 DoMethod(list.remove_button, MUIM_Notify, MUIA_Pressed, FALSE,
2388 app, 3, MUIM_CallHook, &hook_standard, ListRemove);
2389 DoMethod(list.clear_button, MUIM_Notify, MUIA_Pressed, FALSE,
2390 app, 3, MUIM_CallHook, &hook_standard, ListClear);
2391 DoMethod(list.activate_button, MUIM_Notify, MUIA_Pressed, FALSE,
2392 app, 3, MUIM_CallHook, &hook_standard, ListActivate);
2393 DoMethod(list.deactivate_button, MUIM_Notify, MUIA_Pressed, FALSE,
2394 app, 3, MUIM_CallHook, &hook_standard, ListDeactivate);
2395 DoMethod(list.title_string, MUIM_Notify, MUIA_String_Acknowledge,
2396 MUIV_EveryTime, app, 3, MUIM_CallHook, &hook_standard,
2397 ChangeListTitle);
2398 DoMethod(list.list_radios, MUIM_Notify, MUIA_Radio_Active,
2399 MUIV_EveryTime, app, 3, MUIM_CallHook, &hook_standard,
2400 UpdateListInfo);
2402 SET(list.showheadings_check, MUIA_Selected,
2403 XGET(list.multi_lists[0], MUIA_List_Title));
2404 SET(list.format_string, MUIA_String_Contents,
2405 XGET(list.multi_lists[1], MUIA_List_Format));
2406 SET(list.def_column_string, MUIA_String_Integer,
2407 XGET(list.multi_lists[0], MUIA_Listview_DefClickColumn));
2408 DoMethod(list.format_string, MUIM_Notify, MUIA_String_Acknowledge,
2409 MUIV_EveryTime, list.multi_lists[1], 3, MUIM_Set,
2410 MUIA_List_Format, MUIV_TriggerValue);
2411 DoMethod(list.multi_lists[1], MUIM_Notify, MUIA_List_Format,
2412 MUIV_EveryTime, wnd, 3, MUIM_Set,
2413 MUIA_Window_ActiveObject, list.format_string);
2414 for (i = 0; i < MULTI_LIST_COUNT; i++)
2416 DoMethod(list.showheadings_check, MUIM_Notify, MUIA_Selected,
2417 MUIV_EveryTime, list.multi_lists[i], 3, MUIM_Set,
2418 MUIA_List_Title, MUIV_TriggerValue);
2419 DoMethod(list.def_column_string, MUIM_Notify,
2420 MUIA_String_Integer,
2421 MUIV_EveryTime, list.multi_lists[i], 3, MUIM_Set,
2422 MUIA_Listview_DefClickColumn, MUIV_TriggerValue);
2423 DoMethod(list.multi_lists[i], MUIM_Notify,
2424 MUIA_Listview_ClickColumn, MUIV_EveryTime,
2425 list.column_string, 3, MUIM_Set, MUIA_String_Integer,
2426 MUIV_TriggerValue);
2428 DoMethod(list.column_string, MUIM_Notify, MUIA_String_Contents,
2429 MUIV_EveryTime, list.column_text, 3, MUIM_Set, MUIA_Text_Contents,
2430 MUIV_TriggerValue);
2432 DoMethod(listview, MUIM_Notify, MUIA_Listview_DoubleClick, TRUE,
2433 popobject, 2, MUIM_Popstring_Close, TRUE);
2435 /* numeric */
2436 for (i = 0; i < NUMERIC_COUNT; i++)
2438 DoMethod(min_string, MUIM_Notify, MUIA_String_Integer,
2439 MUIV_EveryTime, numerics[i], 3, MUIM_Set, MUIA_Numeric_Min,
2440 MUIV_TriggerValue);
2441 DoMethod(max_string, MUIM_Notify, MUIA_String_Integer,
2442 MUIV_EveryTime, numerics[i], 3, MUIM_Set, MUIA_Numeric_Max,
2443 MUIV_TriggerValue);
2445 DoMethod(slider_button, MUIM_Notify, MUIA_Pressed, FALSE,
2446 numerics[HRSLIDER], 3, MUIM_Set, MUIA_Slider_Horiz, FALSE);
2448 /* radio */
2449 DoMethod(country_radio[0], MUIM_Notify, MUIA_Radio_Active,
2450 MUIV_EveryTime, country_radio[1], 3, MUIM_NoNotifySet,
2451 MUIA_Radio_Active, MUIV_TriggerValue);
2452 DoMethod(country_radio[1], MUIM_Notify, MUIA_Radio_Active,
2453 MUIV_EveryTime, country_radio[0], 3, MUIM_NoNotifySet,
2454 MUIA_Radio_Active, MUIV_TriggerValue);
2456 #if defined(TEST_ICONLIST)
2457 /* iconlist */
2458 DoMethod(volume_iconlist, MUIM_Notify, MUIA_IconList_DoubleClick,
2459 TRUE, volume_iconlist, 3, MUIM_CallHook, &hook_standard,
2460 volume_doubleclicked);
2461 DoMethod(drawer_iconlist, MUIM_Notify, MUIA_IconList_DoubleClick,
2462 TRUE, drawer_iconlist, 3, MUIM_CallHook, &hook_standard,
2463 drawer_doubleclicked);
2464 #endif
2466 /* automatic tests */
2467 get(list.lists[0], MUIA_List_Visible, &value);
2468 if (value != -1)
2469 printf("MUIA_List_Visible equals %ld before display,"
2470 " but it should be -1.\n", (long)value);
2472 set(wnd, MUIA_Window_Open, TRUE);
2473 set(wnd, MUIA_Window_ScreenTitle, "Zune Test application");
2475 /* Set pen fields */
2476 set(colorfield_pen, MUIA_String_Integer,
2477 XGET(colorfield, MUIA_Colorfield_Pen));
2479 char pen_str[10];
2480 nnset(pendisplay_pen, MUIA_String_Integer,
2481 XGET(pendisplay, MUIA_Pendisplay_Pen));
2483 struct MUI_PenSpec *pen_spec = NULL;
2484 GET(pendisplay, MUIA_Pendisplay_Spec, &pen_spec);
2485 strncpy(pen_str, pen_spec->buf, 10);
2486 set(pendisplay_spec, MUIA_String_Contents, pen_str);
2488 while ((LONG) DoMethod(app, MUIM_Application_NewInput,
2489 &sigs) != MUIV_Application_ReturnID_Quit)
2491 if (sigs)
2493 sigs = Wait(sigs | SIGBREAKF_CTRL_C | SIGBREAKF_CTRL_D);
2494 if (sigs & SIGBREAKF_CTRL_C)
2495 break;
2496 if (sigs & SIGBREAKF_CTRL_D)
2497 break;
2501 MUI_DisposeObject(app);
2503 if (context_menu)
2504 MUI_DisposeObject(context_menu);
2505 CloseLibrary(ColorWheelBase);
2506 MUI_DeleteCustomClass(CL_DropText);
2508 CloseLibrary(MUIMasterBase);
2510 DeletePool(pool);
2512 return 0;