diff --git a/common/drawframe.cpp b/common/drawframe.cpp index 2211809c37..62f6cc15b4 100644 --- a/common/drawframe.cpp +++ b/common/drawframe.cpp @@ -364,29 +364,33 @@ void WinEDA_DrawFrame::OnSize( wxSizeEvent& SizeEv ) } -/* +/** Function SetToolID * Enables the icon of the selected tool in the vertical toolbar. * (Or tool ID_NO_SELECT_BUTT default if no new selection) - * if (id >= 0) + * @param aId = new m_ID_current_state value (if aId >= 0) + * @param aCursor = the new cursor shape (0 = default cursor) + * @param aTitle = tool message in status bar + * if (aId >= 0) * Updates all variables related: - * Message m_ID_current_state, cursor - * If (id < 0) - * Only updates the variables message and cursor + * m_ID_current_state, cursor shape and message in status bar + * If (aId < 0) + * Only updates the cursor shape and message in status bar + * (does not the current m_ID_current_state value */ -void WinEDA_DrawFrame::SetToolID( int id, int new_cursor_id, - const wxString& title ) +void WinEDA_DrawFrame::SetToolID( int aId, int aCursor, + const wxString& aToolMsg ) { // Keep default cursor in toolbars SetCursor( wxNullCursor ); // Change Cursor in DrawPanel only if( DrawPanel ) { - DrawPanel->m_PanelDefaultCursor = new_cursor_id; - DrawPanel->SetCursor( new_cursor_id ); + DrawPanel->m_PanelDefaultCursor = aCursor; + DrawPanel->SetCursor( aCursor ); } - DisplayToolMsg( title ); + DisplayToolMsg( aToolMsg ); - if( id < 0 ) + if( aId < 0 ) return; // Old Tool ID_NO_SELECT_BUTT active or inactive if no new tool. @@ -400,7 +404,7 @@ void WinEDA_DrawFrame::SetToolID( int id, int new_cursor_id, } else { - if( id ) + if( aId ) { if( m_VToolBar ) m_VToolBar->ToggleTool( ID_NO_SELECT_BUTT, FALSE ); @@ -412,18 +416,18 @@ void WinEDA_DrawFrame::SetToolID( int id, int new_cursor_id, m_VToolBar->ToggleTool( ID_NO_SELECT_BUTT, TRUE ); } - if( id ) + if( aId ) { if( m_VToolBar ) - m_VToolBar->ToggleTool( id, TRUE ); + m_VToolBar->ToggleTool( aId, TRUE ); if( m_AuxVToolBar ) - m_AuxVToolBar->ToggleTool( id, TRUE ); + m_AuxVToolBar->ToggleTool( aId, TRUE ); } else if( m_VToolBar ) m_VToolBar->ToggleTool( ID_NO_SELECT_BUTT, TRUE ); - m_ID_current_state = id; + m_ID_current_state = aId; if( m_VToolBar ) m_VToolBar->Refresh( ); } diff --git a/gerbview/edit.cpp b/gerbview/edit.cpp index d1979001c1..89806da697 100644 --- a/gerbview/edit.cpp +++ b/gerbview/edit.cpp @@ -1,261 +1,259 @@ -/***************************************/ -/* edit.cpp: Gerbview events functions */ -/***************************************/ - -#include "fctsys.h" -#include "class_drawpanel.h" -#include "confirm.h" -#include "common.h" -#include "gestfich.h" -#include "appl_wxstruct.h" - -#include "gerbview.h" -#include "pcbplot.h" -#include "protos.h" -#include "kicad_device_context.h" -#include "gerbview_id.h" - - -/* Process the command triggered by the left button of the mouse when a tool - * is already selected. - */ -void WinEDA_GerberFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos ) -{ - BOARD_ITEM* DrawStruct = GetScreen()->GetCurItem(); - wxString msg; - - if( m_ID_current_state == 0 ) - { - if( DrawStruct && DrawStruct->m_Flags ) - { - msg.Printf( wxT( "WinEDA_GerberFrame::ProcessCommand err: Struct %d, m_Flags = %X" ), - (unsigned) DrawStruct->Type(), - (unsigned) DrawStruct->m_Flags ); - DisplayError( this, msg ); - } - else - { - DrawStruct = GerberGeneralLocateAndDisplay(); - GetScreen()->SetCurItem( DrawStruct ); - } - } - - switch( m_ID_current_state ) - { - case 0: - break; - - case ID_NO_SELECT_BUTT: - break; - - - case ID_GERBVIEW_DELETE_ITEM_BUTT: - DrawStruct = GerberGeneralLocateAndDisplay(); - if( DrawStruct == NULL ) - break; - if( DrawStruct->Type() == TYPE_TRACK ) - { - Delete_Segment( DC, (TRACK*) DrawStruct ); - GetScreen()->SetCurItem( NULL ); - GetScreen()->SetModify(); - } - break; - - default: - DisplayError( this, wxT( "WinEDA_GerberFrame::ProcessCommand error" ) ); - break; - } -} - - -/* Handles the selection of tools, menu, and popup menu commands. - */ -void WinEDA_GerberFrame::Process_Special_Functions( wxCommandEvent& event ) -{ - int id = event.GetId(); - int layer = GetScreen()->m_Active_Layer; - GERBER* gerber_layer = g_GERBER_List[layer]; - wxPoint pos; - - wxGetMousePosition( &pos.x, &pos.y ); - - pos.y += 20; - - switch( id ) - { - case wxID_CUT: - case wxID_COPY: - case ID_POPUP_MIRROR_X_BLOCK: - case ID_POPUP_DELETE_BLOCK: - case ID_POPUP_PLACE_BLOCK: - case ID_POPUP_ZOOM_BLOCK: - case ID_POPUP_FLIP_BLOCK: - case ID_POPUP_ROTATE_BLOCK: - case ID_POPUP_COPY_BLOCK: - break; - - case ID_POPUP_CANCEL_CURRENT_COMMAND: - DrawPanel->UnManageCursor( ); - /* Should not be executed, except bug */ - if( GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE ) - { - GetScreen()->m_BlockLocate.m_Command = BLOCK_IDLE; - GetScreen()->m_BlockLocate.m_State = STATE_NO_BLOCK; - GetScreen()->m_BlockLocate.ClearItemsList(); - } - if( m_ID_current_state == 0 ) - SetToolID( 0, wxCURSOR_ARROW, wxEmptyString ); - else - SetCursor( DrawPanel->m_PanelCursor = DrawPanel->m_PanelDefaultCursor ); - break; - - default: - DrawPanel->UnManageCursor( 0, wxCURSOR_ARROW, wxEmptyString ); - break; - } - - INSTALL_DC( dc, DrawPanel ); - switch( id ) - { - case ID_EXIT: - Close( TRUE ); - break; - - case ID_NEW_PROJECT: - case ID_LOAD_PROJECT: - Files_io( event ); - break; - - case ID_GERBVIEW_GLOBAL_DELETE: - Erase_Current_Layer( TRUE ); - break; - - case ID_GET_TOOLS: - -// InstallToolsFrame(this, wxPoint(-1,-1) ); - break; - - case ID_FIND_ITEMS: - -// InstallFindFrame(this, pos); - break; - - - case ID_NO_SELECT_BUTT: - SetToolID( 0, 0, wxEmptyString ); - break; - - case ID_POPUP_CLOSE_CURRENT_TOOL: - SetToolID( 0, wxCURSOR_ARROW, wxEmptyString ); - break; - - case ID_POPUP_CANCEL_CURRENT_COMMAND: - break; - - case ID_GERBVIEW_DELETE_ITEM_BUTT: - SetToolID( id, wxCURSOR_BULLSEYE, wxT( "Delete item" ) ); - break; - - case ID_TOOLBARH_GERBVIEW_SELECT_LAYER: - setActiveLayer(m_SelLayerBox->GetChoice()); - DrawPanel->Refresh( TRUE ); - break; - - case ID_TOOLBARH_GERBER_SELECT_TOOL: - if( gerber_layer ) - { - int tool = m_SelLayerTool->GetChoice(); - if( tool > 0 ) - tool = tool - 1 + FIRST_DCODE; - else - tool = 0; - gerber_layer->m_Selected_Tool = tool; - DrawPanel->Refresh( TRUE ); - } - else - DisplayError( this, _( "No layer selected" ) ); - break; - - case ID_GERBVIEW_SHOW_LIST_DCODES: - Liste_D_Codes( ); - break; - - case ID_GERBVIEW_SHOW_SOURCE: - if( gerber_layer ) - { - wxString editorname = wxGetApp().GetEditorName(); - if( !editorname.IsEmpty() ) - { - wxFileName fn( gerber_layer->m_FileName ); - ExecuteFile( this, editorname, QuoteFullPath( fn ) ); - } - } - break; - - case ID_POPUP_PLACE_BLOCK: - GetScreen()->m_BlockLocate.m_Command = BLOCK_MOVE; - DrawPanel->m_AutoPAN_Request = FALSE; - HandleBlockPlace( &dc ); - break; - - case ID_POPUP_COPY_BLOCK: - GetScreen()->m_BlockLocate.m_Command = BLOCK_COPY; - GetScreen()->m_BlockLocate.SetMessageBlock( this ); - DrawPanel->m_AutoPAN_Request = FALSE; - HandleBlockEnd( &dc ); - break; - - case ID_POPUP_ZOOM_BLOCK: - GetScreen()->m_BlockLocate.m_Command = BLOCK_ZOOM; - GetScreen()->m_BlockLocate.SetMessageBlock( this ); - GetScreen()->m_BlockLocate.SetMessageBlock( this ); - HandleBlockEnd( &dc ); - break; - - case ID_POPUP_DELETE_BLOCK: - GetScreen()->m_BlockLocate.m_Command = BLOCK_DELETE; - GetScreen()->m_BlockLocate.SetMessageBlock( this ); - HandleBlockEnd( &dc ); - break; - - case ID_POPUP_MIRROR_X_BLOCK: - GetScreen()->m_BlockLocate.m_Command = BLOCK_MIRROR_X; - GetScreen()->m_BlockLocate.SetMessageBlock( this ); - HandleBlockEnd( &dc ); - break; - - case ID_GERBVIEW_POPUP_DELETE_DCODE_ITEMS: - if( gerber_layer ) - Delete_DCode_Items( &dc, gerber_layer->m_Selected_Tool, - ( (PCB_SCREEN*) GetScreen() )->m_Active_Layer ); - break; - - default: - wxMessageBox( wxT( "WinEDA_GerberFrame::Process_Special_Functions error" ) ); - break; - } - - SetToolbars(); -} - - -/* Called on a double click of left mouse button. - */ -void WinEDA_GerberFrame::OnLeftDClick( wxDC* DC, const wxPoint& MousePos ) -{ - EDA_BaseStruct* DrawStruct = GetScreen()->GetCurItem(); - - switch( m_ID_current_state ) - { - case 0: - if( (DrawStruct == NULL) || (DrawStruct->m_Flags == 0) ) - { - DrawStruct = GerberGeneralLocateAndDisplay(); - } - - break; - - default: - break; - } -} +/***************************************/ +/* edit.cpp: Gerbview events functions */ +/***************************************/ + +#include "fctsys.h" +#include "class_drawpanel.h" +#include "confirm.h" +#include "common.h" +#include "gestfich.h" +#include "appl_wxstruct.h" + +#include "gerbview.h" +#include "pcbplot.h" +#include "protos.h" +#include "kicad_device_context.h" +#include "gerbview_id.h" + + +/* Process the command triggered by the left button of the mouse when a tool + * is already selected. + */ +void WinEDA_GerberFrame::OnLeftClick( wxDC* DC, const wxPoint& MousePos ) +{ + BOARD_ITEM* DrawStruct = GetScreen()->GetCurItem(); + wxString msg; + + if( m_ID_current_state == 0 ) + { + if( DrawStruct && DrawStruct->m_Flags ) + { + msg.Printf( wxT( "WinEDA_GerberFrame::ProcessCommand err: Struct %d, m_Flags = %X" ), + (unsigned) DrawStruct->Type(), + (unsigned) DrawStruct->m_Flags ); + DisplayError( this, msg ); + } + else + { + DrawStruct = GerberGeneralLocateAndDisplay(); + GetScreen()->SetCurItem( DrawStruct ); + } + } + + switch( m_ID_current_state ) + { + case 0: + break; + + case ID_NO_SELECT_BUTT: + break; + + + case ID_GERBVIEW_DELETE_ITEM_BUTT: + DrawStruct = GerberGeneralLocateAndDisplay(); + if( DrawStruct == NULL ) + break; + if( DrawStruct->Type() == TYPE_TRACK ) + { + Delete_Segment( DC, (TRACK*) DrawStruct ); + GetScreen()->SetCurItem( NULL ); + GetScreen()->SetModify(); + } + break; + + default: + DisplayError( this, wxT( "WinEDA_GerberFrame::ProcessCommand error" ) ); + break; + } +} + + +/* Handles the selection of tools, menu, and popup menu commands. + */ +void WinEDA_GerberFrame::Process_Special_Functions( wxCommandEvent& event ) +{ + int id = event.GetId(); + int layer = GetScreen()->m_Active_Layer; + GERBER* gerber_layer = g_GERBER_List[layer]; + wxPoint pos; + + wxGetMousePosition( &pos.x, &pos.y ); + + pos.y += 20; + + switch( id ) + { + case wxID_CUT: + case wxID_COPY: + case ID_POPUP_MIRROR_X_BLOCK: + case ID_POPUP_DELETE_BLOCK: + case ID_POPUP_PLACE_BLOCK: + case ID_POPUP_ZOOM_BLOCK: + case ID_POPUP_FLIP_BLOCK: + case ID_POPUP_ROTATE_BLOCK: + case ID_POPUP_COPY_BLOCK: + break; + + case ID_POPUP_CANCEL_CURRENT_COMMAND: + DrawPanel->UnManageCursor( ); + /* Should not be executed, except bug */ + if( GetScreen()->m_BlockLocate.m_Command != BLOCK_IDLE ) + { + GetScreen()->m_BlockLocate.m_Command = BLOCK_IDLE; + GetScreen()->m_BlockLocate.m_State = STATE_NO_BLOCK; + GetScreen()->m_BlockLocate.ClearItemsList(); + } + if( m_ID_current_state == 0 ) + SetToolID( 0, 0, wxEmptyString ); + else + DrawPanel->SetCursor( DrawPanel->m_PanelCursor = DrawPanel->m_PanelDefaultCursor ); + break; + + default: + DrawPanel->UnManageCursor( 0, 0, wxEmptyString ); + break; + } + + INSTALL_DC( dc, DrawPanel ); + switch( id ) + { + case ID_EXIT: + Close( TRUE ); + break; + + case ID_NEW_PROJECT: + case ID_LOAD_PROJECT: + Files_io( event ); + break; + + case ID_GERBVIEW_GLOBAL_DELETE: + Erase_Current_Layer( TRUE ); + break; + + case ID_GET_TOOLS: + +// InstallToolsFrame(this, wxPoint(-1,-1) ); + break; + + case ID_FIND_ITEMS: + +// InstallFindFrame(this, pos); + break; + + + case ID_NO_SELECT_BUTT: + SetToolID( 0, 0, wxEmptyString ); + break; + + case ID_POPUP_CLOSE_CURRENT_TOOL: + SetToolID( 0, 0, wxEmptyString ); + break; + + case ID_POPUP_CANCEL_CURRENT_COMMAND: + break; + + case ID_GERBVIEW_DELETE_ITEM_BUTT: + SetToolID( id, wxCURSOR_BULLSEYE, wxT( "Delete item" ) ); + break; + + case ID_TOOLBARH_GERBVIEW_SELECT_LAYER: + setActiveLayer(m_SelLayerBox->GetChoice()); + DrawPanel->Refresh( TRUE ); + break; + + case ID_TOOLBARH_GERBER_SELECT_TOOL: + if( gerber_layer ) + { + int tool = m_SelLayerTool->GetChoice(); + if( tool > 0 ) + tool = tool - 1 + FIRST_DCODE; + else + tool = 0; + gerber_layer->m_Selected_Tool = tool; + DrawPanel->Refresh( TRUE ); + } + break; + + case ID_GERBVIEW_SHOW_LIST_DCODES: + Liste_D_Codes( ); + break; + + case ID_GERBVIEW_SHOW_SOURCE: + if( gerber_layer ) + { + wxString editorname = wxGetApp().GetEditorName(); + if( !editorname.IsEmpty() ) + { + wxFileName fn( gerber_layer->m_FileName ); + ExecuteFile( this, editorname, QuoteFullPath( fn ) ); + } + } + break; + + case ID_POPUP_PLACE_BLOCK: + GetScreen()->m_BlockLocate.m_Command = BLOCK_MOVE; + DrawPanel->m_AutoPAN_Request = FALSE; + HandleBlockPlace( &dc ); + break; + + case ID_POPUP_COPY_BLOCK: + GetScreen()->m_BlockLocate.m_Command = BLOCK_COPY; + GetScreen()->m_BlockLocate.SetMessageBlock( this ); + DrawPanel->m_AutoPAN_Request = FALSE; + HandleBlockEnd( &dc ); + break; + + case ID_POPUP_ZOOM_BLOCK: + GetScreen()->m_BlockLocate.m_Command = BLOCK_ZOOM; + GetScreen()->m_BlockLocate.SetMessageBlock( this ); + GetScreen()->m_BlockLocate.SetMessageBlock( this ); + HandleBlockEnd( &dc ); + break; + + case ID_POPUP_DELETE_BLOCK: + GetScreen()->m_BlockLocate.m_Command = BLOCK_DELETE; + GetScreen()->m_BlockLocate.SetMessageBlock( this ); + HandleBlockEnd( &dc ); + break; + + case ID_POPUP_MIRROR_X_BLOCK: + GetScreen()->m_BlockLocate.m_Command = BLOCK_MIRROR_X; + GetScreen()->m_BlockLocate.SetMessageBlock( this ); + HandleBlockEnd( &dc ); + break; + + case ID_GERBVIEW_POPUP_DELETE_DCODE_ITEMS: + if( gerber_layer ) + Delete_DCode_Items( &dc, gerber_layer->m_Selected_Tool, + ( (PCB_SCREEN*) GetScreen() )->m_Active_Layer ); + break; + + default: + wxMessageBox( wxT( "WinEDA_GerberFrame::Process_Special_Functions error" ) ); + break; + } + + SetToolbars(); +} + + +/* Called on a double click of left mouse button. + */ +void WinEDA_GerberFrame::OnLeftDClick( wxDC* DC, const wxPoint& MousePos ) +{ + EDA_BaseStruct* DrawStruct = GetScreen()->GetCurItem(); + + switch( m_ID_current_state ) + { + case 0: + if( (DrawStruct == NULL) || (DrawStruct->m_Flags == 0) ) + { + DrawStruct = GerberGeneralLocateAndDisplay(); + } + + break; + + default: + break; + } +} diff --git a/gerbview/tool_gerber.cpp b/gerbview/tool_gerber.cpp index 130262cbcc..ee066da285 100644 --- a/gerbview/tool_gerber.cpp +++ b/gerbview/tool_gerber.cpp @@ -246,7 +246,6 @@ void WinEDA_GerberFrame::ReCreateHToolbar( void ) // after adding the buttons to the toolbar, must call Realize() to reflect // the changes m_HToolBar->Realize(); - SetToolbars(); } @@ -272,7 +271,6 @@ void WinEDA_GerberFrame::ReCreateVToolbar( void ) _( "Delete items" ) ); m_VToolBar->Realize(); - SetToolbars(); } @@ -339,5 +337,4 @@ void WinEDA_GerberFrame::ReCreateOptToolbar( void ) m_OptionsToolBar->Realize(); - SetToolbars(); } diff --git a/include/class_drawpanel.h b/include/class_drawpanel.h index 8f52f229b6..0b0c8ff149 100644 --- a/include/class_drawpanel.h +++ b/include/class_drawpanel.h @@ -44,6 +44,8 @@ public: // ignore mouse events bool m_Block_Enable; // TRUE to accept Block Commands + // useful to avoid false start block in certain cases + // (like switch from a sheet to an other sheet int m_CanStartBlock; // >= 0 (or >= n) if a block can // start bool m_PrintIsMirrored; // True when drawing in mirror @@ -51,8 +53,6 @@ public: // because arcs are oriented, and // in mirror mode, orientations are // reversed - // useful to avoid false start block in certain cases (like switch from a - // sheet to an other sheet int m_PanelDefaultCursor; // Current mouse cursor default // shape id for this window int m_PanelCursor; // Current mouse cursor shape id diff --git a/include/wxBasePcbFrame.h b/include/wxBasePcbFrame.h index b5482df36d..e2ddb64cb3 100644 --- a/include/wxBasePcbFrame.h +++ b/include/wxBasePcbFrame.h @@ -104,8 +104,7 @@ public: virtual bool OnRightClick( const wxPoint& MousePos, wxMenu* PopMenu ) = 0; virtual void ReCreateMenuBar(); - virtual void SetToolID( int id, int new_cursor_id, - const wxString& title ); + virtual void SetToolID( int aId, int aCursor, const wxString& aToolMsg ); virtual void UpdateStatusBar(); PCB_SCREEN* GetScreen() const diff --git a/include/wxstruct.h b/include/wxstruct.h index 5e6b6b31ec..1a9ad55c25 100644 --- a/include/wxstruct.h +++ b/include/wxstruct.h @@ -239,8 +239,20 @@ public: virtual void ReCreateVToolbar() = 0; virtual void ReCreateMenuBar(); virtual void ReCreateAuxiliaryToolbar(); - virtual void SetToolID( int id, int new_cursor_id, - const wxString& title ); + /** Function SetToolID + * Enables the icon of the selected tool in the vertical toolbar. + * (Or tool ID_NO_SELECT_BUTT default if no new selection) + * @param aId = new m_ID_current_state value (if aId >= 0) + * @param aCursor = the new cursor shape + * @param aToolMsg = tool message in status bar + * if (aId >= 0) + * Updates all variables related: + * m_ID_current_state, cursor shape and message in status bar + * If (aId < 0) + * Only updates the cursor shape and message in status bar + * (does not the current m_ID_current_state value + */ + virtual void SetToolID( int aId, int aCursor, const wxString& aToolMsg ); /* Thes 4 functions provide a basic way to sho/hide grid * and /get/set grid color. diff --git a/pcbnew/basepcbframe.cpp b/pcbnew/basepcbframe.cpp index 97b6bc75ee..7ffa38db02 100644 --- a/pcbnew/basepcbframe.cpp +++ b/pcbnew/basepcbframe.cpp @@ -288,19 +288,18 @@ GENERAL_COLLECTORS_GUIDE WinEDA_BasePcbFrame::GetCollectorsGuide() return guide; } -void WinEDA_BasePcbFrame::SetToolID( int id, int new_cursor_id, - const wxString& title ) +void WinEDA_BasePcbFrame::SetToolID( int aId, int aCursor, const wxString& aToolMsg ) { bool redraw = false; - WinEDA_DrawFrame::SetToolID( id, new_cursor_id, title ); + WinEDA_DrawFrame::SetToolID( aId, aCursor, aToolMsg ); - if( id < 0 ) + if( aId < 0 ) return; // handle color changes for transitions in and out of ID_TRACK_BUTT - if( ( m_ID_current_state == ID_TRACK_BUTT && id != ID_TRACK_BUTT ) - || ( m_ID_current_state != ID_TRACK_BUTT && id == ID_TRACK_BUTT ) ) + if( ( m_ID_current_state == ID_TRACK_BUTT && aId != ID_TRACK_BUTT ) + || ( m_ID_current_state != ID_TRACK_BUTT && aId== ID_TRACK_BUTT ) ) { if( DisplayOpt.ContrastModeDisplay ) redraw = true; diff --git a/pcbnew/files.cpp b/pcbnew/files.cpp index 5b902b7789..62ebe9b15d 100644 --- a/pcbnew/files.cpp +++ b/pcbnew/files.cpp @@ -29,6 +29,7 @@ void WinEDA_PcbFrame::OnFileHistory( wxCommandEvent& event ) ::wxSetWorkingDirectory( ::wxPathOnly( fn ) ); LoadOnePcbFile( fn ); ReCreateAuxiliaryToolbar(); + SetToolbars(); DrawPanel->MouseToCursorSchema(); } } @@ -49,6 +50,7 @@ void WinEDA_PcbFrame::Files_io( wxCommandEvent& event ) case ID_LOAD_FILE: LoadOnePcbFile( GetScreen()->m_FileName, false, true ); ReCreateAuxiliaryToolbar(); + SetToolbars(); break; case ID_MENU_READ_LAST_SAVED_VERSION_BOARD: @@ -84,6 +86,7 @@ void WinEDA_PcbFrame::Files_io( wxCommandEvent& event ) GetScreen()->m_FileName = fn.GetFullPath(); SetTitle( GetScreen()->m_FileName ); ReCreateAuxiliaryToolbar(); + SetToolbars(); break; } @@ -98,6 +101,7 @@ void WinEDA_PcbFrame::Files_io( wxCommandEvent& event ) GetChars( PcbFileExtension ) ); SetTitle( GetScreen()->m_FileName ); ReCreateLayerBox( NULL ); + SetToolbars(); break; case ID_SAVE_BOARD: diff --git a/pcbnew/moduleframe.cpp b/pcbnew/moduleframe.cpp index be63c59ff7..d4d5e1bbb9 100644 --- a/pcbnew/moduleframe.cpp +++ b/pcbnew/moduleframe.cpp @@ -231,6 +231,8 @@ WinEDA_ModuleEditFrame::WinEDA_ModuleEditFrame( wxWindow* father, wxAuiPaneInfo( horiz ).Name( wxT( "MsgPanel" ) ).Bottom() ); m_auimgr.Update(); + + SetToolbars(); } diff --git a/pcbnew/pcbnew.cpp b/pcbnew/pcbnew.cpp index f815980afe..0a270ca562 100644 --- a/pcbnew/pcbnew.cpp +++ b/pcbnew/pcbnew.cpp @@ -112,6 +112,7 @@ bool WinEDA_App::OnInit() } ScreenPcb = new PCB_SCREEN(); + ActiveScreen = ScreenPcb; // read current setup and reopen last directory if no filename to open in command line bool reopenLastUsedDirectory = argc == 1; @@ -140,7 +141,6 @@ Changing extension to .brd." ), GetChars( fn.GetFullPath() ) ); frame = new WinEDA_PcbFrame( NULL, wxT( "PcbNew" ), wxPoint( 0, 0 ), wxSize( 600, 400 ) ); frame->SetTitle( GetTitle() + wxT( " " ) + GetBuildVersion() ); - ActiveScreen = ScreenPcb; SetTopWindow( frame ); frame->Show( true ); diff --git a/pcbnew/tool_modedit.cpp b/pcbnew/tool_modedit.cpp index b0043a2f85..a0ac19cd71 100644 --- a/pcbnew/tool_modedit.cpp +++ b/pcbnew/tool_modedit.cpp @@ -133,7 +133,6 @@ void WinEDA_ModuleEditFrame::ReCreateHToolbar() // after adding the buttons to the toolbar, must call Realize() to reflect // the changes m_HToolBar->Realize(); - SetToolbars(); } @@ -187,8 +186,6 @@ void WinEDA_ModuleEditFrame::ReCreateVToolbar() wxITEM_CHECK ); m_VToolBar->Realize(); - - SetToolbars(); } @@ -238,8 +235,6 @@ void WinEDA_ModuleEditFrame::ReCreateOptToolbar() _( "Show Edges Sketch" ), wxITEM_CHECK ); m_OptionsToolBar->Realize(); - - SetToolbars(); } @@ -328,6 +323,4 @@ void WinEDA_ModuleEditFrame::ReCreateAuxiliaryToolbar() if( m_LastGridSizeId == GetScreen()->m_GridList[i].m_Id ) m_SelGridBox->SetSelection( i ); } - - SetToolbars(); } diff --git a/pcbnew/tool_pcb.cpp b/pcbnew/tool_pcb.cpp index 73c709b4a7..33d00981fe 100644 --- a/pcbnew/tool_pcb.cpp +++ b/pcbnew/tool_pcb.cpp @@ -288,7 +288,6 @@ void WinEDA_PcbFrame::ReCreateHToolbar() // the changes m_HToolBar->Realize(); - SetToolbars(); } @@ -389,7 +388,6 @@ void WinEDA_PcbFrame::ReCreateOptToolbar() m_OptionsToolBar->Realize(); - SetToolbars(); } @@ -475,7 +473,6 @@ void WinEDA_PcbFrame::ReCreateVToolbar() wxITEM_CHECK ); m_VToolBar->Realize(); - SetToolbars(); } @@ -517,8 +514,6 @@ void WinEDA_PcbFrame::ReCreateMicrowaveVToolbar() _( "Create a polynomial shape for microwave applications" ) ); m_AuxVToolBar->Realize(); - - SetToolbars(); } @@ -676,8 +671,6 @@ an existing track use its width\notherwise, use current width setting" ), m_TrackAndViasSizesList_Changed = true; ReCreateLayerBox( NULL ); - - SetToolbars(); }