summaryrefslogtreecommitdiff
path: root/rbutil/wizard_pages.cpp
diff options
context:
space:
mode:
authorDominik Wenger <domonoky@googlemail.com>2007-05-03 17:10:28 +0000
committerDominik Wenger <domonoky@googlemail.com>2007-05-03 17:10:28 +0000
commit60f864181118212507ae4873c8ba2667f333f23e (patch)
tree95099393d2c386d9130bc35e91f7821e4975e3eb /rbutil/wizard_pages.cpp
parentf48e0b514c6672b38d80a14a5779922253f1bbdc (diff)
New, better GUI for rbutil. (FS#6893)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13310 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'rbutil/wizard_pages.cpp')
-rw-r--r--rbutil/wizard_pages.cpp967
1 files changed, 0 insertions, 967 deletions
diff --git a/rbutil/wizard_pages.cpp b/rbutil/wizard_pages.cpp
deleted file mode 100644
index 5649238ac8..0000000000
--- a/rbutil/wizard_pages.cpp
+++ /dev/null
@@ -1,967 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * Module: rbutil
- * File: wizardpages.cpp
- *
- * Copyright (C) 2005 Christi Alice Scarborough
- *
- * All files in this archive are subject to the GNU General Public License.
- * See the file COPYING in the source tree root for full license agreement.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-
-#include "wizard_pages.h"
-#include "bootloaders.h"
-
-
-#include <wx/regex.h>
-#include <wx/tokenzr.h>
-
-/////// Bootplatform page ///////////////////////////////////77
-wxBootPlatformPage::wxBootPlatformPage(wxWizard *parent) : wxWizardPageSimple(parent)
-{
- wxBoxSizer* WxBoxSizer1 = new wxBoxSizer(wxVERTICAL);
-
- wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY,
- wxT("Please select the model of audio device that you would like to"
- "\ninstall the Rockbox Bootloader on from the list below:"));
- WxBoxSizer1->Add(WxStaticText1,0,wxGROW | wxALL,5);
-
- wxArrayString arrayStringFor_WxListBox1;
- for (unsigned int i=0; i< gv->plat_name.GetCount(); i++) {
- if (gv->plat_needsbootloader[i])
- {
- if(gv->plat_autodetect[i])
- {
- if(arrayStringFor_WxListBox1.Index(gv->plat_combinedname[i]) == wxNOT_FOUND)
- arrayStringFor_WxListBox1.Add(gv->plat_combinedname[i]);
- }
- else
- {
- arrayStringFor_WxListBox1.Add(gv->plat_name[i]);
- }
- }
- }
-
- BootPlatformListBox = new wxListBox(this, wxID_ANY, wxDefaultPosition,
- wxDefaultSize, arrayStringFor_WxListBox1, wxLB_SINGLE);
- WxBoxSizer1->Add(BootPlatformListBox,0,wxGROW | wxALL,5);
-
- SetSizer(WxBoxSizer1);
- WxBoxSizer1->Fit(this);
-
- for (unsigned int i=0; i< gv->plat_id.GetCount(); i++) {
- if (gv->plat_id[i] == gv->curplat) BootPlatformListBox->SetSelection(i);
- }
-
-}
-
-wxWizardPage * wxBootPlatformPage::GetNext() const
-{
- if(gv->curbootloadermethod != wxT("fwpatcher")&& gv->curbootloadermethod != wxT("ipodpatcher"))
- {
- if(wxWizardPageSimple::GetNext()->GetNext() != NULL) // not iriver hx0 and ipod, skip one page
- return wxWizardPageSimple::GetNext()->GetNext();
- }
- else if(gv->curbootloadermethod == wxT("ipodpatcher"))
- {
- if(wxWizardPageSimple::GetNext()->GetNext() != NULL)
- if(wxWizardPageSimple::GetNext()->GetNext()->GetNext() != NULL)
- return wxWizardPageSimple::GetNext()->GetNext()->GetNext(); //ipod, skip 2 pages
- else
- return wxWizardPageSimple::GetNext()->GetNext(); //ipod, skip 1 page (for uninstallation)
- }
-
- // all others , no skip
- return wxWizardPageSimple::GetNext();
-}
-
-bool wxBootPlatformPage::TransferDataFromWindow()
-{
- if (BootPlatformListBox->GetSelection() == wxNOT_FOUND )
- {
- WARN_DIALOG(wxT("You must select an audio device type before proceeding"),
- wxT("Select Platform"));
- return false;
- } else
- {
- int idx = gv->plat_name.Index(BootPlatformListBox->GetStringSelection());
- if(idx == wxNOT_FOUND) idx =gv->plat_combinedname.Index(BootPlatformListBox->GetStringSelection());
- gv->curplatnum = idx;
- gv->curplat = gv->plat_id[gv->curplatnum];
- gv->curbootloadermethod = gv->plat_bootloadermethod[gv->curplatnum];
- gv->curbootloader = gv->plat_bootloadername[gv->curplatnum];
-
- return true;
- }
-}
-//// Plattfor Page //////////////////////////
-wxPlatformPage::wxPlatformPage(wxWizard *parent) : wxWizardPageSimple(parent)
-{
- wxBoxSizer* WxBoxSizer1 = new wxBoxSizer(wxVERTICAL);
-
- wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY,
- wxT("Please select the model of audio device that you would like to"
- "\ninstall Rockbox on from the list below:"));
- WxBoxSizer1->Add(WxStaticText1,0,wxGROW | wxALL,5);
-
- wxArrayString arrayStringFor_WxListBox1;
- PlatformListBox = new wxListBox(this, wxID_ANY, wxDefaultPosition,
- wxDefaultSize, gv->plat_name, wxLB_SINGLE);
- WxBoxSizer1->Add(PlatformListBox,0,wxGROW | wxALL,5);
-
- SetSizer(WxBoxSizer1);
- WxBoxSizer1->Fit(this);
- for (unsigned int i=0; i< gv->plat_id.GetCount(); i++) {
- if (gv->plat_id[i] == gv->curplat) PlatformListBox->SetSelection(i);
- }
-}
-
-bool wxPlatformPage::TransferDataFromWindow()
-{
- if (PlatformListBox->GetSelection() == wxNOT_FOUND )
- {
- WARN_DIALOG(wxT("You must select an audio device type before proceeding"),
- wxT("Select Platform"));
- return false;
- } else
- {
- gv->curplatnum = PlatformListBox->GetSelection();
- gv->curplat = gv->plat_id[gv->curplatnum];
- gv->curresolution = gv->plat_resolution[gv->curplatnum];
- return true;
- }
-}
-
-
-//////////////// ThemeImage Dialog /////////////////
-BEGIN_EVENT_TABLE(wxThemeImageDialog,wxDialog)
- EVT_PAINT(wxThemeImageDialog::OnPaint)
- EVT_CLOSE(wxThemeImageDialog::OnClose)
-END_EVENT_TABLE();
-wxThemeImageDialog::wxThemeImageDialog(wxWindow* parent,wxWindowID id,wxString title,wxBitmap bmp) :
- wxDialog(parent, id, title)
-{
- wxBoxSizer *sizerTop = new wxBoxSizer(wxHORIZONTAL);
- m_bitmap = bmp;
-
- sizerTop->SetMinSize(64,64);
-
- SetSizer(sizerTop);
-
- sizerTop->SetSizeHints(this);
- sizerTop->Fit(this);
-
-}
-
-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))
-{
- wxPaintDC dc( this );
- dc.DrawBitmap( m_bitmap, 0, 0, true /* use mask */ );
-}
-
-////////////////// Themes page ////////////////////////
-BEGIN_EVENT_TABLE(wxThemesPage,wxWizardPageSimple)
- EVT_WIZARD_PAGE_CHANGED (wxID_ANY, wxThemesPage::OnPageShown)
- EVT_WIZARD_PAGE_CHANGING (wxID_ANY, wxThemesPage::OnWizardPageChanging)
- EVT_LISTBOX (ID_LISTBOX,wxThemesPage::OnListBox)
- EVT_BUTTON (ID_PREVIEW_BTN, wxThemesPage::OnPreviewBtn)
- EVT_CHECKBOX (ID_INSTALLCHECKBOX, wxThemesPage::OnCheckBox)
-END_EVENT_TABLE();
-
-wxThemesPage::wxThemesPage(wxWizard *parent) : wxWizardPageSimple(parent)
-{
- m_parent = parent;
-
- myImageDialog = new wxThemeImageDialog(this,wxID_ANY,wxT("Preview"),NULL);
- myImageDialog->Show(false);
-
- wxSizer* mainSizer = new wxBoxSizer(wxVERTICAL);
-
- wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY,
- wxT("Please select the Theme you would like to"
- "\ninstall on your Device from the list below:"));
- mainSizer->Add(WxStaticText1,0,wxGROW | wxALL,5);
-
- // create theme listbox
- wxArrayString list;
- for(int i = 0; i< 35;i++)
- list.Add(wxT(""));
- ThemesListBox= new wxListBox(this, ID_LISTBOX, wxDefaultPosition,
- wxDefaultSize,list, wxLB_SINGLE);
- mainSizer->Add(ThemesListBox,10,wxGROW | wxALL,5);
-
- // create groupbox
- wxStaticBox* groupbox= new wxStaticBox(this,wxID_ANY,wxT("Selected Theme:"));
- wxBoxSizer* styleSizer = new wxStaticBoxSizer( groupbox, wxVERTICAL );
- mainSizer->Add(styleSizer,11,wxGROW | wxALL,5);
-
- // horizontal sizer
- wxBoxSizer* wxBoxSizer2 = new wxBoxSizer(wxHORIZONTAL);
- styleSizer->Add(wxBoxSizer2,0,wxGROW | wxALL,0);
-
- // preview button
- m_previewBtn = new wxButton(this, ID_PREVIEW_BTN, wxT("Preview"),
- wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator,
- wxT("PreviewBtn"));
- wxBoxSizer2->Add(m_previewBtn,0,wxGROW | wxALL,5);
-
- // checkbox for Install
- m_InstallCheckBox= new wxCheckBox(this,ID_INSTALLCHECKBOX,wxT("Install")
- ,wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator,
- wxT("InstallCheckbox"));
- wxBoxSizer2->Add(m_InstallCheckBox,0,wxGROW | wxALL,5);
-
- // horizontal sizer
- wxBoxSizer* wxBoxSizer3 = new wxBoxSizer(wxHORIZONTAL);
- styleSizer->Add(wxBoxSizer3,0,wxGROW | wxALL,0);
-
- // File size
- wxStaticText* size= new wxStaticText(this,wxID_ANY,wxT("Filesize:"));
- wxBoxSizer3->Add(size,0,wxGROW | wxALL,5);
-
- m_size= new wxStaticText(this,wxID_ANY,wxT(""));
- wxBoxSizer3->Add(m_size,0,wxGROW | wxALL,5);
-
- // Description
- wxStaticText* desc= new wxStaticText(this,wxID_ANY,wxT("Description:"));
- styleSizer->Add(desc,0,wxGROW | wxALL,5);
-
- m_desc= new wxStaticText(this,wxID_ANY,wxT(""));
- styleSizer->Add(m_desc,0,wxGROW | wxALL,5);
-
- SetSizer(mainSizer);
- mainSizer->Fit(this);
-
-}
-
-bool wxThemesPage::TransferDataFromWindow()
-{
- gv->themesToInstall.Clear();
-
- for(unsigned int i=0; i < m_installTheme.GetCount(); i++)
- {
- if(m_installTheme[i])
- {
- gv->themesToInstall.Add(m_Themes_path[i]);
- }
- }
-
- return true;
-
-}
-
-void wxThemesPage::OnWizardPageChanging(wxWizardEvent& event)
-{
- if(event.GetDirection()) // going forwards in the Wizard
- {
- if(gv->themesToInstall.GetCount() == 0)
- {
- WARN_DIALOG(wxT("You have not selected a Theme to Install"), wxT("Select a Theme"));
- event.Veto();
- }
- }
-}
-
-void wxThemesPage::OnCheckBox(wxCommandEvent& event)
-{
- int index = ThemesListBox->GetSelection(); //get Index
- if(index == wxNOT_FOUND)
- return;
-
- m_installTheme[index]= ! m_installTheme[index]; // Toggle install
-
-}
-
-void wxThemesPage::OnListBox(wxCommandEvent& event)
-{
- int index = ThemesListBox->GetSelection(); //get Index
- if(index == wxNOT_FOUND)
- return;
-
- m_desc->SetLabel(m_Themes_desc[index]); //set Desc
- m_desc->Wrap(270); // wrap desc
- m_size->SetLabel(m_Themes_size[index]+wxT(" kb")); //set file size
- m_InstallCheckBox->SetValue(m_installTheme[index]); // set the install checkbox
-
- 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(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"),
- 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)
-{
-
- int index = ThemesListBox->GetSelection();
- if(index == wxNOT_FOUND)
- return;
-
- 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(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"),
- 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);
-
- myImageDialog->Show(true);
-
-}
-
-void wxThemesPage::OnPageShown(wxWizardEvent& event)
-{
- // clear Theme info
- m_Themes.Clear();
- m_Themes_image.Clear();
- m_Themes_path.Clear();
- m_Themes_desc.Clear();
- m_Themes_size.Clear();
- m_installTheme.Clear();
- m_desc->SetLabel(wxT(""));
- m_size->SetLabel(wxT(""));
- m_InstallCheckBox->SetValue(false);
-
- //get correct Themes list
- wxString src,dest,err;
-
- 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"),
- gv->stdpaths->GetUserDataDir().c_str(),gv->curresolution.c_str());
-
- if(DownloadURL(src, dest))
- {
- MESG_DIALOG(wxT("Unable to download themes list."));
- return;
- }
-
- //read and parse Themes list
- wxString themelistraw;
- wxFFile themefile;
- if(!themefile.Open(dest)) //open file
- {
- MESG_DIALOG(wxT("Unable to open themes list."));
- return;
- }
- if(!themefile.ReadAll(&themelistraw)) //read complete file
- {
- MESG_DIALOG(wxT("Unable to read themes list."));
- return;
- }
- wxRegEx reAll(wxT("<body >(.+)</body>")); //extract body part
- if(! reAll.Matches(themelistraw))
- {
- MESG_DIALOG(wxT("Themes list is in wrong Format."));
- return;
- }
- wxString lines = reAll.GetMatch(themelistraw,1);
-
- // prepare text
- lines.Replace(wxT("<br />"),wxT(""),true); //replace <br /> with nothing
- lines.Replace(wxT("\n"),wxT(""),true); //replace \n with nothing
- lines.Trim(true); //strip WS at end
- lines.Trim(false); //strip WS at beginning
- wxStringTokenizer tkz(lines,wxT("|")); //tokenize it
-
- while ( tkz.HasMoreTokens() ) // read all entrys
- {
- m_Themes.Add(tkz.GetNextToken()); //Theme name
- m_Themes_path.Add(tkz.GetNextToken()); //Theme path
- m_Themes_size.Add(tkz.GetNextToken()); //File size
- m_Themes_image.Add(tkz.GetNextToken()); //Screenshot
- m_Themes_desc.Add(tkz.GetNextToken()); //Description
- m_installTheme.Add(false); //Theme should be installed ?
- }
-
- // set ThemeList
- ThemesListBox->Set(m_Themes);
-}
-
- //////////////////// Ipod Locaction Page /////////////////////////////
-BEGIN_EVENT_TABLE(wxIpodLocationPage,wxWizardPageSimple)
- EVT_BUTTON (ID_IPODLOCATION_BTN, wxIpodLocationPage::OnIpodLocationBtn)
- EVT_WIZARD_PAGE_CHANGING(wxID_ANY, wxIpodLocationPage::OnWizardPageChanging)
-END_EVENT_TABLE();
-
-wxIpodLocationPage::wxIpodLocationPage(wxWizard* parent) : wxWizardPageSimple(parent)
-{
-
- wxBoxSizer* WxBoxSizer1 = new wxBoxSizer(wxVERTICAL);
-
- // Header text
- IpodLocationLabel = new wxStaticText(this, wxID_ANY,
- wxT("Rockbox utility needs to know the device where your ipod\n"
- "device is located on your computer. Use the\n"
- "Scan Button:"));
- WxBoxSizer1->Add(IpodLocationLabel,0,wxGROW | wxALL, 5);
-
- // device location
- wxBoxSizer* WxBoxSizer3 = new wxBoxSizer(wxHORIZONTAL);
- WxBoxSizer1->Add(WxBoxSizer3,0,
- wxGROW | wxALIGN_CENTER_VERTICAL | wxALL, 5);
-
- IpodLocationText = new wxStaticText(this, wxID_ANY, wxT(""),
- wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
- WxBoxSizer3->Add(IpodLocationText,1,
- wxGROW | wxALIGN_CENTER_VERTICAL | wxALL, 5);
-
- IpodLocationBtn = new wxButton(this, ID_IPODLOCATION_BTN, wxT("Scan"),
- wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator,
- wxT("IpodLocationBtn"));
- IpodLocationBtn->SetToolTip(wxT("Scan for your Ipod"));
- WxBoxSizer3->Add(IpodLocationBtn,0,wxALIGN_CENTER_VERTICAL | wxALL, 5);
-
- // Extra text
- IpodLocationExtraText = new wxStaticText(this,wxID_ANY, wxT(""));
- WxBoxSizer1->Add(IpodLocationExtraText,0,wxGROW | wxALL, 5);
-
- SetSizer(WxBoxSizer1);
- WxBoxSizer1->Fit(this);
-}
-
-wxWizardPage* wxIpodLocationPage::GetPrev() const
-{
- if(gv->curbootloadermethod == wxT("ipodpatcher")) //if ipod, skip previous
- {
- if(wxWizardPageSimple::GetPrev()->GetPrev() != NULL)
- return wxWizardPageSimple::GetPrev()->GetPrev();
-
- }
- return wxWizardPageSimple::GetPrev();
-}
-
-void wxIpodLocationPage::OnWizardPageChanging(wxWizardEvent& event)
-{
- if(event.GetDirection()) // going forwards in the Wizard
- {
- if(gv->curbootloadermethod==wxT("ipodpatcher"))
- {
- if(IpodLocationText->GetLabel() == wxT("no Ipod found") ||
- IpodLocationText->GetLabel() ==wxT("More than 1 Ipod found") ||
- IpodLocationText->GetLabel() ==wxT(""))
- {
- WARN_DIALOG(wxT("No valid ipod found!"), wxT("Select Location"));
- event.Veto(); //stop pagechanging
- }
- }
- }
-}
-
-void wxIpodLocationPage::OnIpodLocationBtn(wxCommandEvent& event)
-{
- wxLogVerbose(wxT("=== begin wxIpodLocationPage::OnIpodLocationBtn"));
- struct ipod_t ipod;
- int n = ipod_scan(&ipod);
- gv->curbootloader=wxT("");
-
- if(n == 0)
- IpodLocationText->SetLabel(wxT("no Ipod found"));
- else if( n==1)
- {
- gv->curbootloader=wxT("bootloader-");
- gv->curbootloader.Append(wxString(ipod.targetname, wxConvUTF8));
- IpodLocationText->SetLabel(wxString(ipod.modelstr, wxConvUTF8));
- }
- else
- IpodLocationText->SetLabel(wxT("More than 1 Ipod found"));
-
- if(ipod.macpod)
- IpodLocationExtraText->SetLabel(wxT("This Ipod is a Mac formated Ipod\n"
- "Rockbox will not work on this.\n"
- "You have to convert it first to Fat32"));
- wxLogVerbose(wxT("=== end wxIpodLocationPage::OnIpodLocationBtn"));
-
-}
-
-BEGIN_EVENT_TABLE(wxBootLocationPage,wxWizardPageSimple)
- EVT_BUTTON (ID_BOOTLOCATION_BTN, wxBootLocationPage::OnBootLocationBtn)
- EVT_WIZARD_PAGE_CHANGING(wxID_ANY, wxBootLocationPage::OnWizardPageChanging)
- EVT_WIZARD_PAGE_CHANGED (wxID_ANY, wxBootLocationPage::OnPageShown)
-END_EVENT_TABLE();
-
-wxBootLocationPage::wxBootLocationPage(wxWizard* parent) : wxWizardPageSimple(parent)
- {
-
- wxBoxSizer* WxBoxSizer1 = new wxBoxSizer(wxVERTICAL);
-
- // Header text
- BootLocationLabel = new wxStaticText(this, wxID_ANY,
- wxT("Rockbox utility needs to know the folder where your audio\n"
- "device is located on your computer. Currently Rockbox utility\n"
- "is configured to use the following location:"));
- WxBoxSizer1->Add(BootLocationLabel,0,wxGROW | wxALL, 5);
-
- // device location
- wxBoxSizer* WxBoxSizer3 = new wxBoxSizer(wxHORIZONTAL);
- WxBoxSizer1->Add(WxBoxSizer3,0,
- wxGROW | wxALIGN_CENTER_VERTICAL | wxALL, 5);
-
- if (gv->curdestdir == wxT("")) gv->curdestdir = wxT("<none>");
- BootLocationText = new wxStaticText(this, wxID_ANY, gv->curdestdir,
- wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
- WxBoxSizer3->Add(BootLocationText,1,
- wxGROW | wxALIGN_CENTER_VERTICAL | wxALL, 5);
-
- BootLocationBtn = new wxButton(this, ID_BOOTLOCATION_BTN, wxT("Change"),
- wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator,
- wxT("BootLocationBtn"));
- BootLocationBtn->SetToolTip(wxT("Select the location of your audio device"));
- WxBoxSizer3->Add(BootLocationBtn,0,wxALIGN_CENTER_VERTICAL | wxALL, 5);
-
-
- BootLocationInfo = new wxStaticText(this, wxID_ANY, wxT(""),
- wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
- WxBoxSizer1->Add(BootLocationInfo,0,
- wxGROW | wxALIGN_CENTER_VERTICAL | wxALL, 5);
-
- SetSizer(WxBoxSizer1);
- WxBoxSizer1->Fit(this);
-}
-
-wxWizardPage* wxBootLocationPage::GetPrev() const
-{
- if(gv->curbootloadermethod != wxT("fwpatcher"))
- {
- if(wxWizardPageSimple::GetPrev()->GetPrev() != NULL)
- return wxWizardPageSimple::GetPrev()->GetPrev();
-
- }
-
- return wxWizardPageSimple::GetPrev();
-}
-
-wxWizardPage* wxBootLocationPage::GetNext() const
-{
- if(gv->curbootloadermethod == wxT("ipodpatcher"))
- {
- return wxWizardPageSimple::GetNext(); // if ipod then this is not the last page
- }
- else return NULL; // else this is the last page
-}
-
-void wxBootLocationPage::OnPageShown(wxWizardEvent& event)
-{
- if(gv->curplat == wxT("h10") || gv->curplat == wxT("h10_5gb"))
- {
- BootLocationInfo->SetLabel(wxT("Your Device needs to be in UMS Mode. \n\n"
- "If it is an MTP device, you can do this by \n"
- "reseting you Device via the Pinhole,or disconnecting the Battery \n"
- "then connecting it via the Data cable with the PC. \n"
- "Then press and hold Next,push the Power button, and \n"
- "continue to hold the Next button until the \n"
- "USB-Connected Screen appears." ));
- }
- else
- {
- BootLocationInfo->SetLabel(wxT(""));
- }
-
-}
-
-void wxBootLocationPage::OnWizardPageChanging(wxWizardEvent& event)
-{
- if(event.GetDirection()) // going forwards in the Wizard
- {
- if(!wxDirExists(BootLocationText->GetLabel()))
- {
- WARN_DIALOG(wxT("You have not selected a valid location for your audio "
- "device"), wxT("Select Location"));
- event.Veto();
- }
-
- }
-}
-
-bool wxBootLocationPage::TransferDataFromWindow()
-{
- gv->curdestdir = BootLocationText->GetLabel();
- return true;
-
-}
-
-
-void wxBootLocationPage::OnBootLocationBtn(wxCommandEvent& event)
-{
- const wxString& temp = wxDirSelector(
- wxT("Please select the location of your audio device"), gv->curdestdir);
- wxLogVerbose(wxT("=== begin wxBootLocationPage::OnBootLocationBtn(event)"));
- if (!temp.empty())
- {
- BootLocationText->SetLabel(temp);
- }
- wxLogVerbose(wxT("=== end wxBootLocationPage::OnBootLocationBtn"));
-
-}
-
-
-BEGIN_EVENT_TABLE(wxFirmwareLocationPage,wxWizardPageSimple)
- EVT_BUTTON (ID_FIRMWARELOCATION_BTN, wxFirmwareLocationPage::OnFirmwareFilenameBtn)
- EVT_WIZARD_PAGE_CHANGING(wxID_ANY, wxFirmwareLocationPage::OnWizardPageChanging)
-END_EVENT_TABLE();
-
-wxFirmwareLocationPage::wxFirmwareLocationPage(wxWizard* parent) : wxWizardPageSimple(parent)
-{
-
- wxBoxSizer* WxBoxSizer1 = new wxBoxSizer(wxVERTICAL);
-
- // Header text
- FirmwareLocationText = new wxStaticText(this, wxID_ANY,
- wxT("For this step Rockbox Utility needs an original Firmware.\n"
- "You can download this from the Manufacturers Website."));
- WxBoxSizer1->Add(FirmwareLocationText,0,wxGROW | wxALL, 5);
-
- // Filename text
- wxBoxSizer* WxBoxSizer4 = new wxBoxSizer(wxHORIZONTAL);
- WxBoxSizer1->Add(WxBoxSizer4,0,
- wxGROW | wxALIGN_CENTER_VERTICAL | wxALL, 5);
-
- FirmwareLocationFilename = new wxStaticText(this, wxID_ANY, gv->curfirmware,
- wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
- WxBoxSizer4->Add(FirmwareLocationFilename,1,
- wxGROW | wxALIGN_CENTER_VERTICAL | wxALL, 5);
-
- // Button
- FirmwareLocationBtn = new wxButton(this, ID_FIRMWARELOCATION_BTN, wxT("Explore"),
- wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator,
- wxT("FirmwareLocationBtn"));
- FirmwareLocationBtn->SetToolTip(wxT("Select the location of the downloaded Firmware"));
- WxBoxSizer4->Add(FirmwareLocationBtn,0,wxALIGN_CENTER_VERTICAL | wxALL, 5);
-
-
- SetSizer(WxBoxSizer1);
- WxBoxSizer1->Fit(this);
-}
-
-void wxFirmwareLocationPage::OnWizardPageChanging(wxWizardEvent& event)
-{
- if(event.GetDirection()) // going forwards in the Wizard
- {
- if( !wxFileExists(gv->curfirmware))
- {
- WARN_DIALOG(wxT("You have not selected a valid location for the firmware "
- "file"), wxT("Select File"));
- event.Veto();
- }
- }
-
-}
-
-void wxFirmwareLocationPage::OnFirmwareFilenameBtn(wxCommandEvent& event)
-{
- wxString temp = wxFileSelector(
- wxT("Please select the location of the original Firmware"), gv->curdestdir,wxT(""),wxT(""),wxT("*.hex"));
- wxLogVerbose(wxT("=== begin wxFirmwareLocationPage::OnFirmwareFilenameBtn(event)"));
- if (!temp.empty())
- {
- gv->curfirmware=temp;
- if(temp.Length() > 30)
- {
- temp.Remove(0, temp.Length()-30);
- temp.Prepend(wxT("..."));
- }
- FirmwareLocationFilename->SetLabel(temp);
- }
- wxLogVerbose(wxT("=== end wxFirmwareLocationPage::OnFirmwareFilenameBtn"));
-}
-
-BEGIN_EVENT_TABLE(wxLocationPage,wxWizardPageSimple)
- EVT_BUTTON (ID_LOCATION_BTN, wxLocationPage::OnLocationBtn)
- EVT_WIZARD_PAGE_CHANGING(wxID_ANY, wxLocationPage::OnWizardPageChanging)
- EVT_WIZARD_PAGE_CHANGED(wxID_ANY, wxLocationPage::OnPageShown)
-END_EVENT_TABLE();
-
-wxLocationPage::wxLocationPage(wxWizard* parent) : wxWizardPageSimple(parent)
- {
- wxBoxSizer* WxBoxSizer1 = new wxBoxSizer(wxVERTICAL);
-
- wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY,
- wxT("Rockbox utility needs to know the folder where your audio\n"
- "device is located on your computer. Currently Rockbox utility\n"
- "is configured to use the following location:"));
- WxBoxSizer1->Add(WxStaticText1,0,wxGROW | wxALL, 5);
-
- wxBoxSizer* WxBoxSizer3 = new wxBoxSizer(wxHORIZONTAL);
- WxBoxSizer1->Add(WxBoxSizer3,0,
- wxGROW | wxALIGN_CENTER_VERTICAL | wxALL, 5);
-
- if (gv->curdestdir == wxT("")) gv->curdestdir = wxT("<none>");
- LocationText = new wxStaticText(this, wxID_ANY, gv->curdestdir,
- wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
- WxBoxSizer3->Add(LocationText,1,
- wxGROW | wxALIGN_CENTER_VERTICAL | wxALL, 5);
-
- wxButton* LocationBtn = new wxButton(this, ID_LOCATION_BTN, wxT("Change"),
- wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator,
- wxT("LocationBtn"));
- LocationBtn->SetToolTip(wxT("Select the location of your audio device"));
- WxBoxSizer3->Add(LocationBtn,0,wxALIGN_CENTER_VERTICAL | wxALL, 5);
-
- LocationInfo = new wxStaticText(this, wxID_ANY, wxT(""),
- wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
- WxBoxSizer1->Add(LocationInfo,0,wxGROW | wxALL, 5);
-
- SetSizer(WxBoxSizer1);
- WxBoxSizer1->Fit(this);
-}
-
-
-void wxLocationPage::OnPageShown(wxWizardEvent& event)
-{
- if(gv->curplat == wxT("h10") || gv->curplat == wxT("h10_5gb"))
- {
- LocationInfo->SetLabel(wxT("Your Device needs to be in UMS Mode. \n\n"
- "If it is an MTP device, you can do this by \n"
- "reseting you Device via the Pinhole,or disconnecting the Battery \n"
- "then connecting it via the Data cable with the PC. \n"
- "Then press and hold Next,push the Power button, and \n"
- "continue to hold the Next button until the \n"
- "USB-Connected Screen appears." ));
- }
- else
- {
- LocationInfo->SetLabel(wxT(""));
- }
-
-
-}
-
-void wxLocationPage::OnWizardPageChanging(wxWizardEvent& event)
-{
- if(event.GetDirection()) // going forwards in the Wizard
- {
- if(!wxDirExists(LocationText->GetLabel()))
- {
- WARN_DIALOG(wxT("You have not selected a valid location for your audio "
- "device"), wxT("Select Location"));
- event.Veto();
- }
- }
-}
-
-bool wxLocationPage::TransferDataFromWindow()
-{
- gv->curdestdir = LocationText->GetLabel();
- return true;
-}
-
-void wxLocationPage::OnLocationBtn(wxCommandEvent& event)
-{
- const wxString& temp = wxDirSelector(
- wxT("Please select the location of your audio device"), gv->curdestdir);
- wxLogVerbose(wxT("=== begin wxLocationPage::OnLocationBtn(event)"));
- if (!temp.empty())
- {
- LocationText->SetLabel(temp);
- }
- wxLogVerbose(wxT("=== end wxLocationPage::OnLocationBtn"));
-}
-
-BEGIN_EVENT_TABLE(wxBuildPage,wxWizardPageSimple)
- EVT_RADIOBOX (ID_BUILD_BOX, wxBuildPage::OnBuildBox)
- EVT_WIZARD_PAGE_CHANGED (wxID_ANY, wxBuildPage::OnPageShown)
-END_EVENT_TABLE();
-
-
-wxBuildPage::wxBuildPage(wxWizard *parent) : wxWizardPageSimple(parent)
-{
- wxString buf;
-
- wxBoxSizer* WxBoxSizer1 = new wxBoxSizer(wxVERTICAL);
-
- wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY,
- wxT("Please select the Rockbox version you would like "
- "to install on your audio\ndevice:"));
- WxBoxSizer1->Add(WxStaticText1,0,wxGROW | wxALL,5);
-
- wxArrayString* array = new wxArrayString();
- buf.Printf(wxT("Rockbox stable version (%s)") , gv->last_release.c_str());
- array->Add(buf);
- array->Add(wxT("Archived Build"));
- array->Add(wxT("Current Build "));
-
- BuildRadioBox = new wxRadioBox(this, ID_BUILD_BOX, wxT("Version"),
- wxDefaultPosition, wxDefaultSize, *array, 0, wxRA_SPECIFY_ROWS);
- WxBoxSizer1->Add(BuildRadioBox, 0, wxGROW | wxALL, 5);
- delete array;
-
- wxStaticBox* WxStaticBox1 = new wxStaticBox(this, wxID_ANY, wxT("Details:"));
- wxStaticBoxSizer* WxStaticBoxSizer2 = new wxStaticBoxSizer(WxStaticBox1,
- wxVERTICAL);
- DetailText = new wxStaticText(this, wxID_ANY, wxT(""));
- WxBoxSizer1->Add(WxStaticBoxSizer2, 1, wxGROW | wxALL, 5);
- WxStaticBoxSizer2->Add(DetailText, 1, wxGROW | wxALL, 5);
-
- wxStaticText* WxStaticText2 = new wxStaticText(this, wxID_ANY,
- wxT("Rockbox Utility stores copies of Rockbox it has downloaded on the\n"
- "local hard disk to save network traffic. If your local copy is\n"
- "no longer working, tick this box to download a fresh copy.") );
- WxBoxSizer1->Add(WxStaticText2, 0 , wxALL, 5);
-
- NoCacheCheckBox = new wxCheckBox(this, wxID_ANY,
- wxT("Don't use locally cached copies of Rockbox") );
- WxBoxSizer1->Add(NoCacheCheckBox, 0, wxALL, 5);
-
- SetSizer(WxBoxSizer1);
- WxBoxSizer1->Fit(this);
- WxBoxSizer1->SetSizeHints(this);
-}
-
-bool wxBuildPage::TransferDataFromWindow()
-{
- gv->curbuild = BuildRadioBox->GetSelection();
- gv->nocache = (gv->curbuild == BUILD_BLEEDING) ? true :
- NoCacheCheckBox->IsChecked();
- return true;
-}
-
-void wxBuildPage::OnBuildBox(wxCommandEvent& event)
-{
- wxString str;
-
- switch(BuildRadioBox->GetSelection() )
- {
- case BUILD_RELEASE:
- str = _("This is the last released version of Rockbox, and is the\n"
- "recommended version to install.");
- NoCacheCheckBox->Enable();
- break;
- case BUILD_DAILY:
- str = _("These are automatically built each day from the current\n"
- "development source code. This generally has more features\n"
- "than the last release but may be much less stable. Features\n"
- "may change regularly.");
- NoCacheCheckBox->Enable();
- break;
- case BUILD_BLEEDING:
- str = _("This is the absolute up to the minute Rockbox built after\n"
- "the last change was made.\n\n"
- "Note: This option will always download a fresh copy from the\n"
- "web server.\n");
- NoCacheCheckBox->Enable(false);
- break;
- default:
- break;
- }
-
- DetailText->SetLabel(str);
-}
-
-void wxBuildPage::OnPageShown(wxWizardEvent& event)
-{
- wxCommandEvent updateradiobox(wxEVT_COMMAND_RADIOBOX_SELECTED,
- ID_BUILD_BOX);
-
- if (gv->plat_released[gv->curplatnum] )
- {
- BuildRadioBox->Enable(BUILD_RELEASE, true);
- BuildRadioBox->SetSelection(BUILD_RELEASE);
- } else {
- BuildRadioBox->Enable(BUILD_RELEASE, false);
- BuildRadioBox->SetSelection(BUILD_DAILY);
-
- }
-
- wxPostEvent(this, updateradiobox);
-}
-
-wxFullUninstallPage::wxFullUninstallPage(wxWizard* parent) :
- wxWizardPageSimple(parent)
-{
- wxString buf;
-
- wxBoxSizer* WxBoxSizer1 = new wxBoxSizer(wxVERTICAL);
-
- wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY,
- wxT("Rockbox Utility normally uninstalls Rockbox using an uninstall\n"
- "file created during installation. This means that when Rockbox is\n"
- "uninstalled all your configuration files are preserved. However,\n"
- "you can also perform a full uninstall, which will completely\n"
- "remove all traces of Rockbox from your system, and can be used\n"
- "even if Rockbox was previously installed manually.\n\n"
- "Archos users will need to reinstall any firmware upgrades obtained\n"
- "from Archos after a full uninstall."));
- WxBoxSizer1->Add(WxStaticText1,0,wxGROW | wxALL,5);
-
- FullCheckBox = new wxCheckBox(this, wxID_ANY,
- wxT("Perform a full uninstall"));
- WxBoxSizer1->Add(FullCheckBox, 0, wxALL, 5);
-
- SetSizer(WxBoxSizer1);
- WxBoxSizer1->Fit(this);
- WxBoxSizer1->SetSizeHints(this);
-}
-
-bool wxFullUninstallPage::TransferDataFromWindow()
-{
- gv->curisfull = FullCheckBox->IsChecked();
- return true;
-}