2 #include "install_dialogs.h"
7 ////////////////////////////////////////////////
8 //// Bootloader Installation
9 /////////////////////////////////////////////////
11 IMPLEMENT_CLASS( bootloaderInstallDlg
, wxDialog
)
13 BEGIN_EVENT_TABLE( bootloaderInstallDlg
, wxDialog
)
17 bootloaderInstallDlg::bootloaderInstallDlg( )
22 bootloaderInstallDlg::bootloaderInstallDlg( wxWindow
* parent
,
23 wxWindowID id
, const wxString
& caption
,
24 const wxPoint
& pos
, const wxSize
& size
, long style
)
27 Create(parent
, id
, caption
, pos
, size
, style
);
30 void bootloaderInstallDlg::CreateControls()
33 wxBoxSizer
* topSizer
= new wxBoxSizer(wxVERTICAL
);
34 this->SetSizer(topSizer
);
36 wxBoxSizer
* wxBoxSizer2
= new wxBoxSizer(wxHORIZONTAL
);
37 topSizer
->Add(wxBoxSizer2
, 0, wxALIGN_LEFT
|wxALL
, 5);
40 wxBitmap
sidebmp(wizard_xpm
);
41 ImageCtrl
* sideimage
= new ImageCtrl(this,wxID_ANY
);
42 sideimage
->SetBitmap(sidebmp
);
43 wxBoxSizer2
->Add(sideimage
,0,wxALIGN_LEFT
| wxALL
,5);
45 wxBoxSizer
* wxBoxSizer3
= new wxBoxSizer(wxVERTICAL
);
46 wxBoxSizer2
->Add(wxBoxSizer3
, 0, wxALIGN_LEFT
|wxALL
, 5);
48 m_devicepos
= new DevicePositionCtrl(this,ID_DEVICEPOS
);
49 wxBoxSizer3
->Add(m_devicepos
, 0, wxALIGN_LEFT
|wxALL
, 5);
51 m_firmwarepos
= new FirmwarePositionCtrl(this,ID_FIRMWARE
);
52 wxBoxSizer3
->Add(m_firmwarepos
, 0, wxALIGN_LEFT
|wxALL
, 5);
54 OkCancelCtrl
* okCancel
= new OkCancelCtrl(this,wxID_ANY
);
55 topSizer
->Add(okCancel
, 0, wxALIGN_CENTER_HORIZONTAL
|wxALL
, 5);
59 //init the local variables
60 void bootloaderInstallDlg::Init()
66 bool bootloaderInstallDlg::Create( wxWindow
* parent
,
67 wxWindowID id
, const wxString
& caption
,
68 const wxPoint
& pos
, const wxSize
& size
, long style
)
71 if (!wxDialog::Create( parent
, id
, caption
, pos
, size
, style
))
74 GetSizer()->Fit(this);
75 GetSizer()->SetSizeHints(this);
82 // tranver data from the controls
83 bool bootloaderInstallDlg::TransferDataFromWindow()
86 if( m_devicepos
->IsShown())
88 gv
->curdestdir
= m_devicepos
->getDevicePos();
89 if(!wxDirExists(gv
->curdestdir
))
91 WARN_DIALOG(wxT("The Devicepostion is not valid"),
92 wxT("Select a Deviceposition"));
93 gv
->curdestdir
= wxT("");
98 if(m_firmwarepos
->IsShown())
100 gv
->curfirmware
= m_firmwarepos
->getFirmwarePos();
101 if(!wxFileExists(gv
->curfirmware
))
103 WARN_DIALOG(wxT("The Firmware position is not valid"),
104 wxT("Select a original Firmware"));
105 gv
->curfirmware
= wxT("");
114 // tranver data to the controls
115 bool bootloaderInstallDlg::TransferDataToWindow()
117 if(gv
->curplat
== wxT(""))
119 WARN_DIALOG(wxT("You have not selected a audio device"),
120 wxT("Select a Device"));
123 int index
= gv
->plat_id
.Index(gv
->curplat
);
125 if(!gv
->plat_needsbootloader
[index
])
127 WARN_DIALOG(wxT("This Device doesnt need a Bootloader"),
132 if(gv
->plat_bootloadermethod
[index
] != wxT("ipodpatcher") && gv
->plat_bootloadermethod
[index
] != wxT("sansapatcher"))
134 m_devicepos
->Show(true);
137 m_devicepos
->Show(false);
139 if(gv
->plat_bootloadermethod
[index
] == wxT("fwpatcher"))
141 m_firmwarepos
->Show(true);
144 m_firmwarepos
->Show(false);
147 m_devicepos
->setDefault();
148 m_firmwarepos
->setDefault();
153 ////////////////////////////////////////////////
154 //// Font Installation
155 /////////////////////////////////////////////////
158 IMPLEMENT_CLASS( fontInstallDlg
, wxDialog
)
160 BEGIN_EVENT_TABLE( fontInstallDlg
, wxDialog
)
164 fontInstallDlg::fontInstallDlg( )
169 fontInstallDlg::fontInstallDlg( wxWindow
* parent
,
170 wxWindowID id
, const wxString
& caption
,
171 const wxPoint
& pos
, const wxSize
& size
, long style
)
174 Create(parent
, id
, caption
, pos
, size
, style
);
177 void fontInstallDlg::CreateControls()
180 wxBoxSizer
* topSizer
= new wxBoxSizer(wxVERTICAL
);
181 this->SetSizer(topSizer
);
183 wxBoxSizer
* wxBoxSizer2
= new wxBoxSizer(wxHORIZONTAL
);
184 topSizer
->Add(wxBoxSizer2
, 0, wxALIGN_LEFT
|wxALL
, 5);
187 wxBitmap
sidebmp(wizard_xpm
);
189 ImageCtrl
* sideimage
= new ImageCtrl(this,wxID_ANY
);
190 sideimage
->SetBitmap(sidebmp
);
191 wxBoxSizer2
->Add(sideimage
,0,wxALIGN_LEFT
| wxALL
,5);
193 wxBoxSizer
* wxBoxSizer3
= new wxBoxSizer(wxVERTICAL
);
194 wxBoxSizer2
->Add(wxBoxSizer3
, 0, wxALIGN_LEFT
|wxALL
, 5);
196 m_devicepos
= new DevicePositionCtrl(this,ID_DEVICEPOS
);
197 wxBoxSizer3
->Add(m_devicepos
, 0, wxALIGN_LEFT
|wxALL
, 5);
200 OkCancelCtrl
* okCancel
= new OkCancelCtrl(this,wxID_ANY
);
201 topSizer
->Add(okCancel
, 0, wxALIGN_CENTER_HORIZONTAL
|wxALL
, 5);
203 // controls at the bottom
204 wxBoxSizer
* wxBoxSizer7
= new wxBoxSizer(wxVERTICAL
);
205 topSizer
->Add(wxBoxSizer7
, 0, wxGROW
| wxALL
, 5);
209 //init the local variables
210 void fontInstallDlg::Init()
216 bool fontInstallDlg::Create( wxWindow
* parent
,
217 wxWindowID id
, const wxString
& caption
,
218 const wxPoint
& pos
, const wxSize
& size
, long style
)
221 if (!wxDialog::Create( parent
, id
, caption
, pos
, size
, style
))
224 GetSizer()->Fit(this);
225 GetSizer()->SetSizeHints(this);
231 // tranver data from the controls
232 bool fontInstallDlg::TransferDataFromWindow()
234 gv
->curdestdir
= m_devicepos
->getDevicePos();
235 if(!wxDirExists(gv
->curdestdir
))
237 WARN_DIALOG(wxT("The Devicepostion is not valid"),
238 wxT("Select a Deviceposition"));
239 gv
->curdestdir
= wxT("");
246 // tranver data to the controls
247 bool fontInstallDlg::TransferDataToWindow()
249 m_devicepos
->setDefault();
253 ////////////////////////////////////////////////
254 //// Rockbox DeInstallation
255 /////////////////////////////////////////////////
257 IMPLEMENT_CLASS( rockboxDeInstallDlg
, wxDialog
)
259 BEGIN_EVENT_TABLE( rockboxDeInstallDlg
, wxDialog
)
263 rockboxDeInstallDlg::rockboxDeInstallDlg( )
268 rockboxDeInstallDlg::rockboxDeInstallDlg( wxWindow
* parent
,
269 wxWindowID id
, const wxString
& caption
,
270 const wxPoint
& pos
, const wxSize
& size
, long style
)
273 Create(parent
, id
, caption
, pos
, size
, style
);
276 void rockboxDeInstallDlg::CreateControls()
279 wxBoxSizer
* topSizer
= new wxBoxSizer(wxVERTICAL
);
280 this->SetSizer(topSizer
);
282 wxBoxSizer
* wxBoxSizer2
= new wxBoxSizer(wxHORIZONTAL
);
283 topSizer
->Add(wxBoxSizer2
, 0, wxALIGN_LEFT
|wxALL
, 5);
286 wxBitmap
sidebmp(wizard_xpm
);
288 ImageCtrl
* sideimage
= new ImageCtrl(this,wxID_ANY
);
289 sideimage
->SetBitmap(sidebmp
);
290 wxBoxSizer2
->Add(sideimage
,0,wxALIGN_LEFT
| wxALL
,5);
292 wxBoxSizer
* wxBoxSizer3
= new wxBoxSizer(wxVERTICAL
);
293 wxBoxSizer2
->Add(wxBoxSizer3
, 0, wxALIGN_LEFT
|wxALL
, 5);
295 m_devicepos
= new DevicePositionCtrl(this,ID_DEVICEPOS
);
296 wxBoxSizer3
->Add(m_devicepos
, 0, wxALIGN_LEFT
|wxALL
, 5);
298 // Full deinstallation ?
299 wxStaticText
* WxStaticText1
= new wxStaticText(this, wxID_ANY
,
300 wxT("Rockbox Utility normally uninstalls Rockbox using an uninstall\n"
301 "file created during installation. This means that when Rockbox is\n"
302 "uninstalled all your configuration files are preserved. However,\n"
303 "you can also perform a full uninstall, which will completely\n"
304 "remove all traces of Rockbox from your system, and can be used\n"
305 "even if Rockbox was previously installed manually."));
306 wxBoxSizer3
->Add(WxStaticText1
,0,wxGROW
| wxALL
,5);
308 wxCheckBox
* FullCheckBox
= new wxCheckBox(this, ID_FULL_CHCKBX
,
309 wxT("Perform a full uninstall"));
310 wxBoxSizer3
->Add(FullCheckBox
, 0, wxALL
, 5);
312 // controls at the bottom
313 OkCancelCtrl
* okCancel
= new OkCancelCtrl(this,wxID_ANY
);
314 topSizer
->Add(okCancel
, 0, wxALIGN_CENTER_HORIZONTAL
|wxALL
, 5);
318 //init the local variables
319 void rockboxDeInstallDlg::Init()
325 bool rockboxDeInstallDlg::Create( wxWindow
* parent
,
326 wxWindowID id
, const wxString
& caption
,
327 const wxPoint
& pos
, const wxSize
& size
, long style
)
329 if (!wxDialog::Create( parent
, id
, caption
, pos
, size
, style
))
332 GetSizer()->Fit(this);
333 GetSizer()->SetSizeHints(this);
339 // tranver data from the controls
340 bool rockboxDeInstallDlg::TransferDataFromWindow()
343 gv
->curdestdir
= m_devicepos
->getDevicePos();
344 if(!wxDirExists(gv
->curdestdir
))
346 WARN_DIALOG(wxT("The Devicepostion is not valid"),
347 wxT("Select a Deviceposition"));
348 gv
->curdestdir
= wxT("");
352 wxCheckBox
* fullchkbx
= (wxCheckBox
*) FindWindow(ID_FULL_CHCKBX
);
353 gv
->curisfull
= fullchkbx
->IsChecked();
358 // tranver data to the controls
359 bool rockboxDeInstallDlg::TransferDataToWindow()
361 m_devicepos
->setDefault();
365 ////////////////////////////////////////////////
366 //// Themes Installation
367 /////////////////////////////////////////////////
369 IMPLEMENT_CLASS( themesInstallDlg
, wxDialog
)
371 BEGIN_EVENT_TABLE( themesInstallDlg
, wxDialog
)
375 themesInstallDlg::themesInstallDlg( )
380 themesInstallDlg::themesInstallDlg( wxWindow
* parent
,
381 wxWindowID id
, const wxString
& caption
,
382 const wxPoint
& pos
, const wxSize
& size
, long style
)
384 Create(parent
, id
, caption
, pos
, size
, style
);
387 void themesInstallDlg::CreateControls()
390 wxBoxSizer
* topSizer
= new wxBoxSizer(wxVERTICAL
);
391 this->SetSizer(topSizer
);
393 wxBoxSizer
* topHoriSizer
= new wxBoxSizer(wxHORIZONTAL
);
394 topSizer
->Add(topHoriSizer
, 0, wxALIGN_LEFT
|wxALL
, 5);
397 wxBitmap
sidebmp(wizard_xpm
);
399 ImageCtrl
* sideimage
= new ImageCtrl(this,wxID_ANY
);
400 sideimage
->SetBitmap(sidebmp
);
401 topHoriSizer
->Add(sideimage
,0,wxALIGN_LEFT
| wxALL
,5);
403 wxBoxSizer
* mainVertiSizer
= new wxBoxSizer(wxVERTICAL
);
404 topHoriSizer
->Add(mainVertiSizer
, 0, wxGROW
|wxALL
, 5);
406 wxBoxSizer
* wxBoxSizer4
= new wxBoxSizer(wxHORIZONTAL
);
407 mainVertiSizer
->Add(wxBoxSizer4
, 0, wxGROW
|wxALL
, 0);
409 wxBoxSizer
* wxBoxSizer5
= new wxBoxSizer(wxVERTICAL
);
410 wxBoxSizer4
->Add(wxBoxSizer5
, 0, wxGROW
|wxALL
, 0);
412 m_devicepos
= new DevicePositionCtrl(this,ID_DEVICEPOS
);
413 wxBoxSizer5
->Add(m_devicepos
, 0, wxALIGN_LEFT
|wxALL
, 5);
415 m_theme
= new ThemeCtrl(this,ID_THEME
);
416 wxBoxSizer5
->Add(m_theme
, 0, wxALIGN_LEFT
|wxALL
, 5);
418 // controls at the bottom
419 OkCancelCtrl
* okCancel
= new OkCancelCtrl(this,wxID_ANY
);
420 topSizer
->Add(okCancel
, 0, wxALIGN_CENTER_HORIZONTAL
|wxALL
, 5);
427 bool themesInstallDlg::Create( wxWindow
* parent
,
428 wxWindowID id
, const wxString
& caption
,
429 const wxPoint
& pos
, const wxSize
& size
, long style
)
432 if (!wxDialog::Create( parent
, id
, caption
, pos
, size
, style
))
435 GetSizer()->Fit(this);
436 GetSizer()->SetSizeHints(this);
442 // tranver data from the controls
443 bool themesInstallDlg::TransferDataFromWindow()
446 gv
->curdestdir
= m_devicepos
->getDevicePos();
447 if(!wxDirExists(gv
->curdestdir
))
449 WARN_DIALOG(wxT("The Devicepostion is not valid"),
450 wxT("Select a Deviceposition"));
451 gv
->curdestdir
= wxT("");
455 gv
->themesToInstall
.Clear();
456 gv
->themesToInstall
= m_theme
->getThemesToInstall();
458 if(gv
->themesToInstall
.GetCount() == 0)
460 WARN_DIALOG(wxT("You have not selected a Theme to Install"), wxT("Select a Theme"));
467 // tranver data to the controls
468 bool themesInstallDlg::TransferDataToWindow()
470 if(gv
->curplat
== wxT(""))
472 WARN_DIALOG(wxT("You have not selected a audio device"),
473 wxT("Select a Device"));
477 m_devicepos
->setDefault();
478 m_theme
->setDevice(gv
->curplat
);
481 ////////////////////////////////////////////////
482 //// Rockbox Installation
483 /////////////////////////////////////////////////
485 IMPLEMENT_CLASS( rockboxInstallDlg
, wxDialog
)
487 BEGIN_EVENT_TABLE( rockboxInstallDlg
, wxDialog
)
488 EVT_RADIOBOX(ID_BUILD_BOX
, rockboxInstallDlg::OnBuildBox
)
491 rockboxInstallDlg::rockboxInstallDlg( )
495 rockboxInstallDlg::rockboxInstallDlg( wxWindow
* parent
,
496 wxWindowID id
, const wxString
& caption
,
497 const wxPoint
& pos
, const wxSize
& size
, long style
)
499 Create(parent
, id
, caption
, pos
, size
, style
);
502 void rockboxInstallDlg::CreateControls()
505 wxBoxSizer
* topSizer
= new wxBoxSizer(wxVERTICAL
);
506 this->SetSizer(topSizer
);
508 wxBoxSizer
* wxBoxSizer2
= new wxBoxSizer(wxHORIZONTAL
);
509 topSizer
->Add(wxBoxSizer2
, 0, wxALIGN_LEFT
|wxALL
, 5);
512 wxBitmap
sidebmp(wizard_xpm
);
514 ImageCtrl
* sideimage
= new ImageCtrl(this,wxID_ANY
);
515 sideimage
->SetBitmap(sidebmp
);
516 wxBoxSizer2
->Add(sideimage
,0,wxALIGN_LEFT
| wxALL
,5);
518 wxBoxSizer
* wxBoxSizer3
= new wxBoxSizer(wxVERTICAL
);
519 wxBoxSizer2
->Add(wxBoxSizer3
, 0, wxALIGN_LEFT
|wxALL
, 5);
521 m_devicepos
= new DevicePositionCtrl(this,ID_DEVICEPOS
);
522 wxBoxSizer3
->Add(m_devicepos
, 0, wxALIGN_LEFT
|wxALL
, 5);
525 wxStaticText
* WxStaticText1
= new wxStaticText(this, wxID_ANY
,
526 wxT("Please select the Rockbox version you would like "
527 "to install on your audio\ndevice:"));
528 wxBoxSizer3
->Add(WxStaticText1
,0,wxGROW
| wxALL
,5);
532 buf
.Printf(wxT("Rockbox stable version (%s)") , gv
->last_release
.c_str());
534 array
.Add(wxT("Archived Build"));
535 array
.Add(wxT("Current Build "));
537 wxRadioBox
* BuildRadioBox
= new wxRadioBox(this, ID_BUILD_BOX
, wxT("Version"),
538 wxDefaultPosition
, wxDefaultSize
, array
, 0, wxRA_SPECIFY_ROWS
);
539 wxBoxSizer3
->Add(BuildRadioBox
, 0, wxGROW
| wxALL
, 5);
541 wxStaticBox
* WxStaticBox1
= new wxStaticBox(this, wxID_ANY
, wxT("Details:"));
542 wxStaticBoxSizer
* WxStaticBoxSizer2
= new wxStaticBoxSizer(WxStaticBox1
,
544 wxStaticText
* DetailText
= new wxStaticText(this, ID_DETAIL_TXT
, wxT(""));
545 wxBoxSizer3
->Add(WxStaticBoxSizer2
, 1, wxGROW
| wxALL
, 5);
546 WxStaticBoxSizer2
->Add(DetailText
, 1, wxGROW
| wxALL
, 5);
548 wxStaticText
* WxStaticText2
= new wxStaticText(this, wxID_ANY
,
549 wxT("Rockbox Utility stores copies of Rockbox it has downloaded on the\n"
550 "local hard disk to save network traffic. If your local copy is\n"
551 "no longer working, tick this box to download a fresh copy.") );
552 wxBoxSizer3
->Add(WxStaticText2
, 0 , wxALL
, 5);
554 wxCheckBox
* NoCacheCheckBox
= new wxCheckBox(this, ID_NOCACHE_CHCKBX
,
555 wxT("Don't use locally cached copies of Rockbox") );
556 wxBoxSizer3
->Add(NoCacheCheckBox
, 0, wxALL
, 5);
557 // controls at the bottom
558 OkCancelCtrl
* okCancel
= new OkCancelCtrl(this,wxID_ANY
);
559 topSizer
->Add(okCancel
, 0, wxALIGN_CENTER_HORIZONTAL
|wxALL
, 5);
564 bool rockboxInstallDlg::Create( wxWindow
* parent
,
565 wxWindowID id
, const wxString
& caption
,
566 const wxPoint
& pos
, const wxSize
& size
, long style
)
569 if (!wxDialog::Create( parent
, id
, caption
, pos
, size
, style
))
572 GetSizer()->Fit(this);
573 GetSizer()->SetSizeHints(this);
578 void rockboxInstallDlg::OnBuildBox(wxCommandEvent
& event
)
581 wxRadioBox
* BuildRadioBox
= (wxRadioBox
*) FindWindow(ID_BUILD_BOX
);
582 wxCheckBox
* NoCacheCheckBox
= (wxCheckBox
*) FindWindow(ID_NOCACHE_CHCKBX
);
583 wxStaticText
* DetailText
= (wxStaticText
*)FindWindow(ID_DETAIL_TXT
);
585 switch(BuildRadioBox
->GetSelection() )
588 str
= _("This is the last released version of Rockbox, and is the\n"
589 "recommended version to install.");
590 NoCacheCheckBox
->Enable();
593 str
= _("These are automatically built each day from the current\n"
594 "development source code. This generally has more features\n"
595 "than the last release but may be much less stable. Features\n"
596 "may change regularly.");
597 NoCacheCheckBox
->Enable();
600 str
= _("This is the absolute up to the minute Rockbox built after\n"
601 "the last change was made.\n\n"
602 "Note: This option will always download a fresh copy from the\n"
604 NoCacheCheckBox
->Enable(false);
610 DetailText
->SetLabel(str
);
612 this->GetSizer()->Layout();
613 this->GetSizer()->Fit(this);
614 this->GetSizer()->SetSizeHints(this);
619 // tranver data from the controls
620 bool rockboxInstallDlg::TransferDataFromWindow()
622 wxRadioBox
* BuildRadioBox
= (wxRadioBox
*) FindWindow(ID_BUILD_BOX
);
623 wxCheckBox
* NoCacheCheckBox
= (wxCheckBox
*) FindWindow(ID_NOCACHE_CHCKBX
);
625 gv
->curdestdir
= m_devicepos
->getDevicePos();
626 if(!wxDirExists(gv
->curdestdir
))
628 WARN_DIALOG(wxT("The Devicepostion is not valid"),
629 wxT("Select a Deviceposition"));
630 gv
->curdestdir
= wxT("");
634 gv
->curbuild
= BuildRadioBox
->GetSelection();
635 gv
->nocache
= (gv
->curbuild
== BUILD_BLEEDING
) ? true :
636 NoCacheCheckBox
->IsChecked();
641 // tranver data to the controls
642 bool rockboxInstallDlg::TransferDataToWindow()
644 m_devicepos
->setDefault();
646 if(gv
->curplat
== wxT(""))
648 WARN_DIALOG(wxT("You have not selected a audio device"),
649 wxT("Select a Device"));
653 wxRadioBox
* BuildRadioBox
= (wxRadioBox
*) FindWindow(ID_BUILD_BOX
);
655 int index
=gv
->plat_id
.Index(gv
->curplat
);
657 wxCommandEvent
updateradiobox(wxEVT_COMMAND_RADIOBOX_SELECTED
,
660 if (gv
->plat_released
[index
] )
662 BuildRadioBox
->Enable(BUILD_RELEASE
, true);
663 BuildRadioBox
->SetSelection(BUILD_RELEASE
);
665 BuildRadioBox
->Enable(BUILD_RELEASE
, false);
666 BuildRadioBox
->SetSelection(BUILD_DAILY
);
669 wxPostEvent(this, updateradiobox
);