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);
531 array
.Add(wxT("Rockbox stable version (") + gv
->last_release
+ wxT(")"));
532 array
.Add(wxT("Archived Build"));
533 array
.Add(wxT("Current Build "));
535 wxRadioBox
* BuildRadioBox
= new wxRadioBox(this, ID_BUILD_BOX
, wxT("Version"),
536 wxDefaultPosition
, wxDefaultSize
, array
, 0, wxRA_SPECIFY_ROWS
);
537 wxBoxSizer3
->Add(BuildRadioBox
, 0, wxGROW
| wxALL
, 5);
539 wxStaticBox
* WxStaticBox1
= new wxStaticBox(this, wxID_ANY
, wxT("Details:"));
540 wxStaticBoxSizer
* WxStaticBoxSizer2
= new wxStaticBoxSizer(WxStaticBox1
,
542 wxStaticText
* DetailText
= new wxStaticText(this, ID_DETAIL_TXT
, wxT(""));
543 wxBoxSizer3
->Add(WxStaticBoxSizer2
, 1, wxGROW
| wxALL
, 5);
544 WxStaticBoxSizer2
->Add(DetailText
, 1, wxGROW
| wxALL
, 5);
546 wxStaticText
* WxStaticText2
= new wxStaticText(this, wxID_ANY
,
547 wxT("Rockbox Utility stores copies of Rockbox it has downloaded on the\n"
548 "local hard disk to save network traffic. If your local copy is\n"
549 "no longer working, tick this box to download a fresh copy.") );
550 wxBoxSizer3
->Add(WxStaticText2
, 0 , wxALL
, 5);
552 wxCheckBox
* NoCacheCheckBox
= new wxCheckBox(this, ID_NOCACHE_CHCKBX
,
553 wxT("Don't use locally cached copies of Rockbox") );
554 wxBoxSizer3
->Add(NoCacheCheckBox
, 0, wxALL
, 5);
555 // controls at the bottom
556 OkCancelCtrl
* okCancel
= new OkCancelCtrl(this,wxID_ANY
);
557 topSizer
->Add(okCancel
, 0, wxALIGN_CENTER_HORIZONTAL
|wxALL
, 5);
562 bool rockboxInstallDlg::Create( wxWindow
* parent
,
563 wxWindowID id
, const wxString
& caption
,
564 const wxPoint
& pos
, const wxSize
& size
, long style
)
567 if (!wxDialog::Create( parent
, id
, caption
, pos
, size
, style
))
570 GetSizer()->Fit(this);
571 GetSizer()->SetSizeHints(this);
576 void rockboxInstallDlg::OnBuildBox(wxCommandEvent
& event
)
579 wxRadioBox
* BuildRadioBox
= (wxRadioBox
*) FindWindow(ID_BUILD_BOX
);
580 wxCheckBox
* NoCacheCheckBox
= (wxCheckBox
*) FindWindow(ID_NOCACHE_CHCKBX
);
581 wxStaticText
* DetailText
= (wxStaticText
*)FindWindow(ID_DETAIL_TXT
);
583 switch(BuildRadioBox
->GetSelection() )
586 str
= _("This is the last released version of Rockbox, and is the\n"
587 "recommended version to install.");
588 NoCacheCheckBox
->Enable();
591 str
= _("These are automatically built each day from the current\n"
592 "development source code. This generally has more features\n"
593 "than the last release but may be much less stable. Features\n"
594 "may change regularly.");
595 NoCacheCheckBox
->Enable();
598 str
= _("This is the absolute up to the minute Rockbox built after\n"
599 "the last change was made.\n\n"
600 "Note: This option will always download a fresh copy from the\n"
602 NoCacheCheckBox
->Enable(false);
608 DetailText
->SetLabel(str
);
610 this->GetSizer()->Layout();
611 this->GetSizer()->Fit(this);
612 this->GetSizer()->SetSizeHints(this);
617 // tranver data from the controls
618 bool rockboxInstallDlg::TransferDataFromWindow()
620 wxRadioBox
* BuildRadioBox
= (wxRadioBox
*) FindWindow(ID_BUILD_BOX
);
621 wxCheckBox
* NoCacheCheckBox
= (wxCheckBox
*) FindWindow(ID_NOCACHE_CHCKBX
);
623 gv
->curdestdir
= m_devicepos
->getDevicePos();
624 if(!wxDirExists(gv
->curdestdir
))
626 WARN_DIALOG(wxT("The Devicepostion is not valid"),
627 wxT("Select a Deviceposition"));
628 gv
->curdestdir
= wxT("");
632 gv
->curbuild
= BuildRadioBox
->GetSelection();
633 gv
->nocache
= (gv
->curbuild
== BUILD_BLEEDING
) ? true :
634 NoCacheCheckBox
->IsChecked();
639 // tranver data to the controls
640 bool rockboxInstallDlg::TransferDataToWindow()
642 m_devicepos
->setDefault();
644 if(gv
->curplat
== wxT(""))
646 WARN_DIALOG(wxT("You have not selected a audio device"),
647 wxT("Select a Device"));
651 wxRadioBox
* BuildRadioBox
= (wxRadioBox
*) FindWindow(ID_BUILD_BOX
);
653 int index
=gv
->plat_id
.Index(gv
->curplat
);
655 wxCommandEvent
updateradiobox(wxEVT_COMMAND_RADIOBOX_SELECTED
,
658 if (gv
->plat_released
[index
] )
660 BuildRadioBox
->Enable(BUILD_RELEASE
, true);
661 BuildRadioBox
->SetSelection(BUILD_RELEASE
);
663 BuildRadioBox
->Enable(BUILD_RELEASE
, false);
664 BuildRadioBox
->SetSelection(BUILD_BLEEDING
);
667 wxPostEvent(this, updateradiobox
);