summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Wenger <domonoky@googlemail.com>2007-03-15 18:02:15 +0000
committerDominik Wenger <domonoky@googlemail.com>2007-03-15 18:02:15 +0000
commitc9cafd846fbc43fba9eb559cb86160a94f7f97a1 (patch)
tree80ca1998e0eee7176f7115026d29852bdd67a335
parent410af8955f89ee5ff9498448bcc185988869bdb3 (diff)
downloadrockbox-c9cafd846fbc43fba9eb559cb86160a94f7f97a1.tar.gz
rockbox-c9cafd846fbc43fba9eb559cb86160a94f7f97a1.zip
more Unicode fixes for rutil, thanx to preglow. Also made Theme Preview window modeless
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12785 a1c6a512-1295-4272-9138-f99709370657
-rwxr-xr-xrbutil/bootloaders.cpp11
-rw-r--r--rbutil/credits.h18
-rw-r--r--rbutil/installlog.cpp20
-rwxr-xr-xrbutil/irivertools.cpp10
-rwxr-xr-xrbutil/irivertools.h2
-rwxr-xr-xrbutil/md5sum.cpp8
-rwxr-xr-xrbutil/md5sum.h2
-rw-r--r--rbutil/rbutil.cpp6
-rw-r--r--rbutil/rbutilApp.cpp4
-rw-r--r--rbutil/rbutilFrm.cpp16
-rw-r--r--rbutil/wizard_pages.cpp76
-rw-r--r--rbutil/wizard_pages.h3
12 files changed, 114 insertions, 62 deletions
diff --git a/rbutil/bootloaders.cpp b/rbutil/bootloaders.cpp
index c2303beacc..3d2734b6b9 100755
--- a/rbutil/bootloaders.cpp
+++ b/rbutil/bootloaders.cpp
@@ -368,10 +368,11 @@ bool fwpatcher(int mode)
368{ 368{
369 if(mode == BOOTLOADER_ADD) 369 if(mode == BOOTLOADER_ADD)
370 { 370 {
371 wxString md5sum_str,src,dest,err; 371 char md5sum_str[32];
372 wxString src,dest,err;
372 int series,table_entry; 373 int series,table_entry;
373 374
374 if (!FileMD5(gv->curfirmware, &md5sum_str)) { 375 if (!FileMD5(gv->curfirmware, md5sum_str)) {
375 ERR_DIALOG(wxT("Could not open firmware"), wxT("Open Firmware")); 376 ERR_DIALOG(wxT("Could not open firmware"), wxT("Open Firmware"));
376 return false; 377 return false;
377 } 378 }
@@ -426,11 +427,11 @@ bool fwpatcher(int mode)
426 src.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "new.hex"), 427 src.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "new.hex"),
427 gv->stdpaths->GetUserDataDir().c_str()); 428 gv->stdpaths->GetUserDataDir().c_str());
428 429
429 if(gv->curplat == "h100") 430 if(gv->curplat == wxT("h100"))
430 dest.Printf(wxT("%s" PATH_SEP "ihp_100.hex"),gv->curdestdir.c_str()); 431 dest.Printf(wxT("%s" PATH_SEP "ihp_100.hex"),gv->curdestdir.c_str());
431 else if(gv->curplat == "h120") 432 else if(gv->curplat == wxT("h120"))
432 dest.Printf(wxT("%s" PATH_SEP "ihp_120.hex"),gv->curdestdir.c_str()); 433 dest.Printf(wxT("%s" PATH_SEP "ihp_120.hex"),gv->curdestdir.c_str());
433 else if(gv->curplat == "h300") 434 else if(gv->curplat == wxT("h300"))
434 dest.Printf(wxT("%s" PATH_SEP "H300.hex"),gv->curdestdir.c_str()); 435 dest.Printf(wxT("%s" PATH_SEP "H300.hex"),gv->curdestdir.c_str());
435 436
436 if(!wxRenameFile(src,dest)) 437 if(!wxRenameFile(src,dest))
diff --git a/rbutil/credits.h b/rbutil/credits.h
index c01bb69dc5..afd506a03a 100644
--- a/rbutil/credits.h
+++ b/rbutil/credits.h
@@ -24,18 +24,18 @@
24#define RBUTIL_FULLNAME "The Rockbox Utility" 24#define RBUTIL_FULLNAME "The Rockbox Utility"
25#define RBUTIL_VERSION "Version 0.3.0.0" 25#define RBUTIL_VERSION "Version 0.3.0.0"
26 26
27static const char* rbutil_developers[] = { 27static const wxString rbutil_developers[] = {
28 "Christi Alice Scarborough", 28 wxT("Christi Alice Scarborough"),
29 "Dave Chapman", 29 wxT("Dave Chapman"),
30 "Dominik Wenger", 30 wxT("Dominik Wenger"),
31 "" 31 wxT("")
32}; 32};
33 33
34#define RBUTIL_WEBSITE "http://www.rockbox.org/" 34#define RBUTIL_WEBSITE "http://www.rockbox.org/"
35#define RBUTIL_COPYRIGHT "(C) 2005-6 The Rockbox Team\n" \ 35#define RBUTIL_COPYRIGHT wxT("(C) 2005-7 The Rockbox Team\n" \
36 "released under the GNU Public License v2" 36 "released under the GNU Public License v2")
37#define RBUTIL_DESCRIPTION "Installer and housekeeping utility for " \ 37#define RBUTIL_DESCRIPTION wxT("Installer and housekeeping utility for " \
38 "the Rockbox open source digital audio player firmware." 38 "the Rockbox open source digital audio player firmware.")
39 39
40 40
41class AboutDlg: public wxDialog 41class AboutDlg: public wxDialog
diff --git a/rbutil/installlog.cpp b/rbutil/installlog.cpp
index e9dad794cb..4be4a97352 100644
--- a/rbutil/installlog.cpp
+++ b/rbutil/installlog.cpp
@@ -38,9 +38,9 @@ InstallLog::InstallLog(wxString logname, bool CreateLog)
38 return; 38 return;
39 } 39 }
40 40
41 logfile->SetPath("/InstallLog"); 41 logfile->SetPath(wxT("/InstallLog"));
42 if (logfile->Exists("Version") && 42 if (logfile->Exists(wxT("Version")) &&
43 logfile->Read("Version", 0l) != LOGFILE_VERSION ) 43 logfile->Read(wxT("Version"), 0l) != LOGFILE_VERSION )
44 { 44 {
45 buf.Printf(_("Logfile version mismatch: %s"), logname.c_str() ); 45 buf.Printf(_("Logfile version mismatch: %s"), logname.c_str() );
46 wxLogWarning(buf); 46 wxLogWarning(buf);
@@ -48,7 +48,7 @@ InstallLog::InstallLog(wxString logname, bool CreateLog)
48 return; 48 return;
49 } 49 }
50 50
51 logfile->Write("Version", LOGFILE_VERSION); 51 logfile->Write(wxT("Version"), LOGFILE_VERSION);
52 dirtyflag = false; 52 dirtyflag = false;
53} 53}
54 54
@@ -105,12 +105,12 @@ unsigned int InstallLog::WriteFile(wxArrayString filepaths)
105 105
106wxArrayString* InstallLog::GetInstalledFiles() 106wxArrayString* InstallLog::GetInstalledFiles()
107{ 107{
108 wxString curdir = ""; 108 wxString curdir = wxT("");
109 109
110 if (dirtyflag) return NULL; 110 if (dirtyflag) return NULL;
111 workingAS.Clear(); 111 workingAS.Clear();
112 112
113 EnumerateCurDir(""); 113 EnumerateCurDir(wxT(""));
114 114
115 wxArrayString* out = new wxArrayString(workingAS); 115 wxArrayString* out = new wxArrayString(workingAS);
116 return out; 116 return out;
@@ -129,8 +129,8 @@ void InstallLog::EnumerateCurDir(wxString curdir)
129 contflag = logfile->GetFirstGroup(curname, dummy); 129 contflag = logfile->GetFirstGroup(curname, dummy);
130 while (contflag) 130 while (contflag)
131 { 131 {
132 buf.Printf("%s/%s", curdir.c_str(), curname.c_str() ); 132 buf.Printf(wxT("%s/%s"), curdir.c_str(), curname.c_str() );
133 buf2 = buf; buf2.Replace(wxT("/"), wxT(PATH_SEP)); 133 buf2 = buf; buf2.Replace(wxT("/"), PATH_SEP);
134 workingAS.Add(buf2); 134 workingAS.Add(buf2);
135 EnumerateCurDir(buf); 135 EnumerateCurDir(buf);
136 contflag = logfile->GetNextGroup(curname, dummy); 136 contflag = logfile->GetNextGroup(curname, dummy);
@@ -141,8 +141,8 @@ void InstallLog::EnumerateCurDir(wxString curdir)
141 { 141 {
142 if (curname != wxT(DIRECTORY_KLUDGE) ) 142 if (curname != wxT(DIRECTORY_KLUDGE) )
143 { 143 {
144 buf.Printf("%s/%s", curdir.c_str(), curname.c_str() ); 144 buf.Printf(wxT("%s/%s"), curdir.c_str(), curname.c_str() );
145 buf2 = buf; buf2.Replace(wxT("/"), wxT(PATH_SEP)); 145 buf2 = buf; buf2.Replace(wxT("/"), PATH_SEP);
146 workingAS.Add(buf2); 146 workingAS.Add(buf2);
147 } 147 }
148 contflag = logfile->GetNextEntry(curname, dummy); 148 contflag = logfile->GetNextEntry(curname, dummy);
diff --git a/rbutil/irivertools.cpp b/rbutil/irivertools.cpp
index a1c83ebd39..f993ce5e0a 100755
--- a/rbutil/irivertools.cpp
+++ b/rbutil/irivertools.cpp
@@ -170,11 +170,11 @@ bool mkboot(wxString infile, wxString outfile,wxString bootloader,int origin)
170/* end mkboot.c excerpt */ 170/* end mkboot.c excerpt */
171 171
172 172
173int intable(wxString md5, struct sumpairs *table, int len) 173int intable(char *md5, struct sumpairs *table, int len)
174{ 174{
175 int i; 175 int i;
176 for (i = 0; i < len; i++) { 176 for (i = 0; i < len; i++) {
177 if (md5.Cmp(table[i].unpatched) == 0) { 177 if (strncmp(md5, table[i].unpatched, 32) == 0) {
178 return i; 178 return i;
179 } 179 }
180 } 180 }
@@ -544,7 +544,7 @@ bool PatchFirmware(wxString firmware,wxString bootloader,int series, int table_e
544{ 544{
545 wxString name1, name2, name3; 545 wxString name1, name2, name3;
546 546
547 wxString md5sum_str; 547 char md5sum_str[32];
548 int i; 548 int i;
549 struct sumpairs *sums; 549 struct sumpairs *sums;
550 int origin; 550 int origin;
@@ -595,14 +595,14 @@ bool PatchFirmware(wxString firmware,wxString bootloader,int series, int table_e
595 return false; 595 return false;
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(wxT("Error in checksumming"),wxT("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);
603 return false; 603 return false;
604 } 604 }
605 if (strncmp(sums[table_entry].patched, md5sum_str.c_str(), 32) == 0) { 605 if (strncmp(sums[table_entry].patched, md5sum_str, 32) == 0) {
606 /* delete temp files */ 606 /* delete temp files */
607 wxRemoveFile(name1); 607 wxRemoveFile(name1);
608 wxRemoveFile(name2); 608 wxRemoveFile(name2);
diff --git a/rbutil/irivertools.h b/rbutil/irivertools.h
index deae3f4006..9718f92d00 100755
--- a/rbutil/irivertools.h
+++ b/rbutil/irivertools.h
@@ -57,7 +57,7 @@ enum striptype
57 57
58/* protos for iriver.c */ 58/* protos for iriver.c */
59 59
60int intable(wxString md5, struct sumpairs *table, int len); 60int intable(char *md5, struct sumpairs *table, int len);
61 61
62bool PatchFirmware(wxString firmware,wxString bootloader,int series, int table_entry); 62bool PatchFirmware(wxString firmware,wxString bootloader,int series, int table_entry);
63 63
diff --git a/rbutil/md5sum.cpp b/rbutil/md5sum.cpp
index 9c253beed2..e1c23c9867 100755
--- a/rbutil/md5sum.cpp
+++ b/rbutil/md5sum.cpp
@@ -268,20 +268,19 @@ void md5_finish( md5_context *ctx, uint8 digest[16] )
268 PUT_UINT32( ctx->state[3], digest, 12 ); 268 PUT_UINT32( ctx->state[3], digest, 12 );
269} 269}
270 270
271int FileMD5(wxString name,wxString *md5) 271int FileMD5(wxString name, char *md5)
272{ 272{
273 int i, read; 273 int i, read;
274 md5_context ctx; 274 md5_context ctx;
275 unsigned char md5sum[16]; 275 unsigned char md5sum[16];
276 unsigned char block[32768]; 276 unsigned char block[32768];
277 277
278 char temp[255];
279 wxFile file; 278 wxFile file;
280 279
281 file.Open(name); 280 file.Open(name);
282 281
283 if (!file.IsOpened()) { 282 if (!file.IsOpened()) {
284 ERR_DIALOG("Could not open patched firmware for checksum check", _("Open Firmware")); 283 ERR_DIALOG(wxT("Could not open patched firmware for checksum check"), wxT("Open Firmware"));
285 return 0; 284 return 0;
286 } 285 }
287 md5_starts(&ctx); 286 md5_starts(&ctx);
@@ -293,8 +292,7 @@ int FileMD5(wxString name,wxString *md5)
293 md5_finish(&ctx, md5sum); 292 md5_finish(&ctx, md5sum);
294 for (i = 0; i < 16; ++i) 293 for (i = 0; i < 16; ++i)
295 { 294 {
296 sprintf(temp + 2*i, "%02x", md5sum[i]); 295 sprintf(md5 + 2*i, "%02x", md5sum[i]);
297 } 296 }
298 md5->Append(temp);
299 return 1; 297 return 1;
300} 298}
diff --git a/rbutil/md5sum.h b/rbutil/md5sum.h
index 5cc894c0ea..f7ea439b6f 100755
--- a/rbutil/md5sum.h
+++ b/rbutil/md5sum.h
@@ -46,6 +46,6 @@ void md5_starts( md5_context *ctx );
46void md5_update( md5_context *ctx, uint8 *input, uint32 length ); 46void md5_update( md5_context *ctx, uint8 *input, uint32 length );
47void md5_finish( md5_context *ctx, uint8 digest[16] ); 47void md5_finish( md5_context *ctx, uint8 digest[16] );
48 48
49int FileMD5(wxString name,wxString *md5); 49int FileMD5(wxString name, char *md5);
50 50
51#endif // MD5SUM_H_INCLUDED 51#endif // MD5SUM_H_INCLUDED
diff --git a/rbutil/rbutil.cpp b/rbutil/rbutil.cpp
index 78203ad67f..1663725fbb 100644
--- a/rbutil/rbutil.cpp
+++ b/rbutil/rbutil.cpp
@@ -488,14 +488,14 @@ int Uninstall(const wxString dir, bool isFullUninstall) {
488 // If we're running on the device, let's not delete our own 488 // If we're running on the device, let's not delete our own
489 // installation, eh? 489 // installation, eh?
490 if (gv->portable && 490 if (gv->portable &&
491 FilesToRemove->Item(i).StartsWith(wxT(PATH_SEP 491 FilesToRemove->Item(i).StartsWith(PATH_SEP
492 "RockboxUtility")) ) 492 wxT("RockboxUtility")) )
493 { 493 {
494 continue; 494 continue;
495 } 495 }
496 496
497 wxString* buf2 = new wxString; 497 wxString* buf2 = new wxString;
498 buf.Printf("%s%s", dir.c_str() , FilesToRemove->Item(i).c_str() ); 498 buf.Printf(wxT("%s%s"), dir.c_str() , FilesToRemove->Item(i).c_str() );
499 buf2->Format(wxT("Deleting %s"), buf.c_str()); 499 buf2->Format(wxT("Deleting %s"), buf.c_str());
500 500
501 if (! progress->Update((i + 1) * 100 / totalfiles, *buf2) ) 501 if (! progress->Update((i + 1) * 100 / totalfiles, *buf2) )
diff --git a/rbutil/rbutilApp.cpp b/rbutil/rbutilApp.cpp
index 436e4ca0cb..091dbafbe6 100644
--- a/rbutil/rbutilApp.cpp
+++ b/rbutil/rbutilApp.cpp
@@ -53,8 +53,8 @@ bool rbutilFrmApp::OnInit()
53 } 53 }
54 } 54 }
55 55
56 buf += wxT(PATH_SEP "rbutil.log"); 56 buf += PATH_SEP wxT("rbutil.log");
57 gv->logfile = new wxFFile(buf, "w"); 57 gv->logfile = new wxFFile(buf, wxT("w"));
58 if (! gv->logfile->IsOpened() ) 58 if (! gv->logfile->IsOpened() )
59 wxLogFatalError(wxT("Unable to open log file")); 59 wxLogFatalError(wxT("Unable to open log file"));
60 60
diff --git a/rbutil/rbutilFrm.cpp b/rbutil/rbutilFrm.cpp
index 35c34e8dc2..fe92f2bb60 100644
--- a/rbutil/rbutilFrm.cpp
+++ b/rbutil/rbutilFrm.cpp
@@ -271,7 +271,7 @@ void rbutilFrm::OnFileWipeCache(wxCommandEvent& event)
271 wxString cacheloc, datadir; 271 wxString cacheloc, datadir;
272 272
273 datadir = gv->stdpaths->GetUserDataDir(); 273 datadir = gv->stdpaths->GetUserDataDir();
274 if (datadir == "") 274 if (datadir == wxT(""))
275 { 275 {
276 ERR_DIALOG(wxT("Can't locate user data directory. Unable to delete " 276 ERR_DIALOG(wxT("Can't locate user data directory. Unable to delete "
277 "cache."), wxT("Delete download cache.") ); 277 "cache."), wxT("Delete download cache.") );
@@ -284,7 +284,7 @@ void rbutilFrm::OnFileWipeCache(wxCommandEvent& event)
284 if (! rm_rf(cacheloc) ) 284 if (! rm_rf(cacheloc) )
285 { 285 {
286 wxMessageDialog* msg = new wxMessageDialog(this, wxT("Local download cache has been deleted.") 286 wxMessageDialog* msg = new wxMessageDialog(this, wxT("Local download cache has been deleted.")
287 ,"Cache deletion", wxOK |wxICON_INFORMATION); 287 , wxT("Cache deletion"), wxOK |wxICON_INFORMATION);
288 msg->ShowModal(); 288 msg->ShowModal();
289 delete msg; 289 delete msg;
290 } 290 }
@@ -542,7 +542,7 @@ void rbutilFrm::OnInstallBtn(wxCommandEvent& event)
542 if (DownloadURL(gv->server_conf_url, dest)) { 542 if (DownloadURL(gv->server_conf_url, dest)) {
543 WARN_DIALOG(wxT("Unable to download build status."), 543 WARN_DIALOG(wxT("Unable to download build status."),
544 wxT("Install")); 544 wxT("Install"));
545 buf = ""; 545 buf = wxT("");
546 } else 546 } else
547 { 547 {
548 buildinfo = new wxFileConfig(wxEmptyString, 548 buildinfo = new wxFileConfig(wxEmptyString,
@@ -557,7 +557,7 @@ void rbutilFrm::OnInstallBtn(wxCommandEvent& event)
557 } 557 }
558 } 558 }
559 559
560 if (buf == "") { 560 if (buf == wxT("")) {
561 WARN_DIALOG(wxT("Can't get date of latest build from " 561 WARN_DIALOG(wxT("Can't get date of latest build from "
562 "server. Using yesterday's date."), wxT("Install") ); 562 "server. Using yesterday's date."), wxT("Install") );
563 date = wxDateTime::Now(); 563 date = wxDateTime::Now();
@@ -657,7 +657,7 @@ void rbutilFrm::OnFontBtn(wxCommandEvent& event)
657 { 657 {
658 WARN_DIALOG(wxT("Unable to download build status."), 658 WARN_DIALOG(wxT("Unable to download build status."),
659 wxT("Font Install")); 659 wxT("Font Install"));
660 buf = ""; 660 buf = wxT("");
661 } else 661 } else
662 { 662 {
663 buildinfo = new wxFileConfig(wxEmptyString, 663 buildinfo = new wxFileConfig(wxEmptyString,
@@ -668,11 +668,11 @@ void rbutilFrm::OnFontBtn(wxCommandEvent& event)
668 if (buf.Len() != 8) { 668 if (buf.Len() != 8) {
669 dest.Printf(wxT("Invalid build date: %s"), buf.c_str()); 669 dest.Printf(wxT("Invalid build date: %s"), buf.c_str());
670 WARN_DIALOG(dest, wxT("Font Install")); 670 WARN_DIALOG(dest, wxT("Font Install"));
671 buf = ""; 671 buf = wxT("");
672 } 672 }
673 } 673 }
674 674
675 if (buf == "") { 675 if (buf == wxT("")) {
676 WARN_DIALOG(wxT("Can't get date of latest build from " 676 WARN_DIALOG(wxT("Can't get date of latest build from "
677 "server. Using yesterday's date."), 677 "server. Using yesterday's date."),
678 wxT("Font Install") ); 678 wxT("Font Install") );
@@ -880,7 +880,7 @@ AboutDlg::AboutDlg(rbutilFrm* parent)
880 wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE | wxTE_READONLY); 880 wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE | wxTE_READONLY);
881 881
882 long i = 0; 882 long i = 0;
883 while ( rbutil_developers[i] != "") 883 while ( rbutil_developers[i] != wxT(""))
884 { 884 {
885 WxTextCtrl1->AppendText(rbutil_developers[i++]); 885 WxTextCtrl1->AppendText(rbutil_developers[i++]);
886 WxTextCtrl1->AppendText(wxT("\n")); 886 WxTextCtrl1->AppendText(wxT("\n"));
diff --git a/rbutil/wizard_pages.cpp b/rbutil/wizard_pages.cpp
index 4ef463a2ec..10a511de47 100644
--- a/rbutil/wizard_pages.cpp
+++ b/rbutil/wizard_pages.cpp
@@ -145,6 +145,7 @@ bool wxPlatformPage::TransferDataFromWindow()
145//////////////// ThemeImage Dialog ///////////////// 145//////////////// ThemeImage Dialog /////////////////
146BEGIN_EVENT_TABLE(wxThemeImageDialog,wxDialog) 146BEGIN_EVENT_TABLE(wxThemeImageDialog,wxDialog)
147 EVT_PAINT(wxThemeImageDialog::OnPaint) 147 EVT_PAINT(wxThemeImageDialog::OnPaint)
148 EVT_CLOSE(wxThemeImageDialog::OnClose)
148END_EVENT_TABLE(); 149END_EVENT_TABLE();
149wxThemeImageDialog::wxThemeImageDialog(wxWindow* parent,wxWindowID id,wxString title,wxBitmap bmp) : 150wxThemeImageDialog::wxThemeImageDialog(wxWindow* parent,wxWindowID id,wxString title,wxBitmap bmp) :
150 wxDialog(parent, id, title) 151 wxDialog(parent, id, title)
@@ -152,7 +153,7 @@ wxThemeImageDialog::wxThemeImageDialog(wxWindow* parent,wxWindowID id,wxString t
152 wxBoxSizer *sizerTop = new wxBoxSizer(wxHORIZONTAL); 153 wxBoxSizer *sizerTop = new wxBoxSizer(wxHORIZONTAL);
153 m_bitmap = bmp; 154 m_bitmap = bmp;
154 155
155 sizerTop->SetMinSize(m_bitmap.GetWidth(),m_bitmap.GetHeight()); 156 sizerTop->SetMinSize(64,64);
156 157
157 SetSizer(sizerTop); 158 SetSizer(sizerTop);
158 159
@@ -161,6 +162,21 @@ wxThemeImageDialog::wxThemeImageDialog(wxWindow* parent,wxWindowID id,wxString t
161 162
162} 163}
163 164
165void wxThemeImageDialog::OnClose(wxCloseEvent& event)
166{
167 event.Veto();
168 this->Show(false);
169}
170
171void wxThemeImageDialog::SetImage(wxBitmap bmp)
172{
173 m_bitmap = bmp;
174 this->GetSizer()->SetMinSize(m_bitmap.GetWidth(),m_bitmap.GetHeight());
175 this->GetSizer()->Fit(this);
176 Layout();
177 Refresh();
178}
179
164void wxThemeImageDialog::OnPaint(wxPaintEvent& WXUNUSED(event)) 180void wxThemeImageDialog::OnPaint(wxPaintEvent& WXUNUSED(event))
165{ 181{
166 wxPaintDC dc( this ); 182 wxPaintDC dc( this );
@@ -179,6 +195,10 @@ END_EVENT_TABLE();
179wxThemesPage::wxThemesPage(wxWizard *parent) : wxWizardPageSimple(parent) 195wxThemesPage::wxThemesPage(wxWizard *parent) : wxWizardPageSimple(parent)
180{ 196{
181 m_parent = parent; 197 m_parent = parent;
198
199 myImageDialog = new wxThemeImageDialog(this,wxID_ANY,wxT("Preview"),NULL);
200 myImageDialog->Show(false);
201
182 wxSizer* mainSizer = new wxBoxSizer(wxVERTICAL); 202 wxSizer* mainSizer = new wxBoxSizer(wxVERTICAL);
183 203
184 wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY, 204 wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY,
@@ -189,7 +209,7 @@ wxThemesPage::wxThemesPage(wxWizard *parent) : wxWizardPageSimple(parent)
189 // create theme listbox 209 // create theme listbox
190 wxArrayString list; 210 wxArrayString list;
191 for(int i = 0; i< 35;i++) 211 for(int i = 0; i< 35;i++)
192 list.Add(""); 212 list.Add(wxT(""));
193 ThemesListBox= new wxListBox(this, ID_LISTBOX, wxDefaultPosition, 213 ThemesListBox= new wxListBox(this, ID_LISTBOX, wxDefaultPosition,
194 wxDefaultSize,list, wxLB_SINGLE); 214 wxDefaultSize,list, wxLB_SINGLE);
195 mainSizer->Add(ThemesListBox,10,wxGROW | wxALL,5); 215 mainSizer->Add(ThemesListBox,10,wxGROW | wxALL,5);
@@ -289,6 +309,35 @@ void wxThemesPage::OnListBox(wxCommandEvent& event)
289 309
290 this->GetSizer()->Layout(); 310 this->GetSizer()->Layout();
291 311
312 if(myImageDialog->IsShown())
313 {
314 wxString src,dest;
315
316 int pos = m_Themes_image[index].Find('/',true);
317 wxString filename = m_Themes_image[index](pos+1,m_Themes_image[index].Length());
318
319 dest.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "%s"),
320 gv->stdpaths->GetUserDataDir().c_str(),gv->curresolution.c_str());
321
322 if(!wxDirExists(dest))
323 wxMkdir(dest);
324
325 //this is a URL no PATH_SEP
326 src.Printf("%s/data/%s/%s",gv->themes_url.c_str(),gv->curresolution.c_str(),filename.c_str());
327 dest.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "%s" PATH_SEP "%s"),
328 gv->stdpaths->GetUserDataDir().c_str(),gv->curresolution.c_str(),filename.c_str());
329
330 if(DownloadURL(src, dest))
331 {
332 MESG_DIALOG(wxT("Unable to download image."));
333 return;
334 }
335
336 wxBitmap bmp;
337 bmp.LoadFile(dest,wxBITMAP_TYPE_PNG);
338 myImageDialog->SetImage(bmp);
339 }
340
292} 341}
293 342
294void wxThemesPage::OnPreviewBtn(wxCommandEvent& event) 343void wxThemesPage::OnPreviewBtn(wxCommandEvent& event)
@@ -310,7 +359,7 @@ void wxThemesPage::OnPreviewBtn(wxCommandEvent& event)
310 wxMkdir(dest); 359 wxMkdir(dest);
311 360
312 //this is a URL no PATH_SEP 361 //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()); 362 src.Printf(wxT("%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"), 363 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()); 364 gv->stdpaths->GetUserDataDir().c_str(),gv->curresolution.c_str(),filename.c_str());
316 365
@@ -323,8 +372,9 @@ void wxThemesPage::OnPreviewBtn(wxCommandEvent& event)
323 wxBitmap bmp; 372 wxBitmap bmp;
324 bmp.LoadFile(dest,wxBITMAP_TYPE_PNG); 373 bmp.LoadFile(dest,wxBITMAP_TYPE_PNG);
325 374
326 wxThemeImageDialog dlg(this,wxID_ANY,wxT("Preview"),bmp); 375 myImageDialog->SetImage(bmp);
327 dlg.ShowModal(); 376
377 myImageDialog->Show(true);
328 378
329} 379}
330 380
@@ -344,7 +394,7 @@ void wxThemesPage::OnPageShown(wxWizardEvent& event)
344 //get correct Themes list 394 //get correct Themes list
345 wxString src,dest,err; 395 wxString src,dest,err;
346 396
347 src.Printf("%srbutil.php?res=%s",gv->themes_url.c_str(),gv->curresolution.c_str()); 397 src.Printf(wxT("%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"), 398 dest.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "%s.list"),
349 gv->stdpaths->GetUserDataDir().c_str(),gv->curresolution.c_str()); 399 gv->stdpaths->GetUserDataDir().c_str(),gv->curresolution.c_str());
350 400
@@ -419,7 +469,7 @@ wxIpodLocationPage::wxIpodLocationPage(wxWizard* parent) : wxWizardPageSimple(pa
419 WxBoxSizer1->Add(WxBoxSizer3,0, 469 WxBoxSizer1->Add(WxBoxSizer3,0,
420 wxGROW | wxALIGN_CENTER_VERTICAL | wxALL, 5); 470 wxGROW | wxALIGN_CENTER_VERTICAL | wxALL, 5);
421 471
422 IpodLocationText = new wxStaticText(this, wxID_ANY, "", 472 IpodLocationText = new wxStaticText(this, wxID_ANY, wxT(""),
423 wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT); 473 wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
424 WxBoxSizer3->Add(IpodLocationText,1, 474 WxBoxSizer3->Add(IpodLocationText,1,
425 wxGROW | wxALIGN_CENTER_VERTICAL | wxALL, 5); 475 wxGROW | wxALIGN_CENTER_VERTICAL | wxALL, 5);
@@ -477,8 +527,8 @@ void wxIpodLocationPage::OnIpodLocationBtn(wxCommandEvent& event)
477 else if( n==1) 527 else if( n==1)
478 { 528 {
479 gv->curbootloader=wxT("bootloader-"); 529 gv->curbootloader=wxT("bootloader-");
480 gv->curbootloader.Append(ipod.targetname); 530 gv->curbootloader.Append(wxString(ipod.targetname, wxConvUTF8));
481 IpodLocationText->SetLabel(ipod.modelstr); 531 IpodLocationText->SetLabel(wxString(ipod.modelstr, wxConvUTF8));
482 } 532 }
483 else 533 else
484 IpodLocationText->SetLabel(wxT("More than 1 Ipod found")); 534 IpodLocationText->SetLabel(wxT("More than 1 Ipod found"));
@@ -571,7 +621,7 @@ void wxBootLocationPage::OnPageShown(wxWizardEvent& event)
571 } 621 }
572 else 622 else
573 { 623 {
574 BootLocationInfo->SetLabel(""); 624 BootLocationInfo->SetLabel(wxT(""));
575 } 625 }
576 626
577} 627}
@@ -667,7 +717,7 @@ void wxFirmwareLocationPage::OnWizardPageChanging(wxWizardEvent& event)
667void wxFirmwareLocationPage::OnFirmwareFilenameBtn(wxCommandEvent& event) 717void wxFirmwareLocationPage::OnFirmwareFilenameBtn(wxCommandEvent& event)
668{ 718{
669 wxString temp = wxFileSelector( 719 wxString temp = wxFileSelector(
670 wxT("Please select the location of the original Firmware"), gv->curdestdir,"","","*.hex"); 720 wxT("Please select the location of the original Firmware"), gv->curdestdir,wxT(""),wxT(""),wxT("*.hex"));
671 wxLogVerbose(wxT("=== begin wxFirmwareLocationPage::OnFirmwareFilenameBtn(event)")); 721 wxLogVerbose(wxT("=== begin wxFirmwareLocationPage::OnFirmwareFilenameBtn(event)"));
672 if (!temp.empty()) 722 if (!temp.empty())
673 { 723 {
@@ -675,7 +725,7 @@ void wxFirmwareLocationPage::OnFirmwareFilenameBtn(wxCommandEvent& event)
675 if(temp.Length() > 30) 725 if(temp.Length() > 30)
676 { 726 {
677 temp.Remove(0, temp.Length()-30); 727 temp.Remove(0, temp.Length()-30);
678 temp.Prepend("..."); 728 temp.Prepend(wxT("..."));
679 } 729 }
680 FirmwareLocationFilename->SetLabel(temp); 730 FirmwareLocationFilename->SetLabel(temp);
681 } 731 }
@@ -737,7 +787,7 @@ void wxLocationPage::OnPageShown(wxWizardEvent& event)
737 } 787 }
738 else 788 else
739 { 789 {
740 LocationInfo->SetLabel(""); 790 LocationInfo->SetLabel(wxT(""));
741 } 791 }
742 792
743 793
diff --git a/rbutil/wizard_pages.h b/rbutil/wizard_pages.h
index 70041bd2f7..f08d29d315 100644
--- a/rbutil/wizard_pages.h
+++ b/rbutil/wizard_pages.h
@@ -34,6 +34,8 @@ private:
34public: 34public:
35 wxThemeImageDialog(wxWindow* parent,wxWindowID id,wxString title,wxBitmap bmp); 35 wxThemeImageDialog(wxWindow* parent,wxWindowID id,wxString title,wxBitmap bmp);
36 void OnPaint(wxPaintEvent& WXUNUSED(event)); 36 void OnPaint(wxPaintEvent& WXUNUSED(event));
37 void SetImage(wxBitmap bmp);
38 void OnClose(wxCloseEvent& event);
37 39
38private: 40private:
39 wxBitmap m_bitmap; 41 wxBitmap m_bitmap;
@@ -68,6 +70,7 @@ public:
68 wxStaticText* m_desc; 70 wxStaticText* m_desc;
69 wxStaticText* m_size; 71 wxStaticText* m_size;
70 wxCheckBox* m_InstallCheckBox; 72 wxCheckBox* m_InstallCheckBox;
73 wxThemeImageDialog* myImageDialog;
71 74
72 wxArrayString m_Themes; 75 wxArrayString m_Themes;
73 wxArrayString m_Themes_path; 76 wxArrayString m_Themes_path;