Loading common/draw_frame.cpp +29 −51 Original line number Diff line number Diff line Loading @@ -387,46 +387,17 @@ void EDA_DRAW_FRAME::OnSelectGrid( wxCommandEvent& event ) else { eventId = event.GetId(); /* Update the grid select combobox if the grid size was changed * by menu event. */ if( m_gridSelectBox != NULL ) { for( size_t i = 0; i < m_gridSelectBox->GetCount(); i++ ) { clientData = (int*) m_gridSelectBox->wxItemContainer::GetClientData( i ); if( clientData && eventId == *clientData ) { m_gridSelectBox->SetSelection( i ); break; } } } } // Be sure m_LastGridSizeId is up to date. m_LastGridSizeId = eventId - ID_POPUP_GRID_LEVEL_1000; BASE_SCREEN* screen = GetScreen(); if( screen->GetGridId() == eventId ) return; int idx = eventId - ID_POPUP_GRID_LEVEL_1000; /* * This allows for saving non-sequential command ID offsets used that * may be used in the grid size combobox. Do not use the selection * index returned by GetSelection(). */ screen->SetGrid( eventId ); SetCrossHairPosition( RefPos( true ) ); // Notify GAL TOOL_MANAGER* mgr = GetToolManager(); if( IsGalCanvasActive() ) { GetGalCanvas()->GetGAL()->SetGridSize( VECTOR2D( screen->GetGrid().m_Size ) ); GetGalCanvas()->GetView()->MarkTargetDirty( KIGFX::TARGET_NONCACHED ); } if( mgr && IsGalCanvasActive() ) mgr->RunAction( "common.Control.gridPreset", true, idx ); else SetPresetGrid( idx ); m_canvas->Refresh(); } Loading Loading @@ -556,14 +527,7 @@ wxPoint EDA_DRAW_FRAME::GetGridPosition( const wxPoint& aPosition ) const void EDA_DRAW_FRAME::SetNextGrid() { if( m_gridSelectBox ) { m_gridSelectBox->SetSelection( ( m_gridSelectBox->GetSelection() + 1 ) % m_gridSelectBox->GetCount() ); wxCommandEvent cmd( wxEVT_COMMAND_COMBOBOX_SELECTED ); // cmd.SetEventObject( this ); OnSelectGrid( cmd ); } SetPresetGrid( ( m_gridSelectBox->GetSelection() + 1 ) % m_gridSelectBox->GetCount() ); } Loading @@ -571,17 +535,31 @@ void EDA_DRAW_FRAME::SetPrevGrid() { if( m_gridSelectBox ) { int cnt = m_gridSelectBox->GetSelection(); int idx = m_gridSelectBox->GetSelection(); if( --idx < 0 ) idx = m_gridSelectBox->GetCount() - 1; if( --cnt < 0 ) cnt = m_gridSelectBox->GetCount() - 1; SetPresetGrid( idx ); } } m_gridSelectBox->SetSelection( cnt ); wxCommandEvent cmd( wxEVT_COMMAND_COMBOBOX_SELECTED ); // cmd.SetEventObject( this ); OnSelectGrid( cmd ); void EDA_DRAW_FRAME::SetPresetGrid( int aIndex ) { if( aIndex < 0 || aIndex >= (int) m_gridSelectBox->GetCount() ) { wxASSERT_MSG( false, "Invalid grid index" ); return; } if( m_gridSelectBox ) m_gridSelectBox->SetSelection( aIndex ); // Be sure m_LastGridSizeId is up to date. m_LastGridSizeId = aIndex; GetScreen()->SetGrid( aIndex + ID_POPUP_GRID_LEVEL_1000 ); SetCrossHairPosition( RefPos( true ) ); } Loading include/draw_frame.h +7 −0 Original line number Diff line number Diff line Loading @@ -439,6 +439,13 @@ public: */ virtual void SetPrevGrid(); /** * Function SetPresetGrid() * changes the grid size to one of the preset values. * @param aIndex is the index from the list. */ void SetPresetGrid( int aIndex ); /** * Command event handler for selecting grid sizes. * Loading pcbnew/tools/common_actions.cpp +8 −5 Original line number Diff line number Diff line Loading @@ -303,26 +303,29 @@ TOOL_ACTION COMMON_ACTIONS::layerChanged( "pcbnew.Control.layerChanged", // Grid control TOOL_ACTION COMMON_ACTIONS::gridFast1( "pcbnew.Control.gridFast1", TOOL_ACTION COMMON_ACTIONS::gridFast1( "common.Control.gridFast1", AS_GLOBAL, MD_ALT + int( '1' ), "", "" ); TOOL_ACTION COMMON_ACTIONS::gridFast2( "pcbnew.Control.gridFast2", TOOL_ACTION COMMON_ACTIONS::gridFast2( "common.Control.gridFast2", AS_GLOBAL, MD_ALT + int( '2' ), "", "" ); TOOL_ACTION COMMON_ACTIONS::gridNext( "pcbnew.Control.gridNext", TOOL_ACTION COMMON_ACTIONS::gridNext( "common.Control.gridNext", AS_GLOBAL, '`', "", "" ); TOOL_ACTION COMMON_ACTIONS::gridPrev( "pcbnew.Control.gridPrev", TOOL_ACTION COMMON_ACTIONS::gridPrev( "common.Control.gridPrev", AS_GLOBAL, MD_CTRL + int( '`' ), "", "" ); TOOL_ACTION COMMON_ACTIONS::gridSetOrigin( "pcbnew.Control.gridSetOrigin", TOOL_ACTION COMMON_ACTIONS::gridSetOrigin( "common.Control.gridSetOrigin", AS_GLOBAL, 0, "", "" ); TOOL_ACTION COMMON_ACTIONS::gridPreset( "common.Control.gridPreset", AS_GLOBAL, 0, "", "" ); // Track & via size control TOOL_ACTION COMMON_ACTIONS::trackWidthInc( "pcbnew.EditorControl.trackWidthInc", Loading pcbnew/tools/common_actions.h +1 −0 Original line number Diff line number Diff line Loading @@ -223,6 +223,7 @@ public: static TOOL_ACTION gridNext; static TOOL_ACTION gridPrev; static TOOL_ACTION gridSetOrigin; static TOOL_ACTION gridPreset; // Track & via size control static TOOL_ACTION trackWidthInc; Loading pcbnew/tools/pcbnew_control.cpp +16 −1 Original line number Diff line number Diff line Loading @@ -446,6 +446,21 @@ int PCBNEW_CONTROL::GridSetOrigin( const TOOL_EVENT& aEvent ) } int PCBNEW_CONTROL::GridPreset( const TOOL_EVENT& aEvent ) { long idx = aEvent.Parameter<long>(); m_frame->SetPresetGrid( idx ); BASE_SCREEN* screen = m_frame->GetScreen(); GRID_TYPE grid = screen->GetGrid( idx ); getView()->GetGAL()->SetGridSize( VECTOR2D( grid.m_Size ) ); getView()->MarkTargetDirty( KIGFX::TARGET_NONCACHED ); return 0; } // Miscellaneous int PCBNEW_CONTROL::ResetCoords( const TOOL_EVENT& aEvent ) { Loading Loading @@ -549,7 +564,7 @@ void PCBNEW_CONTROL::SetTransitions() Go( &PCBNEW_CONTROL::GridNext, COMMON_ACTIONS::gridNext.MakeEvent() ); Go( &PCBNEW_CONTROL::GridPrev, COMMON_ACTIONS::gridPrev.MakeEvent() ); Go( &PCBNEW_CONTROL::GridSetOrigin, COMMON_ACTIONS::gridSetOrigin.MakeEvent() ); //Go( &PCBNEW_CONTROL::GridSetPreset, COMMON_ACTIONS::gridSetPreset.MakeEvent() ); Go( &PCBNEW_CONTROL::GridPreset, COMMON_ACTIONS::gridPreset.MakeEvent() ); // Miscellaneous Go( &PCBNEW_CONTROL::ResetCoords, COMMON_ACTIONS::resetCoords.MakeEvent() ); Loading Loading
common/draw_frame.cpp +29 −51 Original line number Diff line number Diff line Loading @@ -387,46 +387,17 @@ void EDA_DRAW_FRAME::OnSelectGrid( wxCommandEvent& event ) else { eventId = event.GetId(); /* Update the grid select combobox if the grid size was changed * by menu event. */ if( m_gridSelectBox != NULL ) { for( size_t i = 0; i < m_gridSelectBox->GetCount(); i++ ) { clientData = (int*) m_gridSelectBox->wxItemContainer::GetClientData( i ); if( clientData && eventId == *clientData ) { m_gridSelectBox->SetSelection( i ); break; } } } } // Be sure m_LastGridSizeId is up to date. m_LastGridSizeId = eventId - ID_POPUP_GRID_LEVEL_1000; BASE_SCREEN* screen = GetScreen(); if( screen->GetGridId() == eventId ) return; int idx = eventId - ID_POPUP_GRID_LEVEL_1000; /* * This allows for saving non-sequential command ID offsets used that * may be used in the grid size combobox. Do not use the selection * index returned by GetSelection(). */ screen->SetGrid( eventId ); SetCrossHairPosition( RefPos( true ) ); // Notify GAL TOOL_MANAGER* mgr = GetToolManager(); if( IsGalCanvasActive() ) { GetGalCanvas()->GetGAL()->SetGridSize( VECTOR2D( screen->GetGrid().m_Size ) ); GetGalCanvas()->GetView()->MarkTargetDirty( KIGFX::TARGET_NONCACHED ); } if( mgr && IsGalCanvasActive() ) mgr->RunAction( "common.Control.gridPreset", true, idx ); else SetPresetGrid( idx ); m_canvas->Refresh(); } Loading Loading @@ -556,14 +527,7 @@ wxPoint EDA_DRAW_FRAME::GetGridPosition( const wxPoint& aPosition ) const void EDA_DRAW_FRAME::SetNextGrid() { if( m_gridSelectBox ) { m_gridSelectBox->SetSelection( ( m_gridSelectBox->GetSelection() + 1 ) % m_gridSelectBox->GetCount() ); wxCommandEvent cmd( wxEVT_COMMAND_COMBOBOX_SELECTED ); // cmd.SetEventObject( this ); OnSelectGrid( cmd ); } SetPresetGrid( ( m_gridSelectBox->GetSelection() + 1 ) % m_gridSelectBox->GetCount() ); } Loading @@ -571,17 +535,31 @@ void EDA_DRAW_FRAME::SetPrevGrid() { if( m_gridSelectBox ) { int cnt = m_gridSelectBox->GetSelection(); int idx = m_gridSelectBox->GetSelection(); if( --idx < 0 ) idx = m_gridSelectBox->GetCount() - 1; if( --cnt < 0 ) cnt = m_gridSelectBox->GetCount() - 1; SetPresetGrid( idx ); } } m_gridSelectBox->SetSelection( cnt ); wxCommandEvent cmd( wxEVT_COMMAND_COMBOBOX_SELECTED ); // cmd.SetEventObject( this ); OnSelectGrid( cmd ); void EDA_DRAW_FRAME::SetPresetGrid( int aIndex ) { if( aIndex < 0 || aIndex >= (int) m_gridSelectBox->GetCount() ) { wxASSERT_MSG( false, "Invalid grid index" ); return; } if( m_gridSelectBox ) m_gridSelectBox->SetSelection( aIndex ); // Be sure m_LastGridSizeId is up to date. m_LastGridSizeId = aIndex; GetScreen()->SetGrid( aIndex + ID_POPUP_GRID_LEVEL_1000 ); SetCrossHairPosition( RefPos( true ) ); } Loading
include/draw_frame.h +7 −0 Original line number Diff line number Diff line Loading @@ -439,6 +439,13 @@ public: */ virtual void SetPrevGrid(); /** * Function SetPresetGrid() * changes the grid size to one of the preset values. * @param aIndex is the index from the list. */ void SetPresetGrid( int aIndex ); /** * Command event handler for selecting grid sizes. * Loading
pcbnew/tools/common_actions.cpp +8 −5 Original line number Diff line number Diff line Loading @@ -303,26 +303,29 @@ TOOL_ACTION COMMON_ACTIONS::layerChanged( "pcbnew.Control.layerChanged", // Grid control TOOL_ACTION COMMON_ACTIONS::gridFast1( "pcbnew.Control.gridFast1", TOOL_ACTION COMMON_ACTIONS::gridFast1( "common.Control.gridFast1", AS_GLOBAL, MD_ALT + int( '1' ), "", "" ); TOOL_ACTION COMMON_ACTIONS::gridFast2( "pcbnew.Control.gridFast2", TOOL_ACTION COMMON_ACTIONS::gridFast2( "common.Control.gridFast2", AS_GLOBAL, MD_ALT + int( '2' ), "", "" ); TOOL_ACTION COMMON_ACTIONS::gridNext( "pcbnew.Control.gridNext", TOOL_ACTION COMMON_ACTIONS::gridNext( "common.Control.gridNext", AS_GLOBAL, '`', "", "" ); TOOL_ACTION COMMON_ACTIONS::gridPrev( "pcbnew.Control.gridPrev", TOOL_ACTION COMMON_ACTIONS::gridPrev( "common.Control.gridPrev", AS_GLOBAL, MD_CTRL + int( '`' ), "", "" ); TOOL_ACTION COMMON_ACTIONS::gridSetOrigin( "pcbnew.Control.gridSetOrigin", TOOL_ACTION COMMON_ACTIONS::gridSetOrigin( "common.Control.gridSetOrigin", AS_GLOBAL, 0, "", "" ); TOOL_ACTION COMMON_ACTIONS::gridPreset( "common.Control.gridPreset", AS_GLOBAL, 0, "", "" ); // Track & via size control TOOL_ACTION COMMON_ACTIONS::trackWidthInc( "pcbnew.EditorControl.trackWidthInc", Loading
pcbnew/tools/common_actions.h +1 −0 Original line number Diff line number Diff line Loading @@ -223,6 +223,7 @@ public: static TOOL_ACTION gridNext; static TOOL_ACTION gridPrev; static TOOL_ACTION gridSetOrigin; static TOOL_ACTION gridPreset; // Track & via size control static TOOL_ACTION trackWidthInc; Loading
pcbnew/tools/pcbnew_control.cpp +16 −1 Original line number Diff line number Diff line Loading @@ -446,6 +446,21 @@ int PCBNEW_CONTROL::GridSetOrigin( const TOOL_EVENT& aEvent ) } int PCBNEW_CONTROL::GridPreset( const TOOL_EVENT& aEvent ) { long idx = aEvent.Parameter<long>(); m_frame->SetPresetGrid( idx ); BASE_SCREEN* screen = m_frame->GetScreen(); GRID_TYPE grid = screen->GetGrid( idx ); getView()->GetGAL()->SetGridSize( VECTOR2D( grid.m_Size ) ); getView()->MarkTargetDirty( KIGFX::TARGET_NONCACHED ); return 0; } // Miscellaneous int PCBNEW_CONTROL::ResetCoords( const TOOL_EVENT& aEvent ) { Loading Loading @@ -549,7 +564,7 @@ void PCBNEW_CONTROL::SetTransitions() Go( &PCBNEW_CONTROL::GridNext, COMMON_ACTIONS::gridNext.MakeEvent() ); Go( &PCBNEW_CONTROL::GridPrev, COMMON_ACTIONS::gridPrev.MakeEvent() ); Go( &PCBNEW_CONTROL::GridSetOrigin, COMMON_ACTIONS::gridSetOrigin.MakeEvent() ); //Go( &PCBNEW_CONTROL::GridSetPreset, COMMON_ACTIONS::gridSetPreset.MakeEvent() ); Go( &PCBNEW_CONTROL::GridPreset, COMMON_ACTIONS::gridPreset.MakeEvent() ); // Miscellaneous Go( &PCBNEW_CONTROL::ResetCoords, COMMON_ACTIONS::resetCoords.MakeEvent() ); Loading