1 #include <exec/lists.h>
2 #include <exec/nodes.h>
4 static const char KMsgWelcome
[] =
5 MUIX_B
"\nWelcome to the AROS Research OS installer.\n\n" MUIX_N
6 "This program allows you to install AROS\n"
7 "on your computer's hard disk or an attached USB drive.\n\n"
8 "Please be aware that the stability of this software\n"
9 "cannot be guaranteed.\n"
10 "It is possible that " MUIX_B
"loss of data" MUIX_N
" may occur\n"
11 "on any drive in your system, including those\n"
12 "used by other operating systems.\n";
14 static const char KMsgInstallOptions
[] =
15 "\nPlease choose your installation options.\n\n";
17 static const char KMsgDestOptions
[] =
18 "\nPlease choose where to install AROS.\n\n"
19 "If you are unsure, then use the defaults";
21 static const char KMsgDestVolume
[] =
22 "Destination Partition";
24 static const char KMsgWorkVolume
[] =
27 static const char KMsgBeginWithPartition
[] =
28 "OK, we are ready to begin.\n\n"
29 "Since you've chosen to format at least one partition,\n"
30 "you will no longer be able to undo changes\n"
31 "after this point.\n\n"
32 "Select Proceed to begin installation.";
34 static const char KMsgBeginWithoutPartition
[] =
35 "OK, we are ready to begin...\n\n"
36 "We have collected enough information\n"
37 "to begin installation on this computer.\n\n"
38 "\nSelect Proceed to begin installation.";
40 static const char KMsgPartitionOptions
[] =
41 "We will now create AROS partitions on the destination drive.\n\n"
42 "Please select how you would like to proceed.\n";
44 static const char KMsgDestPartition
[] =
45 MUIX_B
"System Partition:" MUIX_N
;
47 static const char KMsgWorkPartition
[] =
48 MUIX_B
"Work Partition:" MUIX_N
;
50 static const char KMsgPartitionTooBig
[] =
51 "The partition sizes you have requested are too large.\n"
52 "The maximum size of an SFS partition is %ld GB (%ld MB),\n"
53 "while the maximum size of an FFS partition is %ld GB (%ld MB).\n"
54 "Please reduce the size of the affected partitions.\n";
56 static const char KMsgGrubOptions
[] =
57 "AROS uses the GRUB bootloader.\n\n"
58 "In most cases, GRUB's bootblock should\n"
59 "be installed on the first drive in your system.\n"
60 "If the Installer detects a Microsoft Windows installation,\n"
61 "it will be included as a choice in GRUB's boot menu.\n";
63 static const char KMsgGrubDrive
[] =
64 "Drive to install GRUB's bootblock on:";
66 static const char KMsgGrubGOptions
[] =
67 MUIX_B
"GRUB Settings" MUIX_N
;
69 static const char KMsgGrubGrub
[] =
70 "Path to GRUB files:";
72 static const char KMsgNoGrubDevice
[] =
73 "Please enter the device name and unit number for\n"
74 "the drive GRUB's bootblock should be installed on.\n";
76 static const char KMsgPartitioning
[] =
77 "Partitioning your drives...\n\n";
79 static const char KMsgInstall
[] =
80 "Copying files to the destination drive.\n\n"
81 "This may take some time...\n";
83 static const char KMsgBootLoader
[] =
84 "Copying the GRUB bootloader to your\n"
85 "destination drive, and installing...\n";
87 static const char KMsgPostInstall
[] =
88 "Running the external post-install\n"
89 "script. Please wait.\n";
91 static const char KMsgDoneReboot
[] =
92 "AROS partitions have now been created!\n"
93 "To continue installation, you must\n"
94 "reboot AROS, and re-run\n"
95 "this installer application\n\n"
96 "Select Proceed to finish\n";
98 static const char KMsgDoneUSB
[] =
99 "AROS partitions have now been created!\n"
100 "To continue installation, you must remove\n"
101 "and re-attach your USB drive, and re-run\n"
102 "this installer application\n\n"
103 "Select Proceed to finish\n";
105 static const char KMsgDone
[] =
106 "Congratulations, you now have AROS installed!\n\n"
107 "To boot AROS from the destination drive,\n"
108 "remove the installation media and\n"
109 "restart your computer using the\n"
110 "power switch or reset button.\n\n"
111 "Select Proceed to finish\n";
113 static const char KMsgCancelOK
[] =
114 "Are you sure you wish to cancel\n"
115 "this installation?\n";
117 static const char KMsgCancelDanger
[] =
118 "Irreversible changes have been made\n"
119 "to your system.\n\n"
120 "Cancelling now may leave your PC in an\n"
121 "unbootable state\n\n"
122 "Are you sure you wish to cancel\n"
123 "this installation?\n";
125 static const char KMsgProceed
[] =
128 static const char KMsgNotAllFilesCopied
[] =
129 "Not all files in '%s'\n"
131 "Should the installation continue?\n";
133 static const char KMsgPartitioningFailed
[] =
134 "Partitioning of disk failed. InstallAROS\n"
137 static const char KMsgGRUBNonFFSWarning
[] =
138 "You have selected a filesystem different\n"
139 "than FFS-Intl for the system partition. Since\n"
140 "this distribution of AROS is compiled with the\n"
141 "original GRUB bootloader, you will not be able to\n"
142 "boot the system after installation.\n\n"
143 "Should the partitioning continue?\n";
145 /* Unused strings. Kept for reference */
149 static const char KMsgLanguage[] =
150 "The system prefs for your language settings\n"
151 "will now launch\n\n"
152 "Choose the settings that are relevant to you\n";
154 static const char KMsgNoDrives[] =
155 "It appears you do not have a hard\n"
156 "drive installed in your PC.\n\n"
157 "Installation of AROS can only be performed on to\n"
158 "a hard drive just now. Sorry.\n\nPress Proceed To Exit\n";
162 #define MUIM_IC_NextStep (0x00335551)
163 #define MUIM_IC_PrevStep (0x00335552)
164 #define MUIM_IC_UndoSteps (0x00335553)
166 #define MUIM_IC_Install (0x00335554)
168 #define MUIM_FindDrives (0x00335555)
169 #define MUIM_PartitionFree (0x00335556)
170 #define MUIM_Partition (0x00335557)
171 #define MUIM_Format (0x00335558)
173 #define MUIM_IC_CopyFiles (0x0033555a)
174 #define MUIM_IC_CopyFile (0x0033555b)
176 #define MUIM_IC_CancelInstall (0x0033556a)
177 #define MUIM_IC_ContinueInstall (0x0033556b)
178 #define MUIM_IC_QuitInstall (0x0033556c)
180 #define MUIM_Reboot (0x0033556d)
181 #define MUIM_RefreshWindow (0x00335570)
183 /* to be made obsolete */
185 #define MUIA_Page (0x00335580)
187 #define MUIA_PartitionButton (0x00335581)
188 #define MUIA_Gauge1 (0x00335582)
189 #define MUIA_Gauge2 (0x00335583)
190 #define MUIA_Install (0x00335584)
192 #define MUIA_WelcomeMsg (0x0033558a)
193 #define MUIA_FinishedMsg (0x0033558b)
195 /* new - some/most will "vanish(tm)" */
197 #define MUIA_OBJ_Installer (0x0033558d)
198 #define MUIA_Grub_Options (0x0033558e)
199 #define MUIA_List_Options (0x0033558f)
201 #define MUIA_OBJ_Window (0x00335590)
202 #define MUIA_OBJ_WindowContent (0x00335591)
204 #define MUIA_OBJ_PageTitle (0x00335592)
205 #define MUIA_OBJ_PageHeader (0x00335593)
206 #define MUIA_OBJ_CActionStrng (0x00335594)
208 #define MUIA_OBJ_Back (0x00335595)
209 #define MUIA_OBJ_Proceed (0x00335596)
210 #define MUIA_OBJ_Cancel (0x00335597)
212 #define MUIA_IC_License_File (0x00335598)
213 #define MUIA_IC_License_Mandatory (0x00335599)
215 #define MUIA_IC_EnableUndo (0x00335599)
217 /* Install Results */
219 #define MUIA_InstallComplete (0x003355ff)
220 #define MUIA_InstallFailed (0x003355fe)
222 #define MUIV_Inst_Completed (0xff)
223 #define MUIV_Inst_InProgress (0x00)
224 #define MUIV_Inst_Cancelled (0x01)
225 #define MUIV_Inst_Failed (0x10)
227 struct MUIP_CopyFiles
229 STACKED ULONG MethodID
;
230 STACKED CONST_STRPTR srcDir
;
231 STACKED CONST_STRPTR dstDir
;
232 STACKED CONST_STRPTR fileMask
;
233 STACKED ULONG recursive
;
238 STACKED ULONG MethodID
;
239 STACKED CONST_STRPTR srcFile
;
240 STACKED CONST_STRPTR dstFile
;
247 EPartitionOptionsStage
,
248 EInstallOptionsStage
,
251 EInstallMessageStage
,
257 struct Install_Options
261 Object
*opt_lic_mgrp
;
262 Object
*opt_partmethod
;
265 Object
*opt_copycore
;
266 Object
*opt_copyextra
;
267 Object
*opt_development
;
268 Object
*opt_bootloader
;
280 Object
*gopt_grub2mode
;
284 struct InstallC_UndoRecord
286 struct Node undo_Node
; /* Inherits from struct Node */
298 IPTR opt_development
;
303 enum IO_OVERWRITE_FLAGS
306 IIO_Overwrite_Always
,
329 Object
*actioncurrent
;
346 char *instc_lic_file
;
347 APTR instc_lic_buffer
;
349 struct List instc_undorecord
;
351 /** Option Related **/
353 struct Install_Options
*instc_options_main
;
354 struct Grub_Options
*instc_options_grub
;
355 struct optionstmp
*instc_options_backup
;
356 enum EStage instc_stage_prev
;
357 enum EStage instc_stage_next
;
359 enum IO_OVERWRITE_FLAGS IO_Always_overwrite
;
361 BOOL instc_cflag_driveset
;
362 BOOL instc_copt_undoenabled
;
363 BOOL instc_copt_licensemandatory
;
368 /* TODO: add more bootloaders */
370 struct BootloaderData