Add a custom IconButton class. Rework the source icon list. Again.

This commit is contained in:
dg
2023-04-04 19:42:24 +00:00
parent 6b62585ad5
commit 63544647b6
7 changed files with 566 additions and 107 deletions

View File

@@ -8,6 +8,7 @@ FLUXENGINE_GUI_SRCS = \
src/gui/fileviewerwindow.cc \ src/gui/fileviewerwindow.cc \
src/gui/fluxviewercontrol.cc \ src/gui/fluxviewercontrol.cc \
src/gui/fluxviewerwindow.cc \ src/gui/fluxviewerwindow.cc \
src/gui/iconbutton.cc \
src/gui/idlepanel.cc \ src/gui/idlepanel.cc \
src/gui/imagerpanel.cc \ src/gui/imagerpanel.cc \
src/gui/jobqueue.cc \ src/gui/jobqueue.cc \

54
src/gui/iconbutton.cc Normal file
View File

@@ -0,0 +1,54 @@
#include "lib/globals.h"
#include "gui.h"
#include "iconbutton.h"
#include <fmt/format.h>
IconButton::IconButton(wxWindow* parent,
wxWindowID id,
const wxPoint& pos,
const wxSize& size,
long style,
const wxString& name):
wxPanel(parent, id, pos, size, style, name)
{
_sizer = new wxFlexGridSizer(1, 0, 0);
SetSizer(_sizer);
_bitmap = new wxStaticBitmap(this, wxID_ANY, wxNullBitmap);
_sizer->Add(_bitmap, 0, wxALL | wxEXPAND, 0, nullptr);
_text = new wxStaticText(this,
wxID_ANY,
"",
wxDefaultPosition,
wxDefaultSize,
wxALIGN_CENTRE_HORIZONTAL);
_sizer->Add(_text, 0, wxALL | wxEXPAND, 0, nullptr);
_text->SetFont(_text->GetFont().MakeSmaller().MakeSmaller().MakeSmaller());
Bind(wxEVT_LEFT_DOWN, &IconButton::OnMouseClick, this);
_bitmap->Bind(wxEVT_LEFT_DOWN, &IconButton::OnMouseClick, this);
_text->Bind(wxEVT_LEFT_DOWN, &IconButton::OnMouseClick, this);
}
void IconButton::SetSelected(bool selected)
{
_selected = selected;
wxColor bg = wxSystemSettings::GetColour(
_selected ? wxSYS_COLOUR_HIGHLIGHT : wxSYS_COLOUR_WINDOW);
SetBackgroundColour(bg);
}
void IconButton::OnMouseClick(wxMouseEvent&)
{
auto* event = new wxCommandEvent(wxEVT_BUTTON, 0);
wxQueueEvent(this, event);
}
void IconButton::SetBitmapAndLabel(
const wxBitmap bitmap, const std::string text)
{
_bitmap->SetBitmap(bitmap);
_text->SetLabel(text);
}

26
src/gui/iconbutton.h Normal file
View File

@@ -0,0 +1,26 @@
#pragma once
class wxToggleButton;
class IconButton : public wxPanel
{
public:
IconButton(wxWindow* parent,
wxWindowID id = wxID_ANY,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxTAB_TRAVERSAL,
const wxString& name = wxPanelNameStr);
void SetBitmapAndLabel(const wxBitmap bitmap, const std::string text);
void SetSelected(bool selected);
private:
void OnMouseClick(wxMouseEvent& e);
private:
wxFlexGridSizer* _sizer;
wxStaticBitmap* _bitmap;
wxStaticText* _text;
bool _selected;
};

View File

@@ -11,6 +11,7 @@
#include "lib/imagewriter/imagewriter.h" #include "lib/imagewriter/imagewriter.h"
#include "layout.h" #include "layout.h"
#include "texteditorwindow.h" #include "texteditorwindow.h"
#include "iconbutton.h"
#include <wx/config.h> #include <wx/config.h>
#include <wx/mstream.h> #include <wx/mstream.h>
#include <wx/image.h> #include <wx/image.h>
@@ -91,17 +92,12 @@ public:
parent->AddPage(this, "idle"); parent->AddPage(this, "idle");
auto* sourceList = sourceListBook->GetListView();
sourceList->SetFont(
sourceList->GetFont().MakeSmaller().MakeSmaller().MakeSmaller());
_imageList.Add( _imageList.Add(
createBitmap(extras_hardware_png, sizeof(extras_hardware_png))); createBitmap(extras_hardware_png, sizeof(extras_hardware_png)));
_imageList.Add( _imageList.Add(
createBitmap(extras_fluxfile_png, sizeof(extras_fluxfile_png))); createBitmap(extras_fluxfile_png, sizeof(extras_fluxfile_png)));
_imageList.Add( _imageList.Add(
createBitmap(extras_imagefile_png, sizeof(extras_imagefile_png))); createBitmap(extras_imagefile_png, sizeof(extras_imagefile_png)));
sourceListBook->SetImageList(&_imageList);
UpdateSources(); UpdateSources();
} }
@@ -361,7 +357,6 @@ private:
/* Triggers SaveConfig */ /* Triggers SaveConfig */
_dontSaveConfig = false; _dontSaveConfig = false;
wxCommandEvent dummyEvent;
} }
void SaveConfig() void SaveConfig()
@@ -408,21 +403,25 @@ private:
void UpdateSources() void UpdateSources()
{ {
sourceListBook->DeleteAllPages(); sourceBook->DeleteAllPages();
sourceIconPanel->DestroyChildren();
int page = 0;
for (auto& device : _devices) for (auto& device : _devices)
{ {
for (int drive = 0; drive <= 1; drive++) for (int drive = 0; drive <= 1; drive++)
{ {
auto* panel = new HardwareSourcePanelGen(sourceListBook); auto* panel = new HardwareSourcePanelGen(sourceBook);
sourceListBook->AddPage(panel, sourceBook->AddPage(panel, "");
fmt::format("{}\ndrive:{}", device->serial, drive),
false,
ICON_HARDWARE);
panel->Bind(PAGE_SELECTED_EVENT, auto* button = AddIcon(ICON_HARDWARE,
[=](wxCommandEvent& e) fmt::format(
"{}\ndrive:{}", device->serial.substr(0, 10), drive));
button->Bind(wxEVT_BUTTON,
[=](auto& e)
{ {
SwitchToPage(page);
_selectedSource = SELECTEDSOURCE_REAL; _selectedSource = SELECTEDSOURCE_REAL;
_selectedDevice = device->serial; _selectedDevice = device->serial;
_selectedDrive = drive; _selectedDrive = drive;
@@ -447,16 +446,21 @@ private:
panel->fortyTrackDriveToggle->GetValue(); panel->fortyTrackDriveToggle->GetValue();
OnControlsChanged(e); OnControlsChanged(e);
}); });
page++;
} }
} }
{ {
auto* panel = new FluxfileSourcePanelGen(sourceListBook); auto* panel = new FluxfileSourcePanelGen(sourceBook);
sourceListBook->AddPage(panel, "Flux file", false, ICON_FLUXFILE); sourceBook->AddPage(panel, "");
panel->Bind(PAGE_SELECTED_EVENT, auto* button = AddIcon(ICON_FLUXFILE, "Flux file");
[=](wxCommandEvent& e) button->Bind(wxEVT_BUTTON,
[=](auto& e)
{ {
SwitchToPage(page);
_selectedSource = SELECTEDSOURCE_FLUX; _selectedSource = SELECTEDSOURCE_FLUX;
OnControlsChanged(e); OnControlsChanged(e);
}); });
@@ -468,15 +472,20 @@ private:
_selectedFluxfilename = e.GetPath(); _selectedFluxfilename = e.GetPath();
OnControlsChanged(e); OnControlsChanged(e);
}); });
page++;
} }
{ {
auto* panel = new ImagefileSourcePanelGen(sourceListBook); auto* panel = new ImagefileSourcePanelGen(sourceBook);
sourceListBook->AddPage(panel, "Disk image", false, ICON_IMAGEFILE); sourceBook->AddPage(panel, "");
panel->Bind(PAGE_SELECTED_EVENT, auto* button = AddIcon(ICON_IMAGEFILE, "Disk image");
[=](wxCommandEvent& e) button->Bind(wxEVT_BUTTON,
[=](auto& e)
{ {
SwitchToPage(page);
_selectedSource = SELECTEDSOURCE_IMAGE; _selectedSource = SELECTEDSOURCE_IMAGE;
OnControlsChanged(e); OnControlsChanged(e);
}); });
@@ -488,19 +497,34 @@ private:
_selectedImagefilename = e.GetPath(); _selectedImagefilename = e.GetPath();
OnControlsChanged(e); OnControlsChanged(e);
}); });
page++;
} }
sourceListBook->Fit(); Fit();
sourceListBook->Layout(); Layout();
} }
void OnSourceListPageChanged(wxBookCtrlEvent& e) IconButton* AddIcon(int bitmapIndex, const std::string text)
{ {
auto* page = sourceListBook->GetPage(e.GetSelection()); auto* button = new IconButton(sourceIconPanel, wxID_ANY);
auto* event = new wxCommandEvent(PAGE_SELECTED_EVENT, 0); button->SetBitmapAndLabel(_imageList.GetBitmap(bitmapIndex), text);
wxQueueEvent(page, event); sourceIconPanel->GetSizer()->Add(button, 0, wxALL|wxEXPAND, 5, nullptr);
return button;
} }
void SwitchToPage(int page) {
int i = 0;
for (auto* window : sourceIconPanel->GetChildren()) {
IconButton* button = dynamic_cast<IconButton*>(window);
if (button)
button->SetSelected(i == page);
i++;
}
sourceBook->ChangeSelection(page);
}
void UpdateFormatOptions() void UpdateFormatOptions()
{ {
assert(!wxGetApp().IsWorkerThreadRunning()); assert(!wxGetApp().IsWorkerThreadRunning());
@@ -609,7 +633,7 @@ private:
formatOptionsContainer->SetSizerAndFit(sizer); formatOptionsContainer->SetSizerAndFit(sizer);
Layout(); Layout();
SafeFit(); SafeFit();
} }
} }

View File

@@ -515,15 +515,29 @@ IdlePanelGen::IdlePanelGen( wxWindow* parent, wxWindowID id, const wxPoint& pos,
wxStaticBoxSizer* sbSizer1; wxStaticBoxSizer* sbSizer1;
sbSizer1 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxT("Source / destination") ), wxVERTICAL ); sbSizer1 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxT("Source / destination") ), wxVERTICAL );
sourceListBook = new wxListbook( sbSizer1->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLB_DEFAULT|wxLB_TOP|wxBORDER_THEME ); wxFlexGridSizer* fgSizer12;
wxSize sourceListBookImageSize = wxSize( 48,48 ); fgSizer12 = new wxFlexGridSizer( 0, 1, 0, 0 );
int sourceListBookIndex = 0; fgSizer12->AddGrowableCol( 0 );
wxImageList* sourceListBookImages = new wxImageList( sourceListBookImageSize.GetWidth(), sourceListBookImageSize.GetHeight() ); fgSizer12->AddGrowableRow( 1 );
sourceListBook->AssignImageList( sourceListBookImages ); fgSizer12->SetFlexibleDirection( wxBOTH );
wxBitmap sourceListBookBitmap; fgSizer12->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
wxImage sourceListBookImage;
sbSizer1->Add( sourceListBook, 1, wxALL|wxEXPAND, 5 ); sourceIconPanel = new wxPanel( sbSizer1->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
wxWrapSizer* wSizer3;
wSizer3 = new wxWrapSizer( wxHORIZONTAL, 0 );
sourceIconPanel->SetSizer( wSizer3 );
sourceIconPanel->Layout();
wSizer3->Fit( sourceIconPanel );
fgSizer12->Add( sourceIconPanel, 1, wxEXPAND | wxALL, 5 );
sourceBook = new wxSimplebook( sbSizer1->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
fgSizer12->Add( sourceBook, 1, wxEXPAND | wxALL, 5 );
sbSizer1->Add( fgSizer12, 1, wxEXPAND, 5 );
fgSizer8->Add( sbSizer1, 1, wxALL|wxEXPAND, 5 ); fgSizer8->Add( sbSizer1, 1, wxALL|wxEXPAND, 5 );
@@ -619,8 +633,6 @@ IdlePanelGen::IdlePanelGen( wxWindow* parent, wxWindowID id, const wxPoint& pos,
fgSizer8->Fit( this ); fgSizer8->Fit( this );
// Connect Events // Connect Events
sourceListBook->Connect( wxEVT_COMMAND_LISTBOOK_PAGE_CHANGED, wxListbookEventHandler( IdlePanelGen::OnSourceListPageChanged ), NULL, this );
sourceListBook->Connect( wxEVT_COMMAND_LISTBOOK_PAGE_CHANGING, wxListbookEventHandler( IdlePanelGen::OnSourceListPageChanging ), NULL, this );
formatChoice->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( IdlePanelGen::OnControlsChanged ), NULL, this ); formatChoice->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( IdlePanelGen::OnControlsChanged ), NULL, this );
customConfigurationButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( IdlePanelGen::OnCustomConfigurationButton ), NULL, this ); customConfigurationButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( IdlePanelGen::OnCustomConfigurationButton ), NULL, this );
readButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( IdlePanelGen::OnReadButton ), NULL, this ); readButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( IdlePanelGen::OnReadButton ), NULL, this );
@@ -633,8 +645,6 @@ IdlePanelGen::IdlePanelGen( wxWindow* parent, wxWindowID id, const wxPoint& pos,
IdlePanelGen::~IdlePanelGen() IdlePanelGen::~IdlePanelGen()
{ {
// Disconnect Events // Disconnect Events
sourceListBook->Disconnect( wxEVT_COMMAND_LISTBOOK_PAGE_CHANGED, wxListbookEventHandler( IdlePanelGen::OnSourceListPageChanged ), NULL, this );
sourceListBook->Disconnect( wxEVT_COMMAND_LISTBOOK_PAGE_CHANGING, wxListbookEventHandler( IdlePanelGen::OnSourceListPageChanging ), NULL, this );
formatChoice->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( IdlePanelGen::OnControlsChanged ), NULL, this ); formatChoice->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( IdlePanelGen::OnControlsChanged ), NULL, this );
customConfigurationButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( IdlePanelGen::OnCustomConfigurationButton ), NULL, this ); customConfigurationButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( IdlePanelGen::OnCustomConfigurationButton ), NULL, this );
readButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( IdlePanelGen::OnReadButton ), NULL, this ); readButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( IdlePanelGen::OnReadButton ), NULL, this );
@@ -988,6 +998,14 @@ HardwareSourcePanelGen::HardwareSourcePanelGen( wxWindow* parent, wxWindowID id,
wxBoxSizer* bSizer3; wxBoxSizer* bSizer3;
bSizer3 = new wxBoxSizer( wxVERTICAL ); bSizer3 = new wxBoxSizer( wxVERTICAL );
m_staticText30 = new wxStaticText( this, wxID_ANY, wxT("Read from or write to real floppy disk:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText30->Wrap( -1 );
bSizer3->Add( m_staticText30, 0, wxALIGN_LEFT|wxALL|wxEXPAND, 5 );
label = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
label->Wrap( -1 );
bSizer3->Add( label, 0, wxALIGN_LEFT|wxALL|wxEXPAND, 5 );
highDensityToggle = new wxCheckBox( this, wxID_ANY, wxT("This is a high density disk"), wxDefaultPosition, wxDefaultSize, 0 ); highDensityToggle = new wxCheckBox( this, wxID_ANY, wxT("This is a high density disk"), wxDefaultPosition, wxDefaultSize, 0 );
highDensityToggle->SetToolTip( wxT("If you are using a high density disk, select this.\nThis can be detected automatically for 3.5\"\ndisks but needs to be set manually for everything\nelse.") ); highDensityToggle->SetToolTip( wxT("If you are using a high density disk, select this.\nThis can be detected automatically for 3.5\"\ndisks but needs to be set manually for everything\nelse.") );
@@ -1011,6 +1029,10 @@ FluxfileSourcePanelGen::FluxfileSourcePanelGen( wxWindow* parent, wxWindowID id,
wxBoxSizer* bSizer8; wxBoxSizer* bSizer8;
bSizer8 = new wxBoxSizer( wxVERTICAL ); bSizer8 = new wxBoxSizer( wxVERTICAL );
m_staticText28 = new wxStaticText( this, wxID_ANY, wxT("Read flux-level data from file:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText28->Wrap( -1 );
bSizer8->Add( m_staticText28, 0, wxALIGN_LEFT|wxALL|wxEXPAND, 5 );
fluxImagePicker = new wxFilePickerCtrl( this, wxID_ANY, wxEmptyString, wxT("Select a file"), wxT("*.*"), wxDefaultPosition, wxDefaultSize, wxFLP_FILE_MUST_EXIST|wxFLP_OPEN|wxFLP_USE_TEXTCTRL ); fluxImagePicker = new wxFilePickerCtrl( this, wxID_ANY, wxEmptyString, wxT("Select a file"), wxT("*.*"), wxDefaultPosition, wxDefaultSize, wxFLP_FILE_MUST_EXIST|wxFLP_OPEN|wxFLP_USE_TEXTCTRL );
fluxImagePicker->SetToolTip( wxT("Path to a .flux, .scp or other flux file.") ); fluxImagePicker->SetToolTip( wxT("Path to a .flux, .scp or other flux file.") );
@@ -1031,6 +1053,10 @@ ImagefileSourcePanelGen::ImagefileSourcePanelGen( wxWindow* parent, wxWindowID i
wxBoxSizer* bSizer9; wxBoxSizer* bSizer9;
bSizer9 = new wxBoxSizer( wxVERTICAL ); bSizer9 = new wxBoxSizer( wxVERTICAL );
m_staticText29 = new wxStaticText( this, wxID_ANY, wxT("Read sector-level data from file:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText29->Wrap( -1 );
bSizer9->Add( m_staticText29, 0, wxALIGN_LEFT|wxALL|wxEXPAND, 5 );
diskImagePicker = new wxFilePickerCtrl( this, wxID_ANY, wxEmptyString, wxT("Select a file"), wxT("*.*"), wxDefaultPosition, wxDefaultSize, wxFLP_FILE_MUST_EXIST|wxFLP_OPEN|wxFLP_USE_TEXTCTRL ); diskImagePicker = new wxFilePickerCtrl( this, wxID_ANY, wxEmptyString, wxT("Select a file"), wxT("*.*"), wxDefaultPosition, wxDefaultSize, wxFLP_FILE_MUST_EXIST|wxFLP_OPEN|wxFLP_USE_TEXTCTRL );
diskImagePicker->SetToolTip( wxT("The path to the disk image.") ); diskImagePicker->SetToolTip( wxT("The path to the disk image.") );

View File

@@ -2857,64 +2857,143 @@
<property name="permission">none</property> <property name="permission">none</property>
<object class="sizeritem" expanded="1"> <object class="sizeritem" expanded="1">
<property name="border">5</property> <property name="border">5</property>
<property name="flag">wxALL|wxEXPAND</property> <property name="flag">wxEXPAND</property>
<property name="proportion">1</property> <property name="proportion">1</property>
<object class="wxListbook" expanded="1"> <object class="wxFlexGridSizer" expanded="1">
<property name="BottomDockable">1</property> <property name="cols">1</property>
<property name="LeftDockable">1</property> <property name="flexible_direction">wxBOTH</property>
<property name="RightDockable">1</property> <property name="growablecols">0</property>
<property name="TopDockable">1</property> <property name="growablerows">1</property>
<property name="aui_layer"></property> <property name="hgap">0</property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="bitmapsize">48,48</property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="drag_accept_files">0</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property> <property name="minimum_size"></property>
<property name="moveable">1</property> <property name="name">fgSizer12</property>
<property name="name">sourceListBook</property> <property name="non_flexible_grow_mode">wxFLEX_GROWMODE_SPECIFIED</property>
<property name="pane_border">1</property> <property name="permission">none</property>
<property name="pane_position"></property> <property name="rows">0</property>
<property name="pane_size"></property> <property name="vgap">0</property>
<property name="permission">protected</property> <object class="sizeritem" expanded="1">
<property name="pin_button">1</property> <property name="border">5</property>
<property name="pos"></property> <property name="flag">wxEXPAND | wxALL</property>
<property name="resize">Resizable</property> <property name="proportion">1</property>
<property name="show">1</property> <object class="wxPanel" expanded="1">
<property name="size"></property> <property name="BottomDockable">1</property>
<property name="style">wxLB_DEFAULT|wxLB_TOP</property> <property name="LeftDockable">1</property>
<property name="subclass">; ; forward_declare</property> <property name="RightDockable">1</property>
<property name="toolbar_pane">0</property> <property name="TopDockable">1</property>
<property name="tooltip"></property> <property name="aui_layer"></property>
<property name="window_extra_style"></property> <property name="aui_name"></property>
<property name="window_name"></property> <property name="aui_position"></property>
<property name="window_style">wxBORDER_THEME</property> <property name="aui_row"></property>
<event name="OnListbookPageChanged">OnSourceListPageChanged</event> <property name="best_size"></property>
<event name="OnListbookPageChanging">OnSourceListPageChanging</event> <property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="drag_accept_files">0</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">sourceIconPanel</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="subclass">; ; forward_declare</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style">wxTAB_TRAVERSAL</property>
<object class="wxWrapSizer" expanded="1">
<property name="flags"></property>
<property name="minimum_size"></property>
<property name="name">wSizer3</property>
<property name="orient">wxHORIZONTAL</property>
<property name="permission">none</property>
</object>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND | wxALL</property>
<property name="proportion">1</property>
<object class="wxSimplebook" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="drag_accept_files">0</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">sourceBook</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="subclass">; ; forward_declare</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
</object>
</object>
</object> </object>
</object> </object>
</object> </object>
@@ -3672,11 +3751,11 @@
</object> </object>
</object> </object>
</object> </object>
<object class="sizeritem" expanded="0"> <object class="sizeritem" expanded="1">
<property name="border">5</property> <property name="border">5</property>
<property name="flag">wxEXPAND</property> <property name="flag">wxEXPAND</property>
<property name="proportion">1</property> <property name="proportion">1</property>
<object class="wxGridSizer" expanded="0"> <object class="wxGridSizer" expanded="1">
<property name="cols">2</property> <property name="cols">2</property>
<property name="hgap">0</property> <property name="hgap">0</property>
<property name="minimum_size"></property> <property name="minimum_size"></property>
@@ -3684,11 +3763,11 @@
<property name="permission">none</property> <property name="permission">none</property>
<property name="rows">0</property> <property name="rows">0</property>
<property name="vgap">0</property> <property name="vgap">0</property>
<object class="sizeritem" expanded="0"> <object class="sizeritem" expanded="1">
<property name="border">5</property> <property name="border">5</property>
<property name="flag">wxEXPAND</property> <property name="flag">wxEXPAND</property>
<property name="proportion">1</property> <property name="proportion">1</property>
<object class="wxGridSizer" expanded="0"> <object class="wxGridSizer" expanded="1">
<property name="cols">1</property> <property name="cols">1</property>
<property name="hgap">0</property> <property name="hgap">0</property>
<property name="minimum_size"></property> <property name="minimum_size"></property>
@@ -5824,6 +5903,130 @@
<property name="name">bSizer3</property> <property name="name">bSizer3</property>
<property name="orient">wxVERTICAL</property> <property name="orient">wxVERTICAL</property>
<property name="permission">none</property> <property name="permission">none</property>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxALIGN_LEFT|wxALL|wxEXPAND</property>
<property name="proportion">0</property>
<object class="wxStaticText" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="drag_accept_files">0</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Read from or write to real floppy disk:</property>
<property name="markup">0</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_staticText30</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass">; ; forward_declare</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<property name="wrap">-1</property>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxALIGN_LEFT|wxALL|wxEXPAND</property>
<property name="proportion">0</property>
<object class="wxStaticText" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="drag_accept_files">0</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label"></property>
<property name="markup">0</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">label</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass">; ; forward_declare</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<property name="wrap">-1</property>
</object>
</object>
<object class="sizeritem" expanded="1"> <object class="sizeritem" expanded="1">
<property name="border">5</property> <property name="border">5</property>
<property name="flag">wxALL|wxEXPAND</property> <property name="flag">wxALL|wxEXPAND</property>
@@ -5985,6 +6188,68 @@
<property name="name">bSizer8</property> <property name="name">bSizer8</property>
<property name="orient">wxVERTICAL</property> <property name="orient">wxVERTICAL</property>
<property name="permission">none</property> <property name="permission">none</property>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxALIGN_LEFT|wxALL|wxEXPAND</property>
<property name="proportion">0</property>
<object class="wxStaticText" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="drag_accept_files">0</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Read flux-level data from file:</property>
<property name="markup">0</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_staticText28</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass">; ; forward_declare</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<property name="wrap">-1</property>
</object>
</object>
<object class="sizeritem" expanded="1"> <object class="sizeritem" expanded="1">
<property name="border">5</property> <property name="border">5</property>
<property name="flag">wxALL|wxEXPAND</property> <property name="flag">wxALL|wxEXPAND</property>
@@ -6082,6 +6347,68 @@
<property name="name">bSizer9</property> <property name="name">bSizer9</property>
<property name="orient">wxVERTICAL</property> <property name="orient">wxVERTICAL</property>
<property name="permission">none</property> <property name="permission">none</property>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxALIGN_LEFT|wxALL|wxEXPAND</property>
<property name="proportion">0</property>
<object class="wxStaticText" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="drag_accept_files">0</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Read sector-level data from file:</property>
<property name="markup">0</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_staticText29</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass">; ; forward_declare</property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<property name="wrap">-1</property>
</object>
</object>
<object class="sizeritem" expanded="1"> <object class="sizeritem" expanded="1">
<property name="border">5</property> <property name="border">5</property>
<property name="flag">wxALL|wxEXPAND</property> <property name="flag">wxALL|wxEXPAND</property>

View File

@@ -33,9 +33,7 @@
#include <wx/gbsizer.h> #include <wx/gbsizer.h>
#include <wx/checkbox.h> #include <wx/checkbox.h>
#include <wx/statbmp.h> #include <wx/statbmp.h>
#include <wx/listbook.h> #include <wx/wrapsizer.h>
#include <wx/listctrl.h>
#include <wx/imaglist.h>
#include <wx/statbox.h> #include <wx/statbox.h>
#include <wx/choice.h> #include <wx/choice.h>
#include <wx/aui/aui.h> #include <wx/aui/aui.h>
@@ -312,7 +310,8 @@ class IdlePanelGen : public wxPanel
protected: protected:
wxStaticBitmap* applicationBitmap; wxStaticBitmap* applicationBitmap;
wxListbook* sourceListBook; wxPanel* sourceIconPanel;
wxSimplebook* sourceBook;
wxChoice* formatChoice; wxChoice* formatChoice;
wxButton* customConfigurationButton; wxButton* customConfigurationButton;
wxPanel* formatOptionsContainer; wxPanel* formatOptionsContainer;
@@ -323,8 +322,6 @@ class IdlePanelGen : public wxPanel
wxButton* exploreButton; wxButton* exploreButton;
// Virtual event handlers, override them in your derived class // Virtual event handlers, override them in your derived class
virtual void OnSourceListPageChanged( wxListbookEvent& event ) { event.Skip(); }
virtual void OnSourceListPageChanging( wxListbookEvent& event ) { event.Skip(); }
virtual void OnControlsChanged( wxCommandEvent& event ) { event.Skip(); } virtual void OnControlsChanged( wxCommandEvent& event ) { event.Skip(); }
virtual void OnCustomConfigurationButton( wxCommandEvent& event ) { event.Skip(); } virtual void OnCustomConfigurationButton( wxCommandEvent& event ) { event.Skip(); }
virtual void OnReadButton( wxCommandEvent& event ) { event.Skip(); } virtual void OnReadButton( wxCommandEvent& event ) { event.Skip(); }
@@ -494,6 +491,8 @@ class HardwareSourcePanelGen : public wxPanel
private: private:
protected: protected:
wxStaticText* m_staticText30;
wxStaticText* label;
public: public:
wxCheckBox* highDensityToggle; wxCheckBox* highDensityToggle;
@@ -513,6 +512,7 @@ class FluxfileSourcePanelGen : public wxPanel
private: private:
protected: protected:
wxStaticText* m_staticText28;
public: public:
wxFilePickerCtrl* fluxImagePicker; wxFilePickerCtrl* fluxImagePicker;
@@ -531,6 +531,7 @@ class ImagefileSourcePanelGen : public wxPanel
private: private:
protected: protected:
wxStaticText* m_staticText29;
public: public:
wxFilePickerCtrl* diskImagePicker; wxFilePickerCtrl* diskImagePicker;