Gerbview: fix not working menu item "Zoom to Selection" in main menu. This also fixes a wxASSERT for this menu item
This commit is contained in:
parent
71bf488507
commit
a2f118d2fa
|
@ -116,6 +116,8 @@ BEGIN_EVENT_TABLE( GERBVIEW_FRAME, EDA_DRAW_FRAME )
|
|||
|
||||
EVT_SELECT_DCODE( ID_TOOLBARH_GERBER_SELECT_ACTIVE_DCODE, GERBVIEW_FRAME::OnSelectActiveDCode )
|
||||
|
||||
EVT_MENU( ID_MENU_ZOOM_SELECTION, GERBVIEW_FRAME::Process_Special_Functions )
|
||||
|
||||
// Vertical toolbar:
|
||||
EVT_TOOL( ID_NO_TOOL_SELECTED, GERBVIEW_FRAME::Process_Special_Functions )
|
||||
|
||||
|
@ -231,6 +233,7 @@ void GERBVIEW_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
|||
SetNoToolSelected();
|
||||
break;
|
||||
|
||||
case ID_MENU_ZOOM_SELECTION:
|
||||
case ID_ZOOM_SELECTION:
|
||||
// This tool is located on the main toolbar: switch it on or off on click
|
||||
if( GetToolId() != ID_ZOOM_SELECTION )
|
||||
|
|
|
@ -64,7 +64,7 @@ static EDA_HOTKEY HkZoomRedraw( _HKI( "Zoom Redraw" ), HK_ZOOM_REDRAW, WXK_F3
|
|||
static EDA_HOTKEY HkZoomOut( _HKI( "Zoom Out" ), HK_ZOOM_OUT, WXK_F2 );
|
||||
static EDA_HOTKEY HkZoomIn( _HKI( "Zoom In" ), HK_ZOOM_IN, WXK_F1 );
|
||||
static EDA_HOTKEY HkZoomSelection( _HKI( "Zoom to Selection" ),
|
||||
HK_ZOOM_SELECTION, '@' );
|
||||
HK_ZOOM_SELECTION, GR_KB_CTRL + WXK_F5 );
|
||||
static EDA_HOTKEY HkHelp( _HKI( "Help (this window)" ), HK_HELP, '?' );
|
||||
static EDA_HOTKEY HkSwitchUnits( _HKI( "Switch Units" ), HK_SWITCH_UNITS, 'U' );
|
||||
static EDA_HOTKEY HkResetLocalCoord( _HKI( "Reset Local Coordinates" ),
|
||||
|
@ -192,6 +192,11 @@ bool GERBVIEW_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode, const wxPoint& aPosit
|
|||
GetEventHandler()->ProcessEvent( cmd );
|
||||
break;
|
||||
|
||||
case HK_ZOOM_SELECTION:
|
||||
//cmd.SetId( ID_ZOOM_SELECTION );
|
||||
//GetEventHandler()->ProcessEvent( cmd );
|
||||
break;
|
||||
|
||||
case HK_ZOOM_AUTO:
|
||||
cmd.SetId( ID_ZOOM_PAGE );
|
||||
GetEventHandler()->ProcessEvent( cmd );
|
||||
|
|
|
@ -212,7 +212,8 @@ void GERBVIEW_FRAME::ReCreateMenuBar()
|
|||
AddMenuItem( viewMenu, ID_ZOOM_PAGE, text, _( "Zoom to fit" ),
|
||||
KiBitmap( zoom_fit_in_page_xpm ) );
|
||||
|
||||
AddMenuItem( viewMenu, ID_ZOOM_SELECTION, _( "Zoom to Selection" ),
|
||||
text = AddHotkeyName( _( "Zoom to Selection" ), GerbviewHokeysDescr, HK_ZOOM_SELECTION );
|
||||
AddMenuItem( viewMenu, ID_MENU_ZOOM_SELECTION, text,
|
||||
KiBitmap( zoom_area_xpm ) );
|
||||
|
||||
text = AddHotkeyName( _( "&Redraw" ), GerbviewHokeysDescr, HK_ZOOM_REDRAW );
|
||||
|
|
|
@ -49,6 +49,9 @@ OPT<TOOL_EVENT> GERBVIEW_ACTIONS::TranslateLegacyId( int aId )
|
|||
case ID_ZOOM_PAGE: // toolbar button "Fit on Screen"
|
||||
return ACTIONS::zoomFitScreen.MakeEvent();
|
||||
|
||||
case ID_MENU_ZOOM_SELECTION:
|
||||
return GERBVIEW_ACTIONS::switchZoomToSelectionTool.MakeEvent();
|
||||
|
||||
case ID_ZOOM_SELECTION:
|
||||
return ACTIONS::zoomTool.MakeEvent();
|
||||
|
||||
|
|
|
@ -124,6 +124,7 @@ public:
|
|||
static TOOL_ACTION switchCursor;
|
||||
static TOOL_ACTION switchUnits;
|
||||
static TOOL_ACTION showHelp;
|
||||
static TOOL_ACTION switchZoomToSelectionTool;
|
||||
static TOOL_ACTION toBeDone;
|
||||
|
||||
// Highlighting
|
||||
|
|
|
@ -33,6 +33,9 @@ TOOL_ACTION GERBVIEW_ACTIONS::selectionTool( "gerbview.Control.selectionTool",
|
|||
AS_GLOBAL, 0,
|
||||
"", "", NULL, AF_ACTIVATE );
|
||||
|
||||
TOOL_ACTION GERBVIEW_ACTIONS::switchZoomToSelectionTool( "gerbview.Control.switchZoomToSelectionTool",
|
||||
AS_GLOBAL, TOOL_ACTION::LegacyHotKey( HK_ZOOM_SELECTION ), "", "" );
|
||||
|
||||
TOOL_ACTION GERBVIEW_ACTIONS::layerChanged( "gerbview.Control.layerChanged",
|
||||
AS_GLOBAL, 0,
|
||||
"", "", NULL, AF_NOTIFY );
|
||||
|
@ -257,6 +260,21 @@ int GERBVIEW_CONTROL::ShowHelp( const TOOL_EVENT& aEvent )
|
|||
}
|
||||
|
||||
|
||||
int GERBVIEW_CONTROL::SwitchZoomToSelectionTool( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
// Update the Zoom to Selection Tool state changed from the zoom menuitem
|
||||
bool state = m_frame->GetToolToggled( ID_ZOOM_SELECTION );
|
||||
m_frame->GetMainToolBar()->ToggleTool( ID_ZOOM_SELECTION, !state );
|
||||
m_frame->GetMainToolBar()->Refresh();
|
||||
|
||||
// Send the Zoom to Selection Tool event similar to a tool click:
|
||||
wxCommandEvent evt( wxEVT_TOOL );
|
||||
evt.SetId( ID_ZOOM_SELECTION );
|
||||
m_frame->ProcessEvent( evt );
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
void GERBVIEW_CONTROL::setTransitions()
|
||||
{
|
||||
Go( &GERBVIEW_CONTROL::HighlightControl, GERBVIEW_ACTIONS::highlightClear.MakeEvent() );
|
||||
|
@ -276,4 +294,6 @@ void GERBVIEW_CONTROL::setTransitions()
|
|||
Go( &GERBVIEW_CONTROL::ResetCoords, GERBVIEW_ACTIONS::resetCoords.MakeEvent() );
|
||||
Go( &GERBVIEW_CONTROL::SwitchUnits, GERBVIEW_ACTIONS::switchUnits.MakeEvent() );
|
||||
Go( &GERBVIEW_CONTROL::ShowHelp, GERBVIEW_ACTIONS::showHelp.MakeEvent() );
|
||||
Go( &GERBVIEW_CONTROL::SwitchZoomToSelectionTool,
|
||||
GERBVIEW_ACTIONS::switchZoomToSelectionTool.MakeEvent() );
|
||||
}
|
||||
|
|
|
@ -60,6 +60,7 @@ public:
|
|||
int ResetCoords( const TOOL_EVENT& aEvent );
|
||||
int SwitchUnits( const TOOL_EVENT& aEvent );
|
||||
int ShowHelp( const TOOL_EVENT& aEvent );
|
||||
int SwitchZoomToSelectionTool( const TOOL_EVENT& aEvent ); // On/off main toolbar Zoom to selection tool
|
||||
|
||||
///> Sets up handlers for various events.
|
||||
void setTransitions() override;
|
||||
|
|
Loading…
Reference in New Issue