diff options
author | Dominik Wenger <domonoky@googlemail.com> | 2007-03-15 14:02:37 +0000 |
---|---|---|
committer | Dominik Wenger <domonoky@googlemail.com> | 2007-03-15 14:02:37 +0000 |
commit | 994a6d6c4c3cf580d663b65aadb50e99da06ab73 (patch) | |
tree | 04208011cf67dd305153c02398f38cf9799832ed | |
parent | 1625c91fbd51cf7c0376995ae49db8af9ec6c49c (diff) | |
download | rockbox-994a6d6c4c3cf580d663b65aadb50e99da06ab73.tar.gz rockbox-994a6d6c4c3cf580d663b65aadb50e99da06ab73.zip |
Support for Theme installing in rbUtil. FS#6709
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12781 a1c6a512-1295-4272-9138-f99709370657
-rwxr-xr-x | rbutil/bootloaders.cpp | 170 | ||||
-rw-r--r-- | rbutil/credits.h | 2 | ||||
-rwxr-xr-x | rbutil/irivertools.cpp | 94 | ||||
-rw-r--r-- | rbutil/rbutil-rc.rc | 10 | ||||
-rw-r--r-- | rbutil/rbutil.cbp | 6 | ||||
-rw-r--r-- | rbutil/rbutil.cpp | 205 | ||||
-rw-r--r-- | rbutil/rbutil.h | 6 | ||||
-rw-r--r-- | rbutil/rbutil.ini | 30 | ||||
-rw-r--r-- | rbutil/rbutilApp.cpp | 18 | ||||
-rw-r--r-- | rbutil/rbutilFrm.cpp | 361 | ||||
-rw-r--r-- | rbutil/rbutilFrm.h | 4 | ||||
-rw-r--r-- | rbutil/uninstall_3d.xpm | 599 | ||||
-rw-r--r-- | rbutil/wizard_pages.cpp | 364 | ||||
-rw-r--r-- | rbutil/wizard_pages.h | 54 |
14 files changed, 1218 insertions, 705 deletions
diff --git a/rbutil/bootloaders.cpp b/rbutil/bootloaders.cpp index dd92b4a343..c2303beacc 100755 --- a/rbutil/bootloaders.cpp +++ b/rbutil/bootloaders.cpp | |||
@@ -42,14 +42,14 @@ bool ipodpatcher(int mode) | |||
42 | // downloading files | 42 | // downloading files |
43 | if(mode == BOOTLOADER_ADD) | 43 | if(mode == BOOTLOADER_ADD) |
44 | { | 44 | { |
45 | src.Printf("%s/ipod/%s.ipod", gv->bootloader_url.c_str(),gv->curbootloader.c_str()); | 45 | src.Printf(wxT("%s/ipod/%s.ipod"), gv->bootloader_url.c_str(),gv->curbootloader.c_str()); |
46 | dest.Printf("%s" PATH_SEP "download" PATH_SEP "%s", | 46 | dest.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "%s"), |
47 | gv->stdpaths->GetUserDataDir().c_str(),gv->curbootloader.c_str()); | 47 | gv->stdpaths->GetUserDataDir().c_str(),gv->curbootloader.c_str()); |
48 | if ( DownloadURL(src, dest) ) | 48 | if ( DownloadURL(src, dest) ) |
49 | { | 49 | { |
50 | wxRemoveFile(dest); | 50 | wxRemoveFile(dest); |
51 | buf.Printf(_("Unable to download %s"), src.c_str() ); | 51 | buf.Printf(wxT("Unable to download %s"), src.c_str() ); |
52 | ERR_DIALOG(buf, _("Install")); | 52 | ERR_DIALOG(buf, wxT("Install")); |
53 | return false; | 53 | return false; |
54 | } | 54 | } |
55 | } | 55 | } |
@@ -59,45 +59,45 @@ bool ipodpatcher(int mode) | |||
59 | int n = ipod_scan(&ipod); | 59 | int n = ipod_scan(&ipod); |
60 | if (n == 0) | 60 | if (n == 0) |
61 | { | 61 | { |
62 | ERR_DIALOG("[ERR] No ipods found.", _("Scanning for Ipods")); | 62 | ERR_DIALOG(wxT("[ERR] No ipods found."), wxT("Scanning for Ipods")); |
63 | return false; | 63 | return false; |
64 | } | 64 | } |
65 | if (n > 1) | 65 | if (n > 1) |
66 | { | 66 | { |
67 | ERR_DIALOG("[ERR] to many ipods found.", _("Scanning for Ipods")); | 67 | ERR_DIALOG(wxT("[ERR] to many ipods found."), wxT("Scanning for Ipods")); |
68 | return false; | 68 | return false; |
69 | } | 69 | } |
70 | 70 | ||
71 | if (ipod_open(&ipod, 0) < 0) | 71 | if (ipod_open(&ipod, 0) < 0) |
72 | { | 72 | { |
73 | ERR_DIALOG("[ERR] could not open ipod", _("open Ipod")); | 73 | ERR_DIALOG(wxT("[ERR] could not open ipod"), wxT("open Ipod")); |
74 | return false; | 74 | return false; |
75 | } | 75 | } |
76 | 76 | ||
77 | if (read_partinfo(&ipod,0) < 0) | 77 | if (read_partinfo(&ipod,0) < 0) |
78 | { | 78 | { |
79 | ERR_DIALOG("[ERR] could not read partitiontable", _("reading partitiontable")); | 79 | ERR_DIALOG(wxT("[ERR] could not read partitiontable"), wxT("reading partitiontable")); |
80 | return false; | 80 | return false; |
81 | } | 81 | } |
82 | 82 | ||
83 | if (ipod.pinfo[0].start==0) | 83 | if (ipod.pinfo[0].start==0) |
84 | { | 84 | { |
85 | ERR_DIALOG("[ERR] No partition 0 on disk", _("reading partitiontable")); | 85 | ERR_DIALOG(wxT("[ERR] No partition 0 on disk"), wxT("reading partitiontable")); |
86 | int i; | 86 | int i; |
87 | double sectors_per_MB = (1024.0*1024.0)/ipod.sector_size; | 87 | double sectors_per_MB = (1024.0*1024.0)/ipod.sector_size; |
88 | 88 | ||
89 | buf.Printf("[INFO] Part Start Sector End Sector Size (MB) Type\n"); | 89 | buf.Printf(wxT("[INFO] Part Start Sector End Sector Size (MB) Type\n")); |
90 | ERR_DIALOG(buf, _("reading partitiontable")); | 90 | ERR_DIALOG(buf, wxT("reading partitiontable")); |
91 | for ( i = 0; i < 4; i++ ) { | 91 | for ( i = 0; i < 4; i++ ) { |
92 | if (ipod.pinfo[i].start != 0) { | 92 | if (ipod.pinfo[i].start != 0) { |
93 | buf.Printf("[INFO] %d %10ld %10ld %10.1f %s (0x%02x)\n", | 93 | buf.Printf(wxT("[INFO] %d %10ld %10ld %10.1f %s (0x%02x)\n"), |
94 | i, | 94 | i, |
95 | ipod.pinfo[i].start, | 95 | ipod.pinfo[i].start, |
96 | ipod.pinfo[i].start+ipod.pinfo[i].size-1, | 96 | ipod.pinfo[i].start+ipod.pinfo[i].size-1, |
97 | ipod.pinfo[i].size/sectors_per_MB, | 97 | ipod.pinfo[i].size/sectors_per_MB, |
98 | get_parttype(ipod.pinfo[i].type), | 98 | get_parttype(ipod.pinfo[i].type), |
99 | ipod.pinfo[i].type); | 99 | ipod.pinfo[i].type); |
100 | ERR_DIALOG(buf, _("reading partitiontable")); | 100 | ERR_DIALOG(buf, wxT("reading partitiontable")); |
101 | } | 101 | } |
102 | } | 102 | } |
103 | return false; | 103 | return false; |
@@ -107,52 +107,52 @@ bool ipodpatcher(int mode) | |||
107 | 107 | ||
108 | if (ipod.nimages <= 0) | 108 | if (ipod.nimages <= 0) |
109 | { | 109 | { |
110 | ERR_DIALOG("[ERR] Failed to read firmware directory", _("reading directory")); | 110 | ERR_DIALOG(wxT("[ERR] Failed to read firmware directory"), wxT("reading directory")); |
111 | return false; | 111 | return false; |
112 | } | 112 | } |
113 | if (getmodel(&ipod,(ipod.ipod_directory[0].vers>>8)) < 0) | 113 | if (getmodel(&ipod,(ipod.ipod_directory[0].vers>>8)) < 0) |
114 | { | 114 | { |
115 | buf.Printf(_("[ERR] Unknown version number in firmware (%08x)\n"), | 115 | buf.Printf(wxT("[ERR] Unknown version number in firmware (%08x)\n"), |
116 | ipod.ipod_directory[0].vers ); | 116 | ipod.ipod_directory[0].vers ); |
117 | ERR_DIALOG(buf, _("reading directory")); | 117 | ERR_DIALOG(buf, wxT("reading directory")); |
118 | return false; | 118 | return false; |
119 | } | 119 | } |
120 | 120 | ||
121 | if (ipod.macpod) | 121 | if (ipod.macpod) |
122 | { | 122 | { |
123 | WARN_DIALOG("Warning this is a MacPod, Rockbox doesnt work on this. Convert it to WinPod",_("MacPod")); | 123 | WARN_DIALOG(wxT("Warning this is a MacPod, Rockbox doesnt work on this. Convert it to WinPod"),wxT("MacPod")); |
124 | } | 124 | } |
125 | 125 | ||
126 | 126 | ||
127 | if(mode == BOOTLOADER_ADD) | 127 | if(mode == BOOTLOADER_ADD) |
128 | { | 128 | { |
129 | if (ipod_reopen_rw(&ipod) < 0) { | 129 | if (ipod_reopen_rw(&ipod) < 0) { |
130 | ERR_DIALOG("[ERR] Could not open Ipod in RW mode", _("Bootloader add")); | 130 | ERR_DIALOG(wxT("[ERR] Could not open Ipod in RW mode"), wxT("Bootloader add")); |
131 | return false; | 131 | return false; |
132 | } | 132 | } |
133 | 133 | ||
134 | if (add_bootloader(&ipod, (char*)dest.c_str(), FILETYPE_DOT_IPOD)==0) { | 134 | if (add_bootloader(&ipod, (char*)dest.c_str(), FILETYPE_DOT_IPOD)==0) { |
135 | 135 | ||
136 | } else { | 136 | } else { |
137 | ERR_DIALOG("[ERR] failed to add Bootloader", _("Bootloader add")); | 137 | ERR_DIALOG(wxT("[ERR] failed to add Bootloader"), wxT("Bootloader add")); |
138 | return false; | 138 | return false; |
139 | } | 139 | } |
140 | } | 140 | } |
141 | else if(mode == BOOTLOADER_REM) | 141 | else if(mode == BOOTLOADER_REM) |
142 | { | 142 | { |
143 | if (ipod_reopen_rw(&ipod) < 0) { | 143 | if (ipod_reopen_rw(&ipod) < 0) { |
144 | ERR_DIALOG("[ERR] Could not open Ipod in RW mode", _("Bootloader add")); | 144 | ERR_DIALOG(wxT("[ERR] Could not open Ipod in RW mode"), wxT("Bootloader add")); |
145 | return false; | 145 | return false; |
146 | } | 146 | } |
147 | 147 | ||
148 | if (ipod.ipod_directory[0].entryOffset==0) { | 148 | if (ipod.ipod_directory[0].entryOffset==0) { |
149 | ERR_DIALOG("[ERR] No bootloader detected.\n", _("Bootloader del")); | 149 | ERR_DIALOG(wxT("[ERR] No bootloader detected.\n"), wxT("Bootloader del")); |
150 | return false; | 150 | return false; |
151 | } else { | 151 | } else { |
152 | if (delete_bootloader(&ipod)==0) { | 152 | if (delete_bootloader(&ipod)==0) { |
153 | 153 | ||
154 | } else { | 154 | } else { |
155 | ERR_DIALOG("[ERR] --delete-bootloader failed.\n", _("Bootloader del")); | 155 | ERR_DIALOG(wxT("[ERR] --delete-bootloader failed.\n"), wxT("Bootloader del")); |
156 | return false; | 156 | return false; |
157 | } | 157 | } |
158 | } | 158 | } |
@@ -169,65 +169,65 @@ bool gigabeatf(int mode) | |||
169 | wxString err; | 169 | wxString err; |
170 | wxString src,dest; | 170 | wxString src,dest; |
171 | 171 | ||
172 | path1.Printf("%s" PATH_SEP "GBSYSTEM" PATH_SEP "FWIMG" PATH_SEP "FWIMG01.DAT",gv->curdestdir.c_str()); | 172 | path1.Printf(wxT("%s" PATH_SEP "GBSYSTEM" PATH_SEP "FWIMG" PATH_SEP "FWIMG01.DAT"),gv->curdestdir.c_str()); |
173 | 173 | ||
174 | if(mode == BOOTLOADER_ADD) | 174 | if(mode == BOOTLOADER_ADD) |
175 | { | 175 | { |
176 | //Files downloaden | 176 | //Files downloaden |
177 | src.Printf("%s/gigabeat/%s", gv->bootloader_url.c_str(),gv->curbootloader.c_str()); | 177 | src.Printf(wxT("%s/gigabeat/%s"), gv->bootloader_url.c_str(),gv->curbootloader.c_str()); |
178 | dest.Printf("%s" PATH_SEP "download" PATH_SEP "%s", | 178 | dest.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "%s"), |
179 | gv->stdpaths->GetUserDataDir().c_str(),gv->curbootloader.c_str()); | 179 | gv->stdpaths->GetUserDataDir().c_str(),gv->curbootloader.c_str()); |
180 | if( DownloadURL(src, dest) ) | 180 | if( DownloadURL(src, dest) ) |
181 | { | 181 | { |
182 | wxRemoveFile(dest); | 182 | wxRemoveFile(dest); |
183 | err.Printf(_("Unable to download %s"), src.c_str() ); | 183 | err.Printf(wxT("Unable to download %s"), src.c_str() ); |
184 | ERR_DIALOG(err, _("Install")); | 184 | ERR_DIALOG(err, wxT("Install")); |
185 | return false; | 185 | return false; |
186 | } | 186 | } |
187 | 187 | ||
188 | 188 | ||
189 | if(!wxFileExists(path1)) | 189 | if(!wxFileExists(path1)) |
190 | { | 190 | { |
191 | err.Printf("[ERR] Coud not find %s",path1.c_str()); | 191 | err.Printf(wxT("[ERR] Coud not find %s"),path1.c_str()); |
192 | ERR_DIALOG(err, _("Bootloader add")); | 192 | ERR_DIALOG(err, wxT("Bootloader add")); |
193 | return false; | 193 | return false; |
194 | } | 194 | } |
195 | path2 = path1; | 195 | path2 = path1; |
196 | path2.Append(".ORIG"); | 196 | path2.Append(wxT(".ORIG")); |
197 | if(wxFileExists(path2)) | 197 | if(wxFileExists(path2)) |
198 | { | 198 | { |
199 | err = "Its seems there is already a Bootloader install, if not, delete the *.IMG.ORIG file"; | 199 | err = wxT("Its seems there is already a Bootloader install, if not, delete the *.IMG.ORIG file"); |
200 | ERR_DIALOG(err, _("Bootloader add")); | 200 | ERR_DIALOG(err, wxT("Bootloader add")); |
201 | return false; | 201 | return false; |
202 | } | 202 | } |
203 | 203 | ||
204 | if(!wxRenameFile(path1,path2,false)) | 204 | if(!wxRenameFile(path1,path2,false)) |
205 | { | 205 | { |
206 | err.Printf("[ERR] Coud not rename %s to %s",path1.c_str(),path2.c_str()); | 206 | err.Printf(wxT("[ERR] Coud not rename %s to %s"),path1.c_str(),path2.c_str()); |
207 | ERR_DIALOG(err, _("Bootloader add")); | 207 | ERR_DIALOG(err, wxT("Bootloader add")); |
208 | return false; | 208 | return false; |
209 | } | 209 | } |
210 | if(!wxCopyFile(dest,path1)) | 210 | if(!wxCopyFile(dest,path1)) |
211 | { | 211 | { |
212 | err.Printf("[ERR] Coud not copy %s to %s",dest.c_str(),path2.c_str()); | 212 | err.Printf(wxT("[ERR] Coud not copy %s to %s"),dest.c_str(),path2.c_str()); |
213 | ERR_DIALOG(err, _("Bootloader add")); | 213 | ERR_DIALOG(err, wxT("Bootloader add")); |
214 | return false; | 214 | return false; |
215 | } | 215 | } |
216 | } | 216 | } |
217 | else if(mode == BOOTLOADER_REM) | 217 | else if(mode == BOOTLOADER_REM) |
218 | { | 218 | { |
219 | path2 = path1; | 219 | path2 = path1; |
220 | path2.Append(".ORIG"); | 220 | path2.Append(wxT(".ORIG")); |
221 | if(!wxFileExists(path2)) | 221 | if(!wxFileExists(path2)) |
222 | { | 222 | { |
223 | err.Printf("[ERR] Coud not find %s",path1.c_str()); | 223 | err.Printf(wxT("[ERR] Coud not find %s"),path1.c_str()); |
224 | ERR_DIALOG(err, _("Bootloader del")); | 224 | ERR_DIALOG(err, wxT("Bootloader del")); |
225 | return false; | 225 | return false; |
226 | } | 226 | } |
227 | if(!wxRenameFile(path2,path1,true)) | 227 | if(!wxRenameFile(path2,path1,true)) |
228 | { | 228 | { |
229 | err.Printf("[ERR] Coud not rename %s to %s",path1.c_str(),path2.c_str()); | 229 | err.Printf(wxT("[ERR] Coud not rename %s to %s"),path1.c_str(),path2.c_str()); |
230 | ERR_DIALOG(err, _("Bootloader del")); | 230 | ERR_DIALOG(err, wxT("Bootloader del")); |
231 | return false; | 231 | return false; |
232 | } | 232 | } |
233 | } | 233 | } |
@@ -241,27 +241,27 @@ bool iaudiox5(int mode) | |||
241 | wxString err; | 241 | wxString err; |
242 | wxString src,dest; | 242 | wxString src,dest; |
243 | 243 | ||
244 | path1.Printf("%s" PATH_SEP "FIRMWARE" PATH_SEP "%s",gv->curdestdir.c_str(),gv->curbootloader.c_str()); | 244 | path1.Printf(wxT("%s" PATH_SEP "FIRMWARE" PATH_SEP "%s"),gv->curdestdir.c_str(),gv->curbootloader.c_str()); |
245 | 245 | ||
246 | if(mode == BOOTLOADER_ADD) | 246 | if(mode == BOOTLOADER_ADD) |
247 | { | 247 | { |
248 | //Files downloaden | 248 | //Files downloaden |
249 | src.Printf("%s/iaudio/%s", gv->bootloader_url.c_str(),gv->curbootloader.c_str()); | 249 | src.Printf(wxT("%s/iaudio/%s"), gv->bootloader_url.c_str(),gv->curbootloader.c_str()); |
250 | dest.Printf("%s" PATH_SEP "download" PATH_SEP "%s", | 250 | dest.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "%s"), |
251 | gv->stdpaths->GetUserDataDir().c_str(),gv->curbootloader.c_str()); | 251 | gv->stdpaths->GetUserDataDir().c_str(),gv->curbootloader.c_str()); |
252 | if( DownloadURL(src, dest) ) | 252 | if( DownloadURL(src, dest) ) |
253 | { | 253 | { |
254 | wxRemoveFile(dest); | 254 | wxRemoveFile(dest); |
255 | err.Printf(_("Unable to download %s"), src.c_str() ); | 255 | err.Printf(wxT("Unable to download %s"), src.c_str() ); |
256 | ERR_DIALOG(err, _("Install")); | 256 | ERR_DIALOG(err, wxT("Install")); |
257 | return false; | 257 | return false; |
258 | } | 258 | } |
259 | 259 | ||
260 | // copy file | 260 | // copy file |
261 | if(!wxCopyFile(dest,path1)) | 261 | if(!wxCopyFile(dest,path1)) |
262 | { | 262 | { |
263 | err.Printf("[ERR] Coud not copy %s to %s",dest.c_str(),path2.c_str()); | 263 | err.Printf(wxT("[ERR] Coud not copy %s to %s"),dest.c_str(),path2.c_str()); |
264 | ERR_DIALOG(err, _("Bootloader add")); | 264 | ERR_DIALOG(err, wxT("Bootloader add")); |
265 | return false; | 265 | return false; |
266 | } | 266 | } |
267 | 267 | ||
@@ -276,7 +276,7 @@ bool h10(int mode) | |||
276 | { | 276 | { |
277 | wxString err,src,dest,path1,path2; | 277 | wxString err,src,dest,path1,path2; |
278 | 278 | ||
279 | int pos = gv->curbootloader.Find('/'); | 279 | int pos = gv->curbootloader.Find('/'); |
280 | if(pos == wxNOT_FOUND) pos = 0; | 280 | if(pos == wxNOT_FOUND) pos = 0; |
281 | wxString firmwarename = gv->curbootloader.SubString(pos,gv->curbootloader.Length()); | 281 | wxString firmwarename = gv->curbootloader.SubString(pos,gv->curbootloader.Length()); |
282 | //wxString firmDir = gv->curbootloader.SubString(0,pos); | 282 | //wxString firmDir = gv->curbootloader.SubString(0,pos); |
@@ -284,46 +284,46 @@ bool h10(int mode) | |||
284 | if(mode == BOOTLOADER_ADD) | 284 | if(mode == BOOTLOADER_ADD) |
285 | { | 285 | { |
286 | //Files downloaden | 286 | //Files downloaden |
287 | src.Printf("%s/iriver/%s", gv->bootloader_url.c_str(),gv->curbootloader.c_str()); | 287 | src.Printf(wxT("%s/iriver/%s"), gv->bootloader_url.c_str(),gv->curbootloader.c_str()); |
288 | dest.Printf("%s" PATH_SEP "download" PATH_SEP "%s", | 288 | dest.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "%s"), |
289 | gv->stdpaths->GetUserDataDir().c_str(),firmwarename.c_str()); | 289 | gv->stdpaths->GetUserDataDir().c_str(),firmwarename.c_str()); |
290 | if( DownloadURL(src, dest) ) | 290 | if( DownloadURL(src, dest) ) |
291 | { | 291 | { |
292 | wxRemoveFile(dest); | 292 | wxRemoveFile(dest); |
293 | err.Printf(_("Unable to download %s"), src.c_str() ); | 293 | err.Printf(wxT("Unable to download %s"), src.c_str() ); |
294 | ERR_DIALOG(err, _("Install")); | 294 | ERR_DIALOG(err, wxT("Install")); |
295 | return false; | 295 | return false; |
296 | } | 296 | } |
297 | 297 | ||
298 | path1.Printf("%sSYSTEM" PATH_SEP "%s",gv->curdestdir.c_str(),firmwarename.c_str()); | 298 | path1.Printf(wxT("%sSYSTEM" PATH_SEP "%s"),gv->curdestdir.c_str(),firmwarename.c_str()); |
299 | path2.Printf("%sSYSTEM" PATH_SEP "Original.mi4",gv->curdestdir.c_str()); | 299 | path2.Printf(wxT("%sSYSTEM" PATH_SEP "Original.mi4"),gv->curdestdir.c_str()); |
300 | 300 | ||
301 | if(!wxFileExists(path1)) //Firmware dosent exists on player | 301 | if(!wxFileExists(path1)) //Firmware dosent exists on player |
302 | { | 302 | { |
303 | path1.Printf("%sSYSTEM" PATH_SEP "H10EMP.mi4"); //attempt other firmwarename | 303 | path1.Printf(wxT("%sSYSTEM" PATH_SEP "H10EMP.mi4")); //attempt other firmwarename |
304 | if(!wxFileExists(path1)) //Firmware dosent exists on player | 304 | if(!wxFileExists(path1)) //Firmware dosent exists on player |
305 | { | 305 | { |
306 | err.Printf("[ERR] File %s does not Exist",path1.c_str()); | 306 | err.Printf(wxT("[ERR] File %s does not Exist"),path1.c_str()); |
307 | ERR_DIALOG(err, _("Bootloader add")); | 307 | ERR_DIALOG(err, wxT("Bootloader add")); |
308 | return false; | 308 | return false; |
309 | } | 309 | } |
310 | } | 310 | } |
311 | if(wxFileExists(path2)) //there is already a original firmware | 311 | if(wxFileExists(path2)) //there is already a original firmware |
312 | { | 312 | { |
313 | err.Printf("[ERR2] File %s does Exist",path2.c_str()); | 313 | err.Printf(wxT("[ERR2] File %s does Exist"),path2.c_str()); |
314 | ERR_DIALOG(err, _("Bootloader add")); | 314 | ERR_DIALOG(err, wxT("Bootloader add")); |
315 | return false; | 315 | return false; |
316 | } | 316 | } |
317 | if(!wxRenameFile(path1,path2,false)) //rename Firmware to Original | 317 | if(!wxRenameFile(path1,path2,false)) //rename Firmware to Original |
318 | { | 318 | { |
319 | err.Printf("[ERR] Coud not rename %s to %s",path1.c_str(),path2.c_str()); | 319 | err.Printf(wxT("[ERR] Coud not rename %s to %s"),path1.c_str(),path2.c_str()); |
320 | ERR_DIALOG(err, _("Bootloader add")); | 320 | ERR_DIALOG(err, wxT("Bootloader add")); |
321 | return false; | 321 | return false; |
322 | } | 322 | } |
323 | if(!wxCopyFile(dest,path1)) // copy file | 323 | if(!wxCopyFile(dest,path1)) // copy file |
324 | { | 324 | { |
325 | err.Printf("[ERR] Coud not copy %s to %s",dest.c_str(),path1.c_str()); | 325 | err.Printf(wxT("[ERR] Coud not copy %s to %s"),dest.c_str(),path1.c_str()); |
326 | ERR_DIALOG(err, _("Bootloader add")); | 326 | ERR_DIALOG(err,wxT("Bootloader add")); |
327 | return false; | 327 | return false; |
328 | } | 328 | } |
329 | 329 | ||
@@ -332,30 +332,30 @@ bool h10(int mode) | |||
332 | } | 332 | } |
333 | else if(mode == BOOTLOADER_REM) | 333 | else if(mode == BOOTLOADER_REM) |
334 | { | 334 | { |
335 | path1.Printf("%sSYSTEM" PATH_SEP "%s",gv->curdestdir.c_str(),firmwarename.c_str()); | 335 | path1.Printf(wxT("%sSYSTEM" PATH_SEP "%s"),gv->curdestdir.c_str(),firmwarename.c_str()); |
336 | path2.Printf("%sSYSTEM" PATH_SEP "Original.mi4",gv->curdestdir.c_str()); | 336 | path2.Printf(wxT("%sSYSTEM" PATH_SEP "Original.mi4"),gv->curdestdir.c_str()); |
337 | if(!wxFileExists(path1)) //Firmware dosent exists on player | 337 | if(!wxFileExists(path1)) //Firmware dosent exists on player |
338 | { | 338 | { |
339 | path1.Printf("%s" PATH_SEP "SYSTEM" PATH_SEP "H10EMP.mi4"); //attempt other firmwarename | 339 | path1.Printf(wxT("%s" PATH_SEP "SYSTEM" PATH_SEP "H10EMP.mi4")); //attempt other firmwarename |
340 | if(!wxFileExists(path1)) //Firmware dosent exists on player | 340 | if(!wxFileExists(path1)) //Firmware dosent exists on player |
341 | { | 341 | { |
342 | err.Printf("[ERR] File %s does not Exist",path1.c_str()); | 342 | err.Printf(wxT("[ERR] File %s does not Exist"),path1.c_str()); |
343 | ERR_DIALOG(err, _("Bootloader rem")); | 343 | ERR_DIALOG(err, wxT("Bootloader rem")); |
344 | return false; | 344 | return false; |
345 | } | 345 | } |
346 | } | 346 | } |
347 | 347 | ||
348 | if(!wxFileExists(path2)) //Original Firmware dosent exists on player | 348 | if(!wxFileExists(path2)) //Original Firmware dosent exists on player |
349 | { | 349 | { |
350 | err.Printf("[ERR] File %s does not Exist",path2.c_str()); | 350 | err.Printf(wxT("[ERR] File %s does not Exist"),path2.c_str()); |
351 | ERR_DIALOG(err, _("Bootloader rem")); | 351 | ERR_DIALOG(err, wxT("Bootloader rem")); |
352 | return false; | 352 | return false; |
353 | } | 353 | } |
354 | 354 | ||
355 | if(!wxRenameFile(path2,path1,true)) //rename Firmware to Original | 355 | if(!wxRenameFile(path2,path1,true)) //rename Firmware to Original |
356 | { | 356 | { |
357 | err.Printf("[ERR] Coud not rename %s to %s",path2.c_str(),path1.c_str()); | 357 | err.Printf(wxT("[ERR] Coud not rename %s to %s"),path2.c_str(),path1.c_str()); |
358 | ERR_DIALOG(err, _("Bootloader add")); | 358 | ERR_DIALOG(err, wxT("Bootloader add")); |
359 | return false; | 359 | return false; |
360 | } | 360 | } |
361 | 361 | ||
@@ -372,7 +372,7 @@ bool fwpatcher(int mode) | |||
372 | int series,table_entry; | 372 | int series,table_entry; |
373 | 373 | ||
374 | if (!FileMD5(gv->curfirmware, &md5sum_str)) { | 374 | if (!FileMD5(gv->curfirmware, &md5sum_str)) { |
375 | ERR_DIALOG("Could not open firmware", _("Open Firmware")); | 375 | ERR_DIALOG(wxT("Could not open firmware"), wxT("Open Firmware")); |
376 | return false; | 376 | return false; |
377 | } | 377 | } |
378 | else { | 378 | else { |
@@ -398,44 +398,44 @@ bool fwpatcher(int mode) | |||
398 | } | 398 | } |
399 | } | 399 | } |
400 | if (series == 0) { | 400 | if (series == 0) { |
401 | ERR_DIALOG("Could not detect firmware type", _("Detect Player out of Firmware")); | 401 | ERR_DIALOG(wxT("Could not detect firmware type"), wxT("Detect Player out of Firmware")); |
402 | return false; | 402 | return false; |
403 | } | 403 | } |
404 | else | 404 | else |
405 | { | 405 | { |
406 | //Download bootloader | 406 | //Download bootloader |
407 | src.Printf("%s/iriver/%s", gv->bootloader_url.c_str(),gv->curbootloader.c_str()); | 407 | src.Printf(wxT("%s/iriver/%s"), gv->bootloader_url.c_str(),gv->curbootloader.c_str()); |
408 | dest.Printf("%s" PATH_SEP "download" PATH_SEP "%s", | 408 | dest.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "%s"), |
409 | gv->stdpaths->GetUserDataDir().c_str(),gv->curbootloader.c_str()); | 409 | gv->stdpaths->GetUserDataDir().c_str(),gv->curbootloader.c_str()); |
410 | if( DownloadURL(src, dest) ) | 410 | if( DownloadURL(src, dest) ) |
411 | { | 411 | { |
412 | wxRemoveFile(dest); | 412 | wxRemoveFile(dest); |
413 | err.Printf(_("Unable to download %s"), src.c_str() ); | 413 | err.Printf(wxT("Unable to download %s"), src.c_str() ); |
414 | ERR_DIALOG(err, _("Install")); | 414 | ERR_DIALOG(err, wxT("Install")); |
415 | return false; | 415 | return false; |
416 | } | 416 | } |
417 | 417 | ||
418 | if(!PatchFirmware(gv->curfirmware,dest,series, table_entry)) // Patch firmware | 418 | if(!PatchFirmware(gv->curfirmware,dest,series, table_entry)) // Patch firmware |
419 | { | 419 | { |
420 | ERR_DIALOG("Patching Firmware failed", _("Patching Firmware")); | 420 | ERR_DIALOG(wxT("Patching Firmware failed"), wxT("Patching Firmware")); |
421 | return false; | 421 | return false; |
422 | } | 422 | } |
423 | } | 423 | } |
424 | 424 | ||
425 | // Load patched Firmware to player | 425 | // Load patched Firmware to player |
426 | src.Printf("%s" PATH_SEP "download" PATH_SEP "new.hex", | 426 | src.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "new.hex"), |
427 | gv->stdpaths->GetUserDataDir().c_str()); | 427 | gv->stdpaths->GetUserDataDir().c_str()); |
428 | 428 | ||
429 | if(gv->curplat == "h100") | 429 | if(gv->curplat == "h100") |
430 | dest.Printf("%s" PATH_SEP "ihp_100.hex",gv->curdestdir.c_str()); | 430 | dest.Printf(wxT("%s" PATH_SEP "ihp_100.hex"),gv->curdestdir.c_str()); |
431 | else if(gv->curplat == "h120") | 431 | else if(gv->curplat == "h120") |
432 | dest.Printf("%s" PATH_SEP "ihp_120.hex",gv->curdestdir.c_str()); | 432 | dest.Printf(wxT("%s" PATH_SEP "ihp_120.hex"),gv->curdestdir.c_str()); |
433 | else if(gv->curplat == "h300") | 433 | else if(gv->curplat == "h300") |
434 | dest.Printf("%s" PATH_SEP "H300.hex",gv->curdestdir.c_str()); | 434 | dest.Printf(wxT("%s" PATH_SEP "H300.hex"),gv->curdestdir.c_str()); |
435 | 435 | ||
436 | if(!wxRenameFile(src,dest)) | 436 | if(!wxRenameFile(src,dest)) |
437 | { | 437 | { |
438 | ERR_DIALOG("Copying Firmware to Device failed", _("Copying Firmware")); | 438 | ERR_DIALOG(wxT("Copying Firmware to Device failed"), wxT("Copying Firmware")); |
439 | return false; | 439 | return false; |
440 | } | 440 | } |
441 | else | 441 | else |
diff --git a/rbutil/credits.h b/rbutil/credits.h index 39f8389621..c01bb69dc5 100644 --- a/rbutil/credits.h +++ b/rbutil/credits.h | |||
@@ -22,7 +22,7 @@ | |||
22 | #define CREDITS_H_INCLUDED | 22 | #define CREDITS_H_INCLUDED |
23 | 23 | ||
24 | #define RBUTIL_FULLNAME "The Rockbox Utility" | 24 | #define RBUTIL_FULLNAME "The Rockbox Utility" |
25 | #define RBUTIL_VERSION "Version 0.2.1.1" | 25 | #define RBUTIL_VERSION "Version 0.3.0.0" |
26 | 26 | ||
27 | static const char* rbutil_developers[] = { | 27 | static const char* rbutil_developers[] = { |
28 | "Christi Alice Scarborough", | 28 | "Christi Alice Scarborough", |
diff --git a/rbutil/irivertools.cpp b/rbutil/irivertools.cpp index f04db6417a..a1c83ebd39 100755 --- a/rbutil/irivertools.cpp +++ b/rbutil/irivertools.cpp | |||
@@ -61,13 +61,13 @@ bool mkboot(wxString infile, wxString outfile,wxString bootloader,int origin) | |||
61 | wxFile f; | 61 | wxFile f; |
62 | if(!f.Open(infile)) | 62 | if(!f.Open(infile)) |
63 | { | 63 | { |
64 | err.Printf("Could not open: %s",infile.c_str()); | 64 | err.Printf(wxT("Could not open: %s"),infile.c_str()); |
65 | ERR_DIALOG(err, _("mkboot")); | 65 | ERR_DIALOG(err, wxT("mkboot")); |
66 | return false; | 66 | return false; |
67 | } | 67 | } |
68 | i = f.Read(image,16); | 68 | i = f.Read(image,16); |
69 | if(i < 16) { | 69 | if(i < 16) { |
70 | ERR_DIALOG("reading header failed", _("mkboot")); | 70 | ERR_DIALOG(wxT("reading header failed"), wxT("mkboot")); |
71 | return false; | 71 | return false; |
72 | } | 72 | } |
73 | 73 | ||
@@ -80,7 +80,7 @@ bool mkboot(wxString infile, wxString outfile,wxString bootloader,int origin) | |||
80 | len = binary_length+0x200-16; | 80 | len = binary_length+0x200-16; |
81 | i = f.Read(image+16, len); | 81 | i = f.Read(image+16, len); |
82 | if(i < len) { | 82 | if(i < len) { |
83 | ERR_DIALOG("reading firmware failed", _("mkboot")); | 83 | ERR_DIALOG(wxT("reading firmware failed"),wxT("mkboot")); |
84 | return false; | 84 | return false; |
85 | } | 85 | } |
86 | 86 | ||
@@ -88,8 +88,8 @@ bool mkboot(wxString infile, wxString outfile,wxString bootloader,int origin) | |||
88 | /* Now, read the boot loader into the image */ | 88 | /* Now, read the boot loader into the image */ |
89 | if(!f.Open(bootloader)) | 89 | if(!f.Open(bootloader)) |
90 | { | 90 | { |
91 | err.Printf("Could not open: %s",bootloader.c_str()); | 91 | err.Printf(wxT("Could not open: %s"),bootloader.c_str()); |
92 | ERR_DIALOG(err, _("mkboot")); | 92 | ERR_DIALOG(err, wxT("mkboot")); |
93 | return false; | 93 | return false; |
94 | } | 94 | } |
95 | 95 | ||
@@ -97,7 +97,7 @@ bool mkboot(wxString infile, wxString outfile,wxString bootloader,int origin) | |||
97 | 97 | ||
98 | i = f.Read(image+0x220 + origin, bllen); | 98 | i = f.Read(image+0x220 + origin, bllen); |
99 | if(i < bllen) { | 99 | if(i < bllen) { |
100 | ERR_DIALOG("reading bootloader failed", _("mkboot")); | 100 | ERR_DIALOG(wxT("reading bootloader failed"), wxT("mkboot")); |
101 | return false; | 101 | return false; |
102 | } | 102 | } |
103 | 103 | ||
@@ -105,8 +105,8 @@ bool mkboot(wxString infile, wxString outfile,wxString bootloader,int origin) | |||
105 | 105 | ||
106 | if(!f.Open(outfile,wxFile::write)) | 106 | if(!f.Open(outfile,wxFile::write)) |
107 | { | 107 | { |
108 | err.Printf("Could not open: %s",outfile.c_str()); | 108 | err.Printf(wxT("Could not open: %s"),outfile.c_str()); |
109 | ERR_DIALOG(err, _("mkboot")); | 109 | ERR_DIALOG(err, wxT("mkboot")); |
110 | return false; | 110 | return false; |
111 | } | 111 | } |
112 | 112 | ||
@@ -158,7 +158,7 @@ bool mkboot(wxString infile, wxString outfile,wxString bootloader,int origin) | |||
158 | 158 | ||
159 | i = f.Write(image,total_length); | 159 | i = f.Write(image,total_length); |
160 | if(i < total_length) { | 160 | if(i < total_length) { |
161 | ERR_DIALOG("writing bootloader failed", _("mkboot")); | 161 | ERR_DIALOG(wxT("writing bootloader failed"), wxT("mkboot")); |
162 | return false; | 162 | return false; |
163 | } | 163 | } |
164 | 164 | ||
@@ -230,21 +230,21 @@ int iriver_decode(wxString infile_name, wxString outfile_name, unsigned int modi | |||
230 | 230 | ||
231 | if(!infile.Open(infile_name)) | 231 | if(!infile.Open(infile_name)) |
232 | { | 232 | { |
233 | err.Printf("Could not open: %s",infile_name.c_str()); | 233 | err.Printf(wxT("Could not open: %s"),infile_name.c_str()); |
234 | ERR_DIALOG(err, _("iriver_decode")); | 234 | ERR_DIALOG(err, wxT("iriver_decode")); |
235 | return -1; | 235 | return -1; |
236 | } | 236 | } |
237 | if(!outfile.Open(outfile_name,wxFile::write)) | 237 | if(!outfile.Open(outfile_name,wxFile::write)) |
238 | { | 238 | { |
239 | err.Printf("Could not open: %s",outfile_name.c_str()); | 239 | err.Printf(wxT("Could not open: %s"),outfile_name.c_str()); |
240 | ERR_DIALOG(err, _("iriver_decode")); | 240 | ERR_DIALOG(err, wxT("iriver_decode")); |
241 | return -1; | 241 | return -1; |
242 | } | 242 | } |
243 | lenread = infile.Read( headerdata, 512); | 243 | lenread = infile.Read( headerdata, 512); |
244 | if( lenread != 512 ) | 244 | if( lenread != 512 ) |
245 | { | 245 | { |
246 | ERR_DIALOG(_("This doesn't look like a valid encrypted iHP " | 246 | ERR_DIALOG(wxT("This doesn't look like a valid encrypted iHP " |
247 | "firmware - reason: header length\n"),_("iriver_decode")); | 247 | "firmware - reason: header length\n"),wxT("iriver_decode")); |
248 | 248 | ||
249 | infile.Close(); | 249 | infile.Close(); |
250 | outfile.Close(); | 250 | outfile.Close(); |
@@ -254,8 +254,8 @@ int iriver_decode(wxString infile_name, wxString outfile_name, unsigned int modi | |||
254 | i = testheader( headerdata ); | 254 | i = testheader( headerdata ); |
255 | if( i == -1 ) | 255 | if( i == -1 ) |
256 | { | 256 | { |
257 | ERR_DIALOG( _( "This firmware is for an unknown model, or is not" | 257 | ERR_DIALOG( wxT( "This firmware is for an unknown model, or is not" |
258 | " a valid encrypted iHP firmware\n" ),_("iriver_decode")); | 258 | " a valid encrypted iHP firmware\n" ),wxT("iriver_decode")); |
259 | infile.Close(); | 259 | infile.Close(); |
260 | outfile.Close(); | 260 | outfile.Close(); |
261 | return -1; | 261 | return -1; |
@@ -277,8 +277,8 @@ int iriver_decode(wxString infile_name, wxString outfile_name, unsigned int modi | |||
277 | dwLength2>>9 != dwLength3 || | 277 | dwLength2>>9 != dwLength3 || |
278 | dwLength2+dwLength3+512 != dwLength1 ) | 278 | dwLength2+dwLength3+512 != dwLength1 ) |
279 | { | 279 | { |
280 | ERR_DIALOG( _( "This doesn't look like a valid encrypted " | 280 | ERR_DIALOG( wxT( "This doesn't look like a valid encrypted " |
281 | "iHP firmware - reason: file 'length' data\n" ),_("iriver_decode")); | 281 | "iHP firmware - reason: file 'length' data\n" ),wxT("iriver_decode")); |
282 | infile.Close(); | 282 | infile.Close(); |
283 | outfile.Close(); | 283 | outfile.Close(); |
284 | return -1; | 284 | return -1; |
@@ -339,8 +339,8 @@ int iriver_decode(wxString infile_name, wxString outfile_name, unsigned int modi | |||
339 | 339 | ||
340 | if( fp != dwLength2 ) | 340 | if( fp != dwLength2 ) |
341 | { | 341 | { |
342 | ERR_DIALOG( _( "This doesn't look like a valid encrypted " | 342 | ERR_DIALOG( wxT( "This doesn't look like a valid encrypted " |
343 | "iHP firmware - reason: 'length2' mismatch\n" ),_("iriver_decode")); | 343 | "iHP firmware - reason: 'length2' mismatch\n" ),wxT("iriver_decode")); |
344 | infile.Close(); | 344 | infile.Close(); |
345 | outfile.Close(); | 345 | outfile.Close(); |
346 | return -1; | 346 | return -1; |
@@ -356,8 +356,8 @@ int iriver_decode(wxString infile_name, wxString outfile_name, unsigned int modi | |||
356 | outfile.Write( blockdata, lenread ); | 356 | outfile.Write( blockdata, lenread ); |
357 | if( memcmp( ppChecksums, blockdata, lenread ) != 0 ) | 357 | if( memcmp( ppChecksums, blockdata, lenread ) != 0 ) |
358 | { | 358 | { |
359 | ERR_DIALOG( _( "This doesn't look like a valid encrypted " | 359 | ERR_DIALOG( wxT( "This doesn't look like a valid encrypted " |
360 | "iHP firmware - reason: Checksum mismatch!" ),_("iriver_decode")); | 360 | "iHP firmware - reason: Checksum mismatch!" ),wxT("iriver_decode")); |
361 | infile.Close(); | 361 | infile.Close(); |
362 | outfile.Close(); | 362 | outfile.Close(); |
363 | return -1; | 363 | return -1; |
@@ -367,8 +367,8 @@ int iriver_decode(wxString infile_name, wxString outfile_name, unsigned int modi | |||
367 | 367 | ||
368 | if( fp != dwLength3 ) | 368 | if( fp != dwLength3 ) |
369 | { | 369 | { |
370 | ERR_DIALOG(_( "This doesn't look like a valid encrypted " | 370 | ERR_DIALOG(wxT( "This doesn't look like a valid encrypted " |
371 | "iHP firmware - reason: 'length3' mismatch\n" ),_("iriver_decode")); | 371 | "iHP firmware - reason: 'length3' mismatch\n" ),wxT("iriver_decode")); |
372 | infile.Close(); | 372 | infile.Close(); |
373 | outfile.Close(); | 373 | outfile.Close(); |
374 | return -1; | 374 | return -1; |
@@ -419,22 +419,22 @@ int iriver_encode(wxString infile_name, wxString outfile_name, unsigned int modi | |||
419 | 419 | ||
420 | if(!infile.Open(infile_name,wxFile::read)) | 420 | if(!infile.Open(infile_name,wxFile::read)) |
421 | { | 421 | { |
422 | err.Printf("Could not open: %s",infile_name.c_str()); | 422 | err.Printf(wxT("Could not open: %s"),infile_name.c_str()); |
423 | ERR_DIALOG(err, _("iriver_decode")); | 423 | ERR_DIALOG(err, wxT("iriver_decode")); |
424 | return -1; | 424 | return -1; |
425 | } | 425 | } |
426 | if(!outfile.Open(outfile_name,wxFile::write)) | 426 | if(!outfile.Open(outfile_name,wxFile::write)) |
427 | { | 427 | { |
428 | err.Printf("Could not open: %s",outfile_name.c_str()); | 428 | err.Printf(wxT("Could not open: %s"),outfile_name.c_str()); |
429 | ERR_DIALOG(err, _("iriver_decode")); | 429 | ERR_DIALOG(err, wxT("iriver_decode")); |
430 | return -1; | 430 | return -1; |
431 | } | 431 | } |
432 | 432 | ||
433 | lenread = infile.Read( headerdata, 512 ); | 433 | lenread = infile.Read( headerdata, 512 ); |
434 | if( lenread != 512 ) | 434 | if( lenread != 512 ) |
435 | { | 435 | { |
436 | ERR_DIALOG("This doesn't look like a valid decoded " | 436 | ERR_DIALOG(wxT("This doesn't look like a valid decoded " |
437 | "iHP firmware - reason: header length\n", _("iriver_decode")); | 437 | "iHP firmware - reason: header length\n"), wxT("iriver_decode")); |
438 | infile.Close(); | 438 | infile.Close(); |
439 | outfile.Close(); | 439 | outfile.Close(); |
440 | }; | 440 | }; |
@@ -447,8 +447,8 @@ int iriver_encode(wxString infile_name, wxString outfile_name, unsigned int modi | |||
447 | i = testheader( headerdata ); | 447 | i = testheader( headerdata ); |
448 | if( i == -1 ) | 448 | if( i == -1 ) |
449 | { | 449 | { |
450 | ERR_DIALOG("This firmware is for an unknown model, or is not" | 450 | ERR_DIALOG(wxT("This firmware is for an unknown model, or is not" |
451 | " a valid decoded iHP firmware\n", _("iriver_decode")); | 451 | " a valid decoded iHP firmware\n"), wxT("iriver_decode")); |
452 | infile.Close(); | 452 | infile.Close(); |
453 | outfile.Close(); | 453 | outfile.Close(); |
454 | }; | 454 | }; |
@@ -468,8 +468,8 @@ int iriver_encode(wxString infile_name, wxString outfile_name, unsigned int modi | |||
468 | dwLength3 > dwLength1 || | 468 | dwLength3 > dwLength1 || |
469 | dwLength2+dwLength3+512 != dwLength1 ) | 469 | dwLength2+dwLength3+512 != dwLength1 ) |
470 | { | 470 | { |
471 | ERR_DIALOG("This doesn't look like a valid decoded iHP" | 471 | ERR_DIALOG(wxT("This doesn't look like a valid decoded iHP" |
472 | " firmware - reason: file 'length' data\n", _("iriver_decode")); | 472 | " firmware - reason: file 'length' data\n"), wxT("iriver_decode")); |
473 | infile.Close(); | 473 | infile.Close(); |
474 | outfile.Close(); | 474 | outfile.Close(); |
475 | }; | 475 | }; |
@@ -506,8 +506,8 @@ int iriver_encode(wxString infile_name, wxString outfile_name, unsigned int modi | |||
506 | 506 | ||
507 | if( fp != dwLength2 ) | 507 | if( fp != dwLength2 ) |
508 | { | 508 | { |
509 | ERR_DIALOG("This doesn't look like a valid decoded " | 509 | ERR_DIALOG(wxT("This doesn't look like a valid decoded " |
510 | "iHP firmware - reason: 'length1' mismatch\n", _("iriver_decode")); | 510 | "iHP firmware - reason: 'length1' mismatch\n"), wxT("iriver_decode")); |
511 | infile.Close(); | 511 | infile.Close(); |
512 | outfile.Close(); | 512 | outfile.Close(); |
513 | }; | 513 | }; |
@@ -526,8 +526,8 @@ int iriver_encode(wxString infile_name, wxString outfile_name, unsigned int modi | |||
526 | 526 | ||
527 | if( fp != dwLength3 ) | 527 | if( fp != dwLength3 ) |
528 | { | 528 | { |
529 | ERR_DIALOG("This doesn't look like a valid decoded " | 529 | ERR_DIALOG(wxT("This doesn't look like a valid decoded " |
530 | "iHP firmware - reason: 'length2' mismatch\n", _("iriver_decode")); | 530 | "iHP firmware - reason: 'length2' mismatch\n"), wxT("iriver_decode")); |
531 | infile.Close(); | 531 | infile.Close(); |
532 | outfile.Close(); | 532 | outfile.Close(); |
533 | }; | 533 | }; |
@@ -565,30 +565,30 @@ bool PatchFirmware(wxString firmware,wxString bootloader,int series, int table_e | |||
565 | break; | 565 | break; |
566 | } | 566 | } |
567 | 567 | ||
568 | name1.Printf("%s" PATH_SEP "download" PATH_SEP "firmware.bin", | 568 | name1.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "firmware.bin"), |
569 | gv->stdpaths->GetUserDataDir().c_str()); | 569 | gv->stdpaths->GetUserDataDir().c_str()); |
570 | /* descrambled file */ | 570 | /* descrambled file */ |
571 | name2.Printf("%s" PATH_SEP "download" PATH_SEP "new.bin", | 571 | name2.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "new.bin"), |
572 | gv->stdpaths->GetUserDataDir().c_str()); | 572 | gv->stdpaths->GetUserDataDir().c_str()); |
573 | /* patched file */ | 573 | /* patched file */ |
574 | name3.Printf("%s" PATH_SEP "download" PATH_SEP "new.hex", | 574 | name3.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "new.hex"), |
575 | gv->stdpaths->GetUserDataDir().c_str()); | 575 | gv->stdpaths->GetUserDataDir().c_str()); |
576 | if (iriver_decode(firmware, name1, FALSE, STRIP_NONE) == -1) { | 576 | if (iriver_decode(firmware, name1, FALSE, STRIP_NONE) == -1) { |
577 | ERR_DIALOG("Error in descramble", _("Descramble Firmware")); | 577 | ERR_DIALOG(wxT("Error in descramble"), wxT("Descramble Firmware")); |
578 | wxRemoveFile(name1); | 578 | wxRemoveFile(name1); |
579 | wxRemoveFile(name2); | 579 | wxRemoveFile(name2); |
580 | wxRemoveFile(name3); | 580 | wxRemoveFile(name3); |
581 | return false; | 581 | return false; |
582 | } | 582 | } |
583 | if (!mkboot(name1, name2, bootloader, origin)) { | 583 | if (!mkboot(name1, name2, bootloader, origin)) { |
584 | ERR_DIALOG("Error in patching",_("Patching Firmware")); | 584 | ERR_DIALOG(wxT("Error in patching"),wxT("Patching Firmware")); |
585 | wxRemoveFile(name1); | 585 | wxRemoveFile(name1); |
586 | wxRemoveFile(name2); | 586 | wxRemoveFile(name2); |
587 | wxRemoveFile(name3); | 587 | wxRemoveFile(name3); |
588 | return false; | 588 | return false; |
589 | } | 589 | } |
590 | if (iriver_encode(name2, name3, FALSE) == -1) { | 590 | if (iriver_encode(name2, name3, FALSE) == -1) { |
591 | ERR_DIALOG("Error in scramble",_("Scramble Firmware")); | 591 | ERR_DIALOG(wxT("Error in scramble"),wxT("Scramble Firmware")); |
592 | wxRemoveFile(name1); | 592 | wxRemoveFile(name1); |
593 | wxRemoveFile(name2); | 593 | wxRemoveFile(name2); |
594 | wxRemoveFile(name3); | 594 | wxRemoveFile(name3); |
@@ -596,7 +596,7 @@ bool PatchFirmware(wxString firmware,wxString bootloader,int series, int table_e | |||
596 | } | 596 | } |
597 | /* now md5sum it */ | 597 | /* now md5sum it */ |
598 | if (!FileMD5(name3, &md5sum_str)) { | 598 | if (!FileMD5(name3, &md5sum_str)) { |
599 | ERR_DIALOG("Error in checksumming",_("Checksumming Firmware")); | 599 | ERR_DIALOG(wxT("Error in checksumming"),wxT("Checksumming Firmware")); |
600 | wxRemoveFile(name1); | 600 | wxRemoveFile(name1); |
601 | wxRemoveFile(name2); | 601 | wxRemoveFile(name2); |
602 | wxRemoveFile(name3); | 602 | wxRemoveFile(name3); |
diff --git a/rbutil/rbutil-rc.rc b/rbutil/rbutil-rc.rc index 756b65fb49..f01d5a61d1 100644 --- a/rbutil/rbutil-rc.rc +++ b/rbutil/rbutil-rc.rc | |||
@@ -1,8 +1,8 @@ | |||
1 | #define RBUTIL 1 | 1 | #define RBUTIL 1 |
2 | #include <wx/msw/wx.rc> | 2 | #include <wx/msw/wx.rc> |
3 | RBUTIL VERSIONINFO | 3 | RBUTIL VERSIONINFO |
4 | FILEVERSION 0,2,1,1 | 4 | FILEVERSION 0,3,0,0 |
5 | PRODUCTVERSION 0,2,1,1 | 5 | PRODUCTVERSION 0,3,0,0 |
6 | FILEOS 0x00000004 | 6 | FILEOS 0x00000004 |
7 | FILETYPE 0x00000001 | 7 | FILETYPE 0x00000001 |
8 | BEGIN | 8 | BEGIN |
@@ -10,12 +10,12 @@ BEGIN | |||
10 | BEGIN | 10 | BEGIN |
11 | BLOCK "FFFF0000" | 11 | BLOCK "FFFF0000" |
12 | BEGIN | 12 | BEGIN |
13 | VALUE "FileVersion", "0.2.1.1\0" | 13 | VALUE "FileVersion", "0.3.0.0\0" |
14 | VALUE "ProductVersion", "0.2.1.1\0" | 14 | VALUE "ProductVersion", "0.3.0.0\0" |
15 | VALUE "CompanyName", "Rockbox Team\0" | 15 | VALUE "CompanyName", "Rockbox Team\0" |
16 | VALUE "FileDescription", "Rockbox Utility\0" | 16 | VALUE "FileDescription", "Rockbox Utility\0" |
17 | VALUE "InternalName", "rbutil\0" | 17 | VALUE "InternalName", "rbutil\0" |
18 | VALUE "LegalCopyright", "(C) 2005,6 Rockbox Team\0" | 18 | VALUE "LegalCopyright", "(C) 2005 - 2007 Rockbox Team\0" |
19 | VALUE "ProductName", "Rockbox Utility\0" | 19 | VALUE "ProductName", "Rockbox Utility\0" |
20 | END | 20 | END |
21 | END | 21 | END |
diff --git a/rbutil/rbutil.cbp b/rbutil/rbutil.cbp index 2ee3f2316d..e577abc3b1 100644 --- a/rbutil/rbutil.cbp +++ b/rbutil/rbutil.cbp | |||
@@ -82,6 +82,10 @@ | |||
82 | <Add library="oleaut32" /> | 82 | <Add library="oleaut32" /> |
83 | <Add library="uuid" /> | 83 | <Add library="uuid" /> |
84 | <Add library="libwxzlib" /> | 84 | <Add library="libwxzlib" /> |
85 | <Add library="libwxregex" /> | ||
86 | <Add library="libwxpng" /> | ||
87 | <Add library="libwxjpeg" /> | ||
88 | <Add library="libwxtiff" /> | ||
85 | <Add directory="$(#WX.lib)\gcc_lib$(WX_CFG)" /> | 89 | <Add directory="$(#WX.lib)\gcc_lib$(WX_CFG)" /> |
86 | <Add directory="$(#WX.lib)" /> | 90 | <Add directory="$(#WX.lib)" /> |
87 | <Add directory=".\" /> | 91 | <Add directory=".\" /> |
@@ -127,8 +131,10 @@ | |||
127 | <Unit filename="rbutilFrm.cpp" /> | 131 | <Unit filename="rbutilFrm.cpp" /> |
128 | <Unit filename="rbutilFrm.h" /> | 132 | <Unit filename="rbutilFrm.h" /> |
129 | <Unit filename="rbutilFrm_XPM.xpm" /> | 133 | <Unit filename="rbutilFrm_XPM.xpm" /> |
134 | <Unit filename="themes_3d.xpm" /> | ||
130 | <Unit filename="tools2_3d.xpm" /> | 135 | <Unit filename="tools2_3d.xpm" /> |
131 | <Unit filename="uninstall_3d.xpm" /> | 136 | <Unit filename="uninstall_3d.xpm" /> |
137 | <Unit filename="untools2_3d.xpm" /> | ||
132 | <Unit filename="wizard.xpm" /> | 138 | <Unit filename="wizard.xpm" /> |
133 | <Unit filename="wizard_pages.cpp" /> | 139 | <Unit filename="wizard_pages.cpp" /> |
134 | <Unit filename="wizard_pages.h" /> | 140 | <Unit filename="wizard_pages.h" /> |
diff --git a/rbutil/rbutil.cpp b/rbutil/rbutil.cpp index 9ffe9a6c58..78203ad67f 100644 --- a/rbutil/rbutil.cpp +++ b/rbutil/rbutil.cpp | |||
@@ -58,15 +58,70 @@ const wxChar* _rootmatch[] = { | |||
58 | const wxArrayString* rootmatch = new wxArrayString( | 58 | const wxArrayString* rootmatch = new wxArrayString( |
59 | (size_t) (sizeof(_rootmatch) / sizeof(wxChar*)), _rootmatch); | 59 | (size_t) (sizeof(_rootmatch) / sizeof(wxChar*)), _rootmatch); |
60 | 60 | ||
61 | bool InstallTheme(wxString Themesrc) | ||
62 | { | ||
63 | wxString dest,src,err; | ||
64 | |||
65 | int pos = Themesrc.Find('/',true); | ||
66 | wxString themename = Themesrc.SubString(pos+1,Themesrc.Length()); | ||
67 | |||
68 | src.Printf(wxT("%s/%s"), gv->themes_url.c_str(),Themesrc.c_str()); | ||
69 | dest.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "%s"), | ||
70 | gv->stdpaths->GetUserDataDir().c_str(),themename.c_str()); | ||
71 | if( DownloadURL(src, dest) ) | ||
72 | { | ||
73 | wxRemoveFile(dest); | ||
74 | err.Printf(wxT("Unable to download %s"), src.c_str() ); | ||
75 | ERR_DIALOG(err, wxT("Install Theme")); | ||
76 | return false; | ||
77 | } | ||
78 | |||
79 | if(!checkZip(dest)) | ||
80 | { | ||
81 | err.Printf(wxT("The Zip %s does not contain the correct dir structure"), dest.c_str()); | ||
82 | ERR_DIALOG(err, wxT("Install Theme")); | ||
83 | return false; | ||
84 | } | ||
85 | |||
86 | if(UnzipFile(dest,gv->curdestdir, true)) | ||
87 | { | ||
88 | err.Printf(wxT("Unable to unzip %s to %s"), dest.c_str(), gv->curdestdir.c_str()); | ||
89 | ERR_DIALOG(err, wxT("Install Theme")); | ||
90 | return false; | ||
91 | } | ||
92 | |||
93 | return true; | ||
94 | } | ||
95 | |||
96 | bool checkZip(wxString zipname) | ||
97 | { | ||
98 | wxZipEntryPtr entry; | ||
99 | |||
100 | wxFFileInputStream* in_file = new wxFFileInputStream(zipname); | ||
101 | wxZipInputStream* in_zip = new wxZipInputStream(*in_file); | ||
102 | |||
103 | entry.reset(in_zip->GetNextEntry()); | ||
104 | |||
105 | wxString name = entry->GetName(); | ||
106 | if(entry->IsDir()) | ||
107 | { | ||
108 | if(name.Contains(wxT(".rockbox\\"))) | ||
109 | { | ||
110 | return true; | ||
111 | } | ||
112 | } | ||
113 | return false; | ||
114 | } | ||
115 | |||
61 | int DownloadURL(wxString src, wxString dest) | 116 | int DownloadURL(wxString src, wxString dest) |
62 | { | 117 | { |
63 | int input, errnum = 0, success = false; | 118 | int input, errnum = 0, success = false; |
64 | wxString buf, errstr; | 119 | wxString buf, errstr; |
65 | wxLogVerbose(_("=== begin DownloadURL(%s,%s)"), src.c_str(), | 120 | wxLogVerbose(wxT("=== begin DownloadURL(%s,%s)"), src.c_str(), |
66 | dest.c_str()); | 121 | dest.c_str()); |
67 | 122 | ||
68 | buf.Printf(_("Fetching %s"), src.c_str()); | 123 | buf.Printf(wxT("Fetching %s"), src.c_str()); |
69 | wxProgressDialog* progress = new wxProgressDialog(_("Downloading"), | 124 | wxProgressDialog* progress = new wxProgressDialog(wxT("Downloading"), |
70 | buf, 100, NULL, wxPD_APP_MODAL | | 125 | buf, 100, NULL, wxPD_APP_MODAL | |
71 | wxPD_AUTO_HIDE | wxPD_SMOOTH | wxPD_ELAPSED_TIME | | 126 | wxPD_AUTO_HIDE | wxPD_SMOOTH | wxPD_ELAPSED_TIME | |
72 | wxPD_REMAINING_TIME | wxPD_CAN_ABORT); | 127 | wxPD_REMAINING_TIME | wxPD_CAN_ABORT); |
@@ -105,7 +160,7 @@ int DownloadURL(wxString src, wxString dest) | |||
105 | current += os->LastWrite(); | 160 | current += os->LastWrite(); |
106 | if (!progress->Update(current * 100 / filesize)) | 161 | if (!progress->Update(current * 100 / filesize)) |
107 | { | 162 | { |
108 | errstr = _("Download aborted by user"); | 163 | errstr = wxT("Download aborted by user"); |
109 | errnum = 1000; | 164 | errnum = 1000; |
110 | break; | 165 | break; |
111 | } | 166 | } |
@@ -113,7 +168,7 @@ int DownloadURL(wxString src, wxString dest) | |||
113 | } else | 168 | } else |
114 | { | 169 | { |
115 | errnum = os->GetLastError(); | 170 | errnum = os->GetLastError(); |
116 | errstr.Printf(_("Can't write to output stream (%s)"), | 171 | errstr.Printf(wxT("Can't write to output stream (%s)"), |
117 | stream_err_str(errnum).c_str() ); | 172 | stream_err_str(errnum).c_str() ); |
118 | 173 | ||
119 | break; | 174 | break; |
@@ -127,7 +182,7 @@ int DownloadURL(wxString src, wxString dest) | |||
127 | errnum = 0; | 182 | errnum = 0; |
128 | break; | 183 | break; |
129 | } | 184 | } |
130 | errstr.Printf(_("Can't read from input stream (%s)"), | 185 | errstr.Printf(wxT("Can't read from input stream (%s)"), |
131 | stream_err_str(errnum).c_str() ); | 186 | stream_err_str(errnum).c_str() ); |
132 | } | 187 | } |
133 | } | 188 | } |
@@ -136,7 +191,7 @@ int DownloadURL(wxString src, wxString dest) | |||
136 | if (! errnum) | 191 | if (! errnum) |
137 | { | 192 | { |
138 | errnum = os->GetLastError(); | 193 | errnum = os->GetLastError(); |
139 | errstr.Printf(_("Can't close output file (%s)"), | 194 | errstr.Printf(wxT("Can't close output file (%s)"), |
140 | stream_err_str(errnum).c_str() ); | 195 | stream_err_str(errnum).c_str() ); |
141 | 196 | ||
142 | input = false; | 197 | input = false; |
@@ -147,26 +202,26 @@ int DownloadURL(wxString src, wxString dest) | |||
147 | } else | 202 | } else |
148 | { | 203 | { |
149 | errnum = is->GetLastError(); | 204 | errnum = is->GetLastError(); |
150 | errstr.Printf(_("Can't get input stream size (%s)"), | 205 | errstr.Printf(wxT("Can't get input stream size (%s)"), |
151 | stream_err_str(errnum).c_str() ); | 206 | stream_err_str(errnum).c_str() ); |
152 | 207 | ||
153 | } | 208 | } |
154 | } else | 209 | } else |
155 | { | 210 | { |
156 | errnum = in_http->GetError(); | 211 | errnum = in_http->GetError(); |
157 | errstr.Printf(_("Can't get input stream (%d)"), errnum); | 212 | errstr.Printf(wxT("Can't get input stream (%d)"), errnum); |
158 | } | 213 | } |
159 | delete is; | 214 | delete is; |
160 | } else | 215 | } else |
161 | { | 216 | { |
162 | errnum = os->GetLastError(); | 217 | errnum = os->GetLastError(); |
163 | errstr.Printf(_("Can't create output stream (%s)"), | 218 | errstr.Printf(wxT("Can't create output stream (%s)"), |
164 | stream_err_str(errnum).c_str() ); | 219 | stream_err_str(errnum).c_str() ); |
165 | } | 220 | } |
166 | delete os; | 221 | delete os; |
167 | } else | 222 | } else |
168 | { | 223 | { |
169 | errstr.Printf(_("Can't open URL %s (%d)"), src.c_str(), | 224 | errstr.Printf(wxT("Can't open URL %s (%d)"), src.c_str(), |
170 | in_http->GetError() ); | 225 | in_http->GetError() ); |
171 | errnum = 100; | 226 | errnum = 100; |
172 | } | 227 | } |
@@ -179,19 +234,19 @@ int DownloadURL(wxString src, wxString dest) | |||
179 | if (errnum == 0) errnum = 999; | 234 | if (errnum == 0) errnum = 999; |
180 | if (input) | 235 | if (input) |
181 | { | 236 | { |
182 | buf.Printf(_("%s reading\n%s"), | 237 | buf.Printf(wxT("%s reading\n%s"), |
183 | errstr.c_str(), src.c_str()); | 238 | errstr.c_str(), src.c_str()); |
184 | ERR_DIALOG(buf, _("Download URL")); | 239 | ERR_DIALOG(buf, wxT("Download URL")); |
185 | } else | 240 | } else |
186 | { | 241 | { |
187 | buf.Printf(_("%s writing to download\n/%s"), | 242 | buf.Printf(wxT("%s writing to download\n/%s"), |
188 | errstr.c_str(), dest.c_str()); | 243 | errstr.c_str(), dest.c_str()); |
189 | ERR_DIALOG(buf, _("Download URL")); | 244 | ERR_DIALOG(buf, wxT("Download URL")); |
190 | } | 245 | } |
191 | 246 | ||
192 | } | 247 | } |
193 | 248 | ||
194 | wxLogVerbose(_("=== end DownloadURL")); | 249 | wxLogVerbose(wxT("=== end DownloadURL")); |
195 | return errnum; | 250 | return errnum; |
196 | } | 251 | } |
197 | 252 | ||
@@ -202,7 +257,7 @@ int UnzipFile(wxString src, wxString destdir, bool isInstall) | |||
202 | int errnum = 0, curfile = 0, totalfiles = 0; | 257 | int errnum = 0, curfile = 0, totalfiles = 0; |
203 | InstallLog* log = NULL; | 258 | InstallLog* log = NULL; |
204 | 259 | ||
205 | wxLogVerbose(_("===begin UnzipFile(%s,%s,%i)"), | 260 | wxLogVerbose(wxT("===begin UnzipFile(%s,%s,%i)"), |
206 | src.c_str(), destdir.c_str(), isInstall); | 261 | src.c_str(), destdir.c_str(), isInstall); |
207 | 262 | ||
208 | wxFFileInputStream* in_file = new wxFFileInputStream(src); | 263 | wxFFileInputStream* in_file = new wxFFileInputStream(src); |
@@ -212,9 +267,9 @@ int UnzipFile(wxString src, wxString destdir, bool isInstall) | |||
212 | if (! in_zip->IsOk() ) | 267 | if (! in_zip->IsOk() ) |
213 | { | 268 | { |
214 | errnum = in_zip->GetLastError(); | 269 | errnum = in_zip->GetLastError(); |
215 | buf.Printf(_("Can't open ZIP stream %s for reading (%s)"), | 270 | buf.Printf(wxT("Can't open ZIP stream %s for reading (%s)"), |
216 | src.c_str(), stream_err_str(errnum).c_str() ); | 271 | src.c_str(), stream_err_str(errnum).c_str() ); |
217 | ERR_DIALOG(buf, _("Unzip File") ); | 272 | ERR_DIALOG(buf, wxT("Unzip File") ); |
218 | delete in_zip; | 273 | delete in_zip; |
219 | delete in_file; | 274 | delete in_file; |
220 | return true; | 275 | return true; |
@@ -224,9 +279,9 @@ int UnzipFile(wxString src, wxString destdir, bool isInstall) | |||
224 | if (! in_zip->IsOk() ) | 279 | if (! in_zip->IsOk() ) |
225 | { | 280 | { |
226 | errnum = in_zip->GetLastError(); | 281 | errnum = in_zip->GetLastError(); |
227 | buf.Printf(_("Error Getting total ZIP entries for %s (%s)"), | 282 | buf.Printf(wxT("Error Getting total ZIP entries for %s (%s)"), |
228 | src.c_str(), stream_err_str(errnum).c_str() ); | 283 | src.c_str(), stream_err_str(errnum).c_str() ); |
229 | ERR_DIALOG(buf, _("Unzip File") ); | 284 | ERR_DIALOG(buf, wxT("Unzip File") ); |
230 | delete in_zip; | 285 | delete in_zip; |
231 | delete in_file; | 286 | delete in_file; |
232 | return true; | 287 | return true; |
@@ -234,16 +289,16 @@ int UnzipFile(wxString src, wxString destdir, bool isInstall) | |||
234 | } else | 289 | } else |
235 | { | 290 | { |
236 | errnum = in_file->GetLastError(); | 291 | errnum = in_file->GetLastError(); |
237 | buf.Printf(_("Can't open %s (%s)"), src.c_str(), | 292 | buf.Printf(wxT("Can't open %s (%s)"), src.c_str(), |
238 | stream_err_str(errnum).c_str() ); | 293 | stream_err_str(errnum).c_str() ); |
239 | ERR_DIALOG(buf, _("Unzip File") ); | 294 | ERR_DIALOG(buf, wxT("Unzip File") ); |
240 | delete in_zip; | 295 | delete in_zip; |
241 | delete in_file; | 296 | delete in_file; |
242 | return true; | 297 | return true; |
243 | } | 298 | } |
244 | 299 | ||
245 | wxProgressDialog* progress = new wxProgressDialog(_("Unpacking archive"), | 300 | wxProgressDialog* progress = new wxProgressDialog(wxT("Unpacking archive"), |
246 | _("Preparing to unpack the downloaded files to your audio" | 301 | wxT("Preparing to unpack the downloaded files to your audio" |
247 | "device"), totalfiles, NULL, wxPD_APP_MODAL | | 302 | "device"), totalfiles, NULL, wxPD_APP_MODAL | |
248 | wxPD_AUTO_HIDE | wxPD_SMOOTH | wxPD_ELAPSED_TIME | | 303 | wxPD_AUTO_HIDE | wxPD_SMOOTH | wxPD_ELAPSED_TIME | |
249 | wxPD_REMAINING_TIME | wxPD_CAN_ABORT); | 304 | wxPD_REMAINING_TIME | wxPD_CAN_ABORT); |
@@ -262,9 +317,9 @@ int UnzipFile(wxString src, wxString destdir, bool isInstall) | |||
262 | 317 | ||
263 | curfile++; | 318 | curfile++; |
264 | wxString name = entry->GetName(); | 319 | wxString name = entry->GetName(); |
265 | progress_msg.Printf(_("Unpacking %s"), name.c_str()); | 320 | progress_msg.Printf(wxT("Unpacking %s"), name.c_str()); |
266 | if (! progress->Update(curfile, progress_msg) ) { | 321 | if (! progress->Update(curfile, progress_msg) ) { |
267 | buf.Printf(_("Unpacking cancelled by user")); | 322 | buf.Printf(wxT("Unpacking cancelled by user")); |
268 | MESG_DIALOG(buf); | 323 | MESG_DIALOG(buf); |
269 | errnum = 1000; | 324 | errnum = 1000; |
270 | break; | 325 | break; |
@@ -275,7 +330,7 @@ int UnzipFile(wxString src, wxString destdir, bool isInstall) | |||
275 | if (entry->IsDir() ) { | 330 | if (entry->IsDir() ) { |
276 | if (!wxDirExists(in_str) ) { | 331 | if (!wxDirExists(in_str) ) { |
277 | if (! wxMkdir(in_str, 0777) ) { | 332 | if (! wxMkdir(in_str, 0777) ) { |
278 | buf.Printf(_("Unable to create directory %s"), | 333 | buf.Printf(wxT("Unable to create directory %s"), |
279 | in_str.c_str() ); | 334 | in_str.c_str() ); |
280 | errnum = 100; | 335 | errnum = 100; |
281 | break; | 336 | break; |
@@ -288,7 +343,7 @@ int UnzipFile(wxString src, wxString destdir, bool isInstall) | |||
288 | wxFFileOutputStream* out = new wxFFileOutputStream(in_str); | 343 | wxFFileOutputStream* out = new wxFFileOutputStream(in_str); |
289 | if (! out->IsOk() ) | 344 | if (! out->IsOk() ) |
290 | { | 345 | { |
291 | buf.Printf(_("Can't open file %s for writing"), in_str.c_str() ); | 346 | buf.Printf(wxT("Can't open file %s for writing"), in_str.c_str() ); |
292 | delete out; | 347 | delete out; |
293 | return 100; | 348 | return 100; |
294 | } else if (isInstall) | 349 | } else if (isInstall) |
@@ -298,19 +353,19 @@ int UnzipFile(wxString src, wxString destdir, bool isInstall) | |||
298 | 353 | ||
299 | in_zip->Read(*out); | 354 | in_zip->Read(*out); |
300 | if (! out->IsOk()) { | 355 | if (! out->IsOk()) { |
301 | buf.Printf(_("Can't write to %s (%d)"), in_str.c_str(), | 356 | buf.Printf(wxT("Can't write to %s (%d)"), in_str.c_str(), |
302 | errnum = out->GetLastError() ); | 357 | errnum = out->GetLastError() ); |
303 | } | 358 | } |
304 | 359 | ||
305 | if (!in_zip->IsOk() && ! in_file->GetLastError() == wxSTREAM_EOF) | 360 | if (!in_zip->IsOk() && ! in_file->GetLastError() == wxSTREAM_EOF) |
306 | { | 361 | { |
307 | buf.Printf(_("Can't read from %s (%d)"), src.c_str(), | 362 | buf.Printf(wxT("Can't read from %s (%d)"), src.c_str(), |
308 | errnum = in_file->GetLastError() ); | 363 | errnum = in_file->GetLastError() ); |
309 | } | 364 | } |
310 | 365 | ||
311 | if (! out->Close() && errnum == 0) | 366 | if (! out->Close() && errnum == 0) |
312 | { | 367 | { |
313 | buf.Printf(_("Unable to close %s (%d)"), in_str.c_str(), | 368 | buf.Printf(wxT("Unable to close %s (%d)"), in_str.c_str(), |
314 | errnum = out->GetLastError() ); | 369 | errnum = out->GetLastError() ); |
315 | 370 | ||
316 | } | 371 | } |
@@ -323,11 +378,11 @@ int UnzipFile(wxString src, wxString destdir, bool isInstall) | |||
323 | 378 | ||
324 | if (errnum) | 379 | if (errnum) |
325 | { | 380 | { |
326 | ERR_DIALOG(buf, _("Unzip File")); | 381 | ERR_DIALOG(buf, wxT("Unzip File")); |
327 | } | 382 | } |
328 | 383 | ||
329 | if (log) delete log; | 384 | if (log) delete log; |
330 | wxLogVerbose(_("=== end UnzipFile")); | 385 | wxLogVerbose(wxT("=== end UnzipFile")); |
331 | return(errnum); | 386 | return(errnum); |
332 | } | 387 | } |
333 | 388 | ||
@@ -339,10 +394,10 @@ int Uninstall(const wxString dir, bool isFullUninstall) { | |||
339 | InstallLog *log = NULL; | 394 | InstallLog *log = NULL; |
340 | wxArrayString* FilesToRemove = NULL; | 395 | wxArrayString* FilesToRemove = NULL; |
341 | 396 | ||
342 | wxLogVerbose(_("=== begin Uninstall(%s,%i)"), dir.c_str(), isFullUninstall); | 397 | wxLogVerbose(wxT("=== begin Uninstall(%s,%i)"), dir.c_str(), isFullUninstall); |
343 | 398 | ||
344 | wxProgressDialog* progress = new wxProgressDialog(_("Uninstalling"), | 399 | wxProgressDialog* progress = new wxProgressDialog(wxT("Uninstalling"), |
345 | _("Reading uninstall data from jukebox"), 100, NULL, | 400 | wxT("Reading uninstall data from jukebox"), 100, NULL, |
346 | wxPD_APP_MODAL | wxPD_AUTO_HIDE | wxPD_SMOOTH | | 401 | wxPD_APP_MODAL | wxPD_AUTO_HIDE | wxPD_SMOOTH | |
347 | wxPD_ELAPSED_TIME | wxPD_REMAINING_TIME | wxPD_CAN_ABORT); | 402 | wxPD_ELAPSED_TIME | wxPD_REMAINING_TIME | wxPD_CAN_ABORT); |
348 | progress->Update(0); | 403 | progress->Update(0); |
@@ -358,19 +413,19 @@ int Uninstall(const wxString dir, bool isFullUninstall) { | |||
358 | if (FilesToRemove == NULL || FilesToRemove->GetCount() < 1) { | 413 | if (FilesToRemove == NULL || FilesToRemove->GetCount() < 1) { |
359 | wxLogNull lognull; | 414 | wxLogNull lognull; |
360 | if ( wxMessageDialog(NULL, | 415 | if ( wxMessageDialog(NULL, |
361 | _("Rockbox Utility can't find any uninstall data on this " | 416 | wxT("Rockbox Utility can't find any uninstall data on this " |
362 | "jukebox.\n" | 417 | "jukebox.\n" |
363 | "Would you like to attempt a full uninstall?\n" | 418 | "Would you like to attempt a full uninstall?\n" |
364 | "(WARNING: A full uninstall removes all files in your Rockbox " | 419 | "(WARNING: A full uninstall removes all files in your Rockbox " |
365 | "folder)"), | 420 | "folder)"), |
366 | _("Standard uninstall not possible"), | 421 | wxT("Standard uninstall not possible"), |
367 | wxICON_EXCLAMATION | wxYES_NO | wxNO_DEFAULT).ShowModal() | 422 | wxICON_EXCLAMATION | wxYES_NO | wxNO_DEFAULT).ShowModal() |
368 | == wxID_YES) | 423 | == wxID_YES) |
369 | { | 424 | { |
370 | isFullUninstall = true; | 425 | isFullUninstall = true; |
371 | } | 426 | } |
372 | else { | 427 | else { |
373 | MESG_DIALOG(_("Uninstall cancelled by user")); | 428 | MESG_DIALOG(wxT("Uninstall cancelled by user")); |
374 | delete progress; | 429 | delete progress; |
375 | return 1000; | 430 | return 1000; |
376 | } | 431 | } |
@@ -382,8 +437,8 @@ int Uninstall(const wxString dir, bool isFullUninstall) { | |||
382 | buf.Printf(wxT("%s" PATH_SEP ".rockbox"), dir.c_str()); | 437 | buf.Printf(wxT("%s" PATH_SEP ".rockbox"), dir.c_str()); |
383 | if (rm_rf(buf) ) | 438 | if (rm_rf(buf) ) |
384 | { | 439 | { |
385 | WARN_DIALOG(_("Unable to completely remove Rockbox directory"), | 440 | WARN_DIALOG(wxT("Unable to completely remove Rockbox directory"), |
386 | _("Full uninstall") ); | 441 | wxT("Full uninstall") ); |
387 | errflag = true; | 442 | errflag = true; |
388 | } | 443 | } |
389 | 444 | ||
@@ -413,8 +468,8 @@ int Uninstall(const wxString dir, bool isFullUninstall) { | |||
413 | { | 468 | { |
414 | if (! wxRemoveFile((*special)[i]) ) | 469 | if (! wxRemoveFile((*special)[i]) ) |
415 | { | 470 | { |
416 | buf.Printf(_("Can't delete %s"), (*special)[i].c_str()); | 471 | buf.Printf(wxT("Can't delete %s"), (*special)[i].c_str()); |
417 | WARN_DIALOG(buf.c_str(), _("Full uninstall")); | 472 | WARN_DIALOG(buf.c_str(), wxT("Full uninstall")); |
418 | errflag = true; | 473 | errflag = true; |
419 | } | 474 | } |
420 | } | 475 | } |
@@ -441,11 +496,11 @@ int Uninstall(const wxString dir, bool isFullUninstall) { | |||
441 | 496 | ||
442 | wxString* buf2 = new wxString; | 497 | wxString* buf2 = new wxString; |
443 | buf.Printf("%s%s", dir.c_str() , FilesToRemove->Item(i).c_str() ); | 498 | buf.Printf("%s%s", dir.c_str() , FilesToRemove->Item(i).c_str() ); |
444 | buf2->Format(_("Deleting %s"), buf.c_str()); | 499 | buf2->Format(wxT("Deleting %s"), buf.c_str()); |
445 | 500 | ||
446 | if (! progress->Update((i + 1) * 100 / totalfiles, *buf2) ) | 501 | if (! progress->Update((i + 1) * 100 / totalfiles, *buf2) ) |
447 | { | 502 | { |
448 | WARN_DIALOG(_("Cancelled by user"), _("Normal Uninstall")); | 503 | WARN_DIALOG(wxT("Cancelled by user"), wxT("Normal Uninstall")); |
449 | delete progress; | 504 | delete progress; |
450 | return true; | 505 | return true; |
451 | } | 506 | } |
@@ -463,41 +518,41 @@ int Uninstall(const wxString dir, bool isFullUninstall) { | |||
463 | 518 | ||
464 | if ( rc = ! wxRmdir(buf) ) | 519 | if ( rc = ! wxRmdir(buf) ) |
465 | { | 520 | { |
466 | buf = buf.Format(_("Can't remove directory %s"), | 521 | buf = buf.Format(wxT("Can't remove directory %s"), |
467 | buf.c_str()); | 522 | buf.c_str()); |
468 | errflag = true; | 523 | errflag = true; |
469 | WARN_DIALOG(buf.c_str(), _("Standard uninstall")); | 524 | WARN_DIALOG(buf.c_str(), wxT("Standard uninstall")); |
470 | } | 525 | } |
471 | } else if (wxFileExists(buf) ) | 526 | } else if (wxFileExists(buf) ) |
472 | { | 527 | { |
473 | if ( rc = ! wxRemoveFile(buf) ) | 528 | if ( rc = ! wxRemoveFile(buf) ) |
474 | { | 529 | { |
475 | buf = buf.Format(_("Can't delete file %s"), | 530 | buf = buf.Format(wxT("Can't delete file %s"), |
476 | buf.c_str()); | 531 | buf.c_str()); |
477 | errflag = true; | 532 | errflag = true; |
478 | WARN_DIALOG(buf.c_str(), _("Standard uninstall")); | 533 | WARN_DIALOG(buf.c_str(), wxT("Standard uninstall")); |
479 | } | 534 | } |
480 | } else | 535 | } else |
481 | { | 536 | { |
482 | errflag = true; | 537 | errflag = true; |
483 | buf = buf.Format(_("Can't find file or directory %s"), | 538 | buf = buf.Format(wxT("Can't find file or directory %s"), |
484 | buf.c_str() ); | 539 | buf.c_str() ); |
485 | WARN_DIALOG(buf.c_str(), _("Standard uninstall") ); | 540 | WARN_DIALOG(buf.c_str(), wxT("Standard uninstall") ); |
486 | } | 541 | } |
487 | 542 | ||
488 | uninst = uninst.AfterFirst('\n'); | 543 | uninst = uninst.AfterFirst('\n'); |
489 | } | 544 | } |
490 | if (errflag) | 545 | if (errflag) |
491 | { | 546 | { |
492 | ERR_DIALOG(_("Unable to remove some files"), | 547 | ERR_DIALOG(wxT("Unable to remove some files"), |
493 | _("Standard uninstall")) ; | 548 | wxT("Standard uninstall")) ; |
494 | } | 549 | } |
495 | 550 | ||
496 | if (FilesToRemove != NULL) delete FilesToRemove; | 551 | if (FilesToRemove != NULL) delete FilesToRemove; |
497 | } | 552 | } |
498 | 553 | ||
499 | delete progress; | 554 | delete progress; |
500 | wxLogVerbose(_("=== end Uninstall")); | 555 | wxLogVerbose(wxT("=== end Uninstall")); |
501 | return errflag; | 556 | return errflag; |
502 | } | 557 | } |
503 | 558 | ||
@@ -553,8 +608,8 @@ bool InstallRbutil(wxString dest) | |||
553 | if (! wxMkdir(destdir, 0777) ) | 608 | if (! wxMkdir(destdir, 0777) ) |
554 | { | 609 | { |
555 | buf.Printf(wxT("%s (%s)"), | 610 | buf.Printf(wxT("%s (%s)"), |
556 | _("Unable to create directory for installer"), destdir.c_str()); | 611 | wxT("Unable to create directory for installer"), destdir.c_str()); |
557 | WARN_DIALOG(buf , _("Portable install") ); | 612 | WARN_DIALOG(buf , wxT("Portable install") ); |
558 | return false; | 613 | return false; |
559 | } | 614 | } |
560 | log->WriteFile(wxT("RockboxUtility"), true); | 615 | log->WriteFile(wxT("RockboxUtility"), true); |
@@ -564,7 +619,7 @@ bool InstallRbutil(wxString dest) | |||
564 | wxDIR_FILES); | 619 | wxDIR_FILES); |
565 | if (filestocopy.GetCount() < 1) | 620 | if (filestocopy.GetCount() < 1) |
566 | { | 621 | { |
567 | WARN_DIALOG(_("No files to copy"), _("Portable install") ); | 622 | WARN_DIALOG(wxT("No files to copy"), wxT("Portable install") ); |
568 | return false; | 623 | return false; |
569 | } | 624 | } |
570 | 625 | ||
@@ -581,8 +636,8 @@ bool InstallRbutil(wxString dest) | |||
581 | if (! wxCopyFile(filestocopy[i], dstr) ) | 636 | if (! wxCopyFile(filestocopy[i], dstr) ) |
582 | { | 637 | { |
583 | buf.Printf(wxT("%s (%s -> %s)"), | 638 | buf.Printf(wxT("%s (%s -> %s)"), |
584 | _("Error copying file"), filestocopy[i].c_str(), dstr.c_str()); | 639 | wxT("Error copying file"), filestocopy[i].c_str(), dstr.c_str()); |
585 | WARN_DIALOG(buf, _("Portable Install") ); | 640 | WARN_DIALOG(buf, wxT("Portable Install") ); |
586 | return false; | 641 | return false; |
587 | } | 642 | } |
588 | buf = dstr; | 643 | buf = dstr; |
@@ -599,7 +654,7 @@ bool InstallRbutil(wxString dest) | |||
599 | { | 654 | { |
600 | buf.Printf(wxT("Can't copy program binary %s -> %s"), | 655 | buf.Printf(wxT("Can't copy program binary %s -> %s"), |
601 | str.c_str(), dstr.c_str() ); | 656 | str.c_str(), dstr.c_str() ); |
602 | WARN_DIALOG(buf, _("Portable Install") ); | 657 | WARN_DIALOG(buf, wxT("Portable Install") ); |
603 | return false; | 658 | return false; |
604 | } | 659 | } |
605 | buf = dstr; | 660 | buf = dstr; |
@@ -613,9 +668,9 @@ bool InstallRbutil(wxString dest) | |||
613 | if (! wxCopyFile(gv->UserConfigFile, dstr) ) | 668 | if (! wxCopyFile(gv->UserConfigFile, dstr) ) |
614 | { | 669 | { |
615 | buf.Printf(wxT("%s (%s -> %s)"), | 670 | buf.Printf(wxT("%s (%s -> %s)"), |
616 | _("Unable to install user config file"), gv->UserConfigFile.c_str(), | 671 | wxT("Unable to install user config file"), gv->UserConfigFile.c_str(), |
617 | dstr.c_str() ); | 672 | dstr.c_str() ); |
618 | WARN_DIALOG(buf, _("Portable Install") ); | 673 | WARN_DIALOG(buf, wxT("Portable Install") ); |
619 | return false; | 674 | return false; |
620 | } | 675 | } |
621 | buf = dstr; | 676 | buf = dstr; |
@@ -628,7 +683,7 @@ bool InstallRbutil(wxString dest) | |||
628 | 683 | ||
629 | bool rm_rf(wxString file) | 684 | bool rm_rf(wxString file) |
630 | { | 685 | { |
631 | wxLogVerbose(_("=== begin rm-rf(%s)"), file.c_str() ); | 686 | wxLogVerbose(wxT("=== begin rm-rf(%s)"), file.c_str() ); |
632 | 687 | ||
633 | wxString buf; | 688 | wxString buf; |
634 | wxArrayString selected; | 689 | wxArrayString selected; |
@@ -649,8 +704,8 @@ bool rm_rf(wxString file) | |||
649 | selected.Sort(true); | 704 | selected.Sort(true); |
650 | selected.Add(file); | 705 | selected.Add(file); |
651 | 706 | ||
652 | wxProgressDialog* progress = new wxProgressDialog(_("Removing files"), | 707 | wxProgressDialog* progress = new wxProgressDialog(wxT("Removing files"), |
653 | _("Deleting files"), selected.GetCount(), NULL, | 708 | wxT("Deleting files"), selected.GetCount(), NULL, |
654 | wxPD_APP_MODAL | wxPD_AUTO_HIDE | wxPD_SMOOTH | | 709 | wxPD_APP_MODAL | wxPD_AUTO_HIDE | wxPD_SMOOTH | |
655 | wxPD_ELAPSED_TIME | wxPD_REMAINING_TIME | wxPD_CAN_ABORT); | 710 | wxPD_ELAPSED_TIME | wxPD_REMAINING_TIME | wxPD_CAN_ABORT); |
656 | 711 | ||
@@ -659,10 +714,10 @@ bool rm_rf(wxString file) | |||
659 | wxLogVerbose(selected[i]); | 714 | wxLogVerbose(selected[i]); |
660 | if (progress != NULL) | 715 | if (progress != NULL) |
661 | { | 716 | { |
662 | buf.Printf(_("Deleting %s"), selected[i].c_str() ); | 717 | buf.Printf(wxT("Deleting %s"), selected[i].c_str() ); |
663 | if (! progress->Update(i, buf)) | 718 | if (! progress->Update(i, buf)) |
664 | { | 719 | { |
665 | WARN_DIALOG(_("Cancelled by user"), _("Erase Files")); | 720 | WARN_DIALOG(wxT("Cancelled by user"), wxT("Erase Files")); |
666 | delete progress; | 721 | delete progress; |
667 | return true; | 722 | return true; |
668 | } | 723 | } |
@@ -672,27 +727,27 @@ bool rm_rf(wxString file) | |||
672 | { | 727 | { |
673 | if (rc = ! wxRmdir(selected[i]) ) | 728 | if (rc = ! wxRmdir(selected[i]) ) |
674 | { | 729 | { |
675 | buf.Printf(_("Can't remove directory %s"), | 730 | buf.Printf(wxT("Can't remove directory %s"), |
676 | selected[i].c_str()); | 731 | selected[i].c_str()); |
677 | errflag = true; | 732 | errflag = true; |
678 | WARN_DIALOG(buf.c_str(), _("Erase files")); | 733 | WARN_DIALOG(buf.c_str(), wxT("Erase files")); |
679 | } | 734 | } |
680 | } else if (rc = ! wxRemoveFile(selected[i]) ) | 735 | } else if (rc = ! wxRemoveFile(selected[i]) ) |
681 | { | 736 | { |
682 | buf.Printf(_("Error deleting file %s"), selected[i].c_str() ); | 737 | buf.Printf(wxT("Error deleting file %s"), selected[i].c_str() ); |
683 | errflag = true; | 738 | errflag = true; |
684 | WARN_DIALOG(buf.c_str(),_("Erase files")); | 739 | WARN_DIALOG(buf.c_str(),wxT("Erase files")); |
685 | } | 740 | } |
686 | } | 741 | } |
687 | delete progress; | 742 | delete progress; |
688 | } else | 743 | } else |
689 | { | 744 | { |
690 | buf.Printf(_("Can't find expected file %s"), file.c_str()); | 745 | buf.Printf(wxT("Can't find expected file %s"), file.c_str()); |
691 | WARN_DIALOG(buf.c_str(), _("Erase files")); | 746 | WARN_DIALOG(buf.c_str(), wxT("Erase files")); |
692 | return true; | 747 | return true; |
693 | } | 748 | } |
694 | 749 | ||
695 | wxLogVerbose(_("=== end rm-rf")); | 750 | wxLogVerbose(wxT("=== end rm-rf")); |
696 | return rc ? true : false; | 751 | return rc ? true : false; |
697 | } | 752 | } |
698 | 753 | ||
diff --git a/rbutil/rbutil.h b/rbutil/rbutil.h index b499f44e18..8d95c1c2d5 100644 --- a/rbutil/rbutil.h +++ b/rbutil/rbutil.h | |||
@@ -90,6 +90,7 @@ public: | |||
90 | wxArrayString plat_bootloadername; | 90 | wxArrayString plat_bootloadername; |
91 | wxArrayInt plat_autodetect; | 91 | wxArrayInt plat_autodetect; |
92 | wxArrayString plat_combinedname; | 92 | wxArrayString plat_combinedname; |
93 | wxArrayString plat_resolution; | ||
93 | wxString download_url; | 94 | wxString download_url; |
94 | wxString daily_url; | 95 | wxString daily_url; |
95 | wxString bleeding_url; | 96 | wxString bleeding_url; |
@@ -98,6 +99,7 @@ public: | |||
98 | wxString last_release; | 99 | wxString last_release; |
99 | wxString prog_name; | 100 | wxString prog_name; |
100 | wxString bootloader_url; | 101 | wxString bootloader_url; |
102 | wxString themes_url; | ||
101 | 103 | ||
102 | // User configuration data. | 104 | // User configuration data. |
103 | wxString curplat; | 105 | wxString curplat; |
@@ -110,6 +112,8 @@ public: | |||
110 | wxString curbootloadermethod; | 112 | wxString curbootloadermethod; |
111 | wxString curbootloader; | 113 | wxString curbootloader; |
112 | wxString curfirmware; | 114 | wxString curfirmware; |
115 | wxString curresolution; | ||
116 | wxArrayString themesToInstall; | ||
113 | 117 | ||
114 | // Global system variables | 118 | // Global system variables |
115 | wxFFile* logfile; | 119 | wxFFile* logfile; |
@@ -126,6 +130,8 @@ int DownloadURL(wxString src, wxString dest); | |||
126 | int UnzipFile(wxString src, wxString destdir, bool isInstall = false); | 130 | int UnzipFile(wxString src, wxString destdir, bool isInstall = false); |
127 | int Uninstall(const wxString dir, bool isFullUninstall = false); | 131 | int Uninstall(const wxString dir, bool isFullUninstall = false); |
128 | bool InstallRbutil(wxString dest); | 132 | bool InstallRbutil(wxString dest); |
133 | bool InstallTheme(wxString src); | ||
134 | bool checkZip(wxString zipname); | ||
129 | wxString stream_err_str(int errnum); | 135 | wxString stream_err_str(int errnum); |
130 | bool rm_rf(wxString file); | 136 | bool rm_rf(wxString file); |
131 | 137 | ||
diff --git a/rbutil/rbutil.ini b/rbutil/rbutil.ini index 85cfb653e0..838edfb6d3 100644 --- a/rbutil/rbutil.ini +++ b/rbutil/rbutil.ini | |||
@@ -7,6 +7,7 @@ font_url=http://www.rockbox.org/daily/fonts/rockbox-fonts- | |||
7 | last_release=2.5 | 7 | last_release=2.5 |
8 | prog_name=rockbox | 8 | prog_name=rockbox |
9 | bootloader_url=http://download.rockbox.org/bootloader | 9 | bootloader_url=http://download.rockbox.org/bootloader |
10 | themes_url=http://www.rockbox-themes.org/ | ||
10 | 11 | ||
11 | [platforms] | 12 | [platforms] |
12 | platform1=player | 13 | platform1=player |
@@ -44,6 +45,7 @@ bootloadermethod= | |||
44 | bootloadername= | 45 | bootloadername= |
45 | autodetect=no | 46 | autodetect=no |
46 | combinedname= | 47 | combinedname= |
48 | resolution=11x2x1 | ||
47 | 49 | ||
48 | [recorder] | 50 | [recorder] |
49 | name=Archos Jukebox Recorder 10, 20 | 51 | name=Archos Jukebox Recorder 10, 20 |
@@ -54,6 +56,7 @@ bootloadermethod= | |||
54 | bootloadername= | 56 | bootloadername= |
55 | autodetect=no | 57 | autodetect=no |
56 | combinedname= | 58 | combinedname= |
59 | resolution=112x64x1 | ||
57 | 60 | ||
58 | [recorder8mb] | 61 | [recorder8mb] |
59 | name=Archos Jukebox Recorder 10, 20 (with 8mb memory) | 62 | name=Archos Jukebox Recorder 10, 20 (with 8mb memory) |
@@ -64,6 +67,7 @@ bootloadermethod= | |||
64 | bootloadername= | 67 | bootloadername= |
65 | autodetect=no | 68 | autodetect=no |
66 | combinedname= | 69 | combinedname= |
70 | resolution=112x64x1 | ||
67 | 71 | ||
68 | [recorderv2] | 72 | [recorderv2] |
69 | name=Archos Jukebox Recorder v2 (20GB) | 73 | name=Archos Jukebox Recorder v2 (20GB) |
@@ -74,6 +78,7 @@ bootloadermethod= | |||
74 | bootloadername= | 78 | bootloadername= |
75 | autodetect=no | 79 | autodetect=no |
76 | combinedname= | 80 | combinedname= |
81 | resolution=112x64x1 | ||
77 | 82 | ||
78 | [fmrecorder] | 83 | [fmrecorder] |
79 | name=Archos Jukebox Recorder FM | 84 | name=Archos Jukebox Recorder FM |
@@ -84,6 +89,7 @@ bootloadermethod= | |||
84 | bootloadername= | 89 | bootloadername= |
85 | autodetect=no | 90 | autodetect=no |
86 | combinedname= | 91 | combinedname= |
92 | resolution=112x64x1 | ||
87 | 93 | ||
88 | [fmrecorder8mb] | 94 | [fmrecorder8mb] |
89 | name=Archos Jukebox Recorder FM (with 8mb memory) | 95 | name=Archos Jukebox Recorder FM (with 8mb memory) |
@@ -94,6 +100,7 @@ bootloadermethod= | |||
94 | bootloadername= | 100 | bootloadername= |
95 | autodetect=no | 101 | autodetect=no |
96 | combinedname= | 102 | combinedname= |
103 | resolution=112x64x1 | ||
97 | 104 | ||
98 | [ondiosp] | 105 | [ondiosp] |
99 | name=Archos Ondio SP | 106 | name=Archos Ondio SP |
@@ -104,6 +111,7 @@ bootloadermethod= | |||
104 | bootloadername= | 111 | bootloadername= |
105 | autodetect=no | 112 | autodetect=no |
106 | combinedname= | 113 | combinedname= |
114 | resolution=112x64x1 | ||
107 | 115 | ||
108 | [ondiofm] | 116 | [ondiofm] |
109 | name=Archos Ondio FM | 117 | name=Archos Ondio FM |
@@ -114,6 +122,7 @@ bootloadermethod= | |||
114 | bootloadername= | 122 | bootloadername= |
115 | autodetect=no | 123 | autodetect=no |
116 | combinedname= | 124 | combinedname= |
125 | resolution=112x64x1 | ||
117 | 126 | ||
118 | [h100] | 127 | [h100] |
119 | name=Iriver iHP100, iHP110 | 128 | name=Iriver iHP100, iHP110 |
@@ -124,6 +133,7 @@ bootloadermethod=fwpatcher | |||
124 | bootloadername=bootloader-h100.bin | 133 | bootloadername=bootloader-h100.bin |
125 | autodetect=no | 134 | autodetect=no |
126 | combinedname= | 135 | combinedname= |
136 | resolution=160x128x2 | ||
127 | 137 | ||
128 | [h120] | 138 | [h120] |
129 | name=Iriver iHP120, iHP140, H120, H140 | 139 | name=Iriver iHP120, iHP140, H120, H140 |
@@ -134,6 +144,7 @@ bootloadermethod=fwpatcher | |||
134 | bootloadername=bootloader-h120.bin | 144 | bootloadername=bootloader-h120.bin |
135 | autodetect=no | 145 | autodetect=no |
136 | combinedname= | 146 | combinedname= |
147 | resolution=160x128x2 | ||
137 | 148 | ||
138 | [h300] | 149 | [h300] |
139 | name=Iriver H320, H340 | 150 | name=Iriver H320, H340 |
@@ -144,9 +155,10 @@ bootloadermethod=fwpatcher | |||
144 | bootloadername=bootloader-h300.bin | 155 | bootloadername=bootloader-h300.bin |
145 | autodetect=no | 156 | autodetect=no |
146 | combinedname= | 157 | combinedname= |
158 | resolution=220x176x16 | ||
147 | 159 | ||
148 | [h10_5gbums] | 160 | [h10_5gbums] |
149 | name=Iriver H10 (5GB) UMS | 161 | name=Iriver H10 (5/6GB) UMS |
150 | platform=h10_5gb | 162 | platform=h10_5gb |
151 | released=no | 163 | released=no |
152 | needsbootloader=yes | 164 | needsbootloader=yes |
@@ -154,9 +166,10 @@ bootloadermethod=h10 | |||
154 | bootloadername=H10.mi4 | 166 | bootloadername=H10.mi4 |
155 | autodetect=no | 167 | autodetect=no |
156 | combinedname= | 168 | combinedname= |
169 | resolution=128x128x16 | ||
157 | 170 | ||
158 | [h10_5gbmtp] | 171 | [h10_5gbmtp] |
159 | name=Iriver H10 (5GB) MTP | 172 | name=Iriver H10 (5/6GB) MTP |
160 | platform=h10_5gb | 173 | platform=h10_5gb |
161 | released=no | 174 | released=no |
162 | needsbootloader=yes | 175 | needsbootloader=yes |
@@ -164,6 +177,7 @@ bootloadermethod=h10 | |||
164 | bootloadername=H10_5GB-MTP/H10.mi4 | 177 | bootloadername=H10_5GB-MTP/H10.mi4 |
165 | autodetect=no | 178 | autodetect=no |
166 | combinedname= | 179 | combinedname= |
180 | resolution=128x128x16 | ||
167 | 181 | ||
168 | [h10] | 182 | [h10] |
169 | name=Iriver H10 (20GB) | 183 | name=Iriver H10 (20GB) |
@@ -174,6 +188,7 @@ bootloadermethod=h10 | |||
174 | bootloadername=H10_20GC.mi4 | 188 | bootloadername=H10_20GC.mi4 |
175 | autodetect=no | 189 | autodetect=no |
176 | combinedname= | 190 | combinedname= |
191 | resolution=160x128x16 | ||
177 | 192 | ||
178 | [ipodcolor] | 193 | [ipodcolor] |
179 | name=Apple Ipod Colour/Photo/U2 (4th gen) | 194 | name=Apple Ipod Colour/Photo/U2 (4th gen) |
@@ -184,6 +199,7 @@ bootloadermethod=ipodpatcher | |||
184 | bootloadername=none | 199 | bootloadername=none |
185 | autodetect=yes | 200 | autodetect=yes |
186 | combinedname=Ipod mini 1g, mini 2g, 3g, 4g, color, video, nano 1g | 201 | combinedname=Ipod mini 1g, mini 2g, 3g, 4g, color, video, nano 1g |
202 | resolution=220x176x16 | ||
187 | 203 | ||
188 | [ipodnano] | 204 | [ipodnano] |
189 | name=Apple Ipod Nano (1st gen) | 205 | name=Apple Ipod Nano (1st gen) |
@@ -194,6 +210,7 @@ bootloadermethod=ipodpatcher | |||
194 | bootloadername=none | 210 | bootloadername=none |
195 | autodetect=yes | 211 | autodetect=yes |
196 | combinedname=Ipod mini 1g, mini 2g, 3g, 4g, color, video, nano 1g | 212 | combinedname=Ipod mini 1g, mini 2g, 3g, 4g, color, video, nano 1g |
213 | resolution=176x132x16 | ||
197 | 214 | ||
198 | [ipod4gray] | 215 | [ipod4gray] |
199 | name=Apple Ipod (4th gen, greyscale) | 216 | name=Apple Ipod (4th gen, greyscale) |
@@ -204,6 +221,7 @@ bootloadermethod=ipodpatcher | |||
204 | bootloadername=none | 221 | bootloadername=none |
205 | autodetect=yes | 222 | autodetect=yes |
206 | combinedname=Ipod mini 1g, mini 2g, 3g, 4g, color, video, nano 1g | 223 | combinedname=Ipod mini 1g, mini 2g, 3g, 4g, color, video, nano 1g |
224 | resolution=160x128x2 | ||
207 | 225 | ||
208 | [ipodvideo] | 226 | [ipodvideo] |
209 | name=Apple Ipod Video (5th gen) | 227 | name=Apple Ipod Video (5th gen) |
@@ -214,6 +232,7 @@ bootloadermethod=ipodpatcher | |||
214 | bootloadername=none | 232 | bootloadername=none |
215 | autodetect=yes | 233 | autodetect=yes |
216 | combinedname=Ipod mini 1g, mini 2g, 3g, 4g, color, video, nano 1g | 234 | combinedname=Ipod mini 1g, mini 2g, 3g, 4g, color, video, nano 1g |
235 | resolution=320x240x16 | ||
217 | 236 | ||
218 | [ipod3g] | 237 | [ipod3g] |
219 | name=Apple Ipod (3rd gen) | 238 | name=Apple Ipod (3rd gen) |
@@ -224,6 +243,7 @@ bootloadermethod=ipodpatcher | |||
224 | bootloadername=none | 243 | bootloadername=none |
225 | autodetect=yes | 244 | autodetect=yes |
226 | combinedname=Ipod mini 1g, mini 2g, 3g, 4g, color, video, nano 1g | 245 | combinedname=Ipod mini 1g, mini 2g, 3g, 4g, color, video, nano 1g |
246 | resolution=160x128x2 | ||
227 | 247 | ||
228 | [ipodmini1g] | 248 | [ipodmini1g] |
229 | name=Apple Ipod Mini (1st gen) | 249 | name=Apple Ipod Mini (1st gen) |
@@ -234,6 +254,7 @@ bootloadermethod=ipodpatcher | |||
234 | bootloadername=none | 254 | bootloadername=none |
235 | autodetect=yes | 255 | autodetect=yes |
236 | combinedname=Ipod mini 1g, mini 2g, 3g, 4g, color, video, nano 1g | 256 | combinedname=Ipod mini 1g, mini 2g, 3g, 4g, color, video, nano 1g |
257 | resolution=138x110x2 | ||
237 | 258 | ||
238 | [ipodmini2g] | 259 | [ipodmini2g] |
239 | name=Apple Ipod Mini (2nd gen) | 260 | name=Apple Ipod Mini (2nd gen) |
@@ -244,6 +265,7 @@ bootloadermethod=ipodpatcher | |||
244 | bootloadername=none | 265 | bootloadername=none |
245 | autodetect=yes | 266 | autodetect=yes |
246 | combinedname=Ipod mini 1g, mini 2g, 3g, 4g, color, video, nano 1g | 267 | combinedname=Ipod mini 1g, mini 2g, 3g, 4g, color, video, nano 1g |
268 | resolution=138x110x2 | ||
247 | 269 | ||
248 | [iaudiox5] | 270 | [iaudiox5] |
249 | name=Cowon iAudio X5 , X5L | 271 | name=Cowon iAudio X5 , X5L |
@@ -254,6 +276,7 @@ bootloadermethod=iaudio | |||
254 | bootloadername=x5_fw.bin | 276 | bootloadername=x5_fw.bin |
255 | autodetect=no | 277 | autodetect=no |
256 | combinedname= | 278 | combinedname= |
279 | resolution=160x128x16 | ||
257 | 280 | ||
258 | [iaudiox5v] | 281 | [iaudiox5v] |
259 | name=Cowon iAudio X5V | 282 | name=Cowon iAudio X5V |
@@ -264,6 +287,7 @@ bootloadermethod=iaudio | |||
264 | bootloadername=x5v_fw.bin | 287 | bootloadername=x5v_fw.bin |
265 | autodetect=no | 288 | autodetect=no |
266 | combinedname= | 289 | combinedname= |
290 | resolution=160x128x2 | ||
267 | 291 | ||
268 | [iaudiom5] | 292 | [iaudiom5] |
269 | name=Cowon iAudio M5 , M5L | 293 | name=Cowon iAudio M5 , M5L |
@@ -274,6 +298,7 @@ bootloadermethod=iaudio | |||
274 | bootloadername=m5_fw.bin | 298 | bootloadername=m5_fw.bin |
275 | autodetect=no | 299 | autodetect=no |
276 | combinedname= | 300 | combinedname= |
301 | resolution=160x128x16 | ||
277 | 302 | ||
278 | [gigabeatf] | 303 | [gigabeatf] |
279 | name=Toshiba Gigabeat F , X | 304 | name=Toshiba Gigabeat F , X |
@@ -283,3 +308,4 @@ bootloadermethod=gigabeatf | |||
283 | bootloadername=FWIMG01.DAT | 308 | bootloadername=FWIMG01.DAT |
284 | autodetect=no | 309 | autodetect=no |
285 | combinedname= | 310 | combinedname= |
311 | resolution=240x320x16 | ||
diff --git a/rbutil/rbutilApp.cpp b/rbutil/rbutilApp.cpp index c30e5b4aaa..436e4ca0cb 100644 --- a/rbutil/rbutilApp.cpp +++ b/rbutil/rbutilApp.cpp | |||
@@ -27,7 +27,7 @@ IMPLEMENT_APP(rbutilFrmApp) | |||
27 | 27 | ||
28 | bool rbutilFrmApp::OnInit() | 28 | bool rbutilFrmApp::OnInit() |
29 | { | 29 | { |
30 | wxString buf = ""; | 30 | wxString buf = wxT(""); |
31 | 31 | ||
32 | wxLogVerbose(wxT("=== begin rbutilFrmApp::Oninit()")); | 32 | wxLogVerbose(wxT("=== begin rbutilFrmApp::Oninit()")); |
33 | 33 | ||
@@ -48,7 +48,7 @@ bool rbutilFrmApp::OnInit() | |||
48 | wxLogNull lognull; | 48 | wxLogNull lognull; |
49 | if (! wxMkdir(buf, 0777)) | 49 | if (! wxMkdir(buf, 0777)) |
50 | { | 50 | { |
51 | wxLogFatalError(_("Can't create data directory %s"), | 51 | wxLogFatalError(wxT("Can't create data directory %s"), |
52 | buf.c_str()); | 52 | buf.c_str()); |
53 | } | 53 | } |
54 | } | 54 | } |
@@ -56,7 +56,7 @@ bool rbutilFrmApp::OnInit() | |||
56 | buf += wxT(PATH_SEP "rbutil.log"); | 56 | buf += wxT(PATH_SEP "rbutil.log"); |
57 | gv->logfile = new wxFFile(buf, "w"); | 57 | gv->logfile = new wxFFile(buf, "w"); |
58 | if (! gv->logfile->IsOpened() ) | 58 | if (! gv->logfile->IsOpened() ) |
59 | wxLogFatalError(_("Unable to open log file")); | 59 | wxLogFatalError(wxT("Unable to open log file")); |
60 | 60 | ||
61 | gv->loggui = new wxLogGui(); | 61 | gv->loggui = new wxLogGui(); |
62 | gv->loggui->SetActiveTarget(gv->loggui); | 62 | gv->loggui->SetActiveTarget(gv->loggui); |
@@ -73,7 +73,7 @@ bool rbutilFrmApp::OnInit() | |||
73 | 73 | ||
74 | if (!ReadGlobalConfig(NULL)) | 74 | if (!ReadGlobalConfig(NULL)) |
75 | { | 75 | { |
76 | ERR_DIALOG(gv->ErrStr->GetData(), _("Rockbox Utility")); | 76 | ERR_DIALOG(gv->ErrStr->GetData(), wxT("Rockbox Utility")); |
77 | return FALSE; | 77 | return FALSE; |
78 | } | 78 | } |
79 | ReadUserConfig(); | 79 | ReadUserConfig(); |
@@ -83,6 +83,8 @@ bool rbutilFrmApp::OnInit() | |||
83 | myFrame->Show(TRUE); | 83 | myFrame->Show(TRUE); |
84 | 84 | ||
85 | initIpodpatcher(); // reserve mem for ipodpatcher | 85 | initIpodpatcher(); // reserve mem for ipodpatcher |
86 | wxInitAllImageHandlers(); //init Image handlers | ||
87 | |||
86 | wxLogVerbose(wxT("=== end rbUtilFrmApp::OnInit()")); | 88 | wxLogVerbose(wxT("=== end rbUtilFrmApp::OnInit()")); |
87 | return TRUE; | 89 | return TRUE; |
88 | } | 90 | } |
@@ -136,7 +138,7 @@ bool rbutilFrmApp::ReadGlobalConfig(rbutilFrm* myFrame) | |||
136 | wxFileInputStream* cfgis = new wxFileInputStream(buf); | 138 | wxFileInputStream* cfgis = new wxFileInputStream(buf); |
137 | 139 | ||
138 | if (!cfgis->CanRead()) { | 140 | if (!cfgis->CanRead()) { |
139 | gv->ErrStr = new wxString(_("Unable to open configuration file")); | 141 | gv->ErrStr = new wxString(wxT("Unable to open configuration file")); |
140 | return false; | 142 | return false; |
141 | } | 143 | } |
142 | 144 | ||
@@ -175,6 +177,9 @@ bool rbutilFrmApp::ReadGlobalConfig(rbutilFrm* myFrame) | |||
175 | gv->GlobalConfig->Read(buf.Format(wxT("/%s/combinedname"), | 177 | gv->GlobalConfig->Read(buf.Format(wxT("/%s/combinedname"), |
176 | cur.c_str()), &tmpstr); | 178 | cur.c_str()), &tmpstr); |
177 | gv->plat_combinedname.Add(tmpstr); | 179 | gv->plat_combinedname.Add(tmpstr); |
180 | gv->GlobalConfig->Read(buf.Format(wxT("/%s/resolution"), | ||
181 | cur.c_str()), &tmpstr); | ||
182 | gv->plat_resolution.Add(tmpstr); | ||
178 | 183 | ||
179 | i++; | 184 | i++; |
180 | } | 185 | } |
@@ -210,6 +215,9 @@ bool rbutilFrmApp::ReadGlobalConfig(rbutilFrm* myFrame) | |||
210 | gv->GlobalConfig->Read(wxT("bootloader_url"), &tmpstr); | 215 | gv->GlobalConfig->Read(wxT("bootloader_url"), &tmpstr); |
211 | gv->bootloader_url = tmpstr; | 216 | gv->bootloader_url = tmpstr; |
212 | 217 | ||
218 | gv->GlobalConfig->Read(wxT("themes_url"), &tmpstr); | ||
219 | gv->themes_url = tmpstr; | ||
220 | |||
213 | #ifdef __WXMSW__ | 221 | #ifdef __WXMSW__ |
214 | gv->curdestdir = wxT("D:\\"); | 222 | gv->curdestdir = wxT("D:\\"); |
215 | #else | 223 | #else |
diff --git a/rbutil/rbutilFrm.cpp b/rbutil/rbutilFrm.cpp index c90930c47a..35c34e8dc2 100644 --- a/rbutil/rbutilFrm.cpp +++ b/rbutil/rbutilFrm.cpp | |||
@@ -27,6 +27,8 @@ | |||
27 | #include "fonts_3d.xpm" | 27 | #include "fonts_3d.xpm" |
28 | #include "tools2_3d.xpm" | 28 | #include "tools2_3d.xpm" |
29 | #include "rblogo.xpm" | 29 | #include "rblogo.xpm" |
30 | #include "untools2_3d.xpm" | ||
31 | #include "themes_3d.xpm" | ||
30 | 32 | ||
31 | #include "bootloaders.h" | 33 | #include "bootloaders.h" |
32 | 34 | ||
@@ -40,6 +42,7 @@ BEGIN_EVENT_TABLE(rbutilFrm,wxFrame) | |||
40 | EVT_BUTTON (ID_INSTALL_BTN, rbutilFrm::OnInstallBtn) | 42 | EVT_BUTTON (ID_INSTALL_BTN, rbutilFrm::OnInstallBtn) |
41 | EVT_BUTTON (ID_REMOVE_BTN, rbutilFrm::OnRemoveBtn) | 43 | EVT_BUTTON (ID_REMOVE_BTN, rbutilFrm::OnRemoveBtn) |
42 | EVT_BUTTON (ID_FONT_BTN, rbutilFrm::OnFontBtn) | 44 | EVT_BUTTON (ID_FONT_BTN, rbutilFrm::OnFontBtn) |
45 | EVT_BUTTON (ID_THEMES_BTN, rbutilFrm::OnThemesBtn) | ||
43 | EVT_BUTTON (ID_BOOTLOADER_BTN, rbutilFrm::OnBootloaderBtn) | 46 | EVT_BUTTON (ID_BOOTLOADER_BTN, rbutilFrm::OnBootloaderBtn) |
44 | EVT_BUTTON (ID_BOOTLOADERREMOVE_BTN, rbutilFrm::OnBootloaderRemoveBtn) | 47 | EVT_BUTTON (ID_BOOTLOADERREMOVE_BTN, rbutilFrm::OnBootloaderRemoveBtn) |
45 | 48 | ||
@@ -83,7 +86,7 @@ void rbutilFrm::CreateGUIControls(void) | |||
83 | WxBoxSizer2->Add(WxStaticBitmap1,0,wxALIGN_CENTER_HORIZONTAL | wxALL,5); | 86 | WxBoxSizer2->Add(WxStaticBitmap1,0,wxALIGN_CENTER_HORIZONTAL | wxALL,5); |
84 | 87 | ||
85 | wxStaticBox* WxStaticBoxSizer3_StaticBoxObj = new wxStaticBox(WxPanel1, | 88 | wxStaticBox* WxStaticBoxSizer3_StaticBoxObj = new wxStaticBox(WxPanel1, |
86 | wxID_ANY, _("Please choose an option")); | 89 | wxID_ANY, wxT("Please choose an option")); |
87 | wxStaticBoxSizer* WxStaticBoxSizer3 = | 90 | wxStaticBoxSizer* WxStaticBoxSizer3 = |
88 | new wxStaticBoxSizer(WxStaticBoxSizer3_StaticBoxObj,wxHORIZONTAL); | 91 | new wxStaticBoxSizer(WxStaticBoxSizer3_StaticBoxObj,wxHORIZONTAL); |
89 | WxBoxSizer2->Add(WxStaticBoxSizer3,1,wxALIGN_CENTER_HORIZONTAL | wxALL, 5); | 92 | WxBoxSizer2->Add(WxStaticBoxSizer3,1,wxALIGN_CENTER_HORIZONTAL | wxALL, 5); |
@@ -95,13 +98,13 @@ void rbutilFrm::CreateGUIControls(void) | |||
95 | WxBitmapButton4 = new wxBitmapButton(WxPanel1, ID_BOOTLOADER_BTN, | 98 | WxBitmapButton4 = new wxBitmapButton(WxPanel1, ID_BOOTLOADER_BTN, |
96 | BootloaderInstallButton, wxPoint(0,0), wxSize(64,54), | 99 | BootloaderInstallButton, wxPoint(0,0), wxSize(64,54), |
97 | wxRAISED_BORDER | wxBU_AUTODRAW); | 100 | wxRAISED_BORDER | wxBU_AUTODRAW); |
98 | WxBitmapButton4->SetToolTip(_("Instructions for installing the " | 101 | WxBitmapButton4->SetToolTip(wxT("Instructions for installing the " |
99 | "Rockbox bootloader on your audio device")); | 102 | "Rockbox bootloader on your audio device")); |
100 | WxFlexGridSizer1->Add(WxBitmapButton4, 0, | 103 | WxFlexGridSizer1->Add(WxBitmapButton4, 0, |
101 | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5); | 104 | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5); |
102 | 105 | ||
103 | wxStaticText* WxStaticText5 = new wxStaticText(WxPanel1, wxID_ANY, | 106 | wxStaticText* WxStaticText5 = new wxStaticText(WxPanel1, wxID_ANY, |
104 | _("Bootloader installation instructions\n\n" | 107 | wxT("Bootloader installation instructions\n\n" |
105 | "Before Rockbox can be installed on your audio player, you " | 108 | "Before Rockbox can be installed on your audio player, you " |
106 | "may have to\ninstall a bootloader. This can not currently " | 109 | "may have to\ninstall a bootloader. This can not currently " |
107 | "be done automatically, but is\nonly necessary the first time " | 110 | "be done automatically, but is\nonly necessary the first time " |
@@ -114,12 +117,12 @@ void rbutilFrm::CreateGUIControls(void) | |||
114 | WxBitmapButton1_BITMAP, wxPoint(0,0), wxSize(64,54), | 117 | WxBitmapButton1_BITMAP, wxPoint(0,0), wxSize(64,54), |
115 | wxRAISED_BORDER | wxBU_AUTODRAW, wxDefaultValidator, | 118 | wxRAISED_BORDER | wxBU_AUTODRAW, wxDefaultValidator, |
116 | wxT("WxBitmapButton1")); | 119 | wxT("WxBitmapButton1")); |
117 | WxBitmapButton1->SetToolTip(_("Install Rockbox")); | 120 | WxBitmapButton1->SetToolTip(wxT("Install Rockbox")); |
118 | WxFlexGridSizer1->Add(WxBitmapButton1,0, | 121 | WxFlexGridSizer1->Add(WxBitmapButton1,0, |
119 | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5); | 122 | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5); |
120 | 123 | ||
121 | WxStaticText2 = new wxStaticText(WxPanel1, ID_WXSTATICTEXT2, | 124 | WxStaticText2 = new wxStaticText(WxPanel1, ID_WXSTATICTEXT2, |
122 | _("Install Rockbox on your audio player")); | 125 | wxT("Install Rockbox on your audio player")); |
123 | WxFlexGridSizer1->Add(WxStaticText2,0, | 126 | WxFlexGridSizer1->Add(WxStaticText2,0, |
124 | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5); | 127 | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5); |
125 | 128 | ||
@@ -127,13 +130,13 @@ void rbutilFrm::CreateGUIControls(void) | |||
127 | WxBitmapButton3 = new wxBitmapButton(WxPanel1, ID_FONT_BTN, | 130 | WxBitmapButton3 = new wxBitmapButton(WxPanel1, ID_FONT_BTN, |
128 | FontInstallButton, wxPoint(0,0), wxSize(64,54), | 131 | FontInstallButton, wxPoint(0,0), wxSize(64,54), |
129 | wxRAISED_BORDER | wxBU_AUTODRAW); | 132 | wxRAISED_BORDER | wxBU_AUTODRAW); |
130 | WxBitmapButton3->SetToolTip(_("Download the most up to date " | 133 | WxBitmapButton3->SetToolTip(wxT("Download the most up to date " |
131 | "Rockbox fonts.")); | 134 | "Rockbox fonts.")); |
132 | WxFlexGridSizer1->Add(WxBitmapButton3, 0, | 135 | WxFlexGridSizer1->Add(WxBitmapButton3, 0, |
133 | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5); | 136 | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5); |
134 | 137 | ||
135 | wxStaticText* WxStaticText4 = new wxStaticText(WxPanel1, wxID_ANY, | 138 | wxStaticText* WxStaticText4 = new wxStaticText(WxPanel1, wxID_ANY, |
136 | _("Install the Rockbox fonts package\n\n" | 139 | wxT("Install the Rockbox fonts package\n\n" |
137 | "This step is only needed if you have installed " | 140 | "This step is only needed if you have installed " |
138 | "a daily build and want\nthe full set of Rockbox fonts. You " | 141 | "a daily build and want\nthe full set of Rockbox fonts. You " |
139 | "will not need to download these\nagain unless you uninstall " | 142 | "will not need to download these\nagain unless you uninstall " |
@@ -141,48 +144,62 @@ void rbutilFrm::CreateGUIControls(void) | |||
141 | WxFlexGridSizer1->Add(WxStaticText4, 0, | 144 | WxFlexGridSizer1->Add(WxStaticText4, 0, |
142 | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5); | 145 | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5); |
143 | 146 | ||
147 | |||
148 | wxBitmap ThemesInstallButton (themes_3d_xpm); | ||
149 | WxBitmapButton5 = new wxBitmapButton(WxPanel1, ID_THEMES_BTN, | ||
150 | ThemesInstallButton, wxPoint(0,0), wxSize(64,54), | ||
151 | wxRAISED_BORDER | wxBU_AUTODRAW); | ||
152 | WxBitmapButton5->SetToolTip(wxT("Download other Themes for Rockbox.")); | ||
153 | WxFlexGridSizer1->Add(WxBitmapButton5, 0, | ||
154 | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5); | ||
155 | |||
156 | wxStaticText* WxStaticText6 = new wxStaticText(WxPanel1, wxID_ANY, | ||
157 | wxT("Install more Themes for Rockbox.\n\n")); | ||
158 | WxFlexGridSizer1->Add(WxStaticText6, 0, | ||
159 | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5); | ||
160 | |||
144 | wxBitmap WxBitmapButton2_BITMAP (uninstall_3d_xpm); | 161 | wxBitmap WxBitmapButton2_BITMAP (uninstall_3d_xpm); |
145 | WxBitmapButton2 = new wxBitmapButton(WxPanel1, ID_REMOVE_BTN, | 162 | WxBitmapButton2 = new wxBitmapButton(WxPanel1, ID_REMOVE_BTN, |
146 | WxBitmapButton2_BITMAP, wxPoint(0,0), wxSize(64,54), | 163 | WxBitmapButton2_BITMAP, wxPoint(0,0), wxSize(64,54), |
147 | wxRAISED_BORDER | wxBU_AUTODRAW, wxDefaultValidator, | 164 | wxRAISED_BORDER | wxBU_AUTODRAW, wxDefaultValidator, |
148 | wxT("WxBitmapButton2")); | 165 | wxT("WxBitmapButton2")); |
149 | WxBitmapButton2->SetToolTip(_("Uninstall Rockbox")); | 166 | WxBitmapButton2->SetToolTip(wxT("Uninstall Rockbox")); |
150 | WxFlexGridSizer1->Add(WxBitmapButton2,0, | 167 | WxFlexGridSizer1->Add(WxBitmapButton2,0, |
151 | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5); | 168 | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5); |
152 | 169 | ||
153 | WxStaticText3 = new wxStaticText(WxPanel1, ID_WXSTATICTEXT3, | 170 | WxStaticText3 = new wxStaticText(WxPanel1, ID_WXSTATICTEXT3, |
154 | _("Remove Rockbox from your audio player")); | 171 | wxT("Remove Rockbox from your audio player")); |
155 | WxFlexGridSizer1->Add(WxStaticText3,0, | 172 | WxFlexGridSizer1->Add(WxStaticText3,0, |
156 | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5); | 173 | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5); |
157 | 174 | ||
158 | wxBitmap WxBitmapButton4_BITMAP (uninstall_3d_xpm); | 175 | wxBitmap WxBitmapButton4_BITMAP (untools2_3d_xpm); |
159 | WxBitmapButton4 = new wxBitmapButton(WxPanel1, ID_BOOTLOADERREMOVE_BTN, | 176 | WxBitmapButton4 = new wxBitmapButton(WxPanel1, ID_BOOTLOADERREMOVE_BTN, |
160 | WxBitmapButton4_BITMAP, wxPoint(0,0), wxSize(64,54), | 177 | WxBitmapButton4_BITMAP, wxPoint(0,0), wxSize(64,54), |
161 | wxRAISED_BORDER | wxBU_AUTODRAW, wxDefaultValidator, | 178 | wxRAISED_BORDER | wxBU_AUTODRAW, wxDefaultValidator, |
162 | wxT("WxBitmapButton4")); | 179 | wxT("WxBitmapButton4")); |
163 | WxBitmapButton4->SetToolTip(_("Uninstall Bootloader")); | 180 | WxBitmapButton4->SetToolTip(wxT("Uninstall Bootloader")); |
164 | WxFlexGridSizer1->Add(WxBitmapButton4,0, | 181 | WxFlexGridSizer1->Add(WxBitmapButton4,0, |
165 | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5); | 182 | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5); |
166 | 183 | ||
167 | WxStaticText4 = new wxStaticText(WxPanel1, ID_WXSTATICTEXT4, | 184 | WxStaticText4 = new wxStaticText(WxPanel1, ID_WXSTATICTEXT4, |
168 | _("Remove Rockbox Bootloader from your audio player")); | 185 | wxT("Remove Rockbox Bootloader from your audio player")); |
169 | WxFlexGridSizer1->Add(WxStaticText4,0, | 186 | WxFlexGridSizer1->Add(WxStaticText4,0, |
170 | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5); | 187 | wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5); |
171 | 188 | ||
172 | WxMenuBar1 = new wxMenuBar(); | 189 | WxMenuBar1 = new wxMenuBar(); |
173 | wxMenu *ID_FILE_MENU_Mnu_Obj = new wxMenu(0); | 190 | wxMenu *ID_FILE_MENU_Mnu_Obj = new wxMenu(0); |
174 | WxMenuBar1->Append(ID_FILE_MENU_Mnu_Obj, _("&File")); | 191 | WxMenuBar1->Append(ID_FILE_MENU_Mnu_Obj, wxT("&File")); |
175 | 192 | ||
176 | ID_FILE_MENU_Mnu_Obj->Append(ID_FILE_WIPECACHE, | 193 | ID_FILE_MENU_Mnu_Obj->Append(ID_FILE_WIPECACHE, |
177 | _("&Empty local download cache"), wxT(""), wxITEM_NORMAL); | 194 | wxT("&Empty local download cache"), wxT(""), wxITEM_NORMAL); |
178 | if (! gv->portable ) | 195 | if (! gv->portable ) |
179 | { | 196 | { |
180 | ID_FILE_MENU_Mnu_Obj->Append(ID_PORTABLE_INSTALL, | 197 | ID_FILE_MENU_Mnu_Obj->Append(ID_PORTABLE_INSTALL, |
181 | _("&Install Rockbox Utility on device"), wxT(""), wxITEM_NORMAL); | 198 | wxT("&Install Rockbox Utility on device"), wxT(""), wxITEM_NORMAL); |
182 | } | 199 | } |
183 | ID_FILE_MENU_Mnu_Obj->Append(ID_FILE_ABOUT, _("&About"), wxT(""), | 200 | ID_FILE_MENU_Mnu_Obj->Append(ID_FILE_ABOUT, wxT("&About"), wxT(""), |
184 | wxITEM_NORMAL); | 201 | wxITEM_NORMAL); |
185 | ID_FILE_MENU_Mnu_Obj->Append(ID_FILE_EXIT, _("E&xit\tCtrl+X"), wxT(""), | 202 | ID_FILE_MENU_Mnu_Obj->Append(ID_FILE_EXIT, wxT("E&xit\tCtrl+X"), wxT(""), |
186 | wxITEM_NORMAL); | 203 | wxITEM_NORMAL); |
187 | 204 | ||
188 | this->SetMenuBar(WxMenuBar1); | 205 | this->SetMenuBar(WxMenuBar1); |
@@ -191,24 +208,24 @@ void rbutilFrm::CreateGUIControls(void) | |||
191 | GetSizer()->SetSizeHints(this); | 208 | GetSizer()->SetSizeHints(this); |
192 | if (gv->portable) | 209 | if (gv->portable) |
193 | { | 210 | { |
194 | this->SetTitle(_("Rockbox Utility (portable)")); | 211 | this->SetTitle(wxT("Rockbox Utility (portable)")); |
195 | } else | 212 | } else |
196 | { | 213 | { |
197 | this->SetTitle(_("Rockbox Utility")); | 214 | this->SetTitle(wxT("Rockbox Utility")); |
198 | } | 215 | } |
199 | this->Center(); | 216 | this->Center(); |
200 | wxIcon rbutilFrm_ICON (rbutilFrm_XPM); | 217 | wxIcon rbutilFrm_ICON (rbutilFrm_XPM); |
201 | this->SetIcon(rbutilFrm_XPM); | 218 | this->SetIcon(rbutilFrm_XPM); |
202 | this->SetToolTip(wxT("Install Rockbox")); | 219 | this->SetToolTip(wxT("Install Rockbox")); |
203 | 220 | ||
204 | wxLogVerbose("=== end rbutilFrm::CreateGUIControls"); | 221 | wxLogVerbose(wxT("=== end rbutilFrm::CreateGUIControls")); |
205 | } | 222 | } |
206 | 223 | ||
207 | void rbutilFrm::rbutilFrmClose(wxCloseEvent& event) | 224 | void rbutilFrm::rbutilFrmClose(wxCloseEvent& event) |
208 | { | 225 | { |
209 | wxLogVerbose("=== begin rbutilFrm::rbutilFrmClose(event)"); | 226 | wxLogVerbose(wxT("=== begin rbutilFrm::rbutilFrmClose(event)")); |
210 | Destroy(); | 227 | Destroy(); |
211 | wxLogVerbose("=== end rbutilFrm::rbutilFrmClose"); | 228 | wxLogVerbose(wxT("=== end rbutilFrm::rbutilFrmClose")); |
212 | } | 229 | } |
213 | 230 | ||
214 | 231 | ||
@@ -217,9 +234,9 @@ void rbutilFrm::rbutilFrmClose(wxCloseEvent& event) | |||
217 | */ | 234 | */ |
218 | void rbutilFrm::OnFileExit(wxCommandEvent& event) | 235 | void rbutilFrm::OnFileExit(wxCommandEvent& event) |
219 | { | 236 | { |
220 | wxLogVerbose("=== begin rbutilFrm::OnFileExit(event)"); | 237 | wxLogVerbose(wxT("=== begin rbutilFrm::OnFileExit(event)")); |
221 | Close(); | 238 | Close(); |
222 | wxLogVerbose("=== end rbutilFrm::OnFileExit"); | 239 | wxLogVerbose(wxT("=== end rbutilFrm::OnFileExit")); |
223 | } | 240 | } |
224 | 241 | ||
225 | // The routines this code uses are in the wxWidgets documentation, but | 242 | // The routines this code uses are in the wxWidgets documentation, but |
@@ -230,11 +247,11 @@ void rbutilFrm::OnFileAbout(wxCommandEvent& event) | |||
230 | /* | 247 | /* |
231 | wxAboutDialogInfo *info = new wxAboutDialogInfo(); | 248 | wxAboutDialogInfo *info = new wxAboutDialogInfo(); |
232 | 249 | ||
233 | info->SetName(_(RBUTIL_FULLNAME)); | 250 | info->SetName(wxT(RBUTIL_FULLNAME)); |
234 | info->SetVersion(_(RBUTIL_VERSION)); | 251 | info->SetVersion(wxT(RBUTIL_VERSION)); |
235 | info->SetCopyright(_(RBUTIL_COPYRIGHT)); | 252 | info->SetCopyright(wxT(RBUTIL_COPYRIGHT)); |
236 | info->SetDescription(_(RBUTIL_DESCRIPTION)); | 253 | info->SetDescription(wxT(RBUTIL_DESCRIPTION)); |
237 | info->SetWebSite(_(RBUTIL_WEBSITE)); | 254 | info->SetWebSite(wxT(RBUTIL_WEBSITE)); |
238 | 255 | ||
239 | long i = 0; | 256 | long i = 0; |
240 | while (rbutil_developers[i] != "") | 257 | while (rbutil_developers[i] != "") |
@@ -256,8 +273,8 @@ void rbutilFrm::OnFileWipeCache(wxCommandEvent& event) | |||
256 | datadir = gv->stdpaths->GetUserDataDir(); | 273 | datadir = gv->stdpaths->GetUserDataDir(); |
257 | if (datadir == "") | 274 | if (datadir == "") |
258 | { | 275 | { |
259 | ERR_DIALOG(_("Can't locate user data directory. Unable to delete " | 276 | ERR_DIALOG(wxT("Can't locate user data directory. Unable to delete " |
260 | "cache."), _("Delete download cache.") ); | 277 | "cache."), wxT("Delete download cache.") ); |
261 | return; | 278 | return; |
262 | } | 279 | } |
263 | 280 | ||
@@ -266,13 +283,13 @@ void rbutilFrm::OnFileWipeCache(wxCommandEvent& event) | |||
266 | 283 | ||
267 | if (! rm_rf(cacheloc) ) | 284 | if (! rm_rf(cacheloc) ) |
268 | { | 285 | { |
269 | wxMessageDialog* msg = new wxMessageDialog(this, _("Local download cache has been deleted.") | 286 | wxMessageDialog* msg = new wxMessageDialog(this, wxT("Local download cache has been deleted.") |
270 | ,"Cache deletion", wxOK |wxICON_INFORMATION); | 287 | ,"Cache deletion", wxOK |wxICON_INFORMATION); |
271 | msg->ShowModal(); | 288 | msg->ShowModal(); |
272 | delete msg; | 289 | delete msg; |
273 | } | 290 | } |
274 | else { | 291 | else { |
275 | MESG_DIALOG(_("Errors occured deleting the local download cache.")); | 292 | MESG_DIALOG(wxT("Errors occured deleting the local download cache.")); |
276 | } | 293 | } |
277 | 294 | ||
278 | wxMkdir(cacheloc, 0777); | 295 | wxMkdir(cacheloc, 0777); |
@@ -280,10 +297,10 @@ void rbutilFrm::OnFileWipeCache(wxCommandEvent& event) | |||
280 | 297 | ||
281 | void rbutilFrm::OnBootloaderRemoveBtn(wxCommandEvent& event) | 298 | void rbutilFrm::OnBootloaderRemoveBtn(wxCommandEvent& event) |
282 | { | 299 | { |
283 | wxLogVerbose("=== begin rbutilFrm::OnBootloaderRemoveBtn(event)"); | 300 | wxLogVerbose(wxT("=== begin rbutilFrm::OnBootloaderRemoveBtn(event)")); |
284 | 301 | ||
285 | wxWizard *wizard = new wxWizard(this, wxID_ANY, | 302 | wxWizard *wizard = new wxWizard(this, wxID_ANY, |
286 | _("Rockbox Bootloader Uninstallation Wizard"), | 303 | wxT("Rockbox Bootloader Uninstallation Wizard"), |
287 | wxBitmap(wizard_xpm), | 304 | wxBitmap(wizard_xpm), |
288 | wxDefaultPosition, | 305 | wxDefaultPosition, |
289 | wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER); | 306 | wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER); |
@@ -302,83 +319,83 @@ void rbutilFrm::OnBootloaderRemoveBtn(wxCommandEvent& event) | |||
302 | if (wizard->RunWizard(page1) ) | 319 | if (wizard->RunWizard(page1) ) |
303 | { | 320 | { |
304 | // uninstall the bootloader | 321 | // uninstall the bootloader |
305 | if(gv->curbootloadermethod == "ipodpatcher") | 322 | if(gv->curbootloadermethod == wxT("ipodpatcher")) |
306 | { | 323 | { |
307 | 324 | ||
308 | if(ipodpatcher(BOOTLOADER_REM)) | 325 | if(ipodpatcher(BOOTLOADER_REM)) |
309 | { | 326 | { |
310 | wxMessageDialog* msg = new wxMessageDialog(this, _("The Bootloader has been uninstalled.") | 327 | wxMessageDialog* msg = new wxMessageDialog(this, wxT("The Bootloader has been uninstalled.") |
311 | ,"Uninstallation", wxOK |wxICON_INFORMATION); | 328 | ,wxT("Uninstallation"), wxOK |wxICON_INFORMATION); |
312 | msg->ShowModal(); | 329 | msg->ShowModal(); |
313 | delete msg; | 330 | delete msg; |
314 | } | 331 | } |
315 | else | 332 | else |
316 | { | 333 | { |
317 | MESG_DIALOG(_("The Uninstallation has failed.") ); | 334 | MESG_DIALOG(wxT("The Uninstallation has failed.") ); |
318 | } | 335 | } |
319 | } | 336 | } |
320 | else if(gv->curbootloadermethod == "gigabeatf") | 337 | else if(gv->curbootloadermethod == wxT("gigabeatf")) |
321 | { | 338 | { |
322 | 339 | ||
323 | if(gigabeatf(BOOTLOADER_REM)) | 340 | if(gigabeatf(BOOTLOADER_REM)) |
324 | { | 341 | { |
325 | wxMessageDialog* msg = new wxMessageDialog(this, _("The Bootloader has been uninstalled.") | 342 | wxMessageDialog* msg = new wxMessageDialog(this, wxT("The Bootloader has been uninstalled.") |
326 | ,"Uninstallation", wxOK |wxICON_INFORMATION); | 343 | ,wxT("Uninstallation"), wxOK |wxICON_INFORMATION); |
327 | msg->ShowModal(); | 344 | msg->ShowModal(); |
328 | delete msg; | 345 | delete msg; |
329 | } | 346 | } |
330 | else | 347 | else |
331 | MESG_DIALOG(_("The Uninstallation has failed.") ); | 348 | MESG_DIALOG(wxT("The Uninstallation has failed.") ); |
332 | } | 349 | } |
333 | else if(gv->curbootloadermethod == "h10") | 350 | else if(gv->curbootloadermethod == wxT("h10")) |
334 | { | 351 | { |
335 | if(h10(BOOTLOADER_REM)) | 352 | if(h10(BOOTLOADER_REM)) |
336 | { | 353 | { |
337 | wxMessageDialog* msg = new wxMessageDialog(this, _("The Bootloader has been uninstalled.") | 354 | wxMessageDialog* msg = new wxMessageDialog(this, wxT("The Bootloader has been uninstalled.") |
338 | ,"Uninstallation", wxOK |wxICON_INFORMATION); | 355 | ,wxT("Uninstallation"), wxOK |wxICON_INFORMATION); |
339 | msg->ShowModal(); | 356 | msg->ShowModal(); |
340 | delete msg; | 357 | delete msg; |
341 | } | 358 | } |
342 | else | 359 | else |
343 | MESG_DIALOG(_("The Uninstallation has failed.") ); | 360 | MESG_DIALOG(wxT("The Uninstallation has failed.") ); |
344 | 361 | ||
345 | } | 362 | } |
346 | else if(gv->curbootloadermethod == "iaudio" ) | 363 | else if(gv->curbootloadermethod == wxT("iaudio") ) |
347 | { | 364 | { |
348 | wxMessageDialog* msg = new wxMessageDialog(this, _("To uninstall the Bootloader on this Device,\n" | 365 | wxMessageDialog* msg = new wxMessageDialog(this, wxT("To uninstall the Bootloader on this Device,\n" |
349 | "you need to download and install an Original Firmware from the Manufacturer.") | 366 | "you need to download and install an Original Firmware from the Manufacturer.") |
350 | ,"Uninstallation", wxOK |wxICON_INFORMATION); | 367 | ,wxT("Uninstallation"), wxOK |wxICON_INFORMATION); |
351 | msg->ShowModal(); | 368 | msg->ShowModal(); |
352 | delete msg; | 369 | delete msg; |
353 | } | 370 | } |
354 | else if(gv->curbootloadermethod == "fwpatcher" ) | 371 | else if(gv->curbootloadermethod == wxT("fwpatcher") ) |
355 | { | 372 | { |
356 | wxMessageDialog* msg = new wxMessageDialog(this, _("To uninstall the Bootloader on this Device,\n" | 373 | wxMessageDialog* msg = new wxMessageDialog(this, wxT("To uninstall the Bootloader on this Device,\n" |
357 | "you need to download and install an original Firmware from the Manufacturer.\n" | 374 | "you need to download and install an original Firmware from the Manufacturer.\n" |
358 | "To do this, you need to boot into the original Firmware.") | 375 | "To do this, you need to boot into the original Firmware.") |
359 | ,"Uninstallation", wxOK |wxICON_INFORMATION); | 376 | ,wxT("Uninstallation"), wxOK |wxICON_INFORMATION); |
360 | msg->ShowModal(); | 377 | msg->ShowModal(); |
361 | delete msg; | 378 | delete msg; |
362 | } | 379 | } |
363 | else | 380 | else |
364 | { | 381 | { |
365 | MESG_DIALOG(_("Unsupported Bootloader Method") ); | 382 | MESG_DIALOG(wxT("Unsupported Bootloader Method") ); |
366 | } | 383 | } |
367 | } | 384 | } |
368 | else | 385 | else |
369 | { | 386 | { |
370 | MESG_DIALOG(_("The bootloader Uninstallation wizard was cancelled") ); | 387 | MESG_DIALOG(wxT("The bootloader Uninstallation wizard was cancelled") ); |
371 | } | 388 | } |
372 | 389 | ||
373 | wxLogVerbose("=== end rbutilFrm::OnBootloaderRemoveBtn"); | 390 | wxLogVerbose(wxT("=== end rbutilFrm::OnBootloaderRemoveBtn")); |
374 | } | 391 | } |
375 | 392 | ||
376 | void rbutilFrm::OnBootloaderBtn(wxCommandEvent& event) | 393 | void rbutilFrm::OnBootloaderBtn(wxCommandEvent& event) |
377 | { | 394 | { |
378 | wxLogVerbose("=== begin rbutilFrm::OnBootloaderBtn(event)"); | 395 | wxLogVerbose(wxT("=== begin rbutilFrm::OnBootloaderBtn(event)")); |
379 | 396 | ||
380 | wxWizard *wizard = new wxWizard(this, wxID_ANY, | 397 | wxWizard *wizard = new wxWizard(this, wxID_ANY, |
381 | _("Rockbox Installation Wizard"), | 398 | wxT("Rockbox Installation Wizard"), |
382 | wxBitmap(wizard_xpm), | 399 | wxBitmap(wizard_xpm), |
383 | wxDefaultPosition, | 400 | wxDefaultPosition, |
384 | wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER); | 401 | wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER); |
@@ -399,84 +416,84 @@ void rbutilFrm::OnBootloaderBtn(wxCommandEvent& event) | |||
399 | if (wizard->RunWizard(page1) ) | 416 | if (wizard->RunWizard(page1) ) |
400 | { | 417 | { |
401 | // start installation depending on player | 418 | // start installation depending on player |
402 | if(gv->curbootloadermethod == "ipodpatcher") | 419 | if(gv->curbootloadermethod == wxT("ipodpatcher")) |
403 | { | 420 | { |
404 | 421 | ||
405 | if(ipodpatcher(BOOTLOADER_ADD)) | 422 | if(ipodpatcher(BOOTLOADER_ADD)) |
406 | { | 423 | { |
407 | wxMessageDialog* msg = new wxMessageDialog(this, _("The Bootloader has been installed on your device.") | 424 | wxMessageDialog* msg = new wxMessageDialog(this, wxT("The Bootloader has been installed on your device.") |
408 | ,"Installation", wxOK |wxICON_INFORMATION); | 425 | ,wxT("Installation"), wxOK |wxICON_INFORMATION); |
409 | msg->ShowModal(); | 426 | msg->ShowModal(); |
410 | delete msg; | 427 | delete msg; |
411 | } | 428 | } |
412 | else | 429 | else |
413 | { | 430 | { |
414 | MESG_DIALOG(_("The installation has failed.") ); | 431 | MESG_DIALOG(wxT("The installation has failed.") ); |
415 | } | 432 | } |
416 | } | 433 | } |
417 | else if(gv->curbootloadermethod == "gigabeatf") | 434 | else if(gv->curbootloadermethod == wxT("gigabeatf")) |
418 | { | 435 | { |
419 | 436 | ||
420 | if(gigabeatf(BOOTLOADER_ADD)) | 437 | if(gigabeatf(BOOTLOADER_ADD)) |
421 | { | 438 | { |
422 | wxMessageDialog* msg = new wxMessageDialog(this, _("The Bootloader has been installed on your device.") | 439 | wxMessageDialog* msg = new wxMessageDialog(this, wxT("The Bootloader has been installed on your device.") |
423 | ,"Installation", wxOK |wxICON_INFORMATION); | 440 | ,wxT("Installation"), wxOK |wxICON_INFORMATION); |
424 | msg->ShowModal(); | 441 | msg->ShowModal(); |
425 | delete msg; | 442 | delete msg; |
426 | } | 443 | } |
427 | else | 444 | else |
428 | MESG_DIALOG(_("The installation has failed.") ); | 445 | MESG_DIALOG(wxT("The installation has failed.") ); |
429 | } | 446 | } |
430 | else if(gv->curbootloadermethod == "iaudio" ) | 447 | else if(gv->curbootloadermethod == wxT("iaudio") ) |
431 | { | 448 | { |
432 | if(iaudiox5(BOOTLOADER_ADD)) | 449 | if(iaudiox5(BOOTLOADER_ADD)) |
433 | { | 450 | { |
434 | wxMessageDialog* msg = new wxMessageDialog(this, _("The Bootloader has been installed on your device.\n" | 451 | wxMessageDialog* msg = new wxMessageDialog(this, wxT("The Bootloader has been installed on your device.\n" |
435 | "Now turn OFF your Device, unplug USB,and insert Charger\n" | 452 | "Now turn OFF your Device, unplug USB,and insert Charger\n" |
436 | "Your Device will automatically upgrade the flash with the Rockbox bootloader") | 453 | "Your Device will automatically upgrade the flash with the Rockbox bootloader") |
437 | ,"Installation", wxOK |wxICON_INFORMATION); | 454 | ,wxT("Installation"), wxOK |wxICON_INFORMATION); |
438 | msg->ShowModal(); | 455 | msg->ShowModal(); |
439 | delete msg; | 456 | delete msg; |
440 | } | 457 | } |
441 | else | 458 | else |
442 | MESG_DIALOG(_("The installation has failed.") ); | 459 | MESG_DIALOG(wxT("The installation has failed.") ); |
443 | } | 460 | } |
444 | else if(gv->curbootloadermethod == "fwpatcher") | 461 | else if(gv->curbootloadermethod == wxT("fwpatcher")) |
445 | { | 462 | { |
446 | if(fwpatcher(BOOTLOADER_ADD)) | 463 | if(fwpatcher(BOOTLOADER_ADD)) |
447 | { | 464 | { |
448 | wxMessageDialog* msg = new wxMessageDialog(this, _("The Bootloader has been patched and copied on your device.\n" | 465 | wxMessageDialog* msg = new wxMessageDialog(this, wxT("The Bootloader has been patched and copied on your device.\n" |
449 | "Now use the Firmware upgrade option of your Device\n") | 466 | "Now use the Firmware upgrade option of your Device\n") |
450 | ,"Installation", wxOK |wxICON_INFORMATION); | 467 | ,wxT("Installation"), wxOK |wxICON_INFORMATION); |
451 | msg->ShowModal(); | 468 | msg->ShowModal(); |
452 | delete msg; | 469 | delete msg; |
453 | } | 470 | } |
454 | else | 471 | else |
455 | MESG_DIALOG(_("The installation has failed.") ); | 472 | MESG_DIALOG(wxT("The installation has failed.") ); |
456 | } | 473 | } |
457 | else if(gv->curbootloadermethod == "h10") | 474 | else if(gv->curbootloadermethod == wxT("h10")) |
458 | { | 475 | { |
459 | if(h10(BOOTLOADER_ADD)) | 476 | if(h10(BOOTLOADER_ADD)) |
460 | { | 477 | { |
461 | wxMessageDialog* msg = new wxMessageDialog(this, _("The Bootloader has been patched and copied on your device.\n") | 478 | wxMessageDialog* msg = new wxMessageDialog(this, wxT("The Bootloader has been patched and copied on your device.\n") |
462 | ,"Installation", wxOK |wxICON_INFORMATION); | 479 | ,wxT("Installation"), wxOK |wxICON_INFORMATION); |
463 | msg->ShowModal(); | 480 | msg->ShowModal(); |
464 | delete msg; | 481 | delete msg; |
465 | } | 482 | } |
466 | else | 483 | else |
467 | MESG_DIALOG(_("The installation has failed.") ); | 484 | MESG_DIALOG(wxT("The installation has failed.") ); |
468 | } | 485 | } |
469 | else | 486 | else |
470 | { | 487 | { |
471 | MESG_DIALOG(_("Unsupported Bootloader Method") ); | 488 | MESG_DIALOG(wxT("Unsupported Bootloader Method") ); |
472 | } | 489 | } |
473 | } | 490 | } |
474 | else | 491 | else |
475 | { | 492 | { |
476 | MESG_DIALOG(_("The bootloader installation wizard was cancelled") ); | 493 | MESG_DIALOG(wxT("The bootloader installation wizard was cancelled") ); |
477 | } | 494 | } |
478 | 495 | ||
479 | wxLogVerbose("=== end rbutilFrm::OnBootloaderBtn"); | 496 | wxLogVerbose(wxT("=== end rbutilFrm::OnBootloaderBtn")); |
480 | 497 | ||
481 | } | 498 | } |
482 | 499 | ||
@@ -485,13 +502,13 @@ void rbutilFrm::OnInstallBtn(wxCommandEvent& event) | |||
485 | wxString src, dest, buf; | 502 | wxString src, dest, buf; |
486 | wxDateTime date; | 503 | wxDateTime date; |
487 | wxTimeSpan day(24); | 504 | wxTimeSpan day(24); |
488 | wxLogVerbose("=== begin rbutilFrm::OnInstallBtn(event)"); | 505 | wxLogVerbose(wxT("=== begin rbutilFrm::OnInstallBtn(event)")); |
489 | wxFileSystem fs; | 506 | wxFileSystem fs; |
490 | wxFileConfig* buildinfo; | 507 | wxFileConfig* buildinfo; |
491 | wxDateSpan oneday; | 508 | wxDateSpan oneday; |
492 | 509 | ||
493 | wxWizard *wizard = new wxWizard(this, wxID_ANY, | 510 | wxWizard *wizard = new wxWizard(this, wxID_ANY, |
494 | _("Rockbox Installation Wizard"), | 511 | wxT("Rockbox Installation Wizard"), |
495 | wxBitmap(wizard_xpm), | 512 | wxBitmap(wizard_xpm), |
496 | wxDefaultPosition, | 513 | wxDefaultPosition, |
497 | wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER); | 514 | wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER); |
@@ -511,20 +528,20 @@ void rbutilFrm::OnInstallBtn(wxCommandEvent& event) | |||
511 | { | 528 | { |
512 | case BUILD_RELEASE: | 529 | case BUILD_RELEASE: |
513 | // This is a URL - don't use PATH_SEP | 530 | // This is a URL - don't use PATH_SEP |
514 | src.Printf("%s%s-%s-%s.zip", | 531 | src.Printf(wxT("%s%s-%s-%s.zip"), |
515 | gv->download_url.c_str(), gv->prog_name.c_str(), | 532 | gv->download_url.c_str(), gv->prog_name.c_str(), |
516 | gv->last_release.c_str(), gv->curplat.c_str()); | 533 | gv->last_release.c_str(), gv->curplat.c_str()); |
517 | dest.Printf("%s" PATH_SEP "download" PATH_SEP "%s-%s-%s.zip", | 534 | dest.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "%s-%s-%s.zip"), |
518 | gv->stdpaths->GetUserDataDir().c_str(), | 535 | gv->stdpaths->GetUserDataDir().c_str(), |
519 | gv->prog_name.c_str(), gv->last_release.c_str(), | 536 | gv->prog_name.c_str(), gv->last_release.c_str(), |
520 | gv->curplat.c_str()); | 537 | gv->curplat.c_str()); |
521 | break; | 538 | break; |
522 | case BUILD_DAILY: | 539 | case BUILD_DAILY: |
523 | dest.Printf("%s" PATH_SEP "download" PATH_SEP "build-info", | 540 | dest.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "build-info"), |
524 | gv->stdpaths->GetUserDataDir().c_str()); | 541 | gv->stdpaths->GetUserDataDir().c_str()); |
525 | if (DownloadURL(gv->server_conf_url, dest)) { | 542 | if (DownloadURL(gv->server_conf_url, dest)) { |
526 | WARN_DIALOG(_("Unable to download build status."), | 543 | WARN_DIALOG(wxT("Unable to download build status."), |
527 | _("Install")); | 544 | wxT("Install")); |
528 | buf = ""; | 545 | buf = ""; |
529 | } else | 546 | } else |
530 | { | 547 | { |
@@ -534,41 +551,41 @@ void rbutilFrm::OnInstallBtn(wxCommandEvent& event) | |||
534 | buildinfo->DeleteAll(); | 551 | buildinfo->DeleteAll(); |
535 | 552 | ||
536 | if (buf.Len() != 8) { | 553 | if (buf.Len() != 8) { |
537 | dest.Printf(_("Invalid build date: %s"), buf.c_str()); | 554 | dest.Printf(wxT("Invalid build date: %s"), buf.c_str()); |
538 | WARN_DIALOG(dest, _("Install")); | 555 | WARN_DIALOG(dest, wxT("Install")); |
539 | buf = ""; | 556 | buf = wxT(""); |
540 | } | 557 | } |
541 | } | 558 | } |
542 | 559 | ||
543 | if (buf == "") { | 560 | if (buf == "") { |
544 | WARN_DIALOG(_("Can't get date of latest build from " | 561 | WARN_DIALOG(wxT("Can't get date of latest build from " |
545 | "server. Using yesterday's date."), _("Install") ); | 562 | "server. Using yesterday's date."), wxT("Install") ); |
546 | date = wxDateTime::Now(); | 563 | date = wxDateTime::Now(); |
547 | date.Subtract(oneday.Day()); | 564 | date.Subtract(oneday.Day()); |
548 | buf = date.Format(wxT("%Y%m%d")); // yes, we want UTC | 565 | buf = date.Format(wxT("%Y%m%d")); // yes, we want UTC |
549 | } | 566 | } |
550 | 567 | ||
551 | src.Printf("%s%s/%s-%s-%s.zip", | 568 | src.Printf(wxT("%s%s/%s-%s-%s.zip"), |
552 | gv->daily_url.c_str(), gv->curplat.c_str(), | 569 | gv->daily_url.c_str(), gv->curplat.c_str(), |
553 | gv->prog_name.c_str(), gv->curplat.c_str(), | 570 | gv->prog_name.c_str(), gv->curplat.c_str(), |
554 | buf.c_str() ); | 571 | buf.c_str() ); |
555 | 572 | ||
556 | dest.Printf("%s" PATH_SEP "download" PATH_SEP "%s-%s-%s.zip", | 573 | dest.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "%s-%s-%s.zip"), |
557 | gv->stdpaths->GetUserDataDir().c_str(), | 574 | gv->stdpaths->GetUserDataDir().c_str(), |
558 | gv->prog_name.c_str(), | 575 | gv->prog_name.c_str(), |
559 | gv->curplat.c_str(), buf.c_str() ); | 576 | gv->curplat.c_str(), buf.c_str() ); |
560 | break; | 577 | break; |
561 | case BUILD_BLEEDING: | 578 | case BUILD_BLEEDING: |
562 | src.Printf("%s%s/%s.zip", | 579 | src.Printf(wxT("%s%s/%s.zip"), |
563 | gv->bleeding_url.c_str(), gv->curplat.c_str(), | 580 | gv->bleeding_url.c_str(), gv->curplat.c_str(), |
564 | gv->prog_name.c_str() ); | 581 | gv->prog_name.c_str() ); |
565 | dest.Printf("%s" PATH_SEP "download" PATH_SEP "%s.zip", | 582 | dest.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "%s.zip"), |
566 | gv->stdpaths->GetUserDataDir().c_str(), | 583 | gv->stdpaths->GetUserDataDir().c_str(), |
567 | gv->prog_name.c_str() ); | 584 | gv->prog_name.c_str() ); |
568 | break; | 585 | break; |
569 | default: | 586 | default: |
570 | ERR_DIALOG(_("Something seriously odd has happened."), | 587 | ERR_DIALOG(wxT("Something seriously odd has happened."), |
571 | _("Install")); | 588 | wxT("Install")); |
572 | return; | 589 | return; |
573 | break; | 590 | break; |
574 | } | 591 | } |
@@ -578,30 +595,30 @@ void rbutilFrm::OnInstallBtn(wxCommandEvent& event) | |||
578 | if ( DownloadURL(src, dest) ) | 595 | if ( DownloadURL(src, dest) ) |
579 | { | 596 | { |
580 | wxRemoveFile(dest); | 597 | wxRemoveFile(dest); |
581 | buf.Printf(_("Unable to download %s"), src.c_str() ); | 598 | buf.Printf(wxT("Unable to download %s"), src.c_str() ); |
582 | ERR_DIALOG(buf, _("Install")); | 599 | ERR_DIALOG(buf, wxT("Install")); |
583 | return; | 600 | return; |
584 | } | 601 | } |
585 | } | 602 | } |
586 | 603 | ||
587 | if ( !UnzipFile(dest, gv->curdestdir, true) ) | 604 | if ( !UnzipFile(dest, gv->curdestdir, true) ) |
588 | { | 605 | { |
589 | wxMessageDialog* msg = new wxMessageDialog(this, _("Rockbox has been installed on your device.") | 606 | wxMessageDialog* msg = new wxMessageDialog(this, wxT("Rockbox has been installed on your device.") |
590 | ,"Installation", wxOK |wxICON_INFORMATION); | 607 | ,wxT("Installation"), wxOK |wxICON_INFORMATION); |
591 | msg->ShowModal(); | 608 | msg->ShowModal(); |
592 | delete msg; | 609 | delete msg; |
593 | } else | 610 | } else |
594 | { | 611 | { |
595 | wxRemoveFile(dest); | 612 | wxRemoveFile(dest); |
596 | buf.Printf(_("Unable to unzip %s"), dest.c_str() ); | 613 | buf.Printf(wxT("Unable to unzip %s"), dest.c_str() ); |
597 | ERR_DIALOG(buf, _("Install")); | 614 | ERR_DIALOG(buf, wxT("Install")); |
598 | } | 615 | } |
599 | } else | 616 | } else |
600 | { | 617 | { |
601 | MESG_DIALOG(_("The installation wizard was cancelled") ); | 618 | MESG_DIALOG(wxT("The installation wizard was cancelled") ); |
602 | } | 619 | } |
603 | 620 | ||
604 | wxLogVerbose("=== end rbutilFrm::OnInstallBtn"); | 621 | wxLogVerbose(wxT("=== end rbutilFrm::OnInstallBtn")); |
605 | } | 622 | } |
606 | 623 | ||
607 | void rbutilFrm::OnFontBtn(wxCommandEvent& event) | 624 | void rbutilFrm::OnFontBtn(wxCommandEvent& event) |
@@ -609,13 +626,13 @@ void rbutilFrm::OnFontBtn(wxCommandEvent& event) | |||
609 | wxString src, dest, buf; | 626 | wxString src, dest, buf; |
610 | wxDateTime date; | 627 | wxDateTime date; |
611 | wxTimeSpan day(24); | 628 | wxTimeSpan day(24); |
612 | wxLogVerbose("=== begin rbutilFrm::OnFontBtn(event)"); | 629 | wxLogVerbose(wxT("=== begin rbutilFrm::OnFontBtn(event)")); |
613 | wxFileSystem fs; | 630 | wxFileSystem fs; |
614 | wxFileConfig* buildinfo; | 631 | wxFileConfig* buildinfo; |
615 | wxDateSpan oneday; | 632 | wxDateSpan oneday; |
616 | 633 | ||
617 | wxWizard *wizard = new wxWizard(this, wxID_ANY, | 634 | wxWizard *wizard = new wxWizard(this, wxID_ANY, |
618 | _("Rockbox Font Installation Wizard"), | 635 | wxT("Rockbox Font Installation Wizard"), |
619 | wxBitmap(wizard_xpm), | 636 | wxBitmap(wizard_xpm), |
620 | wxDefaultPosition, | 637 | wxDefaultPosition, |
621 | wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER); | 638 | wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER); |
@@ -628,9 +645,9 @@ void rbutilFrm::OnFontBtn(wxCommandEvent& event) | |||
628 | buf.Printf(wxT("%s" PATH_SEP ".rockbox"), gv->curdestdir.c_str()) ; | 645 | buf.Printf(wxT("%s" PATH_SEP ".rockbox"), gv->curdestdir.c_str()) ; |
629 | if (! wxDirExists(buf) ) | 646 | if (! wxDirExists(buf) ) |
630 | { | 647 | { |
631 | buf.Printf(_("Rockbox is not yet installed on %s - install " | 648 | buf.Printf(wxT("Rockbox is not yet installed on %s - install " |
632 | "Rockbox first."), buf.c_str() ); | 649 | "Rockbox first."), buf.c_str() ); |
633 | WARN_DIALOG(buf, _("Can't install fonts") ); | 650 | WARN_DIALOG(buf, wxT("Can't install fonts") ); |
634 | return; | 651 | return; |
635 | } | 652 | } |
636 | 653 | ||
@@ -638,8 +655,8 @@ void rbutilFrm::OnFontBtn(wxCommandEvent& event) | |||
638 | gv->stdpaths->GetUserDataDir().c_str()); | 655 | gv->stdpaths->GetUserDataDir().c_str()); |
639 | if (DownloadURL(gv->server_conf_url, dest)) | 656 | if (DownloadURL(gv->server_conf_url, dest)) |
640 | { | 657 | { |
641 | WARN_DIALOG(_("Unable to download build status."), | 658 | WARN_DIALOG(wxT("Unable to download build status."), |
642 | _("Font Install")); | 659 | wxT("Font Install")); |
643 | buf = ""; | 660 | buf = ""; |
644 | } else | 661 | } else |
645 | { | 662 | { |
@@ -649,25 +666,25 @@ void rbutilFrm::OnFontBtn(wxCommandEvent& event) | |||
649 | buildinfo->DeleteAll(); | 666 | buildinfo->DeleteAll(); |
650 | 667 | ||
651 | if (buf.Len() != 8) { | 668 | if (buf.Len() != 8) { |
652 | dest.Printf(_("Invalid build date: %s"), buf.c_str()); | 669 | dest.Printf(wxT("Invalid build date: %s"), buf.c_str()); |
653 | WARN_DIALOG(dest, _("Font Install")); | 670 | WARN_DIALOG(dest, wxT("Font Install")); |
654 | buf = ""; | 671 | buf = ""; |
655 | } | 672 | } |
656 | } | 673 | } |
657 | 674 | ||
658 | if (buf == "") { | 675 | if (buf == "") { |
659 | WARN_DIALOG(_("Can't get date of latest build from " | 676 | WARN_DIALOG(wxT("Can't get date of latest build from " |
660 | "server. Using yesterday's date."), | 677 | "server. Using yesterday's date."), |
661 | _("Font Install") ); | 678 | wxT("Font Install") ); |
662 | date = wxDateTime::Now(); | 679 | date = wxDateTime::Now(); |
663 | date.Subtract(oneday.Day()); | 680 | date.Subtract(oneday.Day()); |
664 | buf = date.Format(wxT("%Y%m%d")); // yes, we want UTC | 681 | buf = date.Format(wxT("%Y%m%d")); // yes, we want UTC |
665 | } | 682 | } |
666 | 683 | ||
667 | src.Printf("%s%s.zip", gv->font_url.c_str(), buf.c_str() ); | 684 | src.Printf(wxT("%s%s.zip"), gv->font_url.c_str(), buf.c_str() ); |
668 | 685 | ||
669 | dest.Printf("%s" PATH_SEP "download" PATH_SEP | 686 | dest.Printf(wxT("%s" PATH_SEP "download" PATH_SEP |
670 | "rockbox-fonts-%s.zip", gv->stdpaths->GetUserDataDir().c_str(), | 687 | "rockbox-fonts-%s.zip"), gv->stdpaths->GetUserDataDir().c_str(), |
671 | buf.c_str() ); | 688 | buf.c_str() ); |
672 | 689 | ||
673 | if ( ! wxFileExists(dest) ) | 690 | if ( ! wxFileExists(dest) ) |
@@ -675,38 +692,88 @@ void rbutilFrm::OnFontBtn(wxCommandEvent& event) | |||
675 | if ( DownloadURL(src, dest) ) | 692 | if ( DownloadURL(src, dest) ) |
676 | { | 693 | { |
677 | wxRemoveFile(dest); | 694 | wxRemoveFile(dest); |
678 | buf.Printf(_("Unable to download %s"), src.c_str() ); | 695 | buf.Printf(wxT("Unable to download %s"), src.c_str() ); |
679 | ERR_DIALOG(buf, _("Font Install")); | 696 | ERR_DIALOG(buf, wxT("Font Install")); |
680 | return; | 697 | return; |
681 | } | 698 | } |
682 | } | 699 | } |
683 | 700 | ||
684 | if ( !UnzipFile(dest, gv->curdestdir, true) ) | 701 | if ( !UnzipFile(dest, gv->curdestdir, true) ) |
685 | { | 702 | { |
686 | wxMessageDialog* msg = new wxMessageDialog(this, _("The Rockbox fonts have been installed on your device.") | 703 | wxMessageDialog* msg = new wxMessageDialog(this, wxT("The Rockbox fonts have been installed on your device.") |
687 | ,"Installation", wxOK |wxICON_INFORMATION); | 704 | ,wxT("Installation"), wxOK |wxICON_INFORMATION); |
688 | msg->ShowModal(); | 705 | msg->ShowModal(); |
689 | delete msg; | 706 | delete msg; |
690 | } else | 707 | } else |
691 | { | 708 | { |
692 | wxRemoveFile(dest); | 709 | wxRemoveFile(dest); |
693 | buf.Printf(_("Unable to unzip %s"), dest.c_str() ); | 710 | buf.Printf(wxT("Unable to unzip %s"), dest.c_str() ); |
694 | ERR_DIALOG(buf, _("Font Install")); | 711 | ERR_DIALOG(buf, wxT("Font Install")); |
695 | } | 712 | } |
696 | } else | 713 | } else |
697 | { | 714 | { |
698 | MESG_DIALOG(_("The font installation wizard was cancelled") ); | 715 | MESG_DIALOG(wxT("The font installation wizard was cancelled") ); |
699 | } | 716 | } |
700 | 717 | ||
701 | wxLogVerbose("=== end rbutilFrm::OnFontBtn"); | 718 | wxLogVerbose(wxT("=== end rbutilFrm::OnFontBtn")); |
702 | } | 719 | } |
703 | 720 | ||
721 | |||
722 | void rbutilFrm::OnThemesBtn(wxCommandEvent& event) | ||
723 | { | ||
724 | wxString src, dest, buf; | ||
725 | wxTimeSpan day(24); | ||
726 | wxLogVerbose(wxT("=== begin rbutilFrm::OnThemesBtn(event)")); | ||
727 | |||
728 | wxWizard *wizard = new wxWizard(this, wxID_ANY, | ||
729 | wxT("Rockbox Themes Installation Wizard"), | ||
730 | wxBitmap(wizard_xpm), | ||
731 | wxDefaultPosition, | ||
732 | wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER); | ||
733 | wxPlatformPage* page1 = new wxPlatformPage(wizard); | ||
734 | wxLocationPage* page2 = new wxLocationPage(wizard); | ||
735 | wxThemesPage* page3 = new wxThemesPage(wizard); | ||
736 | page1->SetNext(page2); | ||
737 | page2->SetPrev(page1); | ||
738 | page2->SetNext(page3); | ||
739 | page3->SetPrev(page2); | ||
740 | |||
741 | wizard->GetPageAreaSizer()->Add(page1); | ||
742 | |||
743 | if (wizard->RunWizard(page1) ) | ||
744 | { | ||
745 | bool success=true; | ||
746 | for(int i=0 ;i < gv->themesToInstall.GetCount();i++) | ||
747 | { | ||
748 | if(!InstallTheme(gv->themesToInstall[i])) | ||
749 | { | ||
750 | MESG_DIALOG(wxT("The Themes installation has failed") ); | ||
751 | success=false; | ||
752 | break; | ||
753 | } | ||
754 | } | ||
755 | if(success) | ||
756 | { | ||
757 | MESG_DIALOG(wxT("The Theme installation completed successfully.") ); | ||
758 | } | ||
759 | |||
760 | |||
761 | } | ||
762 | else | ||
763 | { | ||
764 | MESG_DIALOG(wxT("The Themes installation wizard was cancelled") ); | ||
765 | } | ||
766 | |||
767 | wxLogVerbose(wxT("=== end rbutilFrm::OnThemesBtn(event)")); | ||
768 | } | ||
769 | |||
770 | |||
704 | void rbutilFrm::OnRemoveBtn(wxCommandEvent& event) | 771 | void rbutilFrm::OnRemoveBtn(wxCommandEvent& event) |
705 | { | 772 | { |
706 | wxLogVerbose("=== begin rbutilFrm::OnRemoveBtn(event)"); | 773 | wxLogVerbose(wxT("=== begin rbutilFrm::OnRemoveBtn(event)")); |
707 | 774 | ||
708 | wxWizard *wizard = new wxWizard(this, wxID_ANY, | 775 | wxWizard *wizard = new wxWizard(this, wxID_ANY, |
709 | _("Rockbox Uninstallation Wizard"), | 776 | wxT("Rockbox Uninstallation Wizard"), |
710 | wxBitmap(wizard_xpm), | 777 | wxBitmap(wizard_xpm), |
711 | wxDefaultPosition, | 778 | wxDefaultPosition, |
712 | wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER); | 779 | wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER); |
@@ -722,33 +789,33 @@ void rbutilFrm::OnRemoveBtn(wxCommandEvent& event) | |||
722 | if (Uninstall(gv->curdestdir, gv->curisfull) ) | 789 | if (Uninstall(gv->curdestdir, gv->curisfull) ) |
723 | { | 790 | { |
724 | MESG_DIALOG( | 791 | MESG_DIALOG( |
725 | _("The uninstallation wizard was cancelled or completed with " | 792 | wxT("The uninstallation wizard was cancelled or completed with " |
726 | "some errors.") ); | 793 | "some errors.") ); |
727 | } else { | 794 | } else { |
728 | wxMessageDialog* msg = new wxMessageDialog(this, _("The uninstall wizard completed successfully\n" | 795 | wxMessageDialog* msg = new wxMessageDialog(this, wxT("The uninstall wizard completed successfully\n" |
729 | "Depending on which Device you own, you also have to uninstall the Bootloader") | 796 | "Depending on which Device you own, you also have to uninstall the Bootloader") |
730 | ,"Uninstallation", wxOK |wxICON_INFORMATION); | 797 | ,wxT("Uninstallation"), wxOK |wxICON_INFORMATION); |
731 | msg->ShowModal(); | 798 | msg->ShowModal(); |
732 | delete msg; | 799 | delete msg; |
733 | } | 800 | } |
734 | } else | 801 | } else |
735 | { | 802 | { |
736 | MESG_DIALOG(_("The uninstallation wizard was cancelled.") ); | 803 | MESG_DIALOG(wxT("The uninstallation wizard was cancelled.") ); |
737 | } | 804 | } |
738 | 805 | ||
739 | wxLogVerbose("=== end rbutilFrm::OnRemoveBtn"); | 806 | wxLogVerbose(wxT("=== end rbutilFrm::OnRemoveBtn")); |
740 | } | 807 | } |
741 | 808 | ||
742 | void rbutilFrm::OnPortableInstall(wxCommandEvent& event) | 809 | void rbutilFrm::OnPortableInstall(wxCommandEvent& event) |
743 | { | 810 | { |
744 | wxString src, dest, buf; | 811 | wxString src, dest, buf; |
745 | wxLogVerbose("=== begin rbutilFrm::OnPortableInstall(event)"); | 812 | wxLogVerbose(wxT("=== begin rbutilFrm::OnPortableInstall(event)")); |
746 | wxFileSystem fs; | 813 | wxFileSystem fs; |
747 | wxFileConfig* buildinfo; | 814 | wxFileConfig* buildinfo; |
748 | wxDateSpan oneday; | 815 | wxDateSpan oneday; |
749 | 816 | ||
750 | wxWizard *wizard = new wxWizard(this, wxID_ANY, | 817 | wxWizard *wizard = new wxWizard(this, wxID_ANY, |
751 | _("Rockbox Utility Portable Installation Wizard"), | 818 | wxT("Rockbox Utility Portable Installation Wizard"), |
752 | wxBitmap(wizard_xpm), | 819 | wxBitmap(wizard_xpm), |
753 | wxDefaultPosition, | 820 | wxDefaultPosition, |
754 | wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER); | 821 | wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER); |
@@ -760,24 +827,24 @@ void rbutilFrm::OnPortableInstall(wxCommandEvent& event) | |||
760 | { | 827 | { |
761 | if ( InstallRbutil(gv->curdestdir) ) | 828 | if ( InstallRbutil(gv->curdestdir) ) |
762 | { | 829 | { |
763 | wxMessageDialog* msg = new wxMessageDialog(this, _("The Rockbox Utility has been installed on your device.") | 830 | wxMessageDialog* msg = new wxMessageDialog(this, wxT("The Rockbox Utility has been installed on your device.") |
764 | ,"Installation", wxOK |wxICON_INFORMATION); | 831 | ,wxT("Installation"), wxOK |wxICON_INFORMATION); |
765 | msg->ShowModal(); | 832 | msg->ShowModal(); |
766 | delete msg; | 833 | delete msg; |
767 | } else | 834 | } else |
768 | { | 835 | { |
769 | ERR_DIALOG(_("Installation failed"), _("Portable Install")); | 836 | ERR_DIALOG(wxT("Installation failed"), wxT("Portable Install")); |
770 | } | 837 | } |
771 | } else | 838 | } else |
772 | { | 839 | { |
773 | MESG_DIALOG(_("The portable installation wizard was cancelled") ); | 840 | MESG_DIALOG(wxT("The portable installation wizard was cancelled") ); |
774 | } | 841 | } |
775 | 842 | ||
776 | wxLogVerbose("=== end rbutilFrm::OnUnstallPortable"); | 843 | wxLogVerbose(wxT("=== end rbutilFrm::OnUnstallPortable")); |
777 | } | 844 | } |
778 | 845 | ||
779 | AboutDlg::AboutDlg(rbutilFrm* parent) | 846 | AboutDlg::AboutDlg(rbutilFrm* parent) |
780 | : wxDialog(parent, -1, _("About"), wxDefaultPosition, wxDefaultSize, | 847 | : wxDialog(parent, -1, wxT("About"), wxDefaultPosition, wxDefaultSize, |
781 | wxDEFAULT_DIALOG_STYLE) | 848 | wxDEFAULT_DIALOG_STYLE) |
782 | { | 849 | { |
783 | wxBoxSizer* WxBoxSizer1 = new wxBoxSizer(wxVERTICAL); | 850 | wxBoxSizer* WxBoxSizer1 = new wxBoxSizer(wxVERTICAL); |
@@ -792,13 +859,13 @@ AboutDlg::AboutDlg(rbutilFrm* parent) | |||
792 | WxBoxSizer2->Add(WxStaticBitmap1, 0, wxALL | wxCENTER, 5); | 859 | WxBoxSizer2->Add(WxStaticBitmap1, 0, wxALL | wxCENTER, 5); |
793 | 860 | ||
794 | wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY, | 861 | wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY, |
795 | _(RBUTIL_FULLNAME), wxDefaultPosition, wxDefaultSize, | 862 | wxT(RBUTIL_FULLNAME), wxDefaultPosition, wxDefaultSize, |
796 | wxALIGN_CENTER | wxST_NO_AUTORESIZE ); | 863 | wxALIGN_CENTER | wxST_NO_AUTORESIZE ); |
797 | WxBoxSizer2->Add(WxStaticText1, 0, wxALL | wxCENTER, 5); | 864 | WxBoxSizer2->Add(WxStaticText1, 0, wxALL | wxCENTER, 5); |
798 | WxBoxSizer1->Add(WxBoxSizer2, 0, wxALL, 5); | 865 | WxBoxSizer1->Add(WxBoxSizer2, 0, wxALL, 5); |
799 | 866 | ||
800 | wxStaticText* WxStaticText2 = new wxStaticText(this, wxID_ANY, | 867 | wxStaticText* WxStaticText2 = new wxStaticText(this, wxID_ANY, |
801 | _(RBUTIL_VERSION "\n" RBUTIL_DESCRIPTION "\n\n" RBUTIL_COPYRIGHT)); | 868 | wxT(RBUTIL_VERSION "\n" RBUTIL_DESCRIPTION "\n\n" RBUTIL_COPYRIGHT)); |
802 | WxStaticText2->Wrap(400); | 869 | WxStaticText2->Wrap(400); |
803 | WxBoxSizer1->Add(WxStaticText2, 0, wxALL, 5); | 870 | WxBoxSizer1->Add(WxStaticText2, 0, wxALL, 5); |
804 | 871 | ||
@@ -806,7 +873,7 @@ AboutDlg::AboutDlg(rbutilFrm* parent) | |||
806 | wxT(RBUTIL_WEBSITE), wxT(RBUTIL_WEBSITE) ); | 873 | wxT(RBUTIL_WEBSITE), wxT(RBUTIL_WEBSITE) ); |
807 | WxBoxSizer1->Add(WxHyperlink1, 0, wxALL, 5); | 874 | WxBoxSizer1->Add(WxHyperlink1, 0, wxALL, 5); |
808 | 875 | ||
809 | wxStaticBox* WxStaticBox1 = new wxStaticBox(this, wxID_ANY, _("Contributors:")); | 876 | wxStaticBox* WxStaticBox1 = new wxStaticBox(this, wxID_ANY, wxT("Contributors:")); |
810 | wxStaticBoxSizer* WxStaticBoxSizer2 = new wxStaticBoxSizer(WxStaticBox1, | 877 | wxStaticBoxSizer* WxStaticBoxSizer2 = new wxStaticBoxSizer(WxStaticBox1, |
811 | wxVERTICAL); | 878 | wxVERTICAL); |
812 | wxTextCtrl* WxTextCtrl1 = new wxTextCtrl(this, wxID_ANY, wxEmptyString, | 879 | wxTextCtrl* WxTextCtrl1 = new wxTextCtrl(this, wxID_ANY, wxEmptyString, |
@@ -816,7 +883,7 @@ AboutDlg::AboutDlg(rbutilFrm* parent) | |||
816 | while ( rbutil_developers[i] != "") | 883 | while ( rbutil_developers[i] != "") |
817 | { | 884 | { |
818 | WxTextCtrl1->AppendText(rbutil_developers[i++]); | 885 | WxTextCtrl1->AppendText(rbutil_developers[i++]); |
819 | WxTextCtrl1->AppendText("\n"); | 886 | WxTextCtrl1->AppendText(wxT("\n")); |
820 | } | 887 | } |
821 | 888 | ||
822 | WxBoxSizer1->Add(WxStaticBoxSizer2, 1, wxGROW | wxALL, 5); | 889 | WxBoxSizer1->Add(WxStaticBoxSizer2, 1, wxGROW | wxALL, 5); |
diff --git a/rbutil/rbutilFrm.h b/rbutil/rbutilFrm.h index 9e75be3851..9f922cbbad 100644 --- a/rbutil/rbutilFrm.h +++ b/rbutil/rbutilFrm.h | |||
@@ -58,13 +58,13 @@ public: | |||
58 | public: | 58 | public: |
59 | wxMenuBar *WxMenuBar1; | 59 | wxMenuBar *WxMenuBar1; |
60 | wxStaticText *WxStaticText3; | 60 | wxStaticText *WxStaticText3; |
61 | wxStaticText *WxStaticText4; | ||
62 | wxBitmapButton *WxBitmapButton2; | 61 | wxBitmapButton *WxBitmapButton2; |
63 | wxStaticText *WxStaticText2; | 62 | wxStaticText *WxStaticText2; |
64 | wxBitmapButton *WxBitmapButton1; | 63 | wxBitmapButton *WxBitmapButton1; |
65 | wxBitmapButton *WxBitmapButton3; | 64 | wxBitmapButton *WxBitmapButton3; |
66 | wxBitmapButton *WxBitmapButton4; | 65 | wxBitmapButton *WxBitmapButton4; |
67 | wxBitmapButton *WxBitmapButton5; | 66 | wxBitmapButton *WxBitmapButton5; |
67 | wxBitmapButton *WxBitmapButton6; | ||
68 | wxFlexGridSizer *WxFlexGridSizer1; | 68 | wxFlexGridSizer *WxFlexGridSizer1; |
69 | wxStaticBoxSizer *WxStaticBoxSizer3; | 69 | wxStaticBoxSizer *WxStaticBoxSizer3; |
70 | wxStaticBitmap *WxStaticBitmap1; | 70 | wxStaticBitmap *WxStaticBitmap1; |
@@ -87,6 +87,7 @@ public: | |||
87 | ID_INSTALL_BTN = 1028, | 87 | ID_INSTALL_BTN = 1028, |
88 | ID_WXSTATICBITMAP1 = 1053, | 88 | ID_WXSTATICBITMAP1 = 1053, |
89 | ID_FONT_BTN = 1128, | 89 | ID_FONT_BTN = 1128, |
90 | ID_THEMES_BTN = 1139, | ||
90 | ID_BOOTLOADER_BTN = 1129, | 91 | ID_BOOTLOADER_BTN = 1129, |
91 | ID_WXPANEL1 = 1064, | 92 | ID_WXPANEL1 = 1064, |
92 | 93 | ||
@@ -102,6 +103,7 @@ public: | |||
102 | void OnInstallBtn(wxCommandEvent& event); | 103 | void OnInstallBtn(wxCommandEvent& event); |
103 | void OnRemoveBtn(wxCommandEvent& event); | 104 | void OnRemoveBtn(wxCommandEvent& event); |
104 | void OnFontBtn(wxCommandEvent& event); | 105 | void OnFontBtn(wxCommandEvent& event); |
106 | void OnThemesBtn(wxCommandEvent& event); | ||
105 | void OnBootloaderBtn(wxCommandEvent& event); | 107 | void OnBootloaderBtn(wxCommandEvent& event); |
106 | void OnPortableInstall(wxCommandEvent& event); | 108 | void OnPortableInstall(wxCommandEvent& event); |
107 | void OnBootloaderRemoveBtn(wxCommandEvent& event); | 109 | void OnBootloaderRemoveBtn(wxCommandEvent& event); |
diff --git a/rbutil/uninstall_3d.xpm b/rbutil/uninstall_3d.xpm index 1f93acc4b5..23c7fb05dc 100644 --- a/rbutil/uninstall_3d.xpm +++ b/rbutil/uninstall_3d.xpm | |||
@@ -1,286 +1,313 @@ | |||
1 | /* WxBitmapButton2 XPM */ | 1 | /* XPM */ |
2 | static char *uninstall_3d_xpm[]={ | 2 | static char * uninstall_3d_xpm[] = { |
3 | "56 46 236 2", | 3 | "56 46 264 2", |
4 | " c None", | 4 | " c #FFFFFF", |
5 | " 0 c #BEBABE", | 5 | ". c #BEBABE", |
6 | " 1 c #BEC3BE", | 6 | "+ c #BEC3BE", |
7 | " 2 c #000011", | 7 | "@ c #000011", |
8 | " 3 c #AEAAAE", | 8 | "# c #AEAAAE", |
9 | " 4 c #9E9A9E", | 9 | "$ c #9E9A9E", |
10 | " 5 c #C0B3AE", | 10 | "% c #010101", |
11 | " 6 c #C97577", | 11 | "& c #79869E", |
12 | " 7 c #C45759", | 12 | "* c #C7BAC7", |
13 | " 8 c #BF6B6D", | 13 | "= c #5155FF", |
14 | " 9 c #BEB9BD", | 14 | "- c #5558FC", |
15 | " a c #BFB1B5", | 15 | "; c #6A66E3", |
16 | " b c #C49793", | 16 | "> c #5F3C3B", |
17 | " c c #CE5254", | 17 | ", c #C67175", |
18 | " d c #D81413", | 18 | "' c #623841", |
19 | " e c #DB0505", | 19 | ") c #949194", |
20 | " f c #DB0303", | 20 | "! c #BEBFBB", |
21 | " g c #D81717", | 21 | "~ c #BA7F82", |
22 | " h c #CB6668", | 22 | "{ c #C97173", |
23 | " i c #C1A6AA", | 23 | "] c #431C1D", |
24 | " j c #C64E50", | 24 | "^ c #241D1D", |
25 | " k c #D71E1F", | 25 | "/ c #ADAAAE", |
26 | " l c #D31F1F", | 26 | "( c #6E5EDE", |
27 | " m c #CF4C4D", | 27 | "_ c #BD8587", |
28 | " n c #BA797D", | 28 | ": c #A25A94", |
29 | " o c #C29EA2", | 29 | "< c #C2344A", |
30 | " p c #AFA4A8", | 30 | "[ c #DA0909", |
31 | " q c #C0AAAE", | 31 | "} c #DB0302", |
32 | " r c #C25C5E", | 32 | "| c #D51617", |
33 | " s c #D6201E", | 33 | "1 c #9A8B98", |
34 | " t c #DA0606", | 34 | "2 c #AEAEB6", |
35 | " u c #D81A1B", | 35 | "3 c #C07B7E", |
36 | " v c #CD5D5F", | 36 | "4 c #D81111", |
37 | " w c #D90E0D", | 37 | "5 c #DA0707", |
38 | " x c #D62423", | 38 | "6 c #D71314", |
39 | " y c #C68789", | 39 | "7 c #D13434", |
40 | " z c #010101", | 40 | "8 c #C49094", |
41 | " A c #130101", | 41 | "9 c #C0BCB8", |
42 | " B c #650101", | 42 | "0 c #0D0D0D", |
43 | " C c #C40202", | 43 | "a c #5558FE", |
44 | " D c #DA0202", | 44 | "b c #5449BC", |
45 | " E c #DB0202", | 45 | "c c #A2484A", |
46 | " F c #D42F30", | 46 | "d c #CF1D26", |
47 | " G c #D81516", | 47 | "e c #DC0000", |
48 | " H c #C3595B", | 48 | "f c #DD0000", |
49 | " I c #C2A49F", | 49 | "g c #A1848F", |
50 | " J c #D62424", | 50 | "h c #CE5456", |
51 | " K c #DA0607", | 51 | "i c #DC0101", |
52 | " L c #D14244", | 52 | "j c #D01717", |
53 | " M c #DB0404", | 53 | "k c #943857", |
54 | " N c #D90909", | 54 | "l c #4B1A1A", |
55 | " O c #A10101", | 55 | "m c #524ACB", |
56 | " P c #CA6B6D", | 56 | "n c #4C4FEE", |
57 | " Q c #070101", | 57 | "o c #4A4DE5", |
58 | " R c #3F000C", | 58 | "p c #7D57A6", |
59 | " S c #CD0202", | 59 | "q c #D71F26", |
60 | " T c #DB0203", | 60 | "r c #DB0000", |
61 | " U c #D90C0C", | 61 | "s c #DC0100", |
62 | " V c #CE5556", | 62 | "t c #E20200", |
63 | " W c #C0B2AD", | 63 | "u c #E10000", |
64 | " X c #C7BAC7", | 64 | "v c #E00201", |
65 | " Y c #C59591", | 65 | "w c #D90707", |
66 | " Z c #D41E1E", | 66 | "x c #A13C3C", |
67 | " & c #CE0203", | 67 | "y c #868EA1", |
68 | "0 c #A1246B", | 68 | "z c #B6AEB6", |
69 | "00 c #6F42C7", | 69 | "A c #CFC7CF", |
70 | "01 c #604BE2", | 70 | "B c #452F2E", |
71 | "02 c #9D2774", | 71 | "C c #C92B2B", |
72 | "03 c #D80409", | 72 | "D c #DE0101", |
73 | "04 c #B40202", | 73 | "E c #DF0809", |
74 | "05 c #AE3C48", | 74 | "F c #B80E1A", |
75 | "06 c #8E687A", | 75 | "G c #7D308D", |
76 | "07 c #AFA5A9", | 76 | "H c #6E3FBA", |
77 | "08 c #C49397", | 77 | "I c #7F2C85", |
78 | "09 c #D04546", | 78 | "J c #C70102", |
79 | "0a c #CB0202", | 79 | "K c #DE0000", |
80 | "0b c #DA0305", | 80 | "L c #DD0302", |
81 | "0c c #D60409", | 81 | "M c #DE0203", |
82 | "0d c #A91F5D", | 82 | "N c #B00E28", |
83 | "0e c #300101", | 83 | "O c #AC2945", |
84 | "0f c #BEB4B8", | 84 | "P c #6C0E18", |
85 | "0g c #8E8A8E", | 85 | "Q c #B4949B", |
86 | "0h c #79869E", | 86 | "R c #222020", |
87 | "0i c #B49194", | 87 | "S c #A6989C", |
88 | "0j c #C77D7F", | 88 | "T c #A67578", |
89 | "0k c #D41A1B", | 89 | "U c #9D3234", |
90 | "0l c #783CB5", | 90 | "V c #C90D0D", |
91 | "0m c #5552F7", | 91 | "W c #E50B0B", |
92 | "0n c #AEAEB6", | 92 | "X c #E50202", |
93 | "0o c #B19B9F", | 93 | "Y c #E40304", |
94 | "0p c #CC6163", | 94 | "Z c #E40303", |
95 | "0q c #CC0202", | 95 | "` c #DF0303", |
96 | "0r c #DA0A0A", | 96 | " . c #DB0303", |
97 | "0s c #932D85", | 97 | ".. c #D90306", |
98 | "0t c #5155FF", | 98 | "+. c #CE1723", |
99 | "0u c #C16263", | 99 | "@. c #753FC5", |
100 | "0v c #D33432", | 100 | "#. c #5449DC", |
101 | "0w c #D90707", | 101 | "$. c #5459F3", |
102 | "0x c #C50F29", | 102 | "%. c #100C0D", |
103 | "0y c #6449DC", | 103 | "&. c #48459B", |
104 | "0z c #B6AEB6", | 104 | "*. c #63376A", |
105 | "0A c #CFC7CF", | 105 | "=. c #B6374A", |
106 | "0B c #B58D91", | 106 | "-. c #D1171C", |
107 | "0C c #CF0202", | 107 | ";. c #DB0202", |
108 | "0D c #B21B4C", | 108 | ">. c #DE0202", |
109 | "0E c #1F0101", | 109 | ",. c #9F206C", |
110 | "0F c #C80202", | 110 | "'. c #6660EB", |
111 | "0G c #6847D4", | 111 | "). c #202496", |
112 | "0H c #BA0202", | 112 | "!. c #202495", |
113 | "0I c #D4060F", | 113 | "~. c #343798", |
114 | "0J c #86349C", | 114 | "{. c #B48083", |
115 | "0K c #C11130", | 115 | "]. c #D80101", |
116 | "0L c #D5070F", | 116 | "^. c #DC0303", |
117 | "0M c #773EB8", | 117 | "/. c #DF0100", |
118 | "0N c #202496", | 118 | "(. c #DE0200", |
119 | "0O c #252291", | 119 | "_. c #DD0202", |
120 | "0P c #541A6D", | 120 | ":. c #B31143", |
121 | "0Q c #CE050D", | 121 | "<. c #645CEB", |
122 | "0R c #D10202", | 122 | "[. c #9696AE", |
123 | "0S c #5C4DE9", | 123 | "}. c #1F2390", |
124 | "0T c #CC0B1E", | 124 | "|. c #867274", |
125 | "0U c #D70509", | 125 | "1. c #BB1C1D", |
126 | "0V c #8335A0", | 126 | "2. c #E40101", |
127 | "0W c #9696AE", | 127 | "3. c #AF1F58", |
128 | "0X c #511A6E", | 128 | "4. c #C51539", |
129 | "0Y c #CD050E", | 129 | "5. c #E30202", |
130 | "0Z c #D90B0B", | 130 | "6. c #DC0201", |
131 | "0& c #400101", | 131 | "7. c #A62566", |
132 | "1 c #6B44CD", | 132 | "8. c #5255FE", |
133 | "10 c #D4070F", | 133 | "9. c #7992B6", |
134 | "11 c #CE091A", | 134 | "0. c #717986", |
135 | "12 c #7992B6", | 135 | "a. c #8E6C81", |
136 | "13 c #717986", | 136 | "b. c #C40505", |
137 | "14 c #3F1E7D", | 137 | "c. c #E10100", |
138 | "15 c #CE040C", | 138 | "d. c #930000", |
139 | "16 c #DA0909", | 139 | "e. c #0D040A", |
140 | "17 c #BA7B7E", | 140 | "f. c #200610", |
141 | "18 c #250101", | 141 | "g. c #B30307", |
142 | "19 c #D30202", | 142 | "h. c #E20102", |
143 | "1a c #D51919", | 143 | "i. c #DD0001", |
144 | "1b c #D81010", | 144 | "j. c #891034", |
145 | "1c c #CF4644", | 145 | "k. c #080309", |
146 | "1d c #C49894", | 146 | "l. c #010103", |
147 | "1e c #690101", | 147 | "m. c #9B7795", |
148 | "1f c #D80B0C", | 148 | "n. c #D80B16", |
149 | "1g c #B97D80", | 149 | "o. c #E30201", |
150 | "1h c #DA0203", | 150 | "p. c #DB0201", |
151 | "1i c #8B0101", | 151 | "q. c #C84848", |
152 | "1j c #060010", | 152 | "r. c #938D8A", |
153 | "1k c #B48F92", | 153 | "s. c #887B78", |
154 | "1l c #D60202", | 154 | "t. c #D11111", |
155 | "1m c #BEB1B5", | 155 | "u. c #E00202", |
156 | "1n c #D71918", | 156 | "v. c #EE0100", |
157 | "1o c #DA0B0B", | 157 | "w. c #4D6A15", |
158 | "1p c #C49194", | 158 | "x. c #ADA9AD", |
159 | "1q c #B19C9F", | 159 | "y. c #28080B", |
160 | "1r c #CE2222", | 160 | "z. c #DD0D11", |
161 | "1s c #7A0101", | 161 | "A. c #DC0102", |
162 | "1t c #CB6467", | 162 | "B. c #9F3435", |
163 | "1u c #DC0404", | 163 | "C. c #322D2E", |
164 | "1v c #DC0303", | 164 | "D. c #060707", |
165 | "1w c #D33435", | 165 | "E. c #77312F", |
166 | "1x c #FCEAEA", | 166 | "F. c #8F2926", |
167 | "1y c #C35C5E", | 167 | "G. c #010111", |
168 | "1z c #DA0404", | 168 | "H. c #B0A6AA", |
169 | "1A c #D90808", | 169 | "I. c #B30807", |
170 | "1B c #D81616", | 170 | "J. c #C66265", |
171 | "1C c #D20202", | 171 | "K. c #292728", |
172 | "1D c #570101", | 172 | "L. c #B5A7AA", |
173 | "1E c #9F9599", | 173 | "M. c #D60B0B", |
174 | "1F c #CC3839", | 174 | "N. c #CF0303", |
175 | "1G c #CB6967", | 175 | "O. c #A89595", |
176 | "1H c #970101", | 176 | "P. c #A19CA0", |
177 | "1I c #B78587", | 177 | "Q. c #C35557", |
178 | "1J c #BB0101", | 178 | "R. c #E00101", |
179 | "1K c #B48D91", | 179 | "S. c #9E1717", |
180 | "1L c #FBE9E9", | 180 | "T. c #A9A2A6", |
181 | "1M c #D9100F", | 181 | "U. c #BFC4BF", |
182 | "1N c #D40202", | 182 | "V. c #CB6B6C", |
183 | "1O c #3E0101", | 183 | "W. c #DF0000", |
184 | "1P c #C04444", | 184 | "X. c #E35A59", |
185 | "1Q c #D80202", | 185 | "Y. c #BFC0BC", |
186 | "1R c #AB777A", | 186 | "Z. c #B28C90", |
187 | "1S c #8D0202", | 187 | "`. c #E80A0A", |
188 | "1T c #9F0101", | 188 | " + c #370C0D", |
189 | "1U c #D41919", | 189 | ".+ c #C6BEBB", |
190 | "1V c #D51617", | 190 | "++ c #E12F2E", |
191 | "1W c #867488", | 191 | "@+ c #DE0303", |
192 | "1X c #D70607", | 192 | "#+ c #D60000", |
193 | "1Y c #D40B0C", | 193 | "$+ c #260000", |
194 | "1Z c #7C0101", | 194 | "%+ c #121213", |
195 | "1& c #C0252C", | 195 | "&+ c #C05B5C", |
196 | "2 c #DA0304", | 196 | "*+ c #963334", |
197 | "20 c #8186A7", | 197 | "=+ c #A6A1A5", |
198 | "21 c #B8595B", | 198 | "-+ c #BBB8BC", |
199 | "22 c #B78487", | 199 | ";+ c #B05956", |
200 | "23 c #B9787B", | 200 | ">+ c #E40202", |
201 | "24 c #CF6B72", | 201 | ",+ c #AE1414", |
202 | "25 c #CF3031", | 202 | "'+ c #040101", |
203 | "26 c #D80A0A", | 203 | ")+ c #AFA7AB", |
204 | "27 c #CE0202", | 204 | "!+ c #D30F0F", |
205 | "28 c #D21F20", | 205 | "~+ c #DC0202", |
206 | "29 c #D51112", | 206 | "{+ c #CC0203", |
207 | "2a c #D02728", | 207 | "]+ c #95898C", |
208 | "2b c #CF2E2F", | 208 | "^+ c #040404", |
209 | "2c c #DA0303", | 209 | "/+ c #BDB9BD", |
210 | "2d c #B48E91", | 210 | "(+ c #D0C9CB", |
211 | "2e c #DA0505", | 211 | "_+ c #D8171A", |
212 | "2f c #BE4749", | 212 | ":+ c #261C23", |
213 | "2g c #5E0101", | 213 | "<+ c #513436", |
214 | "2h c #B46163", | 214 | "[+ c #E10101", |
215 | "2i c #AC7578", | 215 | "}+ c #AE4042", |
216 | "2j c #310101", | 216 | "|+ c #131212", |
217 | "2k c #CE2122", | 217 | "1+ c #090909", |
218 | "2l c #C33E40", | 218 | "2+ c #812A2D", |
219 | "2m c #C50202", | 219 | "3+ c #60333C", |
220 | "2n c #D90202", | 220 | "4+ c #C05658", |
221 | "2o c #600101", | 221 | "5+ c #E60303", |
222 | "2p c #C63537", | 222 | "6+ c #986365", |
223 | "2q c #C94445", | 223 | "7+ c #766775", |
224 | "2r c #A69EA6", | 224 | "8+ c #E30606", |
225 | "2s c #7F7D93", | 225 | "9+ c #D12829", |
226 | "2t c #CF1215", | 226 | "0+ c #82899D", |
227 | "2u c #CA191D", | 227 | "a+ c #B72223", |
228 | "2v c #CA2C2D", | 228 | "b+ c #DD0101", |
229 | "2w c #DA0707", | 229 | "c+ c #D20607", |
230 | "2x c #D60F0F", | 230 | "d+ c #A79194", |
231 | "2y c #C43C3D", | 231 | "e+ c #928B8F", |
232 | "2z c #A58589", | 232 | "f+ c #AF1113", |
233 | "2A c #A97C7F", | 233 | "g+ c #DB0101", |
234 | "2B c #CE2223", | 234 | "h+ c #DA0404", |
235 | "2C c #A68589", | 235 | "i+ c #9C8387", |
236 | "2D c #A97D80", | 236 | "j+ c #D01E1F", |
237 | "2E c #B59093", | 237 | "k+ c #E10202", |
238 | "2F c #A09296", | 238 | "l+ c #A50E0E", |
239 | "2G c #9E999D", | 239 | "m+ c #A49DA1", |
240 | " 0", | 240 | "n+ c #ADADB5", |
241 | " 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 2", | 241 | "o+ c #882C2D", |
242 | " 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 2", | 242 | "p+ c #EA0101", |
243 | " 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 2", | 243 | "q+ c #BD6063", |
244 | " 3 0 3 0 4 1 0 3 3 1 3 0 4 1 0 3 3 1 3 0 4 1 0 3 3 1 3 0 4 1 0 3 3 1 3 0 4 5 6 7 8 5 3 0 4 1 0 3 3 1 3 0 3 1 2", | 244 | "r+ c #ADAEB6", |
245 | " 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 9 a b c d e f g h 1 0 1 0 1 0 1 0 0 1 0 0 2", | 245 | "s+ c #D90708", |
246 | " 3 0 3 0 3 0 3 0 3 i j k l m n o p 1 3 0 3 0 3 0 3 0 3 0 3 0 3 q r s t f f f f f f u 3 0 3 0 3 0 3 1 3 0 3 0 2", | 246 | "t+ c #A9292A", |
247 | " 0 1 0 1 0 3 0 0 1 v w f f f f x y 0 1 0 1 z z z z z z z z A B C D E E E E f f f f u 1 0 1 3 1 0 1 0 0 1 0 3 2", | 247 | "u+ c #1D0203", |
248 | " 3 0 4 1 3 0 3 1 4 F f f f f f E E G H q z 0 1 0 1 0 1 0 I J f f f f f f f E f f K h 3 0 3 0 4 0 3 0 4 0 3 0 2", | 248 | "v+ c #D90102", |
249 | " 0 1 0 3 0 1 0 3 0 L M f f f E f E f f N O P A z 2 z Q R S T E T E T E T f E f U V W 0 3 1 0 1 3 1 0 1 3 0 1 2", | 249 | "w+ c #BE454A", |
250 | " 3 0 3 0 3 X 4 1 3 Y Z f f E f f E f f f E f &0 00010203 f f f f f f f E t040506 p X 3 0 4 0 3 0 3 1 3 0 3 0 2", | 250 | "x+ c #CF2121", |
251 | " 0 3 0 1 0 3 1 3 00708090a f f E f E E f E f E f f0b f f f f f f f0c0d0e0f 20g0h 0 3 1 0 1 3 0 3 0 3 0 0 1 3 2", | 251 | "y+ c #D51313", |
252 | " 3 0 3 0 4 0 3 0 3 0 4 Q0i0j04 f f f E E E E E E f f f f f f f f0k0l0m z 1 20h0h0n 0 3 0 3 0 3 0 4 1 3 1 3 0 2", | 252 | "z+ c #603A3B", |
253 | " 0 3 X 3 0 3 0 3 0 3 1 z 1 z 00o0p0q f f f f E E f f f f f f0r0s W0t0t z 0 z0h0h 0 3 0 3 1 3 X 3 0 3 0 3 0 3 2", | 253 | "A+ c #080808", |
254 | " 3 1 3 1 3 0 3 0 3 0 3 z z 0 3 0 z W0u0v0w E f E f f f f f f0x0y 30t0t z 1 z0h0h0z 0 3 0 4 0 3 1 3 0 3 0 4 1 2", | 254 | "B+ c #B4B1B6", |
255 | " 3 3 0 3 3 30A 3 3 3 0 3 z 3 z z z z 00B0C f f E f f f f f f f0D 10t0t 2 0 z0h0h 3 3 0 3 3 3 0 3 3 3 X 3 3 3 2", | 255 | "C+ c #BB6065", |
256 | " 3 0 3 0 3 0 4 0 3 0 3 0 3 z 3 0 3 00E0F f f f E f f f f f f f f0G0t0t z 1 z 40h 3 0 3 1 3 0 3 0 3 0 3 0 3 0 2", | 256 | "D+ c #DB0807", |
257 | " 3 3 3 3 3 3 3 3 3 3 3 3 3 z z z z0E0H f f f f E0I0J0K f f f f f0L0M0m z 0 z0h0h 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2", | 257 | "E+ c #5C3035", |
258 | " 3 0 3 0 3 0 3 0 3 X 3 0 3 z0N0O0P0Q E f f f f0R0G0t0S0T f f f f f0U0V z 1 20h0W 3 0 3 0 3 0 4 1 3 0 3 0 3 0 2", | 258 | "F+ c #AE9598", |
259 | " 3 3 3 3 3 3 3 3 3 3 3 3 3 z0N0X0Y f E f f f0Z0&0t0t0t1 10 f f f f f11 z 0 z1213 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2", | 259 | "G+ c #AC8083", |
260 | " 3 3 3 0 3 3 3 0 3 3 3 0 3 z1415 f f E f f1617 Q z z z z1819 E E E E E Q 1 z0h0h0n 3 3 0 3 3 3 0 3 3 3 0 3 3 2", | 260 | "H+ c #AE989C", |
261 | " 3 3 3 3 3 3 3 3 3 3 3 3 3 A1a f f f E f1b17 3 z 1 1 1 1 11c f f f f f1d 0 z0h0h 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2", | 261 | "I+ c #080707", |
262 | " 3 3 3 3 3 3 3 3 3 3 3 3 31e f f f f E1f1g p 3 z z 2 z 2 z0&1h E E E T1i1j z z z 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2", | 262 | "J+ c #050506", |
263 | " 3 3 3 3 3 3 3 3 3 3 3 31k19 f f f f1l17 3 z 0 z 1 0 0 1 01m1n f f f f1o1p 1 0 0 z 3 3 3 3 3 3 3 3 3 3 3 3 3 2", | 263 | "K+ c #141011", |
264 | " 4 3 3 3 4 3 3 3 4 3 31q1r E f f f f1s p z 3 3 z 0 1 0 11t1u f f1v f1w1x 1 0 z0h 3 3 4 3 3 3 4 3 3 3 4 3 2", | 264 | "L+ c #453133", |
265 | " 3 3 3 3 3 3 3 3 3 3 31y1z E f f f1A A 3 3 z 3 z 1 0 0 1 0 0 W1B E E E E1C1D 0 0 z0h0h 3 3 3 3 3 3 3 3 3 3 3 2", | 265 | "M+ c #453333", |
266 | " 3 3 4 3 4 3 4 3 3 31E0k f E f E f1F z 3 z 3 4 z 0 1 0 1 0 1 01G M E E f E1H Q 1 z0h0h0z 4 3 4 3 3 3 4 3 4 3 2", | 266 | "N+ c #090808", |
267 | " 3 3 3 3 3 3 3 3 3 31I1z f E f f1J1K z 3 3 z 3 z 0 1 0 0 01L1M f E E E1N1O z z0h0h 3 3 3 3 3 3 3 3 3 3 3 2", | 267 | "O+ c #A69EA6", |
268 | " 4 3 4 3 4 3 4 3 4 31P f f E f1Q1R 3 z 3 z 3 4 z z z z z z z z z1S D E E E E1T z0h0h0h 3 4 3 4 3 4 3 4 3 4 3 2", | 268 | " . ", |
269 | " 3 3 3 3 3 3 3 3 3 31U f f E f1V Q 3 z 3 3 3 3 z0h0h0h0h0h0h0h0h1W1X f f f f1Y12130W0h 3 3 3 3 3 3 3 3 3 3 3 2", | 269 | " . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + @ ", |
270 | " 4 3 4 3 4 3 4 3 41q1z f f E f1Z 4 3 z 3 4 3 z z0h0h0h0W13120h0h0g1& f f f f2 201312 4 3 4 3 4 3 4 3 4 3 4 3 2", | 270 | " + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . + . @ ", |
271 | " 3 4 3 3 3 4 3 3 321 f f f E f22 z 4 z 3 3 z0h z z z z z z z z 20n23 f f f f f24 3 4 3 3 3 4 3 3 3 4 3 3 3 4 2", | 271 | " + . . + . . . + . . . + . . . + . . . + . . . + . . . + . . . + . . . + . . . + . . . + . . . + . . . + . . @ ", |
272 | " 4 3 4 3 4 3 4 3 425 f f f E26 Q 4 3 z 3 z0h0h z 4 0 0 0 3 0 z z z Q27 E E f f281E 3 4 3 4 3 4 3 4 3 4 3 4 3 2", | 272 | " # . # . $ + . # # + # . $ + . # # + # . $ + . # # + # . $ + . # # + # . $ + . # # + # . $ + . # # + # . # + @ ", |
273 | " 3 4 3 4 3 4 3 4 329 f f f E2a 4 3 4 z z0h0h0h0h z z z z z z z 3 0 02b f f E f2c2d 4 3 4 3 4 3 4 3 4 3 4 3 4 2", | 273 | " . + . + . + . + . . + . + . + . + . . + . + . + . . + . + . + . + . . + . + . + . . + . + . + . + . . + . . @ ", |
274 | " 4 3 4 3 4 3 4 31E2e f f f E2f 3 4 3 z0h0h0W130z 4 z z z z 0 z z z z2g E E E E f2h 3 4 3 4 3 4 3 4 3 4 3 4 3 2", | 274 | " # . # . # . # . # . # . # . # . # + # . # . # . # . # . # . # . # + # . # . # . # . # . # . # . # + # . # . @ ", |
275 | " 4 4 3 4 4 4 3 42i f f f f E2j z z z0W1312130n 4 4 4 z z z z z z z z A f E E E E2k 4 3 4 4 4 3 4 4 4 3 4 4 4 2", | 275 | " . + . + . # . . + . + . + # . + . . + . + % % % % % % % % % % % % % % % % # . . + . + . + # + . + . . + . # @ ", |
276 | " 4 3 4 3 4 3 4 32l f f f f f1E0h0h0h0h0h0h0z0W 3 4 3 40h z z z z z z z2m E E E E2n 3 4 3 4 3 4 3 4 3 4 3 4 3 2", | 276 | " # . $ + # . # + $ . # . # . $ % % . # . % . + . + . + . + . + . + . . + . % # . $ . # . # . $ . # . $ . # . @ ", |
277 | " 4 4 4 4 4 4 4 42k f f f f0w 40h0h0h0h0h 4 4 4 4 4 4 4 40h0h0h0h0h0h z2o E E E E E0h 4 4 4 4 4 4 4 4 4 4 4 4 2", | 277 | " . + . # . + . # . . + # . + % # % + . # % . % % @ % % @ % @ % @ % @ % @ . % & # . + . # + . + # + . + # . + @ ", |
278 | " 4 3 4 3 4 3 4 32p2e f f M2q 4 32r 3 40n 4 3 4 3 4 3 4 0 4 3 4 X 4 30h2s2t f f f2u0h0h 3 4 3 4 3 4 3 4 3 4 3 2", | 278 | " # . # . # * $ + # + # . # % # . % . # . % + @ = = = = = = = = = = = = % + % & & # * # . $ . # . # + # . # . @ ", |
279 | " 4 4 4 4 4 4 4 42i2v2w2x2y2z 4 4 4 42r 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 42A2B f2B2A 42r 4 4 4 4 4 4 4 4 4 4 4 2", | 279 | " . # . + . # + # . # . . % # . % + % % + % . % = = = = = = = + = + - ; > , ' ) & . # + . + # . # . # . . + # @ ", |
280 | " 4 4 4 3 4 4 4 31E2C2D2E2F2G 4 3 4 4 4 3 4 4 4 3 4 4 4 3 4 4 4 3 4 4 4 3 4 4 4 3 4 4 4 3 4 4 4 3 4 4 4 3 4 4 2", | 280 | " # . # . $ . # . # . $ % # . % ! ~ { ] ^ % % % % = = = = = = / ( _ : < [ } | 1 & 2 . # . # . # . $ + # + # . @ ", |
281 | " 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 2", | 281 | " . # * # . # . # . # + % + % . 3 4 5 6 7 8 9 0 % = = = = a b c d e f f e f f g & . # . # + # * # . # . # . # @ ", |
282 | " 4 3 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 3 4 4 4 4 2", | 282 | " # + # + # . # . # . # % % . # h e i e e e j k l m n = o p q r e s t u v w x y & z . # . $ . # + # . # . $ + @ ", |
283 | " 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 2", | 283 | " # # . # # # A # # # . # % # % B C D e f e e f E F G H I J K L f M N O P Q R & & # # . # # # . # # # * # # # @ ", |
284 | " 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 2", | 284 | " # . # . # . $ . # . # . # % # . S T U V W e e e u X Y Z ` ...+.@.#.$.% + % $ & # . # + # . # . # . # . # . @ ", |
285 | " 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2"}; | 285 | " # # # # # # # # # # # # # % % % % % %.&.*.=.-. .;.;. . . .>.,.'.= = = % . % & & # # # # # # # # # # # # # # @ ", |
286 | 286 | " # . # . # . # . # * # . # % ).).).).% ).!.~.{.].^.;./.(. ._.:.<.= = = % + @ & [.# . # . # . $ + # . # . # . @ ", | |
287 | " # # # # # # # # # # # # # % ).).).).% ).}.|.1.` } 2.3.4.5.} 6.7.8.= = % . % 9.0.# # # # # # # # # # # # # # @ ", | ||
288 | " # # # . # # # . # # # . # % ).).).).% ).a.b.c. .e d.e.f.g.h.} i.j.k.% % + % & & 2 # # . # # # . # # # . # # @ ", | ||
289 | " # # # # # # # # # # # # # % # # # # l.m.n.o.p.K q.r.+ + s.t.u.6.v.w.+ + . % & & # # # # # # # # # # # # # # @ ", | ||
290 | " # # # # # # # # # # # # # % # # # x.y.z./.A.K B.C.@ % @ D.E.r .u F.G.% @ % % % # # # # # # # # # # # # # # @ ", | ||
291 | " # # # # # # # # # # # # # % # # # H.I.c. .r J.K.+ . . + . L.M.i _.N.O.. . + . . % # # # # # # # # # # # # # @ ", | ||
292 | " $ # # # $ # # # $ # # # $ % # # P.Q.R. .X S.T.% . + . U.V.e ;.W.X.Y.. + . % & # # $ # # # $ # # # $ # @ ", | ||
293 | " # # # # # # # # # # # # # % # # Z.^.i i `. +# % + . . + . . .+++r @+#+$+% % . . % & & # # # # # # # # # # # @ ", | ||
294 | " # # $ # $ # $ # # # $ # $ % $ %+&+K ;.K *+=+$ % . + . + . + -+;+e ;.>+,+'+% % + % & & z $ # $ # # # $ # $ # @ ", | ||
295 | " # # # # # # # # # # # # # % # )+!+i ~+{+]+^+# % . + . . /+(+_+i ~+W.:+% % % % & & # # # # # # # # # # # @ ", | ||
296 | " $ # $ # $ # $ # $ # $ # $ % $ <+e .[+}+|+# $ % % % % % % % % 1+2+K .W.3+% % % & & & # $ # $ # $ # $ # $ # @ ", | ||
297 | " # # # # # # # # # # # # # % # 4+f ;.5+6+# # # % & & & & & & & & 7+8+;.e 9+0+& 9.0.[.& # # # # # # # # # # # @ ", | ||
298 | " $ # $ # $ # $ # $ # $ # $ % $ a+f b+c+d+$ # % % & & & [.0.9.& & e+f+[+g+h+i+0.9.0.9.$ # $ # $ # $ # $ # $ # @ ", | ||
299 | " # $ # # # $ # # # $ # # # % # j+f k+l+m+# % & % % % % % % % % @ n+o+p+;.f q+r+* # $ # # # $ # # # $ # # # $ @ ", | ||
300 | " $ # $ # $ # $ # $ # $ # $ % $ s+s W.t+/ % & & % $ . . . # . % % % u+v+W.u w+$ # $ # $ # $ # $ # $ # $ # $ # @ ", | ||
301 | " # $ # $ # $ # $ # $ # $ # % # x+f y+z+A+& & & & % % % % % % % # . B+C+b+D+E+# $ # $ # $ # $ # $ # $ # $ # $ @ ", | ||
302 | " $ # $ # $ # $ # $ # $ # $ % $ F+G+H+I+& & [.0.z $ % % % % . % % % J+K+L+M+N+% # $ # $ # $ # $ # $ # $ # $ # @ ", | ||
303 | " $ $ # $ $ $ # $ $ $ # $ $ % % % % % [.0.9.0.2 $ $ $ % % % % % % % % % $ % % % % $ $ # $ $ $ # $ $ $ # $ $ $ @ ", | ||
304 | " $ # $ # $ # $ # $ # $ # $ # $ & & & & & & z [.# $ # $ & % % % % % % % % % % % % % # $ # $ # $ # $ # $ # $ # @ ", | ||
305 | " $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ & & & & & $ $ $ $ $ $ $ $ & & & & & & % % % % % % % & $ $ $ $ $ $ $ $ $ $ $ $ @ ", | ||
306 | " $ # $ # $ # $ # $ # $ # $ # $ # O+# $ 2 $ # $ # $ # $ . $ # $ * $ # & & & & & & & & & # $ # $ # $ # $ # $ # @ ", | ||
307 | " $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ O+$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ O+$ $ $ $ $ $ $ $ $ $ $ @ ", | ||
308 | " $ $ $ # $ $ $ # $ $ $ # $ $ $ # $ $ $ # $ $ $ # $ $ $ # $ $ $ # $ $ $ # $ $ $ # $ $ $ # $ $ $ # $ $ $ # $ $ @ ", | ||
309 | " $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ @ ", | ||
310 | " $ # $ $ $ $ $ $ $ # $ $ $ $ $ $ $ # $ $ $ $ $ $ $ # $ $ $ $ $ $ $ # $ $ $ $ $ $ $ # $ $ $ $ $ $ $ # $ $ $ $ @ ", | ||
311 | " $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ @ ", | ||
312 | " $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ @ ", | ||
313 | "+ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ "}; | ||
diff --git a/rbutil/wizard_pages.cpp b/rbutil/wizard_pages.cpp index 53d56634e8..1544675b18 100644 --- a/rbutil/wizard_pages.cpp +++ b/rbutil/wizard_pages.cpp | |||
@@ -21,12 +21,17 @@ | |||
21 | #include "wizard_pages.h" | 21 | #include "wizard_pages.h" |
22 | #include "bootloaders.h" | 22 | #include "bootloaders.h" |
23 | 23 | ||
24 | |||
25 | #include <wx/regex.h> | ||
26 | #include <wx/tokenzr.h> | ||
27 | |||
28 | /////// Bootplatform page ///////////////////////////////////77 | ||
24 | wxBootPlatformPage::wxBootPlatformPage(wxWizard *parent) : wxWizardPageSimple(parent) | 29 | wxBootPlatformPage::wxBootPlatformPage(wxWizard *parent) : wxWizardPageSimple(parent) |
25 | { | 30 | { |
26 | wxBoxSizer* WxBoxSizer1 = new wxBoxSizer(wxVERTICAL); | 31 | wxBoxSizer* WxBoxSizer1 = new wxBoxSizer(wxVERTICAL); |
27 | 32 | ||
28 | wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY, | 33 | wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY, |
29 | _("Please select the model of audio device that you would like to" | 34 | wxT("Please select the model of audio device that you would like to" |
30 | "\ninstall the Rockbox Bootloader on from the list below:")); | 35 | "\ninstall the Rockbox Bootloader on from the list below:")); |
31 | WxBoxSizer1->Add(WxStaticText1,0,wxGROW | wxALL,5); | 36 | WxBoxSizer1->Add(WxStaticText1,0,wxGROW | wxALL,5); |
32 | 37 | ||
@@ -61,12 +66,12 @@ wxBootPlatformPage::wxBootPlatformPage(wxWizard *parent) : wxWizardPageSimple(pa | |||
61 | 66 | ||
62 | wxWizardPage * wxBootPlatformPage::GetNext() const | 67 | wxWizardPage * wxBootPlatformPage::GetNext() const |
63 | { | 68 | { |
64 | if(gv->curbootloadermethod != "fwpatcher"&& gv->curbootloadermethod != "ipodpatcher") | 69 | if(gv->curbootloadermethod != wxT("fwpatcher")&& gv->curbootloadermethod != wxT("ipodpatcher")) |
65 | { | 70 | { |
66 | if(wxWizardPageSimple::GetNext()->GetNext() != NULL) // not iriver hx0 and ipod, skip one page | 71 | if(wxWizardPageSimple::GetNext()->GetNext() != NULL) // not iriver hx0 and ipod, skip one page |
67 | return wxWizardPageSimple::GetNext()->GetNext(); | 72 | return wxWizardPageSimple::GetNext()->GetNext(); |
68 | } | 73 | } |
69 | else if(gv->curbootloadermethod == "ipodpatcher") | 74 | else if(gv->curbootloadermethod == wxT("ipodpatcher")) |
70 | { | 75 | { |
71 | if(wxWizardPageSimple::GetNext()->GetNext() != NULL) | 76 | if(wxWizardPageSimple::GetNext()->GetNext() != NULL) |
72 | if(wxWizardPageSimple::GetNext()->GetNext()->GetNext() != NULL) | 77 | if(wxWizardPageSimple::GetNext()->GetNext()->GetNext() != NULL) |
@@ -83,8 +88,8 @@ bool wxBootPlatformPage::TransferDataFromWindow() | |||
83 | { | 88 | { |
84 | if (BootPlatformListBox->GetSelection() == wxNOT_FOUND ) | 89 | if (BootPlatformListBox->GetSelection() == wxNOT_FOUND ) |
85 | { | 90 | { |
86 | WARN_DIALOG(_("You must select an audio device type before proceeding"), | 91 | WARN_DIALOG(wxT("You must select an audio device type before proceeding"), |
87 | _("Select Platform")); | 92 | wxT("Select Platform")); |
88 | return false; | 93 | return false; |
89 | } else | 94 | } else |
90 | { | 95 | { |
@@ -98,13 +103,13 @@ bool wxBootPlatformPage::TransferDataFromWindow() | |||
98 | return true; | 103 | return true; |
99 | } | 104 | } |
100 | } | 105 | } |
101 | 106 | //// Plattfor Page ////////////////////////// | |
102 | wxPlatformPage::wxPlatformPage(wxWizard *parent) : wxWizardPageSimple(parent) | 107 | wxPlatformPage::wxPlatformPage(wxWizard *parent) : wxWizardPageSimple(parent) |
103 | { | 108 | { |
104 | wxBoxSizer* WxBoxSizer1 = new wxBoxSizer(wxVERTICAL); | 109 | wxBoxSizer* WxBoxSizer1 = new wxBoxSizer(wxVERTICAL); |
105 | 110 | ||
106 | wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY, | 111 | wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY, |
107 | _("Please select the model of audio device that you would like to" | 112 | wxT("Please select the model of audio device that you would like to" |
108 | "\ninstall Rockbox on from the list below:")); | 113 | "\ninstall Rockbox on from the list below:")); |
109 | WxBoxSizer1->Add(WxStaticText1,0,wxGROW | wxALL,5); | 114 | WxBoxSizer1->Add(WxStaticText1,0,wxGROW | wxALL,5); |
110 | 115 | ||
@@ -124,17 +129,274 @@ bool wxPlatformPage::TransferDataFromWindow() | |||
124 | { | 129 | { |
125 | if (PlatformListBox->GetSelection() == wxNOT_FOUND ) | 130 | if (PlatformListBox->GetSelection() == wxNOT_FOUND ) |
126 | { | 131 | { |
127 | WARN_DIALOG(_("You must select an audio device type before proceeding"), | 132 | WARN_DIALOG(wxT("You must select an audio device type before proceeding"), |
128 | _("Select Platform")); | 133 | wxT("Select Platform")); |
129 | return false; | 134 | return false; |
130 | } else | 135 | } else |
131 | { | 136 | { |
132 | gv->curplatnum = PlatformListBox->GetSelection(); | 137 | gv->curplatnum = PlatformListBox->GetSelection(); |
133 | gv->curplat = gv->plat_id[gv->curplatnum]; | 138 | gv->curplat = gv->plat_id[gv->curplatnum]; |
139 | gv->curresolution = gv->plat_resolution[gv->curplatnum]; | ||
134 | return true; | 140 | return true; |
135 | } | 141 | } |
136 | } | 142 | } |
137 | 143 | ||
144 | |||
145 | //////////////// ThemeImage Dialog ///////////////// | ||
146 | BEGIN_EVENT_TABLE(wxThemeImageDialog,wxDialog) | ||
147 | EVT_PAINT(wxThemeImageDialog::OnPaint) | ||
148 | END_EVENT_TABLE(); | ||
149 | wxThemeImageDialog::wxThemeImageDialog(wxWindow* parent,wxWindowID id,wxString title,wxBitmap bmp) : | ||
150 | wxDialog(parent, id, title) | ||
151 | { | ||
152 | wxBoxSizer *sizerTop = new wxBoxSizer(wxHORIZONTAL); | ||
153 | m_bitmap = bmp; | ||
154 | |||
155 | sizerTop->SetMinSize(m_bitmap.GetWidth(),m_bitmap.GetHeight()); | ||
156 | |||
157 | SetSizer(sizerTop); | ||
158 | |||
159 | sizerTop->SetSizeHints(this); | ||
160 | sizerTop->Fit(this); | ||
161 | |||
162 | } | ||
163 | |||
164 | void wxThemeImageDialog::OnPaint(wxPaintEvent& WXUNUSED(event)) | ||
165 | { | ||
166 | wxPaintDC dc( this ); | ||
167 | dc.DrawBitmap( m_bitmap, 0, 0, true /* use mask */ ); | ||
168 | } | ||
169 | |||
170 | ////////////////// Themes page //////////////////////// | ||
171 | BEGIN_EVENT_TABLE(wxThemesPage,wxWizardPageSimple) | ||
172 | EVT_WIZARD_PAGE_CHANGED (wxID_ANY, wxThemesPage::OnPageShown) | ||
173 | EVT_WIZARD_PAGE_CHANGING (wxID_ANY, wxThemesPage::OnWizardPageChanging) | ||
174 | EVT_LISTBOX (ID_LISTBOX,wxThemesPage::OnListBox) | ||
175 | EVT_BUTTON (ID_PREVIEW_BTN, wxThemesPage::OnPreviewBtn) | ||
176 | EVT_CHECKBOX (ID_INSTALLCHECKBOX, wxThemesPage::OnCheckBox) | ||
177 | END_EVENT_TABLE(); | ||
178 | |||
179 | wxThemesPage::wxThemesPage(wxWizard *parent) : wxWizardPageSimple(parent) | ||
180 | { | ||
181 | m_parent = parent; | ||
182 | wxSizer* mainSizer = new wxBoxSizer(wxVERTICAL); | ||
183 | |||
184 | wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY, | ||
185 | wxT("Please select the Theme you would like to" | ||
186 | "\ninstall on your Device from the list below:")); | ||
187 | mainSizer->Add(WxStaticText1,0,wxGROW | wxALL,5); | ||
188 | |||
189 | // create theme listbox | ||
190 | wxArrayString list; | ||
191 | for(int i = 0; i< 35;i++) | ||
192 | list.Add(""); | ||
193 | ThemesListBox= new wxListBox(this, ID_LISTBOX, wxDefaultPosition, | ||
194 | wxDefaultSize,list, wxLB_SINGLE); | ||
195 | mainSizer->Add(ThemesListBox,10,wxGROW | wxALL,5); | ||
196 | |||
197 | // create groupbox | ||
198 | wxStaticBox* groupbox= new wxStaticBox(this,wxID_ANY,wxT("Selected Theme:")); | ||
199 | wxBoxSizer* styleSizer = new wxStaticBoxSizer( groupbox, wxVERTICAL ); | ||
200 | mainSizer->Add(styleSizer,11,wxGROW | wxALL,5); | ||
201 | |||
202 | // horizontal sizer | ||
203 | wxBoxSizer* wxBoxSizer2 = new wxBoxSizer(wxHORIZONTAL); | ||
204 | styleSizer->Add(wxBoxSizer2,0,wxGROW | wxALL,0); | ||
205 | |||
206 | // preview button | ||
207 | m_previewBtn = new wxButton(this, ID_PREVIEW_BTN, wxT("Preview"), | ||
208 | wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, | ||
209 | wxT("PreviewBtn")); | ||
210 | wxBoxSizer2->Add(m_previewBtn,0,wxGROW | wxALL,5); | ||
211 | |||
212 | // checkbox for Install | ||
213 | m_InstallCheckBox= new wxCheckBox(this,ID_INSTALLCHECKBOX,wxT("Install") | ||
214 | ,wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, | ||
215 | wxT("InstallCheckbox")); | ||
216 | wxBoxSizer2->Add(m_InstallCheckBox,0,wxGROW | wxALL,5); | ||
217 | |||
218 | // horizontal sizer | ||
219 | wxBoxSizer* wxBoxSizer3 = new wxBoxSizer(wxHORIZONTAL); | ||
220 | styleSizer->Add(wxBoxSizer3,0,wxGROW | wxALL,0); | ||
221 | |||
222 | // File size | ||
223 | wxStaticText* size= new wxStaticText(this,wxID_ANY,wxT("Filesize:")); | ||
224 | wxBoxSizer3->Add(size,0,wxGROW | wxALL,5); | ||
225 | |||
226 | m_size= new wxStaticText(this,wxID_ANY,wxT("")); | ||
227 | wxBoxSizer3->Add(m_size,0,wxGROW | wxALL,5); | ||
228 | |||
229 | // Description | ||
230 | wxStaticText* desc= new wxStaticText(this,wxID_ANY,wxT("Description:")); | ||
231 | styleSizer->Add(desc,0,wxGROW | wxALL,5); | ||
232 | |||
233 | m_desc= new wxStaticText(this,wxID_ANY,wxT("")); | ||
234 | styleSizer->Add(m_desc,0,wxGROW | wxALL,5); | ||
235 | |||
236 | SetSizer(mainSizer); | ||
237 | mainSizer->Fit(this); | ||
238 | |||
239 | } | ||
240 | |||
241 | bool wxThemesPage::TransferDataFromWindow() | ||
242 | { | ||
243 | gv->themesToInstall.Clear(); | ||
244 | |||
245 | for(int i=0; i < m_installTheme.GetCount(); i++) | ||
246 | { | ||
247 | if(m_installTheme[i]) | ||
248 | { | ||
249 | gv->themesToInstall.Add(m_Themes_path[i]); | ||
250 | } | ||
251 | } | ||
252 | |||
253 | return true; | ||
254 | |||
255 | } | ||
256 | |||
257 | void wxThemesPage::OnWizardPageChanging(wxWizardEvent& event) | ||
258 | { | ||
259 | if(event.GetDirection()) // going forwards in the Wizard | ||
260 | { | ||
261 | if(gv->themesToInstall.GetCount() == 0) | ||
262 | { | ||
263 | WARN_DIALOG(wxT("You have not selected a Theme to Install"), wxT("Select a Theme")); | ||
264 | event.Veto(); | ||
265 | } | ||
266 | } | ||
267 | } | ||
268 | |||
269 | void wxThemesPage::OnCheckBox(wxCommandEvent& event) | ||
270 | { | ||
271 | int index = ThemesListBox->GetSelection(); //get Index | ||
272 | if(index == wxNOT_FOUND) | ||
273 | return; | ||
274 | |||
275 | m_installTheme[index]= ! m_installTheme[index]; // Toggle install | ||
276 | |||
277 | } | ||
278 | |||
279 | void wxThemesPage::OnListBox(wxCommandEvent& event) | ||
280 | { | ||
281 | int index = ThemesListBox->GetSelection(); //get Index | ||
282 | if(index == wxNOT_FOUND) | ||
283 | return; | ||
284 | |||
285 | m_desc->SetLabel(m_Themes_desc[index]); //set Desc | ||
286 | m_desc->Wrap(270); // wrap desc | ||
287 | m_size->SetLabel(m_Themes_size[index]+wxT(" kb")); //set file size | ||
288 | m_InstallCheckBox->SetValue(m_installTheme[index]); // set the install checkbox | ||
289 | |||
290 | this->GetSizer()->Layout(); | ||
291 | |||
292 | } | ||
293 | |||
294 | void wxThemesPage::OnPreviewBtn(wxCommandEvent& event) | ||
295 | { | ||
296 | |||
297 | int index = ThemesListBox->GetSelection(); | ||
298 | if(index == wxNOT_FOUND) | ||
299 | return; | ||
300 | |||
301 | wxString src,dest; | ||
302 | |||
303 | int pos = m_Themes_image[index].Find('/',true); | ||
304 | wxString filename = m_Themes_image[index](pos+1,m_Themes_image[index].Length()); | ||
305 | |||
306 | dest.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "%s"), | ||
307 | gv->stdpaths->GetUserDataDir().c_str(),gv->curresolution.c_str()); | ||
308 | |||
309 | if(!wxDirExists(dest)) | ||
310 | wxMkdir(dest); | ||
311 | |||
312 | //this is a URL no PATH_SEP | ||
313 | src.Printf("%s/data/%s/%s",gv->themes_url.c_str(),gv->curresolution.c_str(),filename.c_str()); | ||
314 | dest.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "%s" PATH_SEP "%s"), | ||
315 | gv->stdpaths->GetUserDataDir().c_str(),gv->curresolution.c_str(),filename.c_str()); | ||
316 | |||
317 | if(DownloadURL(src, dest)) | ||
318 | { | ||
319 | MESG_DIALOG(wxT("Unable to download image.")); | ||
320 | return; | ||
321 | } | ||
322 | |||
323 | wxBitmap bmp; | ||
324 | bmp.LoadFile(dest,wxBITMAP_TYPE_PNG); | ||
325 | |||
326 | wxThemeImageDialog dlg(this,wxID_ANY,wxT("Preview"),bmp); | ||
327 | dlg.ShowModal(); | ||
328 | |||
329 | } | ||
330 | |||
331 | void wxThemesPage::OnPageShown(wxWizardEvent& event) | ||
332 | { | ||
333 | // clear Theme info | ||
334 | m_Themes.Clear(); | ||
335 | m_Themes_image.Clear(); | ||
336 | m_Themes_path.Clear(); | ||
337 | m_Themes_desc.Clear(); | ||
338 | m_Themes_size.Clear(); | ||
339 | m_installTheme.Clear(); | ||
340 | m_desc->SetLabel(wxT("")); | ||
341 | m_size->SetLabel(wxT("")); | ||
342 | m_InstallCheckBox->SetValue(false); | ||
343 | |||
344 | //get correct Themes list | ||
345 | wxString src,dest,err; | ||
346 | |||
347 | src.Printf("%srbutil.php?res=%s",gv->themes_url.c_str(),gv->curresolution.c_str()); | ||
348 | dest.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "%s.list"), | ||
349 | gv->stdpaths->GetUserDataDir().c_str(),gv->curresolution.c_str()); | ||
350 | |||
351 | if(DownloadURL(src, dest)) | ||
352 | { | ||
353 | MESG_DIALOG(wxT("Unable to download themes list.")); | ||
354 | return; | ||
355 | } | ||
356 | |||
357 | //read and parse Themes list | ||
358 | wxString themelistraw; | ||
359 | wxFFile themefile; | ||
360 | if(!themefile.Open(dest)) //open file | ||
361 | { | ||
362 | MESG_DIALOG(wxT("Unable to open themes list.")); | ||
363 | return; | ||
364 | } | ||
365 | if(!themefile.ReadAll(&themelistraw)) //read complete file | ||
366 | { | ||
367 | MESG_DIALOG(wxT("Unable to read themes list.")); | ||
368 | return; | ||
369 | } | ||
370 | wxRegEx reAll(wxT("<body >(.+)</body>")); //extract body part | ||
371 | if(! reAll.Matches(themelistraw)) | ||
372 | { | ||
373 | MESG_DIALOG(wxT("Themes list is in wrong Format.")); | ||
374 | return; | ||
375 | } | ||
376 | wxString lines = reAll.GetMatch(themelistraw,1); | ||
377 | |||
378 | // prepare text | ||
379 | lines.Replace(wxT("<br />"),wxT(""),true); //replace <br /> with nothing | ||
380 | lines.Replace(wxT("\n"),wxT(""),true); //replace \n with nothing | ||
381 | lines.Trim(true); //strip WS at end | ||
382 | lines.Trim(false); //strip WS at beginning | ||
383 | wxStringTokenizer tkz(lines,wxT("|")); //tokenize it | ||
384 | |||
385 | while ( tkz.HasMoreTokens() ) // read all entrys | ||
386 | { | ||
387 | m_Themes.Add(tkz.GetNextToken()); //Theme name | ||
388 | m_Themes_path.Add(tkz.GetNextToken()); //Theme path | ||
389 | m_Themes_size.Add(tkz.GetNextToken()); //File size | ||
390 | m_Themes_image.Add(tkz.GetNextToken()); //Screenshot | ||
391 | m_Themes_desc.Add(tkz.GetNextToken()); //Description | ||
392 | m_installTheme.Add(false); //Theme should be installed ? | ||
393 | } | ||
394 | |||
395 | // set ThemeList | ||
396 | ThemesListBox->Set(m_Themes); | ||
397 | } | ||
398 | |||
399 | //////////////////// Ipod Locaction Page ///////////////////////////// | ||
138 | BEGIN_EVENT_TABLE(wxIpodLocationPage,wxWizardPageSimple) | 400 | BEGIN_EVENT_TABLE(wxIpodLocationPage,wxWizardPageSimple) |
139 | EVT_BUTTON (ID_IPODLOCATION_BTN, wxIpodLocationPage::OnIpodLocationBtn) | 401 | EVT_BUTTON (ID_IPODLOCATION_BTN, wxIpodLocationPage::OnIpodLocationBtn) |
140 | EVT_WIZARD_PAGE_CHANGING(wxID_ANY, wxIpodLocationPage::OnWizardPageChanging) | 402 | EVT_WIZARD_PAGE_CHANGING(wxID_ANY, wxIpodLocationPage::OnWizardPageChanging) |
@@ -178,7 +440,7 @@ wxIpodLocationPage::wxIpodLocationPage(wxWizard* parent) : wxWizardPageSimple(pa | |||
178 | 440 | ||
179 | wxWizardPage* wxIpodLocationPage::GetPrev() const | 441 | wxWizardPage* wxIpodLocationPage::GetPrev() const |
180 | { | 442 | { |
181 | if(gv->curbootloadermethod == "ipodpatcher") //if ipod, skip previous | 443 | if(gv->curbootloadermethod == wxT("ipodpatcher")) //if ipod, skip previous |
182 | { | 444 | { |
183 | if(wxWizardPageSimple::GetPrev()->GetPrev() != NULL) | 445 | if(wxWizardPageSimple::GetPrev()->GetPrev() != NULL) |
184 | return wxWizardPageSimple::GetPrev()->GetPrev(); | 446 | return wxWizardPageSimple::GetPrev()->GetPrev(); |
@@ -190,13 +452,13 @@ void wxIpodLocationPage::OnWizardPageChanging(wxWizardEvent& event) | |||
190 | { | 452 | { |
191 | if(event.GetDirection()) // going forwards in the Wizard | 453 | if(event.GetDirection()) // going forwards in the Wizard |
192 | { | 454 | { |
193 | if(gv->curbootloadermethod=="ipodpatcher") | 455 | if(gv->curbootloadermethod==wxT("ipodpatcher")) |
194 | { | 456 | { |
195 | if(IpodLocationText->GetLabel() == "no Ipod found" || | 457 | if(IpodLocationText->GetLabel() == wxT("no Ipod found") || |
196 | IpodLocationText->GetLabel() =="More than 1 Ipod found" || | 458 | IpodLocationText->GetLabel() ==wxT("More than 1 Ipod found") || |
197 | IpodLocationText->GetLabel() =="") | 459 | IpodLocationText->GetLabel() ==wxT("")) |
198 | { | 460 | { |
199 | WARN_DIALOG(_("No valid ipod found!"), _("Select Location")); | 461 | WARN_DIALOG(wxT("No valid ipod found!"), wxT("Select Location")); |
200 | event.Veto(); //stop pagechanging | 462 | event.Veto(); //stop pagechanging |
201 | } | 463 | } |
202 | } | 464 | } |
@@ -205,27 +467,27 @@ void wxIpodLocationPage::OnWizardPageChanging(wxWizardEvent& event) | |||
205 | 467 | ||
206 | void wxIpodLocationPage::OnIpodLocationBtn(wxCommandEvent& event) | 468 | void wxIpodLocationPage::OnIpodLocationBtn(wxCommandEvent& event) |
207 | { | 469 | { |
208 | wxLogVerbose("=== begin wxIpodLocationPage::OnIpodLocationBtn"); | 470 | wxLogVerbose(wxT("=== begin wxIpodLocationPage::OnIpodLocationBtn")); |
209 | struct ipod_t ipod; | 471 | struct ipod_t ipod; |
210 | int n = ipod_scan(&ipod); | 472 | int n = ipod_scan(&ipod); |
211 | gv->curbootloader=""; | 473 | gv->curbootloader=wxT(""); |
212 | 474 | ||
213 | if(n == 0) | 475 | if(n == 0) |
214 | IpodLocationText->SetLabel("no Ipod found"); | 476 | IpodLocationText->SetLabel(wxT("no Ipod found")); |
215 | else if( n==1) | 477 | else if( n==1) |
216 | { | 478 | { |
217 | gv->curbootloader="bootloader-"; | 479 | gv->curbootloader=wxT("bootloader-"); |
218 | gv->curbootloader.Append(ipod.targetname); | 480 | gv->curbootloader.Append(ipod.targetname); |
219 | IpodLocationText->SetLabel(ipod.modelstr); | 481 | IpodLocationText->SetLabel(ipod.modelstr); |
220 | } | 482 | } |
221 | else | 483 | else |
222 | IpodLocationText->SetLabel("More than 1 Ipod found"); | 484 | IpodLocationText->SetLabel(wxT("More than 1 Ipod found")); |
223 | 485 | ||
224 | if(ipod.macpod) | 486 | if(ipod.macpod) |
225 | IpodLocationExtraText->SetLabel("This Ipod is a Mac formated Ipod\n" | 487 | IpodLocationExtraText->SetLabel(wxT("This Ipod is a Mac formated Ipod\n" |
226 | "Rockbox will not work on this.\n" | 488 | "Rockbox will not work on this.\n" |
227 | "You have to convert it first to Fat32"); | 489 | "You have to convert it first to Fat32")); |
228 | wxLogVerbose("=== end wxIpodLocationPage::OnIpodLocationBtn"); | 490 | wxLogVerbose(wxT("=== end wxIpodLocationPage::OnIpodLocationBtn")); |
229 | 491 | ||
230 | } | 492 | } |
231 | 493 | ||
@@ -251,7 +513,7 @@ wxBootLocationPage::wxBootLocationPage(wxWizard* parent) : wxWizardPageSimple(pa | |||
251 | WxBoxSizer1->Add(WxBoxSizer3,0, | 513 | WxBoxSizer1->Add(WxBoxSizer3,0, |
252 | wxGROW | wxALIGN_CENTER_VERTICAL | wxALL, 5); | 514 | wxGROW | wxALIGN_CENTER_VERTICAL | wxALL, 5); |
253 | 515 | ||
254 | if (gv->curdestdir == wxT("")) gv->curdestdir = _("<none>"); | 516 | if (gv->curdestdir == wxT("")) gv->curdestdir = wxT("<none>"); |
255 | BootLocationText = new wxStaticText(this, wxID_ANY, gv->curdestdir, | 517 | BootLocationText = new wxStaticText(this, wxID_ANY, gv->curdestdir, |
256 | wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT); | 518 | wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT); |
257 | WxBoxSizer3->Add(BootLocationText,1, | 519 | WxBoxSizer3->Add(BootLocationText,1, |
@@ -269,7 +531,7 @@ wxBootLocationPage::wxBootLocationPage(wxWizard* parent) : wxWizardPageSimple(pa | |||
269 | 531 | ||
270 | wxWizardPage* wxBootLocationPage::GetPrev() const | 532 | wxWizardPage* wxBootLocationPage::GetPrev() const |
271 | { | 533 | { |
272 | if(gv->curbootloadermethod != "fwpatcher") | 534 | if(gv->curbootloadermethod != wxT("fwpatcher")) |
273 | { | 535 | { |
274 | if(wxWizardPageSimple::GetPrev()->GetPrev() != NULL) | 536 | if(wxWizardPageSimple::GetPrev()->GetPrev() != NULL) |
275 | return wxWizardPageSimple::GetPrev()->GetPrev(); | 537 | return wxWizardPageSimple::GetPrev()->GetPrev(); |
@@ -281,7 +543,7 @@ wxWizardPage* wxBootLocationPage::GetPrev() const | |||
281 | 543 | ||
282 | wxWizardPage* wxBootLocationPage::GetNext() const | 544 | wxWizardPage* wxBootLocationPage::GetNext() const |
283 | { | 545 | { |
284 | if(gv->curbootloadermethod == "ipodpatcher") | 546 | if(gv->curbootloadermethod == wxT("ipodpatcher")) |
285 | { | 547 | { |
286 | return wxWizardPageSimple::GetNext(); // if ipod then this is not the last page | 548 | return wxWizardPageSimple::GetNext(); // if ipod then this is not the last page |
287 | } | 549 | } |
@@ -294,8 +556,8 @@ void wxBootLocationPage::OnWizardPageChanging(wxWizardEvent& event) | |||
294 | { | 556 | { |
295 | if(!wxDirExists(BootLocationText->GetLabel())) | 557 | if(!wxDirExists(BootLocationText->GetLabel())) |
296 | { | 558 | { |
297 | WARN_DIALOG(_("You have not selected a valid location for your audio " | 559 | WARN_DIALOG(wxT("You have not selected a valid location for your audio " |
298 | "device"), _("Select Location")); | 560 | "device"), wxT("Select Location")); |
299 | event.Veto(); | 561 | event.Veto(); |
300 | } | 562 | } |
301 | 563 | ||
@@ -313,13 +575,13 @@ bool wxBootLocationPage::TransferDataFromWindow() | |||
313 | void wxBootLocationPage::OnBootLocationBtn(wxCommandEvent& event) | 575 | void wxBootLocationPage::OnBootLocationBtn(wxCommandEvent& event) |
314 | { | 576 | { |
315 | const wxString& temp = wxDirSelector( | 577 | const wxString& temp = wxDirSelector( |
316 | _("Please select the location of your audio device"), gv->curdestdir); | 578 | wxT("Please select the location of your audio device"), gv->curdestdir); |
317 | wxLogVerbose("=== begin wxBootLocationPage::OnBootLocationBtn(event)"); | 579 | wxLogVerbose(wxT("=== begin wxBootLocationPage::OnBootLocationBtn(event)")); |
318 | if (!temp.empty()) | 580 | if (!temp.empty()) |
319 | { | 581 | { |
320 | BootLocationText->SetLabel(temp); | 582 | BootLocationText->SetLabel(temp); |
321 | } | 583 | } |
322 | wxLogVerbose("=== end wxBootLocationPage::OnBootLocationBtn"); | 584 | wxLogVerbose(wxT("=== end wxBootLocationPage::OnBootLocationBtn")); |
323 | 585 | ||
324 | } | 586 | } |
325 | 587 | ||
@@ -368,8 +630,8 @@ void wxFirmwareLocationPage::OnWizardPageChanging(wxWizardEvent& event) | |||
368 | { | 630 | { |
369 | if( !wxFileExists(gv->curfirmware)) | 631 | if( !wxFileExists(gv->curfirmware)) |
370 | { | 632 | { |
371 | WARN_DIALOG(_("You have not selected a valid location for the firmware " | 633 | WARN_DIALOG(wxT("You have not selected a valid location for the firmware " |
372 | "file"), _("Select File")); | 634 | "file"), wxT("Select File")); |
373 | event.Veto(); | 635 | event.Veto(); |
374 | } | 636 | } |
375 | } | 637 | } |
@@ -379,8 +641,8 @@ void wxFirmwareLocationPage::OnWizardPageChanging(wxWizardEvent& event) | |||
379 | void wxFirmwareLocationPage::OnFirmwareFilenameBtn(wxCommandEvent& event) | 641 | void wxFirmwareLocationPage::OnFirmwareFilenameBtn(wxCommandEvent& event) |
380 | { | 642 | { |
381 | wxString temp = wxFileSelector( | 643 | wxString temp = wxFileSelector( |
382 | _("Please select the location of the original Firmware"), gv->curdestdir,"","","*.hex"); | 644 | wxT("Please select the location of the original Firmware"), gv->curdestdir,"","","*.hex"); |
383 | wxLogVerbose("=== begin wxFirmwareLocationPage::OnFirmwareFilenameBtn(event)"); | 645 | wxLogVerbose(wxT("=== begin wxFirmwareLocationPage::OnFirmwareFilenameBtn(event)")); |
384 | if (!temp.empty()) | 646 | if (!temp.empty()) |
385 | { | 647 | { |
386 | gv->curfirmware=temp; | 648 | gv->curfirmware=temp; |
@@ -391,7 +653,7 @@ void wxFirmwareLocationPage::OnFirmwareFilenameBtn(wxCommandEvent& event) | |||
391 | } | 653 | } |
392 | FirmwareLocationFilename->SetLabel(temp); | 654 | FirmwareLocationFilename->SetLabel(temp); |
393 | } | 655 | } |
394 | wxLogVerbose("=== end wxFirmwareLocationPage::OnFirmwareFilenameBtn"); | 656 | wxLogVerbose(wxT("=== end wxFirmwareLocationPage::OnFirmwareFilenameBtn")); |
395 | } | 657 | } |
396 | 658 | ||
397 | BEGIN_EVENT_TABLE(wxLocationPage,wxWizardPageSimple) | 659 | BEGIN_EVENT_TABLE(wxLocationPage,wxWizardPageSimple) |
@@ -413,7 +675,7 @@ wxLocationPage::wxLocationPage(wxWizard* parent) : wxWizardPageSimple(parent) | |||
413 | WxBoxSizer1->Add(WxBoxSizer3,0, | 675 | WxBoxSizer1->Add(WxBoxSizer3,0, |
414 | wxGROW | wxALIGN_CENTER_VERTICAL | wxALL, 5); | 676 | wxGROW | wxALIGN_CENTER_VERTICAL | wxALL, 5); |
415 | 677 | ||
416 | if (gv->curdestdir == wxT("")) gv->curdestdir = _("<none>"); | 678 | if (gv->curdestdir == wxT("")) gv->curdestdir = wxT("<none>"); |
417 | LocationText = new wxStaticText(this, wxID_ANY, gv->curdestdir, | 679 | LocationText = new wxStaticText(this, wxID_ANY, gv->curdestdir, |
418 | wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT); | 680 | wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT); |
419 | WxBoxSizer3->Add(LocationText,1, | 681 | WxBoxSizer3->Add(LocationText,1, |
@@ -436,8 +698,8 @@ void wxLocationPage::OnWizardPageChanging(wxWizardEvent& event) | |||
436 | { | 698 | { |
437 | if(!wxDirExists(LocationText->GetLabel())) | 699 | if(!wxDirExists(LocationText->GetLabel())) |
438 | { | 700 | { |
439 | WARN_DIALOG(_("You have not selected a valid location for your audio " | 701 | WARN_DIALOG(wxT("You have not selected a valid location for your audio " |
440 | "device"), _("Select Location")); | 702 | "device"), wxT("Select Location")); |
441 | event.Veto(); | 703 | event.Veto(); |
442 | } | 704 | } |
443 | } | 705 | } |
@@ -452,13 +714,13 @@ bool wxLocationPage::TransferDataFromWindow() | |||
452 | void wxLocationPage::OnLocationBtn(wxCommandEvent& event) | 714 | void wxLocationPage::OnLocationBtn(wxCommandEvent& event) |
453 | { | 715 | { |
454 | const wxString& temp = wxDirSelector( | 716 | const wxString& temp = wxDirSelector( |
455 | _("Please select the location of your audio device"), gv->curdestdir); | 717 | wxT("Please select the location of your audio device"), gv->curdestdir); |
456 | wxLogVerbose("=== begin wxLocationPage::OnLocationBtn(event)"); | 718 | wxLogVerbose(wxT("=== begin wxLocationPage::OnLocationBtn(event)")); |
457 | if (!temp.empty()) | 719 | if (!temp.empty()) |
458 | { | 720 | { |
459 | LocationText->SetLabel(temp); | 721 | LocationText->SetLabel(temp); |
460 | } | 722 | } |
461 | wxLogVerbose("=== end wxLocationPage::OnLocationBtn"); | 723 | wxLogVerbose(wxT("=== end wxLocationPage::OnLocationBtn")); |
462 | } | 724 | } |
463 | 725 | ||
464 | BEGIN_EVENT_TABLE(wxBuildPage,wxWizardPageSimple) | 726 | BEGIN_EVENT_TABLE(wxBuildPage,wxWizardPageSimple) |
@@ -479,17 +741,17 @@ wxBuildPage::wxBuildPage(wxWizard *parent) : wxWizardPageSimple(parent) | |||
479 | WxBoxSizer1->Add(WxStaticText1,0,wxGROW | wxALL,5); | 741 | WxBoxSizer1->Add(WxStaticText1,0,wxGROW | wxALL,5); |
480 | 742 | ||
481 | wxArrayString* array = new wxArrayString(); | 743 | wxArrayString* array = new wxArrayString(); |
482 | buf.Printf(_("Rockbox stable version (%s)") , gv->last_release.c_str()); | 744 | buf.Printf(wxT("Rockbox stable version (%s)") , gv->last_release.c_str()); |
483 | array->Add(buf); | 745 | array->Add(buf); |
484 | array->Add(_("Archived Build")); | 746 | array->Add(wxT("Archived Build")); |
485 | array->Add(_("Current Build ")); | 747 | array->Add(wxT("Current Build ")); |
486 | 748 | ||
487 | BuildRadioBox = new wxRadioBox(this, ID_BUILD_BOX, _("Version"), | 749 | BuildRadioBox = new wxRadioBox(this, ID_BUILD_BOX, wxT("Version"), |
488 | wxDefaultPosition, wxDefaultSize, *array, 0, wxRA_SPECIFY_ROWS); | 750 | wxDefaultPosition, wxDefaultSize, *array, 0, wxRA_SPECIFY_ROWS); |
489 | WxBoxSizer1->Add(BuildRadioBox, 0, wxGROW | wxALL, 5); | 751 | WxBoxSizer1->Add(BuildRadioBox, 0, wxGROW | wxALL, 5); |
490 | delete array; | 752 | delete array; |
491 | 753 | ||
492 | wxStaticBox* WxStaticBox1 = new wxStaticBox(this, wxID_ANY, _("Details:")); | 754 | wxStaticBox* WxStaticBox1 = new wxStaticBox(this, wxID_ANY, wxT("Details:")); |
493 | wxStaticBoxSizer* WxStaticBoxSizer2 = new wxStaticBoxSizer(WxStaticBox1, | 755 | wxStaticBoxSizer* WxStaticBoxSizer2 = new wxStaticBoxSizer(WxStaticBox1, |
494 | wxVERTICAL); | 756 | wxVERTICAL); |
495 | DetailText = new wxStaticText(this, wxID_ANY, wxT("")); | 757 | DetailText = new wxStaticText(this, wxID_ANY, wxT("")); |
@@ -497,13 +759,13 @@ wxBuildPage::wxBuildPage(wxWizard *parent) : wxWizardPageSimple(parent) | |||
497 | WxStaticBoxSizer2->Add(DetailText, 1, wxGROW | wxALL, 5); | 759 | WxStaticBoxSizer2->Add(DetailText, 1, wxGROW | wxALL, 5); |
498 | 760 | ||
499 | wxStaticText* WxStaticText2 = new wxStaticText(this, wxID_ANY, | 761 | wxStaticText* WxStaticText2 = new wxStaticText(this, wxID_ANY, |
500 | _("Rockbox Utility stores copies of Rockbox it has downloaded on the\n" | 762 | wxT("Rockbox Utility stores copies of Rockbox it has downloaded on the\n" |
501 | "local hard disk to save network traffic. If your local copy is\n" | 763 | "local hard disk to save network traffic. If your local copy is\n" |
502 | "no longer working, tick this box to download a fresh copy.") ); | 764 | "no longer working, tick this box to download a fresh copy.") ); |
503 | WxBoxSizer1->Add(WxStaticText2, 0 , wxALL, 5); | 765 | WxBoxSizer1->Add(WxStaticText2, 0 , wxALL, 5); |
504 | 766 | ||
505 | NoCacheCheckBox = new wxCheckBox(this, wxID_ANY, | 767 | NoCacheCheckBox = new wxCheckBox(this, wxID_ANY, |
506 | _("Don't use locally cached copies of Rockbox") ); | 768 | wxT("Don't use locally cached copies of Rockbox") ); |
507 | WxBoxSizer1->Add(NoCacheCheckBox, 0, wxALL, 5); | 769 | WxBoxSizer1->Add(NoCacheCheckBox, 0, wxALL, 5); |
508 | 770 | ||
509 | SetSizer(WxBoxSizer1); | 771 | SetSizer(WxBoxSizer1); |
@@ -577,7 +839,7 @@ wxFullUninstallPage::wxFullUninstallPage(wxWizard* parent) : | |||
577 | wxBoxSizer* WxBoxSizer1 = new wxBoxSizer(wxVERTICAL); | 839 | wxBoxSizer* WxBoxSizer1 = new wxBoxSizer(wxVERTICAL); |
578 | 840 | ||
579 | wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY, | 841 | wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY, |
580 | _("Rockbox Utility normally uninstalls Rockbox using an uninstall\n" | 842 | wxT("Rockbox Utility normally uninstalls Rockbox using an uninstall\n" |
581 | "file created during installation. This means that when Rockbox is\n" | 843 | "file created during installation. This means that when Rockbox is\n" |
582 | "uninstalled all your configuration files are preserved. However,\n" | 844 | "uninstalled all your configuration files are preserved. However,\n" |
583 | "you can also perform a full uninstall, which will completely\n" | 845 | "you can also perform a full uninstall, which will completely\n" |
@@ -588,7 +850,7 @@ wxFullUninstallPage::wxFullUninstallPage(wxWizard* parent) : | |||
588 | WxBoxSizer1->Add(WxStaticText1,0,wxGROW | wxALL,5); | 850 | WxBoxSizer1->Add(WxStaticText1,0,wxGROW | wxALL,5); |
589 | 851 | ||
590 | FullCheckBox = new wxCheckBox(this, wxID_ANY, | 852 | FullCheckBox = new wxCheckBox(this, wxID_ANY, |
591 | _("Perform a full uninstall")); | 853 | wxT("Perform a full uninstall")); |
592 | WxBoxSizer1->Add(FullCheckBox, 0, wxALL, 5); | 854 | WxBoxSizer1->Add(FullCheckBox, 0, wxALL, 5); |
593 | 855 | ||
594 | SetSizer(WxBoxSizer1); | 856 | SetSizer(WxBoxSizer1); |
diff --git a/rbutil/wizard_pages.h b/rbutil/wizard_pages.h index 1b6dc5be78..d866024881 100644 --- a/rbutil/wizard_pages.h +++ b/rbutil/wizard_pages.h | |||
@@ -24,6 +24,60 @@ | |||
24 | 24 | ||
25 | #include "rbutil.h" | 25 | #include "rbutil.h" |
26 | 26 | ||
27 | |||
28 | ////// Dialog for Preview of Theme ////////////// | ||
29 | class wxThemeImageDialog : public wxDialog | ||
30 | { | ||
31 | private: | ||
32 | DECLARE_EVENT_TABLE() | ||
33 | |||
34 | public: | ||
35 | wxThemeImageDialog(wxWindow* parent,wxWindowID id,wxString title,wxBitmap bmp); | ||
36 | void OnPaint(wxPaintEvent& WXUNUSED(event)); | ||
37 | |||
38 | private: | ||
39 | wxBitmap m_bitmap; | ||
40 | }; | ||
41 | |||
42 | |||
43 | |||
44 | class wxThemesPage : public wxWizardPageSimple | ||
45 | { | ||
46 | private: | ||
47 | DECLARE_EVENT_TABLE() | ||
48 | |||
49 | public: | ||
50 | enum { | ||
51 | ID_PREVIEW_BTN = 1000, | ||
52 | ID_LISTBOX = 1001, | ||
53 | ID_INSTALLCHECKBOX = 1002, | ||
54 | }; | ||
55 | |||
56 | public: | ||
57 | wxThemesPage(wxWizard *parent); | ||
58 | virtual bool TransferDataFromWindow(void); | ||
59 | void OnPageShown(wxWizardEvent& event); | ||
60 | void OnPreviewBtn(wxCommandEvent& event); | ||
61 | void OnListBox(wxCommandEvent& event); | ||
62 | void OnCheckBox(wxCommandEvent& event); | ||
63 | void OnWizardPageChanging(wxWizardEvent& event); | ||
64 | |||
65 | public: | ||
66 | wxListBox* ThemesListBox; | ||
67 | wxButton* m_previewBtn; | ||
68 | wxStaticText* m_desc; | ||
69 | wxStaticText* m_size; | ||
70 | wxCheckBox* m_InstallCheckBox; | ||
71 | |||
72 | wxArrayString m_Themes; | ||
73 | wxArrayString m_Themes_path; | ||
74 | wxArrayString m_Themes_image; | ||
75 | wxArrayString m_Themes_desc; | ||
76 | wxArrayString m_Themes_size; | ||
77 | wxArrayInt m_installTheme; | ||
78 | |||
79 | }; | ||
80 | |||
27 | class wxBootPlatformPage : public wxWizardPageSimple | 81 | class wxBootPlatformPage : public wxWizardPageSimple |
28 | { | 82 | { |
29 | public: | 83 | public: |