///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version 3.10.1-d4a3afd)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////

#include "BossaForm.h"

///////////////////////////////////////////////////////////////////////////

MainFrame::MainFrame( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style )
{
	this->SetSizeHints( wxDefaultSize, wxDefaultSize );
	this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );

	wxBoxSizer* _topBoxSizer;
	_topBoxSizer = new wxBoxSizer( wxVERTICAL );

	wxBoxSizer* _titleBoxSizer;
	_titleBoxSizer = new wxBoxSizer( wxHORIZONTAL );

	_bossaBitmap = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
	_titleBoxSizer->Add( _bossaBitmap, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

	_titleText = new wxStaticText( this, wxID_ANY, wxT("Flash Programmer for Atmel SAM Devices"), wxDefaultPosition, wxDefaultSize, 0 );
	_titleText->Wrap( -1 );
	_titleBoxSizer->Add( _titleText, 0, wxALL|wxALIGN_BOTTOM, 5 );


	_titleBoxSizer->Add( 0, 0, 1, wxEXPAND, 5 );

	_aboutButton = new wxButton( this, wxID_ANY, wxT("About"), wxDefaultPosition, wxDefaultSize, 0 );
	_aboutButton->SetToolTip( wxT("Display information about BOSSA") );

	_titleBoxSizer->Add( _aboutButton, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );


	_topBoxSizer->Add( _titleBoxSizer, 0, wxALL|wxEXPAND, 5 );

	wxStaticBoxSizer* _portBoxSizer;
	_portBoxSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxT("Serial Port") ), wxHORIZONTAL );

	_portComboBox = new wxComboBox( _portBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY );
	_portBoxSizer->Add( _portComboBox, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );


	_portBoxSizer->Add( 0, 0, 1, wxEXPAND, 5 );

	_refreshButton = new wxButton( _portBoxSizer->GetStaticBox(), wxID_ANY, wxT("Refresh"), wxDefaultPosition, wxDefaultSize, 0 );
	_refreshButton->SetToolTip( wxT("Refresh the list of available serial ports") );

	_portBoxSizer->Add( _refreshButton, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );


	_topBoxSizer->Add( _portBoxSizer, 3, wxALL|wxEXPAND, 5 );

	wxStaticBoxSizer* _fileBoxSizer;
	_fileBoxSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxT("File") ), wxHORIZONTAL );

	_filePicker = new wxFilePickerCtrl( _fileBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxT("Select a file"), wxT("*.*"), wxDefaultPosition, wxDefaultSize, wxFLP_OPEN|wxFLP_USE_TEXTCTRL );
	_filePicker->SetToolTip( wxT("Select the file to use for write/verify/read operations") );

	_fileBoxSizer->Add( _filePicker, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );


	_topBoxSizer->Add( _fileBoxSizer, 3, wxALL|wxEXPAND, 5 );

	wxBoxSizer* _buttonBoxSizer;
	_buttonBoxSizer = new wxBoxSizer( wxHORIZONTAL );


	_buttonBoxSizer->Add( 0, 0, 1, wxEXPAND, 5 );

	_writeButton = new wxButton( this, wxID_ANY, wxT("Write"), wxDefaultPosition, wxDefaultSize, 0 );
	_writeButton->SetToolTip( wxT("Write the flash with the file above") );

	_buttonBoxSizer->Add( _writeButton, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );


	_buttonBoxSizer->Add( 0, 0, 1, wxEXPAND, 5 );

	_verifyButton = new wxButton( this, wxID_ANY, wxT("Verify"), wxDefaultPosition, wxDefaultSize, 0 );
	_verifyButton->SetToolTip( wxT("Verify the flash matches the file above") );

	_buttonBoxSizer->Add( _verifyButton, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );


	_buttonBoxSizer->Add( 0, 0, 1, wxEXPAND, 5 );

	_readButton = new wxButton( this, wxID_ANY, wxT("Read"), wxDefaultPosition, wxDefaultSize, 0 );
	_readButton->SetToolTip( wxT("Read the flash into the file above") );

	_buttonBoxSizer->Add( _readButton, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );


	_buttonBoxSizer->Add( 0, 0, 1, wxEXPAND, 5 );

	_infoButton = new wxButton( this, wxID_ANY, wxT("Info"), wxDefaultPosition, wxDefaultSize, 0 );
	_infoButton->SetToolTip( wxT("Display inforamtion aboth the connected processor") );

	_buttonBoxSizer->Add( _infoButton, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );


	_buttonBoxSizer->Add( 0, 0, 1, wxEXPAND, 5 );

	_exitButton = new wxButton( this, wxID_ANY, wxT("Exit"), wxDefaultPosition, wxDefaultSize, 0 );
	_exitButton->SetToolTip( wxT("Exit and close BOSSA") );

	_buttonBoxSizer->Add( _exitButton, 0, wxALL, 5 );


	_buttonBoxSizer->Add( 0, 0, 1, wxEXPAND, 5 );


	_topBoxSizer->Add( _buttonBoxSizer, 0, wxALL|wxEXPAND, 5 );


	this->SetSizer( _topBoxSizer );
	this->Layout();
	_statusBar = this->CreateStatusBar( 2, wxSTB_SIZEGRIP, wxID_ANY );

	this->Centre( wxBOTH );
}

MainFrame::~MainFrame()
{
}

ProgressDialog::ProgressDialog( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
	this->SetSizeHints( wxDefaultSize, wxDefaultSize );
	this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );

	wxBoxSizer* _progressBoxSizer;
	_progressBoxSizer = new wxBoxSizer( wxVERTICAL );


	_progressBoxSizer->Add( 0, 0, 1, wxEXPAND, 5 );

	_infoStaticText = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
	_infoStaticText->Wrap( -1 );
	_progressBoxSizer->Add( _infoStaticText, 0, wxALIGN_CENTER|wxALL|wxEXPAND, 5 );

	_statusGauge = new wxGauge( this, wxID_ANY, 100, wxDefaultPosition, wxDefaultSize, wxGA_HORIZONTAL );
	_statusGauge->SetValue( 0 );
	_progressBoxSizer->Add( _statusGauge, 0, wxALL|wxEXPAND, 5 );


	_progressBoxSizer->Add( 0, 0, 1, wxEXPAND, 5 );

	_sdbSizer = new wxStdDialogButtonSizer();
	_sdbSizerCancel = new wxButton( this, wxID_CANCEL );
	_sdbSizer->AddButton( _sdbSizerCancel );
	_sdbSizer->Realize();

	_progressBoxSizer->Add( _sdbSizer, 0, wxALIGN_CENTER|wxALL, 5 );


	_progressBoxSizer->Add( 0, 0, 1, wxEXPAND, 5 );


	this->SetSizer( _progressBoxSizer );
	this->Layout();

	this->Centre( wxBOTH );
}

ProgressDialog::~ProgressDialog()
{
}

AboutDialog::AboutDialog( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
	this->SetSizeHints( wxDefaultSize, wxDefaultSize );
	this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );

	wxBoxSizer* _topBoxSizer;
	_topBoxSizer = new wxBoxSizer( wxVERTICAL );

	_bossaBitmap = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
	_topBoxSizer->Add( _bossaBitmap, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );

	_titleStaticText = new wxStaticText( this, wxID_ANY, wxT("Basic Open Source SAM-BA Application"), wxDefaultPosition, wxDefaultSize, 0 );
	_titleStaticText->Wrap( -1 );
	_topBoxSizer->Add( _titleStaticText, 0, wxALL, 5 );

	_githubHyperlink = new wxHyperlinkCtrl( this, wxID_ANY, wxT("https://github.com/kiibohd/BOSSA"), wxT("https://github.com/kiibohd/BOSSA"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
	_topBoxSizer->Add( _githubHyperlink, 0, wxALL, 5 );

	_versionStaticText = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
	_versionStaticText->Wrap( -1 );
	_topBoxSizer->Add( _versionStaticText, 0, wxALL, 5 );

	_wxStaticText = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
	_wxStaticText->Wrap( -1 );
	_topBoxSizer->Add( _wxStaticText, 0, wxALL, 5 );

	m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
	_topBoxSizer->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 );

	_shumatechBitmap = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
	_topBoxSizer->Add( _shumatechBitmap, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );

	_copyrightStaticText = new wxStaticText( this, wxID_ANY, wxT("(c) 2011-2018 ShumaTech. All rights reserved."), wxDefaultPosition, wxDefaultSize, 0 );
	_copyrightStaticText->Wrap( -1 );
	_topBoxSizer->Add( _copyrightStaticText, 0, wxALL, 5 );

	_shumatechHyperlink = new wxHyperlinkCtrl( this, wxID_ANY, wxT("http://www.shumatech.com"), wxT("http://www.shumatech.com"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE );
	_topBoxSizer->Add( _shumatechHyperlink, 0, wxALL, 5 );

	m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
	_topBoxSizer->Add( m_staticline2, 0, wxEXPAND | wxALL, 5 );

	m_disclaimerStaticText = new wxStaticText( this, wxID_ANY, wxT("This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."), wxDefaultPosition, wxDefaultSize, 0 );
	m_disclaimerStaticText->Wrap( 280 );
	_topBoxSizer->Add( m_disclaimerStaticText, 0, wxALL, 5 );

	m_staticline3 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
	_topBoxSizer->Add( m_staticline3, 0, wxEXPAND | wxALL, 5 );

	_sdbSizer = new wxStdDialogButtonSizer();
	_sdbSizerOK = new wxButton( this, wxID_OK );
	_sdbSizer->AddButton( _sdbSizerOK );
	_sdbSizer->Realize();

	_topBoxSizer->Add( _sdbSizer, 1, wxALL|wxEXPAND, 10 );


	this->SetSizer( _topBoxSizer );
	this->Layout();

	this->Centre( wxBOTH );
}

AboutDialog::~AboutDialog()
{
}

InfoDialog::InfoDialog( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
{
	this->SetSizeHints( wxDefaultSize, wxDefaultSize );
	this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );

	wxBoxSizer* _topBoxSizer;
	_topBoxSizer = new wxBoxSizer( wxVERTICAL );

	wxBoxSizer* _deviceBoxSizer;
	_deviceBoxSizer = new wxBoxSizer( wxHORIZONTAL );

	_deviceStaticText = new wxStaticText( this, wxID_ANY, wxT("Device:"), wxDefaultPosition, wxDefaultSize, 0 );
	_deviceStaticText->Wrap( -1 );
	_deviceBoxSizer->Add( _deviceStaticText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

	_deviceTextCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
	_deviceBoxSizer->Add( _deviceTextCtrl, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );


	_topBoxSizer->Add( _deviceBoxSizer, 0, wxALL|wxEXPAND, 5 );

	wxBoxSizer* _versionBoxSizer;
	_versionBoxSizer = new wxBoxSizer( wxHORIZONTAL );

	_versionStaticText = new wxStaticText( this, wxID_ANY, wxT("Version:"), wxDefaultPosition, wxDefaultSize, 0 );
	_versionStaticText->Wrap( -1 );
	_versionBoxSizer->Add( _versionStaticText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

	_versionTextCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
	_versionBoxSizer->Add( _versionTextCtrl, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );


	_topBoxSizer->Add( _versionBoxSizer, 0, wxALL|wxEXPAND, 5 );

	wxBoxSizer* _middleBoxSizer;
	_middleBoxSizer = new wxBoxSizer( wxHORIZONTAL );

	wxStaticBoxSizer* _flashBoxSizer;
	_flashBoxSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxT("Flash") ), wxVERTICAL );

	wxFlexGridSizer* _flashGridSizer;
	_flashGridSizer = new wxFlexGridSizer( 0, 2, 0, 0 );
	_flashGridSizer->SetFlexibleDirection( wxBOTH );
	_flashGridSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );

	_pagesStaticText = new wxStaticText( _flashBoxSizer->GetStaticBox(), wxID_ANY, wxT("Pages:"), wxDefaultPosition, wxDefaultSize, 0 );
	_pagesStaticText->Wrap( -1 );
	_flashGridSizer->Add( _pagesStaticText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

	_pagesTextCtrl = new wxTextCtrl( _flashBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
	_flashGridSizer->Add( _pagesTextCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

	_pageSizeStaticText = new wxStaticText( _flashBoxSizer->GetStaticBox(), wxID_ANY, wxT("Page Size:"), wxDefaultPosition, wxDefaultSize, 0 );
	_pageSizeStaticText->Wrap( -1 );
	_flashGridSizer->Add( _pageSizeStaticText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

	_pageSizeTextCtrl = new wxTextCtrl( _flashBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
	_flashGridSizer->Add( _pageSizeTextCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

	_totalSizeStaticText = new wxStaticText( _flashBoxSizer->GetStaticBox(), wxID_ANY, wxT("Total Size:"), wxDefaultPosition, wxDefaultSize, 0 );
	_totalSizeStaticText->Wrap( -1 );
	_flashGridSizer->Add( _totalSizeStaticText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

	_totalSizeTextCtrl = new wxTextCtrl( _flashBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
	_flashGridSizer->Add( _totalSizeTextCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

	_planesStaticText = new wxStaticText( _flashBoxSizer->GetStaticBox(), wxID_ANY, wxT("Planes:"), wxDefaultPosition, wxDefaultSize, 0 );
	_planesStaticText->Wrap( -1 );
	_flashGridSizer->Add( _planesStaticText, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );

	_planesTextCtrl = new wxTextCtrl( _flashBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
	_flashGridSizer->Add( _planesTextCtrl, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );


	_flashBoxSizer->Add( _flashGridSizer, 1, wxEXPAND, 5 );


	_middleBoxSizer->Add( _flashBoxSizer, 0, wxALL|wxEXPAND, 5 );

	wxStaticBoxSizer* _optionsBoxSizer;
	_optionsBoxSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, wxT("Options") ), wxVERTICAL );

	wxFlexGridSizer* _gpnvGridSizer;
	_gpnvGridSizer = new wxFlexGridSizer( 0, 2, 0, 0 );
	_gpnvGridSizer->SetFlexibleDirection( wxBOTH );
	_gpnvGridSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );

	_bootCheckBox = new wxCheckBox( _optionsBoxSizer->GetStaticBox(), wxID_ANY, wxT("Boot to flash"), wxDefaultPosition, wxDefaultSize, 0 );
	_gpnvGridSizer->Add( _bootCheckBox, 0, wxALL, 5 );

	_bodCheckBox = new wxCheckBox( _optionsBoxSizer->GetStaticBox(), wxID_ANY, wxT("Brownout detect"), wxDefaultPosition, wxDefaultSize, 0 );
	_gpnvGridSizer->Add( _bodCheckBox, 0, wxALL, 5 );

	_securityCheckBox = new wxCheckBox( _optionsBoxSizer->GetStaticBox(), wxID_ANY, wxT("Security"), wxDefaultPosition, wxDefaultSize, 0 );
	_gpnvGridSizer->Add( _securityCheckBox, 0, wxALL, 5 );

	_borCheckBox = new wxCheckBox( _optionsBoxSizer->GetStaticBox(), wxID_ANY, wxT("Brownout reset"), wxDefaultPosition, wxDefaultSize, 0 );
	_gpnvGridSizer->Add( _borCheckBox, 0, wxALL, 5 );


	_optionsBoxSizer->Add( _gpnvGridSizer, 0, wxEXPAND, 5 );

	wxBoxSizer* bSizer13;
	bSizer13 = new wxBoxSizer( wxVERTICAL );

	_lockStaticText = new wxStaticText( _optionsBoxSizer->GetStaticBox(), wxID_ANY, wxT("Lock Regions:"), wxDefaultPosition, wxDefaultSize, 0 );
	_lockStaticText->Wrap( -1 );
	bSizer13->Add( _lockStaticText, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );

	_lockTextCtrl = new wxTextCtrl( _optionsBoxSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY );
	bSizer13->Add( _lockTextCtrl, 0, wxALL|wxEXPAND, 5 );


	_optionsBoxSizer->Add( bSizer13, 1, wxEXPAND, 5 );


	_middleBoxSizer->Add( _optionsBoxSizer, 0, wxALL|wxEXPAND, 5 );


	_topBoxSizer->Add( _middleBoxSizer, 0, wxEXPAND, 5 );

	_sdbSizer = new wxStdDialogButtonSizer();
	_sdbSizerOK = new wxButton( this, wxID_OK );
	_sdbSizer->AddButton( _sdbSizerOK );
	_sdbSizer->Realize();

	_topBoxSizer->Add( _sdbSizer, 1, wxALL|wxEXPAND, 10 );


	this->SetSizer( _topBoxSizer );
	this->Layout();
	_topBoxSizer->Fit( this );

	this->Centre( wxBOTH );
}

InfoDialog::~InfoDialog()
{
}
