Commit c5e1c249 authored by Roman Bashkov's avatar Roman Bashkov Committed by Andrey Fedorushkov

pcbnew:

* Add hotkey fast switch to two grids: for place and trace
	Alt+"1" - switch grid for place module
	Alt+"2" - switch grid for trace
  This two grid set in dialog - menu Preferences->Dimensions->Grid.
* Add hotkey switch grid:
	"`" - switch to next grid
	Ctrl+"`" - switch to previous grid
* Add hotkey switch track width:
	"W" - switch to next track width
	Ctrl+"W" - switch to previous track width
cmakemodules:
* Add GOST to KICAD_BUILD_VERSION if define KICAD_GOST.
parent ddedd1ff
...@@ -56,7 +56,11 @@ macro( create_bzr_version_header ) ...@@ -56,7 +56,11 @@ macro( create_bzr_version_header )
if( Kicad_REPO_LAST_CHANGED_DATE ) if( Kicad_REPO_LAST_CHANGED_DATE )
string( REGEX REPLACE "^([0-9]+)\\-([0-9]+)\\-([0-9]+)" "\\1-\\2-\\3" string( REGEX REPLACE "^([0-9]+)\\-([0-9]+)\\-([0-9]+)" "\\1-\\2-\\3"
_kicad_bzr_date ${Kicad_REPO_LAST_CHANGED_DATE} ) _kicad_bzr_date ${Kicad_REPO_LAST_CHANGED_DATE} )
set( KICAD_BUILD_VERSION "(${_kicad_bzr_date} BZR ${Kicad_REPO_REVISION})" ) if( KICAD_GOST )
set( KICAD_BUILD_VERSION "(${_kicad_bzr_date} BZR ${Kicad_REPO_REVISION} GOST)" )
else( KICAD_GOST )
set( KICAD_BUILD_VERSION "(${_kicad_bzr_date} BZR ${Kicad_REPO_REVISION})" )
endif( KICAD_GOST )
# Definition to conditionally use date and revision returned from the # Definition to conditionally use date and revision returned from the
# Bazaar log command instead of hand coded date and revision in # Bazaar log command instead of hand coded date and revision in
......
...@@ -346,8 +346,8 @@ void EDA_DRAW_FRAME::OnSelectGrid( wxCommandEvent& event ) ...@@ -346,8 +346,8 @@ void EDA_DRAW_FRAME::OnSelectGrid( wxCommandEvent& event )
* index returned by GetSelection(). * index returned by GetSelection().
*/ */
m_LastGridSizeId = id - ID_POPUP_GRID_LEVEL_1000; m_LastGridSizeId = id - ID_POPUP_GRID_LEVEL_1000;
screen->SetCrossHairPosition( DrawPanel->GetScreenCenterLogicalPosition() );
screen->SetGrid( id ); screen->SetGrid( id );
screen->SetCrossHairPosition( screen->RefPos( true ) );
Refresh(); Refresh();
} }
......
...@@ -60,6 +60,9 @@ public: ...@@ -60,6 +60,9 @@ public:
EDA_UNITS_T m_UserGridUnit; EDA_UNITS_T m_UserGridUnit;
wxRealPoint m_UserGridSize; wxRealPoint m_UserGridSize;
int m_FastGrid1;
int m_FastGrid2;
EDA_3D_FRAME* m_Draw3DFrame; EDA_3D_FRAME* m_Draw3DFrame;
FOOTPRINT_EDIT_FRAME* m_ModuleEditFrame; FOOTPRINT_EDIT_FRAME* m_ModuleEditFrame;
......
...@@ -30,6 +30,8 @@ static const wxString DisplayViaFillEntry( wxT( "DiViaFi" ) ); ...@@ -30,6 +30,8 @@ static const wxString DisplayViaFillEntry( wxT( "DiViaFi" ) );
static const wxString DisplayPadNumberEntry( wxT( "DiPadNu" ) ); static const wxString DisplayPadNumberEntry( wxT( "DiPadNu" ) );
static const wxString DisplayModuleEdgeEntry( wxT( "DiModEd" ) ); static const wxString DisplayModuleEdgeEntry( wxT( "DiModEd" ) );
static const wxString DisplayModuleTextEntry( wxT( "DiModTx" ) ); static const wxString DisplayModuleTextEntry( wxT( "DiModTx" ) );
static const wxString FastGrid1Entry( wxT( "FastGrid1" ) );
static const wxString FastGrid2Entry( wxT( "FastGrid2" ) );
/****************************/ /****************************/
...@@ -76,6 +78,9 @@ PCB_BASE_FRAME::PCB_BASE_FRAME( wxWindow* father, ...@@ -76,6 +78,9 @@ PCB_BASE_FRAME::PCB_BASE_FRAME( wxWindow* father,
m_UserGridSize = wxRealPoint( 100.0, 100.0 ); m_UserGridSize = wxRealPoint( 100.0, 100.0 );
m_UserGridUnit = INCHES; m_UserGridUnit = INCHES;
m_Collector = new GENERAL_COLLECTOR(); m_Collector = new GENERAL_COLLECTOR();
m_FastGrid1 = 0;
m_FastGrid2 = 0;
} }
...@@ -482,6 +487,11 @@ void PCB_BASE_FRAME::LoadSettings() ...@@ -482,6 +487,11 @@ void PCB_BASE_FRAME::LoadSettings()
cfg->Read( m_FrameName + DisplayPadNumberEntry, &m_DisplayPadNum, true ); cfg->Read( m_FrameName + DisplayPadNumberEntry, &m_DisplayPadNum, true );
cfg->Read( m_FrameName + DisplayModuleEdgeEntry, &m_DisplayModEdge, ( long )FILLED ); cfg->Read( m_FrameName + DisplayModuleEdgeEntry, &m_DisplayModEdge, ( long )FILLED );
cfg->Read( m_FrameName + FastGrid1Entry, &itmp, ( long )0);
m_FastGrid1 = itmp;
cfg->Read( m_FrameName + FastGrid2Entry, &itmp, ( long )0);
m_FastGrid2 = itmp;
if( m_DisplayModEdge < FILAIRE || m_DisplayModEdge > SKETCH ) if( m_DisplayModEdge < FILAIRE || m_DisplayModEdge > SKETCH )
m_DisplayModEdge = FILLED; m_DisplayModEdge = FILLED;
...@@ -518,6 +528,8 @@ void PCB_BASE_FRAME::SaveSettings() ...@@ -518,6 +528,8 @@ void PCB_BASE_FRAME::SaveSettings()
cfg->Write( m_FrameName + DisplayPadNumberEntry, m_DisplayPadNum ); cfg->Write( m_FrameName + DisplayPadNumberEntry, m_DisplayPadNum );
cfg->Write( m_FrameName + DisplayModuleEdgeEntry, ( long )m_DisplayModEdge ); cfg->Write( m_FrameName + DisplayModuleEdgeEntry, ( long )m_DisplayModEdge );
cfg->Write( m_FrameName + DisplayModuleTextEntry, ( long )m_DisplayModText ); cfg->Write( m_FrameName + DisplayModuleTextEntry, ( long )m_DisplayModText );
cfg->Write( m_FrameName + FastGrid1Entry, ( long )m_FastGrid1 );
cfg->Write( m_FrameName + FastGrid2Entry, ( long )m_FastGrid2 );
} }
......
This source diff could not be displayed because it is too large. You can view the blob instead.
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Apr 16 2008) // C++ code generated with wxFormBuilder (version Sep 6 2011)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO "NOT" EDIT THIS FILE! // PLEASE DO "NOT" EDIT THIS FILE!
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
#include "dialog_set_grid_base.h" #include "dialog_set_grid_base.h"
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
DIALOG_SET_GRID_BASE::DIALOG_SET_GRID_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) DIALOG_SET_GRID_BASE::DIALOG_SET_GRID_BASE( 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->SetSizeHints( wxDefaultSize, wxDefaultSize );
wxBoxSizer* bSizerMain; wxBoxSizer* bSizerMain;
bSizerMain = new wxBoxSizer( wxVERTICAL ); bSizerMain = new wxBoxSizer( wxVERTICAL );
wxBoxSizer* bUpperSizer; wxBoxSizer* bUpperSizer;
bUpperSizer = new wxBoxSizer( wxHORIZONTAL ); bUpperSizer = new wxBoxSizer( wxHORIZONTAL );
wxStaticBoxSizer* sbLeftSizer; wxStaticBoxSizer* sbLeftSizer;
sbLeftSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("User Grid Size") ), wxVERTICAL ); sbLeftSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("User Grid Size") ), wxVERTICAL );
wxString m_UnitGridChoices[] = { _("Inches"), _("mm") }; wxString m_UnitGridChoices[] = { _("Inches"), _("mm") };
int m_UnitGridNChoices = sizeof( m_UnitGridChoices ) / sizeof( wxString ); int m_UnitGridNChoices = sizeof( m_UnitGridChoices ) / sizeof( wxString );
m_UnitGrid = new wxRadioBox( this, wxID_ANY, _("Grid Size Units"), wxDefaultPosition, wxDefaultSize, m_UnitGridNChoices, m_UnitGridChoices, 1, wxRA_SPECIFY_COLS ); m_UnitGrid = new wxRadioBox( this, wxID_ANY, _("Grid Size Units"), wxDefaultPosition, wxDefaultSize, m_UnitGridNChoices, m_UnitGridChoices, 1, wxRA_SPECIFY_COLS );
m_UnitGrid->SetSelection( 0 ); m_UnitGrid->SetSelection( 0 );
sbLeftSizer->Add( m_UnitGrid, 0, wxALL|wxEXPAND, 5 ); sbLeftSizer->Add( m_UnitGrid, 0, wxALL|wxEXPAND, 5 );
sbLeftSizer->Add( 10, 10, 0, 0, 5 ); sbLeftSizer->Add( 10, 10, 0, 0, 5 );
m_staticTextSizeX = new wxStaticText( this, wxID_ANY, _("User Grid Size X"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextSizeX = new wxStaticText( this, wxID_ANY, _("User Grid Size X"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextSizeX->Wrap( -1 ); m_staticTextSizeX->Wrap( -1 );
sbLeftSizer->Add( m_staticTextSizeX, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); sbLeftSizer->Add( m_staticTextSizeX, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
m_OptGridSizeX = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_OptGridSizeX = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
sbLeftSizer->Add( m_OptGridSizeX, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); sbLeftSizer->Add( m_OptGridSizeX, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
m_staticTextSizeY = new wxStaticText( this, wxID_ANY, _("User Grid Size Y"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextSizeY = new wxStaticText( this, wxID_ANY, _("User Grid Size Y"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextSizeY->Wrap( -1 ); m_staticTextSizeY->Wrap( -1 );
sbLeftSizer->Add( m_staticTextSizeY, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); sbLeftSizer->Add( m_staticTextSizeY, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
m_OptGridSizeY = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_OptGridSizeY = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
sbLeftSizer->Add( m_OptGridSizeY, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); sbLeftSizer->Add( m_OptGridSizeY, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 );
bUpperSizer->Add( sbLeftSizer, 1, wxEXPAND|wxALL, 5 ); bUpperSizer->Add( sbLeftSizer, 1, wxEXPAND|wxALL, 5 );
wxStaticBoxSizer* sbRightSizer; wxBoxSizer* bSizer4;
sbRightSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Grid Origin") ), wxVERTICAL ); bSizer4 = new wxBoxSizer( wxVERTICAL );
wxFlexGridSizer* fgSizerGridOrigin; wxStaticBoxSizer* sbRightSizer;
fgSizerGridOrigin = new wxFlexGridSizer( 2, 3, 0, 0 ); sbRightSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Grid Origin") ), wxVERTICAL );
fgSizerGridOrigin->AddGrowableCol( 1 );
fgSizerGridOrigin->SetFlexibleDirection( wxBOTH ); wxFlexGridSizer* fgSizerGridOrigin;
fgSizerGridOrigin->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); fgSizerGridOrigin = new wxFlexGridSizer( 2, 3, 0, 0 );
fgSizerGridOrigin->AddGrowableCol( 1 );
m_staticTextGridPosX = new wxStaticText( this, wxID_ANY, _("Grid origin X:"), wxDefaultPosition, wxDefaultSize, 0 ); fgSizerGridOrigin->SetFlexibleDirection( wxBOTH );
m_staticTextGridPosX->Wrap( -1 ); fgSizerGridOrigin->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
fgSizerGridOrigin->Add( m_staticTextGridPosX, 0, wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
m_staticTextGridPosX = new wxStaticText( this, wxID_ANY, _("Grid origin X:"), wxDefaultPosition, wxDefaultSize, 0 );
m_GridOriginXCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextGridPosX->Wrap( -1 );
fgSizerGridOrigin->Add( m_GridOriginXCtrl, 0, wxEXPAND|wxALL|wxALIGN_CENTER_VERTICAL, 5 ); fgSizerGridOrigin->Add( m_staticTextGridPosX, 0, wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
m_TextPosXUnits = new wxStaticText( this, wxID_ANY, _("Inches"), wxDefaultPosition, wxDefaultSize, 0 ); m_GridOriginXCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
m_TextPosXUnits->Wrap( -1 ); fgSizerGridOrigin->Add( m_GridOriginXCtrl, 0, wxEXPAND|wxALL|wxALIGN_CENTER_VERTICAL, 5 );
fgSizerGridOrigin->Add( m_TextPosXUnits, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
m_TextPosXUnits = new wxStaticText( this, wxID_ANY, _("Inches"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextGridPosY = new wxStaticText( this, wxID_ANY, _("Grid origin Y:"), wxDefaultPosition, wxDefaultSize, 0 ); m_TextPosXUnits->Wrap( -1 );
m_staticTextGridPosY->Wrap( -1 ); fgSizerGridOrigin->Add( m_TextPosXUnits, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
fgSizerGridOrigin->Add( m_staticTextGridPosY, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
m_staticTextGridPosY = new wxStaticText( this, wxID_ANY, _("Grid origin Y:"), wxDefaultPosition, wxDefaultSize, 0 );
m_GridOriginYCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextGridPosY->Wrap( -1 );
fgSizerGridOrigin->Add( m_GridOriginYCtrl, 0, wxEXPAND|wxALL|wxALIGN_CENTER_VERTICAL, 5 ); fgSizerGridOrigin->Add( m_staticTextGridPosY, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
m_TextPosYUnits = new wxStaticText( this, wxID_ANY, _("Inches"), wxDefaultPosition, wxDefaultSize, 0 ); m_GridOriginYCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
m_TextPosYUnits->Wrap( -1 ); fgSizerGridOrigin->Add( m_GridOriginYCtrl, 0, wxEXPAND|wxALL|wxALIGN_CENTER_VERTICAL, 5 );
fgSizerGridOrigin->Add( m_TextPosYUnits, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
m_TextPosYUnits = new wxStaticText( this, wxID_ANY, _("Inches"), wxDefaultPosition, wxDefaultSize, 0 );
sbRightSizer->Add( fgSizerGridOrigin, 0, wxALL|wxEXPAND, 5 ); m_TextPosYUnits->Wrap( -1 );
fgSizerGridOrigin->Add( m_TextPosYUnits, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
m_buttonReset = new wxButton( this, wxID_ANY, _("Reset Grid Origin"), wxDefaultPosition, wxDefaultSize, 0 );
sbRightSizer->Add( m_buttonReset, 0, wxALL|wxEXPAND, 5 ); sbRightSizer->Add( fgSizerGridOrigin, 0, wxALL|wxEXPAND, 5 );
bUpperSizer->Add( sbRightSizer, 2, wxEXPAND|wxALL, 5 ); m_buttonReset = new wxButton( this, wxID_ANY, _("Reset Grid Origin"), wxDefaultPosition, wxDefaultSize, 0 );
sbRightSizer->Add( m_buttonReset, 0, wxALL|wxEXPAND, 5 );
bSizerMain->Add( bUpperSizer, 1, wxEXPAND, 5 );
bSizer4->Add( sbRightSizer, 1, wxEXPAND|wxALL, 5 );
m_sdbSizer1 = new wxStdDialogButtonSizer();
m_sdbSizer1OK = new wxButton( this, wxID_OK ); wxStaticBoxSizer* sbSizer4;
m_sdbSizer1->AddButton( m_sdbSizer1OK ); sbSizer4 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Grid for fast switching") ), wxVERTICAL );
m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL );
m_sdbSizer1->AddButton( m_sdbSizer1Cancel ); wxFlexGridSizer* fgSizer3;
m_sdbSizer1->Realize(); fgSizer3 = new wxFlexGridSizer( 2, 2, 0, 0 );
bSizerMain->Add( m_sdbSizer1, 0, wxALIGN_RIGHT|wxTOP|wxBOTTOM, 5 ); fgSizer3->AddGrowableCol( 1 );
fgSizer3->SetFlexibleDirection( wxBOTH );
this->SetSizer( bSizerMain ); fgSizer3->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
this->Layout();
m_staticTextGrid1 = new wxStaticText( this, wxID_ANY, _("Fast Grid 1:"), wxDefaultPosition, wxDefaultSize, 0 );
// Connect Events m_staticTextGrid1->Wrap( -1 );
m_buttonReset->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_SET_GRID_BASE::OnResetGridOrgClick ), NULL, this ); fgSizer3->Add( m_staticTextGrid1, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );
m_sdbSizer1Cancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_SET_GRID_BASE::OnCancelClick ), NULL, this );
m_sdbSizer1OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_SET_GRID_BASE::OnOkClick ), NULL, this ); m_comboBoxGrid1 = new wxComboBox( this, wxID_ANY, _("Combo!"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
} fgSizer3->Add( m_comboBoxGrid1, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
DIALOG_SET_GRID_BASE::~DIALOG_SET_GRID_BASE() m_staticTextGrid2 = new wxStaticText( this, wxID_ANY, _("Fast Grid 2:"), wxDefaultPosition, wxDefaultSize, 0 );
{ m_staticTextGrid2->Wrap( -1 );
// Disconnect Events fgSizer3->Add( m_staticTextGrid2, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );
m_buttonReset->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_SET_GRID_BASE::OnResetGridOrgClick ), NULL, this );
m_sdbSizer1Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_SET_GRID_BASE::OnCancelClick ), NULL, this ); m_comboBoxGrid2 = new wxComboBox( this, wxID_ANY, _("Combo!"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
m_sdbSizer1OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_SET_GRID_BASE::OnOkClick ), NULL, this ); fgSizer3->Add( m_comboBoxGrid2, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );
}
sbSizer4->Add( fgSizer3, 1, wxALL|wxEXPAND, 5 );
bSizer4->Add( sbSizer4, 1, wxALL|wxEXPAND, 5 );
bUpperSizer->Add( bSizer4, 1, wxEXPAND, 5 );
bSizerMain->Add( bUpperSizer, 1, wxEXPAND, 5 );
m_sdbSizer1 = new wxStdDialogButtonSizer();
m_sdbSizer1OK = new wxButton( this, wxID_OK );
m_sdbSizer1->AddButton( m_sdbSizer1OK );
m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL );
m_sdbSizer1->AddButton( m_sdbSizer1Cancel );
m_sdbSizer1->Realize();
bSizerMain->Add( m_sdbSizer1, 0, wxALIGN_RIGHT|wxTOP|wxBOTTOM, 5 );
this->SetSizer( bSizerMain );
this->Layout();
bSizerMain->Fit( this );
// Connect Events
m_buttonReset->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_SET_GRID_BASE::OnResetGridOrgClick ), NULL, this );
m_sdbSizer1Cancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_SET_GRID_BASE::OnCancelClick ), NULL, this );
m_sdbSizer1OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_SET_GRID_BASE::OnOkClick ), NULL, this );
}
DIALOG_SET_GRID_BASE::~DIALOG_SET_GRID_BASE()
{
// Disconnect Events
m_buttonReset->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_SET_GRID_BASE::OnResetGridOrgClick ), NULL, this );
m_sdbSizer1Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_SET_GRID_BASE::OnCancelClick ), NULL, this );
m_sdbSizer1OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_SET_GRID_BASE::OnOkClick ), NULL, this );
}
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Apr 16 2008) // C++ code generated with wxFormBuilder (version Sep 6 2011)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO "NOT" EDIT THIS FILE! // PLEASE DO "NOT" EDIT THIS FILE!
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
#ifndef __dialog_set_grid_base__ #ifndef __dialog_set_grid_base__
#define __dialog_set_grid_base__ #define __dialog_set_grid_base__
#include <wx/intl.h> #include <wx/intl.h>
#include <wx/string.h> #include <wx/string.h>
#include <wx/radiobox.h> #include <wx/radiobox.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/stattext.h> #include <wx/stattext.h>
#include <wx/textctrl.h> #include <wx/textctrl.h>
#include <wx/sizer.h> #include <wx/sizer.h>
#include <wx/statbox.h> #include <wx/statbox.h>
#include <wx/button.h> #include <wx/button.h>
#include <wx/dialog.h> #include <wx/combobox.h>
#include <wx/dialog.h>
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
/// Class DIALOG_SET_GRID_BASE ///////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////// /// Class DIALOG_SET_GRID_BASE
class DIALOG_SET_GRID_BASE : public wxDialog ///////////////////////////////////////////////////////////////////////////////
{ class DIALOG_SET_GRID_BASE : public wxDialog
private: {
private:
protected:
wxRadioBox* m_UnitGrid; protected:
wxRadioBox* m_UnitGrid;
wxStaticText* m_staticTextSizeX;
wxTextCtrl* m_OptGridSizeX; wxStaticText* m_staticTextSizeX;
wxStaticText* m_staticTextSizeY; wxTextCtrl* m_OptGridSizeX;
wxTextCtrl* m_OptGridSizeY; wxStaticText* m_staticTextSizeY;
wxStaticText* m_staticTextGridPosX; wxTextCtrl* m_OptGridSizeY;
wxTextCtrl* m_GridOriginXCtrl; wxStaticText* m_staticTextGridPosX;
wxStaticText* m_TextPosXUnits; wxTextCtrl* m_GridOriginXCtrl;
wxStaticText* m_staticTextGridPosY; wxStaticText* m_TextPosXUnits;
wxTextCtrl* m_GridOriginYCtrl; wxStaticText* m_staticTextGridPosY;
wxStaticText* m_TextPosYUnits; wxTextCtrl* m_GridOriginYCtrl;
wxButton* m_buttonReset; wxStaticText* m_TextPosYUnits;
wxStdDialogButtonSizer* m_sdbSizer1; wxButton* m_buttonReset;
wxButton* m_sdbSizer1OK; wxStaticText* m_staticTextGrid1;
wxButton* m_sdbSizer1Cancel; wxComboBox* m_comboBoxGrid1;
wxStaticText* m_staticTextGrid2;
// Virtual event handlers, overide them in your derived class wxComboBox* m_comboBoxGrid2;
virtual void OnResetGridOrgClick( wxCommandEvent& event ){ event.Skip(); } wxStdDialogButtonSizer* m_sdbSizer1;
virtual void OnCancelClick( wxCommandEvent& event ){ event.Skip(); } wxButton* m_sdbSizer1OK;
virtual void OnOkClick( wxCommandEvent& event ){ event.Skip(); } wxButton* m_sdbSizer1Cancel;
// Virtual event handlers, overide them in your derived class
public: virtual void OnResetGridOrgClick( wxCommandEvent& event ) { event.Skip(); }
DIALOG_SET_GRID_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Grid Origin and User Grid Size"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 374,267 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); }
~DIALOG_SET_GRID_BASE(); virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); }
};
public:
#endif //__dialog_set_grid_base__
DIALOG_SET_GRID_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Grid Origin and User Grid Size"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
~DIALOG_SET_GRID_BASE();
};
#endif //__dialog_set_grid_base__
...@@ -132,12 +132,26 @@ static Ki_HotkeyInfo HkRedo( wxT( "Redo" ), HK_REDO, ...@@ -132,12 +132,26 @@ static Ki_HotkeyInfo HkRedo( wxT( "Redo" ), HK_REDO,
(int) wxID_REDO ); (int) wxID_REDO );
#endif #endif
static Ki_HotkeyInfo HkSwitchTrackWidthToNext( wxT( "Switch Track Width To Next" ), HK_SWITCH_TRACK_WIDTH_TO_NEXT, 'W' );
static Ki_HotkeyInfo HkSwitchTrackWidthToPrevious( wxT( "Switch Track Width To Previous" ), HK_SWITCH_TRACK_WIDTH_TO_PREVIOUS, 'W'
+ GR_KB_CTRL );
static Ki_HotkeyInfo HkSwitchGridToFastGrid1( wxT( "Switch Grid To Fast Grid1" ), HK_SWITCH_GRID_TO_FASTGRID1, GR_KB_ALT + '1' );
static Ki_HotkeyInfo HkSwitchGridToFastGrid2( wxT( "Switch Grid To Fast Grid2" ), HK_SWITCH_GRID_TO_FASTGRID2, GR_KB_ALT + '2' );
static Ki_HotkeyInfo HkSwitchGridToNext( wxT( "Switch Grid To Next" ), HK_SWITCH_GRID_TO_NEXT, '`' );
static Ki_HotkeyInfo HkSwitchGridToPrevious( wxT( "Switch Grid To Previous" ), HK_SWITCH_GRID_TO_PREVIOUS, '`'
+ GR_KB_CTRL );
static Ki_HotkeyInfo HkSwitchUnits( wxT( "Switch Units" ), HK_SWITCH_UNITS, 'U' static Ki_HotkeyInfo HkSwitchUnits( wxT( "Switch Units" ), HK_SWITCH_UNITS, 'U'
+ GR_KB_CTRL ); + GR_KB_CTRL );
static Ki_HotkeyInfo HkTrackDisplayMode( wxT( "Track Display Mode" ), static Ki_HotkeyInfo HkTrackDisplayMode( wxT( "Track Display Mode" ),
HK_SWITCH_TRACK_DISPLAY_MODE, 'K' ); HK_SWITCH_TRACK_DISPLAY_MODE, 'K' );
static Ki_HotkeyInfo HkAddModule( wxT( "Add Module" ), HK_ADD_MODULE, 'O' ); static Ki_HotkeyInfo HkAddModule( wxT( "Add Module" ), HK_ADD_MODULE, 'O' );
/* Record and play macros */ /* Record and play macros */
static Ki_HotkeyInfo HkRecordMacros0( wxT( "Record Macros 0" ), HK_RECORD_MACROS_0, GR_KB_CTRL+'0' ); static Ki_HotkeyInfo HkRecordMacros0( wxT( "Record Macros 0" ), HK_RECORD_MACROS_0, GR_KB_CTRL+'0' );
...@@ -206,16 +220,13 @@ Ki_HotkeyInfo* board_edit_Hotkey_List[] = ...@@ -206,16 +220,13 @@ Ki_HotkeyInfo* board_edit_Hotkey_List[] =
&HkSwitch2InnerLayer2, &HkSwitch2InnerLayer3, &HkSwitch2InnerLayer4, &HkSwitch2InnerLayer2, &HkSwitch2InnerLayer3, &HkSwitch2InnerLayer4,
&HkSwitch2InnerLayer5, &HkSwitch2InnerLayer6, &HkSwitch2ComponentLayer, &HkSwitch2InnerLayer5, &HkSwitch2InnerLayer6, &HkSwitch2ComponentLayer,
&HkSwitch2NextCopperLayer, &HkSwitch2PreviousCopperLayer,&HkAddModule, &HkSwitch2NextCopperLayer, &HkSwitch2PreviousCopperLayer,&HkAddModule,
&HkRecordMacros0, &HkCallMacros0, &HkSwitchTrackWidthToNext, &HkSwitchTrackWidthToPrevious,&HkSwitchGridToFastGrid1,
&HkRecordMacros1, &HkCallMacros1, &HkSwitchGridToFastGrid2, &HkSwitchGridToNext, &HkSwitchGridToPrevious,
&HkRecordMacros2, &HkCallMacros2, &HkRecordMacros0, &HkCallMacros0, &HkRecordMacros1, &HkCallMacros1,
&HkRecordMacros3, &HkCallMacros3, &HkRecordMacros2, &HkCallMacros2, &HkRecordMacros3, &HkCallMacros3,
&HkRecordMacros4, &HkCallMacros4, &HkRecordMacros4, &HkCallMacros4, &HkRecordMacros5, &HkCallMacros5,
&HkRecordMacros5, &HkCallMacros5, &HkRecordMacros6, &HkCallMacros6, &HkRecordMacros7, &HkCallMacros7,
&HkRecordMacros6, &HkCallMacros6, &HkRecordMacros8, &HkCallMacros8, &HkRecordMacros9, &HkCallMacros9,
&HkRecordMacros7, &HkCallMacros7,
&HkRecordMacros8, &HkCallMacros8,
&HkRecordMacros9, &HkCallMacros9,
NULL NULL
}; };
......
...@@ -31,6 +31,12 @@ enum hotkey_id_commnand { ...@@ -31,6 +31,12 @@ enum hotkey_id_commnand {
HK_FIND_ITEM, HK_FIND_ITEM,
HK_EDIT_ITEM, HK_EDIT_ITEM,
HK_PLACE_ITEM, HK_PLACE_ITEM,
HK_SWITCH_TRACK_WIDTH_TO_NEXT,
HK_SWITCH_TRACK_WIDTH_TO_PREVIOUS,
HK_SWITCH_GRID_TO_FASTGRID1,
HK_SWITCH_GRID_TO_FASTGRID2,
HK_SWITCH_GRID_TO_NEXT,
HK_SWITCH_GRID_TO_PREVIOUS,
HK_SWITCH_LAYER_TO_COPPER, HK_SWITCH_LAYER_TO_COPPER,
HK_SWITCH_LAYER_TO_COMPONENT, HK_SWITCH_LAYER_TO_COMPONENT,
HK_SWITCH_LAYER_TO_NEXT, HK_SWITCH_LAYER_TO_NEXT,
......
...@@ -149,7 +149,10 @@ void PCB_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode, const wxPoint& aPosit ...@@ -149,7 +149,10 @@ void PCB_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode, const wxPoint& aPosit
wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED ); wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED );
cmd.SetEventObject( this ); cmd.SetEventObject( this );
int ll; int ll;
unsigned int cnt;
switch( HK_Descr->m_Idcommand ) switch( HK_Descr->m_Idcommand )
{ {
...@@ -238,6 +241,58 @@ void PCB_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode, const wxPoint& aPosit ...@@ -238,6 +241,58 @@ void PCB_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode, const wxPoint& aPosit
CallMacros(aDC, aPosition, 9); CallMacros(aDC, aPosition, 9);
break; break;
case HK_SWITCH_TRACK_WIDTH_TO_NEXT:
GetBoard()->m_TrackWidthSelector = ( GetBoard()->m_TrackWidthSelector + 1 ) % GetBoard()->m_TrackWidthList.size();
break;
case HK_SWITCH_TRACK_WIDTH_TO_PREVIOUS:
if( GetBoard()->m_TrackWidthSelector == 0 )
GetBoard()->m_TrackWidthSelector = GetBoard()->m_TrackWidthList.size();
GetBoard()->m_TrackWidthSelector--;
break;
case HK_SWITCH_GRID_TO_FASTGRID1:
if( m_SelGridBox )
{
m_SelGridBox->SetSelection( m_FastGrid1 );
cmd.SetEventType( wxEVT_COMMAND_COMBOBOX_SELECTED );
OnSelectGrid( cmd );
}
break;
case HK_SWITCH_GRID_TO_FASTGRID2:
if( m_SelGridBox )
{
m_SelGridBox->SetSelection( m_FastGrid2 );
cmd.SetEventType( wxEVT_COMMAND_COMBOBOX_SELECTED );
OnSelectGrid( cmd );
}
break;
case HK_SWITCH_GRID_TO_NEXT:
if( m_SelGridBox )
{
m_SelGridBox->SetSelection( ( m_SelGridBox->GetSelection() + 1 ) % m_SelGridBox->GetCount() );
cmd.SetEventType( wxEVT_COMMAND_COMBOBOX_SELECTED );
OnSelectGrid( cmd );
}
break;
case HK_SWITCH_GRID_TO_PREVIOUS:
if( m_SelGridBox )
{
cnt = m_SelGridBox->GetSelection();
if ( cnt == 0 )
cnt = m_SelGridBox->GetCount() - 1;
else
cnt--;
m_SelGridBox->SetSelection( cnt );
cmd.SetEventType( wxEVT_COMMAND_COMBOBOX_SELECTED );
OnSelectGrid( cmd );
}
break;
case HK_SWITCH_LAYER_TO_PREVIOUS: case HK_SWITCH_LAYER_TO_PREVIOUS:
ll = getActiveLayer(); ll = getActiveLayer();
if( (ll <= LAYER_N_BACK) || (ll > LAYER_N_FRONT) ) if( (ll <= LAYER_N_BACK) || (ll > LAYER_N_FRONT) )
......
...@@ -28,6 +28,8 @@ public: ...@@ -28,6 +28,8 @@ public:
int GetGridUnits(); int GetGridUnits();
void SetGridOrigin( const wxPoint& grid ); void SetGridOrigin( const wxPoint& grid );
wxPoint GetGridOrigin(); wxPoint GetGridOrigin();
void SetGridForFastSwitching( wxArrayString aGrids, int aGrid1, int aGrid2 );
void GetGridForFastSwitching( int& aGrid1, int& aGrid2 );
private: private:
void OnResetGridOrgClick( wxCommandEvent& event ); void OnResetGridOrgClick( wxCommandEvent& event );
...@@ -44,6 +46,9 @@ void PCB_BASE_FRAME::InstallGridFrame( const wxPoint& pos ) ...@@ -44,6 +46,9 @@ void PCB_BASE_FRAME::InstallGridFrame( const wxPoint& pos )
dlg.SetGridSize( m_UserGridSize ); dlg.SetGridSize( m_UserGridSize );
dlg.SetGridOrigin( GetScreen()->m_GridOrigin ); dlg.SetGridOrigin( GetScreen()->m_GridOrigin );
if( m_SelGridBox )
dlg.SetGridForFastSwitching( m_SelGridBox->GetStrings(), m_FastGrid1, m_FastGrid2 );
if( dlg.ShowModal() == wxID_CANCEL ) if( dlg.ShowModal() == wxID_CANCEL )
return; return;
...@@ -53,6 +58,8 @@ void PCB_BASE_FRAME::InstallGridFrame( const wxPoint& pos ) ...@@ -53,6 +58,8 @@ void PCB_BASE_FRAME::InstallGridFrame( const wxPoint& pos )
GetScreen()->AddGrid( m_UserGridSize, m_UserGridUnit, ID_POPUP_GRID_USER ); GetScreen()->AddGrid( m_UserGridSize, m_UserGridUnit, ID_POPUP_GRID_USER );
dlg.GetGridForFastSwitching( m_FastGrid1, m_FastGrid2 );
// If the user grid is the current option, recall SetGrid() // If the user grid is the current option, recall SetGrid()
// to force new values put in list as current grid value // to force new values put in list as current grid value
if( GetScreen()->GetGridId() == ID_POPUP_GRID_USER ) if( GetScreen()->GetGridId() == ID_POPUP_GRID_USER )
...@@ -133,6 +140,24 @@ void DIALOG_SET_GRID::SetGridOrigin( const wxPoint& grid ) ...@@ -133,6 +140,24 @@ void DIALOG_SET_GRID::SetGridOrigin( const wxPoint& grid )
PutValueInLocalUnits( *m_GridOriginYCtrl, grid.y, m_internalUnits ); PutValueInLocalUnits( *m_GridOriginYCtrl, grid.y, m_internalUnits );
} }
void DIALOG_SET_GRID::SetGridForFastSwitching( wxArrayString aGrids, int aGrid1, int aGrid2 )
{
for( wxArrayString::iterator i = aGrids.begin(); i != aGrids.end(); i++ )
{
m_comboBoxGrid1->Append( *i );
m_comboBoxGrid2->Append( *i );
}
m_comboBoxGrid1->SetSelection( aGrid1 );
m_comboBoxGrid2->SetSelection( aGrid2 );
}
void DIALOG_SET_GRID::GetGridForFastSwitching( int& aGrid1, int& aGrid2 )
{
aGrid1 = m_comboBoxGrid1->GetSelection();
aGrid2 = m_comboBoxGrid2->GetSelection();
}
void DIALOG_SET_GRID::OnResetGridOrgClick( wxCommandEvent& event ) void DIALOG_SET_GRID::OnResetGridOrgClick( wxCommandEvent& event )
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment