Grids: make user editable
This commit is contained in:
parent
498b68b8a3
commit
f770500bb4
|
@ -21,6 +21,9 @@
|
||||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <bitmaps.h>
|
||||||
|
#include <confirm.h>
|
||||||
|
#include <wx/textdlg.h>
|
||||||
#include <dialogs/dialog_grid_settings.h>
|
#include <dialogs/dialog_grid_settings.h>
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <settings/app_settings.h>
|
#include <settings/app_settings.h>
|
||||||
|
@ -59,12 +62,12 @@ DIALOG_GRID_SETTINGS::DIALOG_GRID_SETTINGS( EDA_DRAW_FRAME* aParent ) :
|
||||||
|| m_parent->IsType( FRAME_SCH_VIEWER_MODAL )
|
|| m_parent->IsType( FRAME_SCH_VIEWER_MODAL )
|
||||||
|| m_parent->IsType( FRAME_SIMULATOR ) )
|
|| m_parent->IsType( FRAME_SIMULATOR ) )
|
||||||
{
|
{
|
||||||
m_book->SetSelection( 1 );
|
// Eeschema and friends don't use grid origin
|
||||||
m_buttonResetOrigin->Hide(); // Eeschema and friends don't use grid origin
|
m_buttonResetOrigin->Hide();
|
||||||
|
sbGridOriginSizer->ShowItems( false );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_book->SetSelection( 0 );
|
|
||||||
sbGridOverridesSizer->ShowItems( false );
|
sbGridOverridesSizer->ShowItems( false );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,6 +76,9 @@ DIALOG_GRID_SETTINGS::DIALOG_GRID_SETTINGS( EDA_DRAW_FRAME* aParent ) :
|
||||||
m_grid1HotKey->SetLabel( wxString::Format( wxT( "(%s)" ), KeyNameFromKeyCode( hk1 ) ) );
|
m_grid1HotKey->SetLabel( wxString::Format( wxT( "(%s)" ), KeyNameFromKeyCode( hk1 ) ) );
|
||||||
m_grid2HotKey->SetLabel( wxString::Format( wxT( "(%s)" ), KeyNameFromKeyCode( hk2 ) ) );
|
m_grid2HotKey->SetLabel( wxString::Format( wxT( "(%s)" ), KeyNameFromKeyCode( hk2 ) ) );
|
||||||
|
|
||||||
|
m_addGridButton->SetBitmap( KiBitmap( BITMAPS::small_plus ) );
|
||||||
|
m_removeGridButton->SetBitmap( KiBitmap( BITMAPS::small_trash ) );
|
||||||
|
|
||||||
SetupStandardButtons();
|
SetupStandardButtons();
|
||||||
SetInitialFocus( m_GridOriginXCtrl );
|
SetInitialFocus( m_GridOriginXCtrl );
|
||||||
|
|
||||||
|
@ -107,9 +113,14 @@ void DIALOG_GRID_SETTINGS::RebuildGridSizes()
|
||||||
m_grid1Ctrl->Set( grids );
|
m_grid1Ctrl->Set( grids );
|
||||||
m_grid2Ctrl->Set( grids );
|
m_grid2Ctrl->Set( grids );
|
||||||
|
|
||||||
m_currentGridCtrl->SetStringSelection( savedCurrentGrid );
|
if( !m_currentGridCtrl->SetStringSelection( savedCurrentGrid ) )
|
||||||
m_grid1Ctrl->SetStringSelection( savedGrid1 );
|
m_currentGridCtrl->SetStringSelection( grids.front() );
|
||||||
m_grid2Ctrl->SetStringSelection( savedGrid2 );
|
|
||||||
|
if( !m_grid1Ctrl->SetStringSelection( savedGrid1 ) )
|
||||||
|
m_grid1Ctrl->SetStringSelection( grids.front() );
|
||||||
|
|
||||||
|
if( !m_grid2Ctrl->SetStringSelection( savedGrid2 ) )
|
||||||
|
m_grid2Ctrl->SetStringSelection( grids.back() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -166,7 +177,6 @@ bool DIALOG_GRID_SETTINGS::TransferDataToWindow()
|
||||||
|
|
||||||
GRID_SETTINGS& gridCfg = settings->m_Window.grid;
|
GRID_SETTINGS& gridCfg = settings->m_Window.grid;
|
||||||
|
|
||||||
m_buttonResetSizes->Show( gridCfg.sizes != settings->DefaultGridSizeList() );
|
|
||||||
Layout();
|
Layout();
|
||||||
|
|
||||||
m_currentGridCtrl->SetSelection( settings->m_Window.grid.last_size_idx );
|
m_currentGridCtrl->SetSelection( settings->m_Window.grid.last_size_idx );
|
||||||
|
@ -195,6 +205,70 @@ bool DIALOG_GRID_SETTINGS::TransferDataToWindow()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DIALOG_GRID_SETTINGS::OnAddGrid( wxCommandEvent& event )
|
||||||
|
{
|
||||||
|
wxTextEntryDialog dlg( this, _( "New grid:" ), _( "Add Grid" ) );
|
||||||
|
|
||||||
|
if( dlg.ShowModal() != wxID_OK )
|
||||||
|
return;
|
||||||
|
|
||||||
|
int row = m_currentGridCtrl->GetSelection();
|
||||||
|
GRID_SETTINGS& gridCfg = m_parent->config()->m_Window.grid;
|
||||||
|
EDA_IU_SCALE scale = m_parent->GetIuScale();
|
||||||
|
EDA_UNITS units = m_parent->GetUserUnits();
|
||||||
|
double gridSize = EDA_UNIT_UTILS::UI::DoubleValueFromString( scale, units, dlg.GetValue() );
|
||||||
|
|
||||||
|
|
||||||
|
if( gridSize == 0.0f )
|
||||||
|
{
|
||||||
|
DisplayError( this, _( "Grid must have a valid size." ) );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
wxString gridSizeStr =
|
||||||
|
EDA_UNIT_UTILS::UI::StringFromValue( scale, EDA_UNITS::MILLIMETRES, gridSize );
|
||||||
|
|
||||||
|
for( const wxString& size : gridCfg.sizes )
|
||||||
|
{
|
||||||
|
if( gridSizeStr == size )
|
||||||
|
{
|
||||||
|
DisplayError( this,
|
||||||
|
wxString::Format( _( "Grid size '%s' already exists." ), gridSizeStr ) );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gridCfg.sizes.insert( gridCfg.sizes.begin() + row, gridSizeStr );
|
||||||
|
RebuildGridSizes();
|
||||||
|
m_currentGridCtrl->SetSelection( row );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void DIALOG_GRID_SETTINGS::OnRemoveGrid( wxCommandEvent& event )
|
||||||
|
{
|
||||||
|
GRID_SETTINGS& gridCfg = m_parent->config()->m_Window.grid;
|
||||||
|
int row = m_currentGridCtrl->GetSelection();
|
||||||
|
|
||||||
|
if( row == (int) ( m_currentGridCtrl->GetCount() - 1 ) )
|
||||||
|
{
|
||||||
|
DisplayError( this, wxString::Format( _( "Cannot remove the user grid." ) ) );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( gridCfg.sizes.size() <= 1 )
|
||||||
|
{
|
||||||
|
DisplayError( this, wxString::Format( _( "At least one grid size is required." ) ) );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
gridCfg.sizes.erase( gridCfg.sizes.begin() + row );
|
||||||
|
RebuildGridSizes();
|
||||||
|
|
||||||
|
if( row != 0 )
|
||||||
|
m_currentGridCtrl->SetSelection( row - 1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void DIALOG_GRID_SETTINGS::OnResetGridOriginClick( wxCommandEvent& event )
|
void DIALOG_GRID_SETTINGS::OnResetGridOriginClick( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
m_gridOriginX.SetValue( 0 );
|
m_gridOriginX.SetValue( 0 );
|
||||||
|
|
|
@ -16,71 +16,28 @@ DIALOG_GRID_SETTINGS_BASE::DIALOG_GRID_SETTINGS_BASE( wxWindow* parent, wxWindow
|
||||||
wxBoxSizer* bSizerMain;
|
wxBoxSizer* bSizerMain;
|
||||||
bSizerMain = new wxBoxSizer( wxVERTICAL );
|
bSizerMain = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
wxBoxSizer* bUpperSizer;
|
wxStaticBoxSizer* sbCurrentGrid;
|
||||||
bUpperSizer = new wxBoxSizer( wxHORIZONTAL );
|
sbCurrentGrid = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Current Grid") ), wxHORIZONTAL );
|
||||||
|
|
||||||
m_book = new wxSimplebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
wxPanel* gridOriginPage;
|
|
||||||
gridOriginPage = new wxPanel( m_book, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
|
|
||||||
wxStaticBoxSizer* sbLeftSizer;
|
|
||||||
sbLeftSizer = new wxStaticBoxSizer( new wxStaticBox( gridOriginPage, wxID_ANY, _("Grid Origin") ), wxVERTICAL );
|
|
||||||
|
|
||||||
wxFlexGridSizer* fgSizerGridOrigin;
|
|
||||||
fgSizerGridOrigin = new wxFlexGridSizer( 2, 3, 0, 0 );
|
|
||||||
fgSizerGridOrigin->AddGrowableCol( 1 );
|
|
||||||
fgSizerGridOrigin->SetFlexibleDirection( wxBOTH );
|
|
||||||
fgSizerGridOrigin->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
|
||||||
|
|
||||||
m_staticTextGridPosX = new wxStaticText( sbLeftSizer->GetStaticBox(), wxID_ANY, _("X:"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_staticTextGridPosX->Wrap( -1 );
|
|
||||||
fgSizerGridOrigin->Add( m_staticTextGridPosX, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
|
||||||
|
|
||||||
m_GridOriginXCtrl = new wxTextCtrl( sbLeftSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
fgSizerGridOrigin->Add( m_GridOriginXCtrl, 0, wxEXPAND|wxLEFT, 5 );
|
|
||||||
|
|
||||||
m_TextPosXUnits = new wxStaticText( sbLeftSizer->GetStaticBox(), wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_TextPosXUnits->Wrap( -1 );
|
|
||||||
fgSizerGridOrigin->Add( m_TextPosXUnits, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxLEFT, 5 );
|
|
||||||
|
|
||||||
m_staticTextGridPosY = new wxStaticText( sbLeftSizer->GetStaticBox(), wxID_ANY, _("Y:"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_staticTextGridPosY->Wrap( -1 );
|
|
||||||
fgSizerGridOrigin->Add( m_staticTextGridPosY, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
|
|
||||||
|
|
||||||
m_GridOriginYCtrl = new wxTextCtrl( sbLeftSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
fgSizerGridOrigin->Add( m_GridOriginYCtrl, 0, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 );
|
|
||||||
|
|
||||||
m_TextPosYUnits = new wxStaticText( sbLeftSizer->GetStaticBox(), wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_TextPosYUnits->Wrap( -1 );
|
|
||||||
fgSizerGridOrigin->Add( m_TextPosYUnits, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxLEFT, 5 );
|
|
||||||
|
|
||||||
|
|
||||||
sbLeftSizer->Add( fgSizerGridOrigin, 0, wxEXPAND|wxALL, 5 );
|
|
||||||
|
|
||||||
|
|
||||||
gridOriginPage->SetSizer( sbLeftSizer );
|
|
||||||
gridOriginPage->Layout();
|
|
||||||
sbLeftSizer->Fit( gridOriginPage );
|
|
||||||
m_book->AddPage( gridOriginPage, _("a page"), false );
|
|
||||||
wxPanel* currentGridPage;
|
|
||||||
currentGridPage = new wxPanel( m_book, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
|
|
||||||
wxStaticBoxSizer* sbSizer5;
|
|
||||||
sbSizer5 = new wxStaticBoxSizer( new wxStaticBox( currentGridPage, wxID_ANY, _("Current Grid") ), wxVERTICAL );
|
|
||||||
|
|
||||||
wxArrayString m_currentGridCtrlChoices;
|
wxArrayString m_currentGridCtrlChoices;
|
||||||
m_currentGridCtrl = new wxChoice( sbSizer5->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_currentGridCtrlChoices, 0 );
|
m_currentGridCtrl = new wxChoice( sbCurrentGrid->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_currentGridCtrlChoices, 0 );
|
||||||
m_currentGridCtrl->SetSelection( 0 );
|
m_currentGridCtrl->SetSelection( 0 );
|
||||||
sbSizer5->Add( m_currentGridCtrl, 0, wxALL|wxEXPAND, 5 );
|
sbCurrentGrid->Add( m_currentGridCtrl, 1, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
m_addGridButton = new wxBitmapButton( sbCurrentGrid->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
|
||||||
|
sbCurrentGrid->Add( m_addGridButton, 0, wxALL, 5 );
|
||||||
|
|
||||||
|
m_removeGridButton = new wxBitmapButton( sbCurrentGrid->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|0 );
|
||||||
|
sbCurrentGrid->Add( m_removeGridButton, 0, wxALL, 5 );
|
||||||
|
|
||||||
|
|
||||||
currentGridPage->SetSizer( sbSizer5 );
|
bSizerMain->Add( sbCurrentGrid, 0, wxALL|wxEXPAND, 10 );
|
||||||
currentGridPage->Layout();
|
|
||||||
sbSizer5->Fit( currentGridPage );
|
|
||||||
m_book->AddPage( currentGridPage, _("a page"), false );
|
|
||||||
|
|
||||||
bUpperSizer->Add( m_book, 1, wxEXPAND | wxALL, 5 );
|
wxBoxSizer* bUserSizer;
|
||||||
|
bUserSizer = new wxBoxSizer( wxHORIZONTAL );
|
||||||
|
|
||||||
wxStaticBoxSizer* sbUserGridSizer;
|
wxStaticBoxSizer* sbUserGridSizer;
|
||||||
sbUserGridSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("User Defined Grid") ), wxVERTICAL );
|
sbUserGridSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("User Defined Grid") ), wxHORIZONTAL );
|
||||||
|
|
||||||
wxFlexGridSizer* fgSizer31;
|
wxFlexGridSizer* fgSizer31;
|
||||||
fgSizer31 = new wxFlexGridSizer( 2, 3, 0, 0 );
|
fgSizer31 = new wxFlexGridSizer( 2, 3, 0, 0 );
|
||||||
|
@ -111,13 +68,49 @@ DIALOG_GRID_SETTINGS_BASE::DIALOG_GRID_SETTINGS_BASE( wxWindow* parent, wxWindow
|
||||||
fgSizer31->Add( m_TextSizeYUnits, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
|
fgSizer31->Add( m_TextSizeYUnits, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
|
||||||
|
|
||||||
|
|
||||||
sbUserGridSizer->Add( fgSizer31, 0, wxEXPAND|wxALL, 5 );
|
sbUserGridSizer->Add( fgSizer31, 1, wxEXPAND|wxALL, 5 );
|
||||||
|
|
||||||
|
|
||||||
bUpperSizer->Add( sbUserGridSizer, 1, wxEXPAND|wxALL, 5 );
|
bUserSizer->Add( sbUserGridSizer, 1, wxALL|wxEXPAND, 10 );
|
||||||
|
|
||||||
|
sbGridOriginSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Grid Origin") ), wxVERTICAL );
|
||||||
|
|
||||||
|
wxFlexGridSizer* fgSizerGridOrigin;
|
||||||
|
fgSizerGridOrigin = new wxFlexGridSizer( 2, 3, 0, 0 );
|
||||||
|
fgSizerGridOrigin->AddGrowableCol( 1 );
|
||||||
|
fgSizerGridOrigin->SetFlexibleDirection( wxBOTH );
|
||||||
|
fgSizerGridOrigin->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||||
|
|
||||||
|
m_staticTextGridPosX = new wxStaticText( sbGridOriginSizer->GetStaticBox(), wxID_ANY, _("X:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_staticTextGridPosX->Wrap( -1 );
|
||||||
|
fgSizerGridOrigin->Add( m_staticTextGridPosX, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
|
m_GridOriginXCtrl = new wxTextCtrl( sbGridOriginSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
fgSizerGridOrigin->Add( m_GridOriginXCtrl, 0, wxEXPAND|wxLEFT, 5 );
|
||||||
|
|
||||||
|
m_TextPosXUnits = new wxStaticText( sbGridOriginSizer->GetStaticBox(), wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_TextPosXUnits->Wrap( -1 );
|
||||||
|
fgSizerGridOrigin->Add( m_TextPosXUnits, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxLEFT, 5 );
|
||||||
|
|
||||||
|
m_staticTextGridPosY = new wxStaticText( sbGridOriginSizer->GetStaticBox(), wxID_ANY, _("Y:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_staticTextGridPosY->Wrap( -1 );
|
||||||
|
fgSizerGridOrigin->Add( m_staticTextGridPosY, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 );
|
||||||
|
|
||||||
|
m_GridOriginYCtrl = new wxTextCtrl( sbGridOriginSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
fgSizerGridOrigin->Add( m_GridOriginYCtrl, 0, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 );
|
||||||
|
|
||||||
|
m_TextPosYUnits = new wxStaticText( sbGridOriginSizer->GetStaticBox(), wxID_ANY, _("mm"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_TextPosYUnits->Wrap( -1 );
|
||||||
|
fgSizerGridOrigin->Add( m_TextPosYUnits, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxLEFT, 5 );
|
||||||
|
|
||||||
|
|
||||||
bSizerMain->Add( bUpperSizer, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );
|
sbGridOriginSizer->Add( fgSizerGridOrigin, 0, wxEXPAND|wxALL, 5 );
|
||||||
|
|
||||||
|
|
||||||
|
bUserSizer->Add( sbGridOriginSizer, 1, wxBOTTOM|wxEXPAND|wxRIGHT|wxTOP, 10 );
|
||||||
|
|
||||||
|
|
||||||
|
bSizerMain->Add( bUserSizer, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 0 );
|
||||||
|
|
||||||
wxStaticBoxSizer* sbFastSwitchSizer;
|
wxStaticBoxSizer* sbFastSwitchSizer;
|
||||||
sbFastSwitchSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Fast Switching") ), wxVERTICAL );
|
sbFastSwitchSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Fast Switching") ), wxVERTICAL );
|
||||||
|
@ -237,7 +230,6 @@ DIALOG_GRID_SETTINGS_BASE::DIALOG_GRID_SETTINGS_BASE( wxWindow* parent, wxWindow
|
||||||
bButtonSizer->Add( m_buttonResetOrigin, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
|
bButtonSizer->Add( m_buttonResetOrigin, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_buttonResetSizes = new wxButton( this, wxID_ANY, _("Reset Grid Sizes"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_buttonResetSizes = new wxButton( this, wxID_ANY, _("Reset Grid Sizes"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_buttonResetSizes->Hide();
|
|
||||||
m_buttonResetSizes->SetToolTip( _("Resets the list of grid sizes to default values") );
|
m_buttonResetSizes->SetToolTip( _("Resets the list of grid sizes to default values") );
|
||||||
|
|
||||||
bButtonSizer->Add( m_buttonResetSizes, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
|
bButtonSizer->Add( m_buttonResetSizes, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
@ -261,6 +253,8 @@ DIALOG_GRID_SETTINGS_BASE::DIALOG_GRID_SETTINGS_BASE( wxWindow* parent, wxWindow
|
||||||
|
|
||||||
// Connect Events
|
// Connect Events
|
||||||
this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_GRID_SETTINGS_BASE::OnInitDlg ) );
|
this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_GRID_SETTINGS_BASE::OnInitDlg ) );
|
||||||
|
m_addGridButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GRID_SETTINGS_BASE::OnAddGrid ), NULL, this );
|
||||||
|
m_removeGridButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GRID_SETTINGS_BASE::OnRemoveGrid ), NULL, this );
|
||||||
m_buttonResetOrigin->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GRID_SETTINGS_BASE::OnResetGridOriginClick ), NULL, this );
|
m_buttonResetOrigin->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GRID_SETTINGS_BASE::OnResetGridOriginClick ), NULL, this );
|
||||||
m_sdbSizerCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GRID_SETTINGS_BASE::OnCancelClick ), NULL, this );
|
m_sdbSizerCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GRID_SETTINGS_BASE::OnCancelClick ), NULL, this );
|
||||||
m_sdbSizerOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GRID_SETTINGS_BASE::OnOkClick ), NULL, this );
|
m_sdbSizerOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GRID_SETTINGS_BASE::OnOkClick ), NULL, this );
|
||||||
|
@ -270,6 +264,8 @@ DIALOG_GRID_SETTINGS_BASE::~DIALOG_GRID_SETTINGS_BASE()
|
||||||
{
|
{
|
||||||
// Disconnect Events
|
// Disconnect Events
|
||||||
this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_GRID_SETTINGS_BASE::OnInitDlg ) );
|
this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DIALOG_GRID_SETTINGS_BASE::OnInitDlg ) );
|
||||||
|
m_addGridButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GRID_SETTINGS_BASE::OnAddGrid ), NULL, this );
|
||||||
|
m_removeGridButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GRID_SETTINGS_BASE::OnRemoveGrid ), NULL, this );
|
||||||
m_buttonResetOrigin->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GRID_SETTINGS_BASE::OnResetGridOriginClick ), NULL, this );
|
m_buttonResetOrigin->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GRID_SETTINGS_BASE::OnResetGridOriginClick ), NULL, this );
|
||||||
m_sdbSizerCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GRID_SETTINGS_BASE::OnCancelClick ), NULL, this );
|
m_sdbSizerCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GRID_SETTINGS_BASE::OnCancelClick ), NULL, this );
|
||||||
m_sdbSizerOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GRID_SETTINGS_BASE::OnOkClick ), NULL, this );
|
m_sdbSizerOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GRID_SETTINGS_BASE::OnOkClick ), NULL, this );
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -12,22 +12,21 @@
|
||||||
#include <wx/intl.h>
|
#include <wx/intl.h>
|
||||||
#include "dialog_shim.h"
|
#include "dialog_shim.h"
|
||||||
#include <wx/string.h>
|
#include <wx/string.h>
|
||||||
#include <wx/stattext.h>
|
#include <wx/choice.h>
|
||||||
#include <wx/gdicmn.h>
|
#include <wx/gdicmn.h>
|
||||||
#include <wx/font.h>
|
#include <wx/font.h>
|
||||||
#include <wx/colour.h>
|
#include <wx/colour.h>
|
||||||
#include <wx/settings.h>
|
#include <wx/settings.h>
|
||||||
#include <wx/textctrl.h>
|
#include <wx/bmpbuttn.h>
|
||||||
#include <wx/sizer.h>
|
|
||||||
#include <wx/statbox.h>
|
|
||||||
#include <wx/panel.h>
|
|
||||||
#include <wx/choice.h>
|
|
||||||
#include <wx/simplebook.h>
|
|
||||||
#include <wx/checkbox.h>
|
|
||||||
#include <wx/button.h>
|
|
||||||
#include <wx/bitmap.h>
|
#include <wx/bitmap.h>
|
||||||
#include <wx/image.h>
|
#include <wx/image.h>
|
||||||
#include <wx/icon.h>
|
#include <wx/icon.h>
|
||||||
|
#include <wx/button.h>
|
||||||
|
#include <wx/sizer.h>
|
||||||
|
#include <wx/statbox.h>
|
||||||
|
#include <wx/stattext.h>
|
||||||
|
#include <wx/textctrl.h>
|
||||||
|
#include <wx/checkbox.h>
|
||||||
#include <wx/dialog.h>
|
#include <wx/dialog.h>
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -41,20 +40,22 @@ class DIALOG_GRID_SETTINGS_BASE : public DIALOG_SHIM
|
||||||
private:
|
private:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
wxSimplebook* m_book;
|
|
||||||
wxStaticText* m_staticTextGridPosX;
|
|
||||||
wxTextCtrl* m_GridOriginXCtrl;
|
|
||||||
wxStaticText* m_TextPosXUnits;
|
|
||||||
wxStaticText* m_staticTextGridPosY;
|
|
||||||
wxTextCtrl* m_GridOriginYCtrl;
|
|
||||||
wxStaticText* m_TextPosYUnits;
|
|
||||||
wxChoice* m_currentGridCtrl;
|
wxChoice* m_currentGridCtrl;
|
||||||
|
wxBitmapButton* m_addGridButton;
|
||||||
|
wxBitmapButton* m_removeGridButton;
|
||||||
wxStaticText* m_staticTextSizeX;
|
wxStaticText* m_staticTextSizeX;
|
||||||
wxTextCtrl* m_OptGridSizeX;
|
wxTextCtrl* m_OptGridSizeX;
|
||||||
wxStaticText* m_TextSizeXUnits;
|
wxStaticText* m_TextSizeXUnits;
|
||||||
wxStaticText* m_staticTextSizeY;
|
wxStaticText* m_staticTextSizeY;
|
||||||
wxTextCtrl* m_OptGridSizeY;
|
wxTextCtrl* m_OptGridSizeY;
|
||||||
wxStaticText* m_TextSizeYUnits;
|
wxStaticText* m_TextSizeYUnits;
|
||||||
|
wxStaticBoxSizer* sbGridOriginSizer;
|
||||||
|
wxStaticText* m_staticTextGridPosX;
|
||||||
|
wxTextCtrl* m_GridOriginXCtrl;
|
||||||
|
wxStaticText* m_TextPosXUnits;
|
||||||
|
wxStaticText* m_staticTextGridPosY;
|
||||||
|
wxTextCtrl* m_GridOriginYCtrl;
|
||||||
|
wxStaticText* m_TextPosYUnits;
|
||||||
wxStaticText* m_staticTextGrid1;
|
wxStaticText* m_staticTextGrid1;
|
||||||
wxChoice* m_grid1Ctrl;
|
wxChoice* m_grid1Ctrl;
|
||||||
wxStaticText* m_grid1HotKey;
|
wxStaticText* m_grid1HotKey;
|
||||||
|
@ -86,6 +87,8 @@ class DIALOG_GRID_SETTINGS_BASE : public DIALOG_SHIM
|
||||||
|
|
||||||
// Virtual event handlers, override them in your derived class
|
// Virtual event handlers, override them in your derived class
|
||||||
virtual void OnInitDlg( wxInitDialogEvent& event ) { event.Skip(); }
|
virtual void OnInitDlg( wxInitDialogEvent& event ) { event.Skip(); }
|
||||||
|
virtual void OnAddGrid( wxCommandEvent& event ) { event.Skip(); }
|
||||||
|
virtual void OnRemoveGrid( wxCommandEvent& event ) { event.Skip(); }
|
||||||
virtual void OnResetGridOriginClick( wxCommandEvent& event ) { event.Skip(); }
|
virtual void OnResetGridOriginClick( wxCommandEvent& event ) { event.Skip(); }
|
||||||
virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); }
|
virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); }
|
||||||
virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); }
|
virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); }
|
||||||
|
|
|
@ -318,26 +318,16 @@ void APP_SETTINGS_BASE::addParamsForWindow( WINDOW_SETTINGS* aWindow, const std:
|
||||||
|
|
||||||
int defaultGridIdx;
|
int defaultGridIdx;
|
||||||
|
|
||||||
if( m_filename == wxS( "pl_editor" ) )
|
if( m_filename == wxS( "pl_editor" )
|
||||||
|
|| ( m_filename == wxS( "eeschema" ) || m_filename == wxS( "symbol_editor" ) ) )
|
||||||
{
|
{
|
||||||
defaultGridIdx = 1;
|
defaultGridIdx = 1;
|
||||||
|
|
||||||
m_params.emplace_back( new PARAM_LIST<wxString>( aJsonPath + ".grid.sizes",
|
|
||||||
&aWindow->grid.sizes, DefaultGridSizeList() ) );
|
|
||||||
}
|
|
||||||
else if( m_filename == wxS( "eeschema" ) || m_filename == wxS( "symbol_editor" ) )
|
|
||||||
{
|
|
||||||
defaultGridIdx = 1;
|
|
||||||
|
|
||||||
// Eeschema's grids are fixed to keep wires/pins connected
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
|
||||||
defaultGridIdx = 4;
|
defaultGridIdx = 4;
|
||||||
|
|
||||||
m_params.emplace_back( new PARAM_LIST<wxString>( aJsonPath + ".grid.sizes",
|
m_params.emplace_back( new PARAM_LIST<wxString>( aJsonPath + ".grid.sizes",
|
||||||
&aWindow->grid.sizes, DefaultGridSizeList() ) );
|
&aWindow->grid.sizes, DefaultGridSizeList() ) );
|
||||||
}
|
|
||||||
|
|
||||||
m_params.emplace_back( new PARAM<int>( aJsonPath + ".grid.last_size",
|
m_params.emplace_back( new PARAM<int>( aJsonPath + ".grid.last_size",
|
||||||
&aWindow->grid.last_size_idx, defaultGridIdx ) );
|
&aWindow->grid.last_size_idx, defaultGridIdx ) );
|
||||||
|
@ -437,10 +427,7 @@ const std::vector<wxString> APP_SETTINGS_BASE::DefaultGridSizeList() const
|
||||||
return { wxS( "100 mil" ),
|
return { wxS( "100 mil" ),
|
||||||
wxS( "50 mil" ),
|
wxS( "50 mil" ),
|
||||||
wxS( "25 mil" ),
|
wxS( "25 mil" ),
|
||||||
wxS( "10 mil" ),
|
wxS( "10 mil" ) };
|
||||||
wxS( "5 mil" ),
|
|
||||||
wxS( "2 mil" ),
|
|
||||||
wxS( "1 mil" ) };
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -243,20 +243,8 @@ void SCH_BASE_FRAME::LoadSettings( APP_SETTINGS_BASE* aCfg )
|
||||||
|
|
||||||
EDA_DRAW_FRAME::LoadSettings( aCfg );
|
EDA_DRAW_FRAME::LoadSettings( aCfg );
|
||||||
|
|
||||||
/*
|
if( aCfg->m_Window.grid.sizes.empty() )
|
||||||
* Do NOT add other values (particularly grid values in mm), because they can break the
|
aCfg->m_Window.grid.sizes = aCfg->DefaultGridSizeList();
|
||||||
* schematic: Because wires and pins are considered as connected when the are to the same
|
|
||||||
* coordinate we cannot mix coordinates in mils (internal units) and mm (that cannot exactly
|
|
||||||
* converted in mils in many cases). In fact schematic must only use 50 and 25 mils to
|
|
||||||
* place labels, wires and symbols others values are useful only for graphic items (mainly
|
|
||||||
* in library editor) so use integer values in mils only.
|
|
||||||
* The 100 mil grid is added to help conform to the KiCad Library Convention which states:
|
|
||||||
* "Using a 100mil grid, pin ends and origin must lie on grid nodes IEC-60617"
|
|
||||||
*/
|
|
||||||
aCfg->m_Window.grid.sizes = { wxS( "100 mil" ),
|
|
||||||
wxS( "50 mil" ),
|
|
||||||
wxS( "25 mil" ),
|
|
||||||
wxS( "10 mil" ) };
|
|
||||||
|
|
||||||
if( aCfg->m_Window.grid.last_size_idx > (int) aCfg->m_Window.grid.sizes.size() )
|
if( aCfg->m_Window.grid.last_size_idx > (int) aCfg->m_Window.grid.sizes.size() )
|
||||||
aCfg->m_Window.grid.last_size_idx = 1;
|
aCfg->m_Window.grid.last_size_idx = 1;
|
||||||
|
|
|
@ -40,6 +40,8 @@ public:
|
||||||
bool TransferDataToWindow() override;
|
bool TransferDataToWindow() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
void OnAddGrid( wxCommandEvent& event ) override;
|
||||||
|
void OnRemoveGrid( wxCommandEvent& event ) override;
|
||||||
void OnResetGridOriginClick( wxCommandEvent& event ) override;
|
void OnResetGridOriginClick( wxCommandEvent& event ) override;
|
||||||
|
|
||||||
void RebuildGridSizes();
|
void RebuildGridSizes();
|
||||||
|
|
Loading…
Reference in New Issue