2006-12-14 03:55:15 +00:00
|
|
|
/***************************************************************************
|
|
|
|
* __________ __ ___.
|
|
|
|
* 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.
|
|
|
|
*
|
|
|
|
****************************************************************************/
|
|
|
|
|
2006-12-11 21:25:37 +00:00
|
|
|
#include "wizard_pages.h"
|
2007-02-21 20:27:14 +00:00
|
|
|
#include "bootloaders.h"
|
|
|
|
|
|
|
|
wxBootPlatformPage::wxBootPlatformPage(wxWizard *parent) : wxWizardPageSimple(parent)
|
|
|
|
{
|
|
|
|
wxBoxSizer* WxBoxSizer1 = new wxBoxSizer(wxVERTICAL);
|
|
|
|
|
|
|
|
wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY,
|
|
|
|
_("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 != "fwpatcher"&& gv->curbootloadermethod != "ipodpatcher")
|
|
|
|
{
|
|
|
|
if(wxWizardPageSimple::GetNext()->GetNext() != NULL) // not iriver hx0 and ipod, skip one page
|
|
|
|
return wxWizardPageSimple::GetNext()->GetNext();
|
|
|
|
}
|
|
|
|
else if(gv->curbootloadermethod == "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(_("You must select an audio device type before proceeding"),
|
|
|
|
_("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;
|
|
|
|
}
|
|
|
|
}
|
2006-12-11 21:25:37 +00:00
|
|
|
|
|
|
|
wxPlatformPage::wxPlatformPage(wxWizard *parent) : wxWizardPageSimple(parent)
|
|
|
|
{
|
|
|
|
wxBoxSizer* WxBoxSizer1 = new wxBoxSizer(wxVERTICAL);
|
|
|
|
|
|
|
|
wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY,
|
|
|
|
_("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(_("You must select an audio device type before proceeding"),
|
|
|
|
_("Select Platform"));
|
|
|
|
return false;
|
|
|
|
} else
|
|
|
|
{
|
|
|
|
gv->curplatnum = PlatformListBox->GetSelection();
|
|
|
|
gv->curplat = gv->plat_id[gv->curplatnum];
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2007-02-21 20:27:14 +00:00
|
|
|
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"
|
2007-02-21 21:44:56 +00:00
|
|
|
"device is located on your computer. Use the\n"
|
|
|
|
"Scan Button:"));
|
2007-02-21 20:27:14 +00:00
|
|
|
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, "",
|
|
|
|
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 == "ipodpatcher") //if ipod, skip previous
|
|
|
|
{
|
|
|
|
if(wxWizardPageSimple::GetPrev()->GetPrev() != NULL)
|
|
|
|
return wxWizardPageSimple::GetPrev()->GetPrev();
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void wxIpodLocationPage::OnWizardPageChanging(wxWizardEvent& event)
|
|
|
|
{
|
|
|
|
if(event.GetDirection()) // going forwards in the Wizard
|
|
|
|
{
|
|
|
|
if(gv->curbootloadermethod=="ipodpatcher")
|
|
|
|
{
|
|
|
|
if(IpodLocationText->GetLabel() == "no Ipod found" ||
|
|
|
|
IpodLocationText->GetLabel() =="More than 1 Ipod found" ||
|
|
|
|
IpodLocationText->GetLabel() =="")
|
|
|
|
{
|
|
|
|
WARN_DIALOG(_("No valid ipod found!"), _("Select Location"));
|
|
|
|
event.Veto(); //stop pagechanging
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void wxIpodLocationPage::OnIpodLocationBtn(wxCommandEvent& event)
|
|
|
|
{
|
|
|
|
wxLogVerbose("=== begin wxIpodLocationPage::OnIpodLocationBtn");
|
|
|
|
struct ipod_t ipod;
|
|
|
|
int n = ipod_scan(&ipod);
|
2007-02-21 21:44:56 +00:00
|
|
|
gv->curbootloader="";
|
2007-02-21 20:27:14 +00:00
|
|
|
|
|
|
|
if(n == 0)
|
|
|
|
IpodLocationText->SetLabel("no Ipod found");
|
|
|
|
else if( n==1)
|
2007-02-21 21:44:56 +00:00
|
|
|
{
|
|
|
|
gv->curbootloader="bootloader-";
|
|
|
|
gv->curbootloader.Append(ipod.targetname);
|
2007-02-21 20:27:14 +00:00
|
|
|
IpodLocationText->SetLabel(ipod.modelstr);
|
2007-02-21 21:44:56 +00:00
|
|
|
}
|
2007-02-21 20:27:14 +00:00
|
|
|
else
|
|
|
|
IpodLocationText->SetLabel("More than 1 Ipod found");
|
|
|
|
|
|
|
|
if(ipod.macpod)
|
|
|
|
IpodLocationExtraText->SetLabel("This Ipod is a Mac formated Ipod\n"
|
|
|
|
"Rockbox will not work on this.\n"
|
|
|
|
"You have to convert it first to Fat32");
|
|
|
|
wxLogVerbose("=== end wxIpodLocationPage::OnIpodLocationBtn");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
BEGIN_EVENT_TABLE(wxBootLocationPage,wxWizardPageSimple)
|
|
|
|
EVT_BUTTON (ID_BOOTLOCATION_BTN, wxBootLocationPage::OnBootLocationBtn)
|
|
|
|
EVT_WIZARD_PAGE_CHANGING(wxID_ANY, wxBootLocationPage::OnWizardPageChanging)
|
|
|
|
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 = _("<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);
|
|
|
|
|
|
|
|
SetSizer(WxBoxSizer1);
|
|
|
|
WxBoxSizer1->Fit(this);
|
|
|
|
}
|
|
|
|
|
|
|
|
wxWizardPage* wxBootLocationPage::GetPrev() const
|
|
|
|
{
|
|
|
|
if(gv->curbootloadermethod != "fwpatcher")
|
|
|
|
{
|
|
|
|
if(wxWizardPageSimple::GetPrev()->GetPrev() != NULL)
|
|
|
|
return wxWizardPageSimple::GetPrev()->GetPrev();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return wxWizardPageSimple::GetPrev();
|
|
|
|
}
|
|
|
|
|
|
|
|
wxWizardPage* wxBootLocationPage::GetNext() const
|
|
|
|
{
|
|
|
|
if(gv->curbootloadermethod == "ipodpatcher")
|
|
|
|
{
|
|
|
|
return wxWizardPageSimple::GetNext(); // if ipod then this is not the last page
|
|
|
|
}
|
|
|
|
else return NULL; // else this is the last page
|
|
|
|
}
|
|
|
|
|
|
|
|
void wxBootLocationPage::OnWizardPageChanging(wxWizardEvent& event)
|
|
|
|
{
|
|
|
|
if(event.GetDirection()) // going forwards in the Wizard
|
|
|
|
{
|
|
|
|
if(!wxDirExists(BootLocationText->GetLabel()))
|
|
|
|
{
|
|
|
|
WARN_DIALOG(_("You have not selected a valid location for your audio "
|
|
|
|
"device"), _("Select Location"));
|
|
|
|
event.Veto();
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
bool wxBootLocationPage::TransferDataFromWindow()
|
|
|
|
{
|
|
|
|
gv->curdestdir = BootLocationText->GetLabel();
|
|
|
|
return true;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void wxBootLocationPage::OnBootLocationBtn(wxCommandEvent& event)
|
|
|
|
{
|
|
|
|
const wxString& temp = wxDirSelector(
|
|
|
|
_("Please select the location of your audio device"), gv->curdestdir);
|
|
|
|
wxLogVerbose("=== begin wxBootLocationPage::OnBootLocationBtn(event)");
|
|
|
|
if (!temp.empty())
|
|
|
|
{
|
|
|
|
BootLocationText->SetLabel(temp);
|
|
|
|
}
|
|
|
|
wxLogVerbose("=== 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(_("You have not selected a valid location for the firmware "
|
|
|
|
"file"), _("Select File"));
|
|
|
|
event.Veto();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
void wxFirmwareLocationPage::OnFirmwareFilenameBtn(wxCommandEvent& event)
|
|
|
|
{
|
|
|
|
wxString temp = wxFileSelector(
|
|
|
|
_("Please select the location of the original Firmware"), gv->curdestdir,"","","*.hex");
|
|
|
|
wxLogVerbose("=== begin wxFirmwareLocationPage::OnFirmwareFilenameBtn(event)");
|
|
|
|
if (!temp.empty())
|
|
|
|
{
|
|
|
|
gv->curfirmware=temp;
|
|
|
|
if(temp.Length() > 30)
|
|
|
|
{
|
|
|
|
temp.Remove(0, temp.Length()-30);
|
|
|
|
temp.Prepend("...");
|
|
|
|
}
|
|
|
|
FirmwareLocationFilename->SetLabel(temp);
|
|
|
|
}
|
|
|
|
wxLogVerbose("=== end wxFirmwareLocationPage::OnFirmwareFilenameBtn");
|
|
|
|
}
|
|
|
|
|
2006-12-11 21:25:37 +00:00
|
|
|
BEGIN_EVENT_TABLE(wxLocationPage,wxWizardPageSimple)
|
|
|
|
EVT_BUTTON (ID_LOCATION_BTN, wxLocationPage::OnLocationBtn)
|
2007-02-21 20:27:14 +00:00
|
|
|
EVT_WIZARD_PAGE_CHANGING(wxID_ANY, wxLocationPage::OnWizardPageChanging)
|
2006-12-11 21:25:37 +00:00
|
|
|
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 = _("<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);
|
|
|
|
|
|
|
|
SetSizer(WxBoxSizer1);
|
|
|
|
WxBoxSizer1->Fit(this);
|
|
|
|
}
|
|
|
|
|
2007-02-21 20:27:14 +00:00
|
|
|
|
|
|
|
void wxLocationPage::OnWizardPageChanging(wxWizardEvent& event)
|
2006-12-11 21:25:37 +00:00
|
|
|
{
|
2007-02-21 20:27:14 +00:00
|
|
|
if(event.GetDirection()) // going forwards in the Wizard
|
|
|
|
{
|
|
|
|
if(!wxDirExists(LocationText->GetLabel()))
|
|
|
|
{
|
|
|
|
WARN_DIALOG(_("You have not selected a valid location for your audio "
|
2006-12-11 21:25:37 +00:00
|
|
|
"device"), _("Select Location"));
|
2007-02-21 20:27:14 +00:00
|
|
|
event.Veto();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
bool wxLocationPage::TransferDataFromWindow()
|
|
|
|
{
|
|
|
|
gv->curdestdir = LocationText->GetLabel();
|
|
|
|
return true;
|
2006-12-11 21:25:37 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void wxLocationPage::OnLocationBtn(wxCommandEvent& event)
|
|
|
|
{
|
|
|
|
const wxString& temp = wxDirSelector(
|
|
|
|
_("Please select the location of your audio device"), gv->curdestdir);
|
|
|
|
wxLogVerbose("=== begin wxLocationPage::OnLocationBtn(event)");
|
|
|
|
if (!temp.empty())
|
|
|
|
{
|
|
|
|
LocationText->SetLabel(temp);
|
|
|
|
}
|
|
|
|
wxLogVerbose("=== 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(_("Rockbox stable version (%s)") , gv->last_release.c_str());
|
|
|
|
array->Add(buf);
|
2007-03-01 17:22:49 +00:00
|
|
|
array->Add(_("Archived Build"));
|
|
|
|
array->Add(_("Current Build "));
|
2006-12-11 21:25:37 +00:00
|
|
|
|
|
|
|
BuildRadioBox = new wxRadioBox(this, ID_BUILD_BOX, _("Version"),
|
|
|
|
wxDefaultPosition, wxDefaultSize, *array, 0, wxRA_SPECIFY_ROWS);
|
|
|
|
WxBoxSizer1->Add(BuildRadioBox, 0, wxGROW | wxALL, 5);
|
|
|
|
delete array;
|
|
|
|
|
|
|
|
wxStaticBox* WxStaticBox1 = new wxStaticBox(this, wxID_ANY, _("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,
|
|
|
|
_("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,
|
|
|
|
_("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"
|
2007-03-01 17:22:49 +00:00
|
|
|
"the last change was made.\n\n"
|
2006-12-11 21:25:37 +00:00
|
|
|
"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,
|
|
|
|
_("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,
|
|
|
|
_("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;
|
|
|
|
}
|