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
This commit is contained in:
Dominik Wenger 2007-03-15 18:02:15 +00:00
parent 410af8955f
commit c9cafd846f
12 changed files with 114 additions and 62 deletions

View file

@ -368,10 +368,11 @@ bool fwpatcher(int mode)
{ {
if(mode == BOOTLOADER_ADD) if(mode == BOOTLOADER_ADD)
{ {
wxString md5sum_str,src,dest,err; char md5sum_str[32];
wxString src,dest,err;
int series,table_entry; int series,table_entry;
if (!FileMD5(gv->curfirmware, &md5sum_str)) { if (!FileMD5(gv->curfirmware, md5sum_str)) {
ERR_DIALOG(wxT("Could not open firmware"), wxT("Open Firmware")); ERR_DIALOG(wxT("Could not open firmware"), wxT("Open Firmware"));
return false; return false;
} }
@ -426,11 +427,11 @@ bool fwpatcher(int mode)
src.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "new.hex"), src.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "new.hex"),
gv->stdpaths->GetUserDataDir().c_str()); gv->stdpaths->GetUserDataDir().c_str());
if(gv->curplat == "h100") if(gv->curplat == wxT("h100"))
dest.Printf(wxT("%s" PATH_SEP "ihp_100.hex"),gv->curdestdir.c_str()); dest.Printf(wxT("%s" PATH_SEP "ihp_100.hex"),gv->curdestdir.c_str());
else if(gv->curplat == "h120") else if(gv->curplat == wxT("h120"))
dest.Printf(wxT("%s" PATH_SEP "ihp_120.hex"),gv->curdestdir.c_str()); dest.Printf(wxT("%s" PATH_SEP "ihp_120.hex"),gv->curdestdir.c_str());
else if(gv->curplat == "h300") else if(gv->curplat == wxT("h300"))
dest.Printf(wxT("%s" PATH_SEP "H300.hex"),gv->curdestdir.c_str()); dest.Printf(wxT("%s" PATH_SEP "H300.hex"),gv->curdestdir.c_str());
if(!wxRenameFile(src,dest)) if(!wxRenameFile(src,dest))

View file

@ -24,18 +24,18 @@
#define RBUTIL_FULLNAME "The Rockbox Utility" #define RBUTIL_FULLNAME "The Rockbox Utility"
#define RBUTIL_VERSION "Version 0.3.0.0" #define RBUTIL_VERSION "Version 0.3.0.0"
static const char* rbutil_developers[] = { static const wxString rbutil_developers[] = {
"Christi Alice Scarborough", wxT("Christi Alice Scarborough"),
"Dave Chapman", wxT("Dave Chapman"),
"Dominik Wenger", wxT("Dominik Wenger"),
"" wxT("")
}; };
#define RBUTIL_WEBSITE "http://www.rockbox.org/" #define RBUTIL_WEBSITE "http://www.rockbox.org/"
#define RBUTIL_COPYRIGHT "(C) 2005-6 The Rockbox Team\n" \ #define RBUTIL_COPYRIGHT wxT("(C) 2005-7 The Rockbox Team\n" \
"released under the GNU Public License v2" "released under the GNU Public License v2")
#define RBUTIL_DESCRIPTION "Installer and housekeeping utility for " \ #define RBUTIL_DESCRIPTION wxT("Installer and housekeeping utility for " \
"the Rockbox open source digital audio player firmware." "the Rockbox open source digital audio player firmware.")
class AboutDlg: public wxDialog class AboutDlg: public wxDialog

View file

@ -38,9 +38,9 @@ InstallLog::InstallLog(wxString logname, bool CreateLog)
return; return;
} }
logfile->SetPath("/InstallLog"); logfile->SetPath(wxT("/InstallLog"));
if (logfile->Exists("Version") && if (logfile->Exists(wxT("Version")) &&
logfile->Read("Version", 0l) != LOGFILE_VERSION ) logfile->Read(wxT("Version"), 0l) != LOGFILE_VERSION )
{ {
buf.Printf(_("Logfile version mismatch: %s"), logname.c_str() ); buf.Printf(_("Logfile version mismatch: %s"), logname.c_str() );
wxLogWarning(buf); wxLogWarning(buf);
@ -48,7 +48,7 @@ InstallLog::InstallLog(wxString logname, bool CreateLog)
return; return;
} }
logfile->Write("Version", LOGFILE_VERSION); logfile->Write(wxT("Version"), LOGFILE_VERSION);
dirtyflag = false; dirtyflag = false;
} }
@ -105,12 +105,12 @@ unsigned int InstallLog::WriteFile(wxArrayString filepaths)
wxArrayString* InstallLog::GetInstalledFiles() wxArrayString* InstallLog::GetInstalledFiles()
{ {
wxString curdir = ""; wxString curdir = wxT("");
if (dirtyflag) return NULL; if (dirtyflag) return NULL;
workingAS.Clear(); workingAS.Clear();
EnumerateCurDir(""); EnumerateCurDir(wxT(""));
wxArrayString* out = new wxArrayString(workingAS); wxArrayString* out = new wxArrayString(workingAS);
return out; return out;
@ -129,8 +129,8 @@ void InstallLog::EnumerateCurDir(wxString curdir)
contflag = logfile->GetFirstGroup(curname, dummy); contflag = logfile->GetFirstGroup(curname, dummy);
while (contflag) while (contflag)
{ {
buf.Printf("%s/%s", curdir.c_str(), curname.c_str() ); buf.Printf(wxT("%s/%s"), curdir.c_str(), curname.c_str() );
buf2 = buf; buf2.Replace(wxT("/"), wxT(PATH_SEP)); buf2 = buf; buf2.Replace(wxT("/"), PATH_SEP);
workingAS.Add(buf2); workingAS.Add(buf2);
EnumerateCurDir(buf); EnumerateCurDir(buf);
contflag = logfile->GetNextGroup(curname, dummy); contflag = logfile->GetNextGroup(curname, dummy);
@ -141,8 +141,8 @@ void InstallLog::EnumerateCurDir(wxString curdir)
{ {
if (curname != wxT(DIRECTORY_KLUDGE) ) if (curname != wxT(DIRECTORY_KLUDGE) )
{ {
buf.Printf("%s/%s", curdir.c_str(), curname.c_str() ); buf.Printf(wxT("%s/%s"), curdir.c_str(), curname.c_str() );
buf2 = buf; buf2.Replace(wxT("/"), wxT(PATH_SEP)); buf2 = buf; buf2.Replace(wxT("/"), PATH_SEP);
workingAS.Add(buf2); workingAS.Add(buf2);
} }
contflag = logfile->GetNextEntry(curname, dummy); contflag = logfile->GetNextEntry(curname, dummy);

View file

@ -170,11 +170,11 @@ bool mkboot(wxString infile, wxString outfile,wxString bootloader,int origin)
/* end mkboot.c excerpt */ /* end mkboot.c excerpt */
int intable(wxString md5, struct sumpairs *table, int len) int intable(char *md5, struct sumpairs *table, int len)
{ {
int i; int i;
for (i = 0; i < len; i++) { for (i = 0; i < len; i++) {
if (md5.Cmp(table[i].unpatched) == 0) { if (strncmp(md5, table[i].unpatched, 32) == 0) {
return i; return i;
} }
} }
@ -544,7 +544,7 @@ bool PatchFirmware(wxString firmware,wxString bootloader,int series, int table_e
{ {
wxString name1, name2, name3; wxString name1, name2, name3;
wxString md5sum_str; char md5sum_str[32];
int i; int i;
struct sumpairs *sums; struct sumpairs *sums;
int origin; int origin;
@ -595,14 +595,14 @@ bool PatchFirmware(wxString firmware,wxString bootloader,int series, int table_e
return false; return false;
} }
/* now md5sum it */ /* now md5sum it */
if (!FileMD5(name3, &md5sum_str)) { if (!FileMD5(name3, md5sum_str)) {
ERR_DIALOG(wxT("Error in checksumming"),wxT("Checksumming Firmware")); ERR_DIALOG(wxT("Error in checksumming"),wxT("Checksumming Firmware"));
wxRemoveFile(name1); wxRemoveFile(name1);
wxRemoveFile(name2); wxRemoveFile(name2);
wxRemoveFile(name3); wxRemoveFile(name3);
return false; return false;
} }
if (strncmp(sums[table_entry].patched, md5sum_str.c_str(), 32) == 0) { if (strncmp(sums[table_entry].patched, md5sum_str, 32) == 0) {
/* delete temp files */ /* delete temp files */
wxRemoveFile(name1); wxRemoveFile(name1);
wxRemoveFile(name2); wxRemoveFile(name2);

View file

@ -57,7 +57,7 @@ enum striptype
/* protos for iriver.c */ /* protos for iriver.c */
int intable(wxString md5, struct sumpairs *table, int len); int intable(char *md5, struct sumpairs *table, int len);
bool PatchFirmware(wxString firmware,wxString bootloader,int series, int table_entry); bool PatchFirmware(wxString firmware,wxString bootloader,int series, int table_entry);

View file

@ -268,20 +268,19 @@ void md5_finish( md5_context *ctx, uint8 digest[16] )
PUT_UINT32( ctx->state[3], digest, 12 ); PUT_UINT32( ctx->state[3], digest, 12 );
} }
int FileMD5(wxString name,wxString *md5) int FileMD5(wxString name, char *md5)
{ {
int i, read; int i, read;
md5_context ctx; md5_context ctx;
unsigned char md5sum[16]; unsigned char md5sum[16];
unsigned char block[32768]; unsigned char block[32768];
char temp[255];
wxFile file; wxFile file;
file.Open(name); file.Open(name);
if (!file.IsOpened()) { if (!file.IsOpened()) {
ERR_DIALOG("Could not open patched firmware for checksum check", _("Open Firmware")); ERR_DIALOG(wxT("Could not open patched firmware for checksum check"), wxT("Open Firmware"));
return 0; return 0;
} }
md5_starts(&ctx); md5_starts(&ctx);
@ -293,8 +292,7 @@ int FileMD5(wxString name,wxString *md5)
md5_finish(&ctx, md5sum); md5_finish(&ctx, md5sum);
for (i = 0; i < 16; ++i) for (i = 0; i < 16; ++i)
{ {
sprintf(temp + 2*i, "%02x", md5sum[i]); sprintf(md5 + 2*i, "%02x", md5sum[i]);
} }
md5->Append(temp);
return 1; return 1;
} }

View file

@ -46,6 +46,6 @@ void md5_starts( md5_context *ctx );
void md5_update( md5_context *ctx, uint8 *input, uint32 length ); void md5_update( md5_context *ctx, uint8 *input, uint32 length );
void md5_finish( md5_context *ctx, uint8 digest[16] ); void md5_finish( md5_context *ctx, uint8 digest[16] );
int FileMD5(wxString name,wxString *md5); int FileMD5(wxString name, char *md5);
#endif // MD5SUM_H_INCLUDED #endif // MD5SUM_H_INCLUDED

View file

@ -488,14 +488,14 @@ int Uninstall(const wxString dir, bool isFullUninstall) {
// If we're running on the device, let's not delete our own // If we're running on the device, let's not delete our own
// installation, eh? // installation, eh?
if (gv->portable && if (gv->portable &&
FilesToRemove->Item(i).StartsWith(wxT(PATH_SEP FilesToRemove->Item(i).StartsWith(PATH_SEP
"RockboxUtility")) ) wxT("RockboxUtility")) )
{ {
continue; continue;
} }
wxString* buf2 = new wxString; wxString* buf2 = new wxString;
buf.Printf("%s%s", dir.c_str() , FilesToRemove->Item(i).c_str() ); buf.Printf(wxT("%s%s"), dir.c_str() , FilesToRemove->Item(i).c_str() );
buf2->Format(wxT("Deleting %s"), buf.c_str()); buf2->Format(wxT("Deleting %s"), buf.c_str());
if (! progress->Update((i + 1) * 100 / totalfiles, *buf2) ) if (! progress->Update((i + 1) * 100 / totalfiles, *buf2) )

View file

@ -53,8 +53,8 @@ bool rbutilFrmApp::OnInit()
} }
} }
buf += wxT(PATH_SEP "rbutil.log"); buf += PATH_SEP wxT("rbutil.log");
gv->logfile = new wxFFile(buf, "w"); gv->logfile = new wxFFile(buf, wxT("w"));
if (! gv->logfile->IsOpened() ) if (! gv->logfile->IsOpened() )
wxLogFatalError(wxT("Unable to open log file")); wxLogFatalError(wxT("Unable to open log file"));

View file

@ -271,7 +271,7 @@ void rbutilFrm::OnFileWipeCache(wxCommandEvent& event)
wxString cacheloc, datadir; wxString cacheloc, datadir;
datadir = gv->stdpaths->GetUserDataDir(); datadir = gv->stdpaths->GetUserDataDir();
if (datadir == "") if (datadir == wxT(""))
{ {
ERR_DIALOG(wxT("Can't locate user data directory. Unable to delete " ERR_DIALOG(wxT("Can't locate user data directory. Unable to delete "
"cache."), wxT("Delete download cache.") ); "cache."), wxT("Delete download cache.") );
@ -284,7 +284,7 @@ void rbutilFrm::OnFileWipeCache(wxCommandEvent& event)
if (! rm_rf(cacheloc) ) if (! rm_rf(cacheloc) )
{ {
wxMessageDialog* msg = new wxMessageDialog(this, wxT("Local download cache has been deleted.") wxMessageDialog* msg = new wxMessageDialog(this, wxT("Local download cache has been deleted.")
,"Cache deletion", wxOK |wxICON_INFORMATION); , wxT("Cache deletion"), wxOK |wxICON_INFORMATION);
msg->ShowModal(); msg->ShowModal();
delete msg; delete msg;
} }
@ -542,7 +542,7 @@ void rbutilFrm::OnInstallBtn(wxCommandEvent& event)
if (DownloadURL(gv->server_conf_url, dest)) { if (DownloadURL(gv->server_conf_url, dest)) {
WARN_DIALOG(wxT("Unable to download build status."), WARN_DIALOG(wxT("Unable to download build status."),
wxT("Install")); wxT("Install"));
buf = ""; buf = wxT("");
} else } else
{ {
buildinfo = new wxFileConfig(wxEmptyString, buildinfo = new wxFileConfig(wxEmptyString,
@ -557,7 +557,7 @@ void rbutilFrm::OnInstallBtn(wxCommandEvent& event)
} }
} }
if (buf == "") { if (buf == wxT("")) {
WARN_DIALOG(wxT("Can't get date of latest build from " WARN_DIALOG(wxT("Can't get date of latest build from "
"server. Using yesterday's date."), wxT("Install") ); "server. Using yesterday's date."), wxT("Install") );
date = wxDateTime::Now(); date = wxDateTime::Now();
@ -657,7 +657,7 @@ void rbutilFrm::OnFontBtn(wxCommandEvent& event)
{ {
WARN_DIALOG(wxT("Unable to download build status."), WARN_DIALOG(wxT("Unable to download build status."),
wxT("Font Install")); wxT("Font Install"));
buf = ""; buf = wxT("");
} else } else
{ {
buildinfo = new wxFileConfig(wxEmptyString, buildinfo = new wxFileConfig(wxEmptyString,
@ -668,11 +668,11 @@ void rbutilFrm::OnFontBtn(wxCommandEvent& event)
if (buf.Len() != 8) { if (buf.Len() != 8) {
dest.Printf(wxT("Invalid build date: %s"), buf.c_str()); dest.Printf(wxT("Invalid build date: %s"), buf.c_str());
WARN_DIALOG(dest, wxT("Font Install")); WARN_DIALOG(dest, wxT("Font Install"));
buf = ""; buf = wxT("");
} }
} }
if (buf == "") { if (buf == wxT("")) {
WARN_DIALOG(wxT("Can't get date of latest build from " WARN_DIALOG(wxT("Can't get date of latest build from "
"server. Using yesterday's date."), "server. Using yesterday's date."),
wxT("Font Install") ); wxT("Font Install") );
@ -880,7 +880,7 @@ AboutDlg::AboutDlg(rbutilFrm* parent)
wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE | wxTE_READONLY); wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE | wxTE_READONLY);
long i = 0; long i = 0;
while ( rbutil_developers[i] != "") while ( rbutil_developers[i] != wxT(""))
{ {
WxTextCtrl1->AppendText(rbutil_developers[i++]); WxTextCtrl1->AppendText(rbutil_developers[i++]);
WxTextCtrl1->AppendText(wxT("\n")); WxTextCtrl1->AppendText(wxT("\n"));

View file

@ -145,6 +145,7 @@ bool wxPlatformPage::TransferDataFromWindow()
//////////////// ThemeImage Dialog ///////////////// //////////////// ThemeImage Dialog /////////////////
BEGIN_EVENT_TABLE(wxThemeImageDialog,wxDialog) BEGIN_EVENT_TABLE(wxThemeImageDialog,wxDialog)
EVT_PAINT(wxThemeImageDialog::OnPaint) EVT_PAINT(wxThemeImageDialog::OnPaint)
EVT_CLOSE(wxThemeImageDialog::OnClose)
END_EVENT_TABLE(); END_EVENT_TABLE();
wxThemeImageDialog::wxThemeImageDialog(wxWindow* parent,wxWindowID id,wxString title,wxBitmap bmp) : wxThemeImageDialog::wxThemeImageDialog(wxWindow* parent,wxWindowID id,wxString title,wxBitmap bmp) :
wxDialog(parent, id, title) wxDialog(parent, id, title)
@ -152,7 +153,7 @@ wxThemeImageDialog::wxThemeImageDialog(wxWindow* parent,wxWindowID id,wxString t
wxBoxSizer *sizerTop = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer *sizerTop = new wxBoxSizer(wxHORIZONTAL);
m_bitmap = bmp; m_bitmap = bmp;
sizerTop->SetMinSize(m_bitmap.GetWidth(),m_bitmap.GetHeight()); sizerTop->SetMinSize(64,64);
SetSizer(sizerTop); SetSizer(sizerTop);
@ -161,6 +162,21 @@ wxThemeImageDialog::wxThemeImageDialog(wxWindow* parent,wxWindowID id,wxString t
} }
void wxThemeImageDialog::OnClose(wxCloseEvent& event)
{
event.Veto();
this->Show(false);
}
void wxThemeImageDialog::SetImage(wxBitmap bmp)
{
m_bitmap = bmp;
this->GetSizer()->SetMinSize(m_bitmap.GetWidth(),m_bitmap.GetHeight());
this->GetSizer()->Fit(this);
Layout();
Refresh();
}
void wxThemeImageDialog::OnPaint(wxPaintEvent& WXUNUSED(event)) void wxThemeImageDialog::OnPaint(wxPaintEvent& WXUNUSED(event))
{ {
wxPaintDC dc( this ); wxPaintDC dc( this );
@ -179,6 +195,10 @@ END_EVENT_TABLE();
wxThemesPage::wxThemesPage(wxWizard *parent) : wxWizardPageSimple(parent) wxThemesPage::wxThemesPage(wxWizard *parent) : wxWizardPageSimple(parent)
{ {
m_parent = parent; m_parent = parent;
myImageDialog = new wxThemeImageDialog(this,wxID_ANY,wxT("Preview"),NULL);
myImageDialog->Show(false);
wxSizer* mainSizer = new wxBoxSizer(wxVERTICAL); wxSizer* mainSizer = new wxBoxSizer(wxVERTICAL);
wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY, wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY,
@ -189,7 +209,7 @@ wxThemesPage::wxThemesPage(wxWizard *parent) : wxWizardPageSimple(parent)
// create theme listbox // create theme listbox
wxArrayString list; wxArrayString list;
for(int i = 0; i< 35;i++) for(int i = 0; i< 35;i++)
list.Add(""); list.Add(wxT(""));
ThemesListBox= new wxListBox(this, ID_LISTBOX, wxDefaultPosition, ThemesListBox= new wxListBox(this, ID_LISTBOX, wxDefaultPosition,
wxDefaultSize,list, wxLB_SINGLE); wxDefaultSize,list, wxLB_SINGLE);
mainSizer->Add(ThemesListBox,10,wxGROW | wxALL,5); mainSizer->Add(ThemesListBox,10,wxGROW | wxALL,5);
@ -289,6 +309,35 @@ void wxThemesPage::OnListBox(wxCommandEvent& event)
this->GetSizer()->Layout(); this->GetSizer()->Layout();
if(myImageDialog->IsShown())
{
wxString src,dest;
int pos = m_Themes_image[index].Find('/',true);
wxString filename = m_Themes_image[index](pos+1,m_Themes_image[index].Length());
dest.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "%s"),
gv->stdpaths->GetUserDataDir().c_str(),gv->curresolution.c_str());
if(!wxDirExists(dest))
wxMkdir(dest);
//this is a URL no PATH_SEP
src.Printf("%s/data/%s/%s",gv->themes_url.c_str(),gv->curresolution.c_str(),filename.c_str());
dest.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "%s" PATH_SEP "%s"),
gv->stdpaths->GetUserDataDir().c_str(),gv->curresolution.c_str(),filename.c_str());
if(DownloadURL(src, dest))
{
MESG_DIALOG(wxT("Unable to download image."));
return;
}
wxBitmap bmp;
bmp.LoadFile(dest,wxBITMAP_TYPE_PNG);
myImageDialog->SetImage(bmp);
}
} }
void wxThemesPage::OnPreviewBtn(wxCommandEvent& event) void wxThemesPage::OnPreviewBtn(wxCommandEvent& event)
@ -310,7 +359,7 @@ void wxThemesPage::OnPreviewBtn(wxCommandEvent& event)
wxMkdir(dest); wxMkdir(dest);
//this is a URL no PATH_SEP //this is a URL no PATH_SEP
src.Printf("%s/data/%s/%s",gv->themes_url.c_str(),gv->curresolution.c_str(),filename.c_str()); src.Printf(wxT("%s/data/%s/%s"),gv->themes_url.c_str(),gv->curresolution.c_str(),filename.c_str());
dest.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "%s" PATH_SEP "%s"), dest.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "%s" PATH_SEP "%s"),
gv->stdpaths->GetUserDataDir().c_str(),gv->curresolution.c_str(),filename.c_str()); gv->stdpaths->GetUserDataDir().c_str(),gv->curresolution.c_str(),filename.c_str());
@ -323,8 +372,9 @@ void wxThemesPage::OnPreviewBtn(wxCommandEvent& event)
wxBitmap bmp; wxBitmap bmp;
bmp.LoadFile(dest,wxBITMAP_TYPE_PNG); bmp.LoadFile(dest,wxBITMAP_TYPE_PNG);
wxThemeImageDialog dlg(this,wxID_ANY,wxT("Preview"),bmp); myImageDialog->SetImage(bmp);
dlg.ShowModal();
myImageDialog->Show(true);
} }
@ -344,7 +394,7 @@ void wxThemesPage::OnPageShown(wxWizardEvent& event)
//get correct Themes list //get correct Themes list
wxString src,dest,err; wxString src,dest,err;
src.Printf("%srbutil.php?res=%s",gv->themes_url.c_str(),gv->curresolution.c_str()); src.Printf(wxT("%srbutil.php?res=%s"),gv->themes_url.c_str(),gv->curresolution.c_str());
dest.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "%s.list"), dest.Printf(wxT("%s" PATH_SEP "download" PATH_SEP "%s.list"),
gv->stdpaths->GetUserDataDir().c_str(),gv->curresolution.c_str()); gv->stdpaths->GetUserDataDir().c_str(),gv->curresolution.c_str());
@ -419,7 +469,7 @@ wxIpodLocationPage::wxIpodLocationPage(wxWizard* parent) : wxWizardPageSimple(pa
WxBoxSizer1->Add(WxBoxSizer3,0, WxBoxSizer1->Add(WxBoxSizer3,0,
wxGROW | wxALIGN_CENTER_VERTICAL | wxALL, 5); wxGROW | wxALIGN_CENTER_VERTICAL | wxALL, 5);
IpodLocationText = new wxStaticText(this, wxID_ANY, "", IpodLocationText = new wxStaticText(this, wxID_ANY, wxT(""),
wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT); wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
WxBoxSizer3->Add(IpodLocationText,1, WxBoxSizer3->Add(IpodLocationText,1,
wxGROW | wxALIGN_CENTER_VERTICAL | wxALL, 5); wxGROW | wxALIGN_CENTER_VERTICAL | wxALL, 5);
@ -477,8 +527,8 @@ void wxIpodLocationPage::OnIpodLocationBtn(wxCommandEvent& event)
else if( n==1) else if( n==1)
{ {
gv->curbootloader=wxT("bootloader-"); gv->curbootloader=wxT("bootloader-");
gv->curbootloader.Append(ipod.targetname); gv->curbootloader.Append(wxString(ipod.targetname, wxConvUTF8));
IpodLocationText->SetLabel(ipod.modelstr); IpodLocationText->SetLabel(wxString(ipod.modelstr, wxConvUTF8));
} }
else else
IpodLocationText->SetLabel(wxT("More than 1 Ipod found")); IpodLocationText->SetLabel(wxT("More than 1 Ipod found"));
@ -571,7 +621,7 @@ void wxBootLocationPage::OnPageShown(wxWizardEvent& event)
} }
else else
{ {
BootLocationInfo->SetLabel(""); BootLocationInfo->SetLabel(wxT(""));
} }
} }
@ -667,7 +717,7 @@ void wxFirmwareLocationPage::OnWizardPageChanging(wxWizardEvent& event)
void wxFirmwareLocationPage::OnFirmwareFilenameBtn(wxCommandEvent& event) void wxFirmwareLocationPage::OnFirmwareFilenameBtn(wxCommandEvent& event)
{ {
wxString temp = wxFileSelector( wxString temp = wxFileSelector(
wxT("Please select the location of the original Firmware"), gv->curdestdir,"","","*.hex"); wxT("Please select the location of the original Firmware"), gv->curdestdir,wxT(""),wxT(""),wxT("*.hex"));
wxLogVerbose(wxT("=== begin wxFirmwareLocationPage::OnFirmwareFilenameBtn(event)")); wxLogVerbose(wxT("=== begin wxFirmwareLocationPage::OnFirmwareFilenameBtn(event)"));
if (!temp.empty()) if (!temp.empty())
{ {
@ -675,7 +725,7 @@ void wxFirmwareLocationPage::OnFirmwareFilenameBtn(wxCommandEvent& event)
if(temp.Length() > 30) if(temp.Length() > 30)
{ {
temp.Remove(0, temp.Length()-30); temp.Remove(0, temp.Length()-30);
temp.Prepend("..."); temp.Prepend(wxT("..."));
} }
FirmwareLocationFilename->SetLabel(temp); FirmwareLocationFilename->SetLabel(temp);
} }
@ -737,7 +787,7 @@ void wxLocationPage::OnPageShown(wxWizardEvent& event)
} }
else else
{ {
LocationInfo->SetLabel(""); LocationInfo->SetLabel(wxT(""));
} }

View file

@ -34,6 +34,8 @@ private:
public: public:
wxThemeImageDialog(wxWindow* parent,wxWindowID id,wxString title,wxBitmap bmp); wxThemeImageDialog(wxWindow* parent,wxWindowID id,wxString title,wxBitmap bmp);
void OnPaint(wxPaintEvent& WXUNUSED(event)); void OnPaint(wxPaintEvent& WXUNUSED(event));
void SetImage(wxBitmap bmp);
void OnClose(wxCloseEvent& event);
private: private:
wxBitmap m_bitmap; wxBitmap m_bitmap;
@ -68,6 +70,7 @@ public:
wxStaticText* m_desc; wxStaticText* m_desc;
wxStaticText* m_size; wxStaticText* m_size;
wxCheckBox* m_InstallCheckBox; wxCheckBox* m_InstallCheckBox;
wxThemeImageDialog* myImageDialog;
wxArrayString m_Themes; wxArrayString m_Themes;
wxArrayString m_Themes_path; wxArrayString m_Themes_path;