- Set a default PCM volume so that something can be heard when driver is
[AROS.git] / test / Zune / string.c
blob785c251d5a4263ceca87b89a078bdb8846555840
1 /*
2 Copyright © 1995-2003, The AROS Development Team. All rights reserved.
3 $Id$
4 */
6 #include <exec/types.h>
7 #include <stdlib.h>
8 #include <stdio.h>
9 #include <string.h>
11 #include <proto/alib.h>
12 #include <proto/exec.h>
13 #include <proto/dos.h>
14 #include <proto/intuition.h>
15 #include <proto/muimaster.h>
16 #include <libraries/mui.h>
17 #include <libraries/coolimages.h>
20 #define AddContents(obj) \
21 DoMethod(root, MUIM_Group_InitChange); \
22 DoMethod(root, OM_ADDMEMBER, (IPTR)obj);\
23 DoMethod(root, MUIM_Group_ExitChange);
25 #define DelContents(obj) \
26 DoMethod(root, MUIM_Group_InitChange); \
27 DoMethod(root, OM_REMMEMBER, (IPTR)obj);\
28 DoMethod(root, MUIM_Group_ExitChange); \
29 MUI_DisposeObject(wc);
31 Object *app;
32 Object *wnd;
33 Object *root;
34 Object *btabort, *btproceed;
36 int quit = FALSE;
38 enum
40 Push_NULL,
41 Push_Proceed,
42 Push_Abort,
45 /* ######################################################################## */
48 const char GuiWinTitle[] ="AROS - Installer V43.3";
49 struct Screen *scr;
52 void init_gui()
55 scr = LockPubScreen(NULL);
57 app = ApplicationObject,
58 MUIA_Application_Title, "AROS - Installer",
60 SubWindow, wnd = WindowObject,
61 MUIA_Window_Title, GuiWinTitle,
62 MUIA_Window_Width, 400,
63 MUIA_Window_Height, 300,
64 MUIA_Window_CloseGadget, FALSE,
65 MUIA_Window_NoMenus, TRUE,
66 MUIA_Window_ID, MAKE_ID('A','I','N','S'),
67 WindowContents,
68 VGroup,
69 Child, root = VGroup, End,
70 Child, HBar(TRUE),
71 Child, HGroup,
72 MUIA_Group_SameSize, TRUE,
73 Child, btproceed = CoolImageIDButton("Proceed", COOL_USEIMAGE_ID),
74 Child, btabort = CoolImageIDButton("Abort", COOL_CANCELIMAGE_ID),
75 End,
76 End,
77 End,
78 End;
80 if (app == NULL)
82 /* failed to initialize GUI */
83 printf("Failed to intialize Zune GUI\n");
85 set(app,MUIA_Window_DefaultObject, (IPTR)root);
86 set(btproceed,MUIA_CycleChain,1);
87 set(btabort,MUIA_CycleChain,1);
89 DoMethod(btproceed, MUIM_Notify, MUIA_Pressed, FALSE,(IPTR)app, 2,
90 MUIM_Application_ReturnID, Push_Proceed);
91 DoMethod(btabort, MUIM_Notify, MUIA_Pressed, FALSE,(IPTR)app, 2,
92 MUIM_Application_ReturnID, Push_Abort);
93 set(wnd, MUIA_Window_Open, TRUE);
97 * Close GUI
99 void deinit_gui()
101 set(wnd, MUIA_Window_Open, FALSE);
102 MUI_DisposeObject(app);
108 * Ask user for a number
110 long int request_number(long int def)
112 long int retval;
113 long int min, max;
115 retval = def;
116 max = 999;
117 min = 0;
121 char *out;
122 BOOL running = TRUE;
123 Object *st, *wc;
124 ULONG val, sigs = 0;
126 out = StrDup("TEST");
128 wc = VGroup,
129 Child, VGroup, GroupFrame,
130 Child, TextObject,
131 MUIA_Text_Contents, (IPTR)(out),
132 MUIA_Text_Editable, FALSE,
133 MUIA_Text_Multiline, TRUE,
134 End,
135 Child, st = StringObject,
136 StringFrame,
137 MUIA_String_Accept, (IPTR)"-0123456789",
138 MUIA_String_Integer, retval,
139 MUIA_String_AdvanceOnCR,TRUE,
140 MUIA_CycleChain, TRUE,
141 End,
142 End,
143 End;
145 if (wc)
147 AddContents(wc);
149 while (running)
151 switch (val = DoMethod(app,MUIM_Application_NewInput,(IPTR)&sigs))
153 case MUIV_Application_ReturnID_Quit:
154 case Push_Abort:
155 quit = TRUE; running = FALSE;
156 break;
157 case Push_Proceed:
158 GetAttr(MUIA_String_Integer, st, &retval);
159 if ( retval < max && retval > min)
161 running = FALSE;
163 break;
164 default:
165 break;
168 sigs = CheckSignal(SIGBREAKF_CTRL_C | sigs);
171 GetAttr(MUIA_String_Integer, st, &retval);
173 DelContents(wc);
175 FreeVec(out);
179 return retval;
183 char *request_string(char *def)
185 char *retval, *string, *secret;
186 char *out;
187 BOOL running = TRUE;
188 Object *st, *tst, *wc;
189 ULONG val, sigs = 0;
191 string = def;
193 out = StrDup("test");
194 secret = NULL;
196 wc = VGroup, GroupFrame,
197 Child, TextObject,
198 MUIA_Text_Contents, (IPTR)(out),
199 MUIA_Text_Editable, FALSE,
200 MUIA_Text_Multiline, TRUE,
201 End,
202 Child, st = StringObject,
203 StringFrame,
204 MUIA_String_Contents, (IPTR)string,
205 MUIA_String_MaxLen, 12,
206 MUIA_String_AdvanceOnCR,TRUE,
207 MUIA_CycleChain, TRUE,
208 End,
209 Child, tst = StringObject,
210 StringFrame,
211 MUIA_String_Contents, (IPTR)secret,
212 MUIA_String_MaxLen, 12,
213 MUIA_String_Secret, TRUE,
214 MUIA_String_AdvanceOnCR,TRUE,
215 MUIA_CycleChain, TRUE,
216 End,
217 End;
219 if (wc)
221 AddContents(wc);
223 while (running)
225 switch (val = DoMethod(app,MUIM_Application_NewInput,(IPTR)&sigs))
227 case MUIV_Application_ReturnID_Quit:
228 case Push_Abort:
229 quit = TRUE; running = FALSE;
230 break;
231 case Push_Proceed:
232 running = FALSE;
233 break;
234 default:
235 break;
237 sigs = CheckSignal(SIGBREAKF_CTRL_C | sigs);
240 get(st, MUIA_String_Contents, &string);
241 if (strlen(string)==0)
243 get(tst, MUIA_String_Contents, &secret);
244 retval = StrDup(secret);
246 else retval = StrDup(string);
248 DelContents(wc);
250 else
252 retval = StrDup(string);
254 FreeVec(out);
256 return retval;
260 int main()
262 char *string;
263 long int intval;
265 init_gui();
267 for(;;)
269 string = request_string("blah");
270 printf("you entered string <%s>\n",string);
271 FreeVec(string);
272 if(quit) break;
273 intval = request_number(99);
274 printf("you entered number <%ld>\n",intval);
275 if(quit) break;
277 deinit_gui();
279 return 0;