From 359e64850def604ff0d469baf25efb3c0992b5cc Mon Sep 17 00:00:00 2001 From: Marco Ciampa Date: Thu, 30 Oct 2014 13:31:56 -0400 Subject: [PATCH 1/2] More renaming instances of module to footprint for consistency. --- pcbnew/class_pcb_layer_widget.cpp | 4 ++-- pcbnew/menubar_modedit.cpp | 2 +- pcbnew/muonde.cpp | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pcbnew/class_pcb_layer_widget.cpp b/pcbnew/class_pcb_layer_widget.cpp index b912888a1c..439b1204a0 100644 --- a/pcbnew/class_pcb_layer_widget.cpp +++ b/pcbnew/class_pcb_layer_widget.cpp @@ -73,8 +73,8 @@ const LAYER_WIDGET::ROW PCB_LAYER_WIDGET::s_render_rows[] = { RR( _( "Anchors" ), ANCHOR_VISIBLE, WHITE, _( "Show footprint and text origins as a cross" ) ), RR( _( "Grid" ), GRID_VISIBLE, WHITE, _( "Show the (x,y) grid dots" ) ), RR( _( "No-Connects" ), NO_CONNECTS_VISIBLE, UNSPECIFIED_COLOR, _( "Show a marker on pads which have no net connected" ) ), - RR( _( "Modules Front" ), MOD_FR_VISIBLE, UNSPECIFIED_COLOR, _( "Show footprints that are on board's front") ), - RR( _( "Modules Back" ), MOD_BK_VISIBLE, UNSPECIFIED_COLOR, _( "Show footprints that are on board's back") ), + RR( _( "Footprints Front" ), MOD_FR_VISIBLE, UNSPECIFIED_COLOR, _( "Show footprints that are on board's front") ), + RR( _( "Footprints Back" ), MOD_BK_VISIBLE, UNSPECIFIED_COLOR, _( "Show footprints that are on board's back") ), RR( _( "Values" ), MOD_VALUES_VISIBLE, UNSPECIFIED_COLOR, _( "Show footprint's values") ), RR( _( "References" ), MOD_REFERENCES_VISIBLE, UNSPECIFIED_COLOR, _( "Show footprint's references") ), }; diff --git a/pcbnew/menubar_modedit.cpp b/pcbnew/menubar_modedit.cpp index f65790360c..ca6935ef58 100644 --- a/pcbnew/menubar_modedit.cpp +++ b/pcbnew/menubar_modedit.cpp @@ -273,7 +273,7 @@ void FOOTPRINT_EDIT_FRAME::ReCreateMenuBar() // Anchor AddMenuItem( placeMenu, ID_MODEDIT_ANCHOR_TOOL, _( "A&nchor" ), - _( "Place footprint module reference anchor" ), + _( "Place footprint reference anchor" ), KiBitmap( anchor_xpm ) ); // Menu Help: diff --git a/pcbnew/muonde.cpp b/pcbnew/muonde.cpp index 7a80887203..1c62e95c6c 100644 --- a/pcbnew/muonde.cpp +++ b/pcbnew/muonde.cpp @@ -1075,7 +1075,7 @@ void PCB_EDIT_FRAME::Edit_Gap( wxDC* DC, MODULE* aModule ) if( pad == NULL ) { - DisplayError( this, _( "No pad for this module" ) ); + DisplayError( this, _( "No pad for this footprint" ) ); return; } @@ -1083,7 +1083,7 @@ void PCB_EDIT_FRAME::Edit_Gap( wxDC* DC, MODULE* aModule ) if( next_pad == NULL ) { - DisplayError( this, _( "Only one pad for this module" ) ); + DisplayError( this, _( "Only one pad for this footprint" ) ); return; } From 7e431a0d4b1951d8622d460c4a4c47e1a00ae6fe Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Fri, 31 Oct 2014 08:51:22 +0100 Subject: [PATCH 2/2] Pcbnew: Console python: use a wxMiniFrame to show the console and remove the management by a EDA_PANEINFO, which was not the right way to manage this console. --- include/wxPcbStruct.h | 25 ++++++++--- include/wxstruct.h | 15 ------- pcbnew/pcbframe.cpp | 54 ++++++++--------------- pcbnew/toolbars_update_user_interface.cpp | 7 +-- 4 files changed, 41 insertions(+), 60 deletions(-) diff --git a/include/wxPcbStruct.h b/include/wxPcbStruct.h index 8ac0d3b20d..5194cca753 100644 --- a/include/wxPcbStruct.h +++ b/include/wxPcbStruct.h @@ -100,13 +100,6 @@ class PCB_EDIT_FRAME : public PCB_BASE_EDIT_FRAME throw( IO_ERROR, PARSE_ERROR ); protected: - -#ifdef KICAD_SCRIPTING_WXPYTHON - // Panel used to let user talk with internal scripting - wxWindow* m_pythonPanel; - bool m_pythonPanelShow; ///< Visibility flag for Python Console -#endif - PCB_LAYER_WIDGET* m_Layers; DRC* m_drc; ///< the DRC controller, see drc.cpp @@ -130,6 +123,24 @@ protected: void createPopUpBlockMenu( wxMenu* menu ); void createPopUpMenuForMarkers( MARKER_PCB* aMarker, wxMenu* aPopMenu ); + + // Has meaning only if DKICAD_SCRIPTING_WXPYTHON option is on + /** + * @return the frame name identifier for the python console frame + */ + static const wxChar * pythonConsoleNameId() + { + return wxT( "PythonConsole" ); + } + + /** + * @return a pointer to the python console frame, or NULL if not exist + */ + static wxWindow * findPythonConsole() + { + return FindWindowByName( pythonConsoleNameId() ); + } + /** * Function syncLayerWidgetLayer * updates the currently layer "selection" within the PCB_LAYER_WIDGET. diff --git a/include/wxstruct.h b/include/wxstruct.h index b0478a1a1e..4b0c56a165 100644 --- a/include/wxstruct.h +++ b/include/wxstruct.h @@ -484,21 +484,6 @@ public: CaptionVisible( false ); return *this; } - - /** - * Function ScriptingConsolePane - * Change *this to a python scripting console pane for KiCad. - * Used in Pcbnew - */ - EDA_PANEINFO& ScriptingConsolePane() - { - CloseButton( false ); - Floatable( true ); - Resizable( true ); - return *this; - } - - }; #endif // WXSTRUCT_H_ diff --git a/pcbnew/pcbframe.cpp b/pcbnew/pcbframe.cpp index 6dd46c9862..03605e3fb1 100644 --- a/pcbnew/pcbframe.cpp +++ b/pcbnew/pcbframe.cpp @@ -82,8 +82,6 @@ #if defined(KICAD_SCRIPTING) || defined(KICAD_SCRIPTING_WXPYTHON) #include -// The name of the pane info handling the python console: -#define PYTHONCONSOLE_STRID wxT( "PythonPanel" ) #endif #include @@ -330,10 +328,6 @@ PCB_EDIT_FRAME::PCB_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ) : m_RecordingMacros = -1; m_microWaveToolBar = NULL; m_useCmpFileForFpNames = true; -#if defined(KICAD_SCRIPTING_WXPYTHON) - m_pythonPanel = NULL; - m_pythonPanelShow = false; -#endif m_rotationAngle = 900; @@ -1001,39 +995,29 @@ void PCB_EDIT_FRAME::UpdateTitle() #if defined(KICAD_SCRIPTING_WXPYTHON) void PCB_EDIT_FRAME::ScriptingConsoleEnableDisable( wxCommandEvent& aEvent ) { - if( m_pythonPanel == NULL ) + + wxMiniFrame * pythonPanelFrame = (wxMiniFrame *) findPythonConsole(); + bool pythonPanelShown = false; + + if( pythonPanelFrame == NULL ) { - // Add the scripting panel - EDA_PANEINFO pythonAuiPane; - pythonAuiPane.ScriptingConsolePane(); - pythonAuiPane.Caption( wxT( "Python Scripting" ) ); - pythonAuiPane.MinSize( 300, 150 ); + long style = wxCAPTION|wxCLOSE_BOX|wxMINIMIZE_BOX|wxMAXIMIZE_BOX|wxRESIZE_BORDER|wxFRAME_FLOAT_ON_PARENT; + pythonPanelFrame = new wxMiniFrame( this, wxID_ANY, wxT("Python console"), wxDefaultPosition, wxDefaultSize, + style, pythonConsoleNameId() ); + wxBoxSizer* sizer = new wxBoxSizer( wxVERTICAL ); - #if 1 // Set to 0 to make the Python console dockable - // Currently the console is not dockable. Reasons: - // * When docked there is an issue with accelerator keys used in the main menu: - // these keys are not sent to the console, even if it has the focus - // * The console is more easy to move if it is not dockable - pythonAuiPane.Dockable( false ).Float(); - - // Gives a reasonnable position to the console - wxPoint pos = m_canvas->GetScreenPosition(); - pythonAuiPane.FloatingPosition( pos.x + 10, pos.y + 10 ); - pythonAuiPane.FloatingSize( 600, 200 ); - #else - pythonAuiPane.BestSize( 600, 200 ); - pythonAuiPane.LeftDockable( false ).RightDockable( false ); - #endif - - m_pythonPanel = CreatePythonShellWindow( this ); - m_auimgr.AddPane( m_pythonPanel, - pythonAuiPane.Name( PYTHONCONSOLE_STRID ).Bottom().Layer(9) ); + wxWindow * pythonPanel = CreatePythonShellWindow( pythonPanelFrame ); + sizer->Add( pythonPanel, 1, wxEXPAND | wxALL, 5 ); + pythonPanelFrame->SetSizer( sizer ); + pythonPanelFrame->SetSize( wxSize( 600, 300 ) ); + pythonPanelFrame->Layout(); + pythonPanelFrame->Centre(); } + else + pythonPanelShown = pythonPanelFrame->IsShown(); - m_pythonPanelShow = ! m_pythonPanelShow; - m_auimgr.GetPane( PYTHONCONSOLE_STRID ).Show( m_pythonPanelShow ); - - m_auimgr.Update(); + pythonPanelShown = ! pythonPanelShown; + pythonPanelFrame->Show( pythonPanelShown ); } #endif diff --git a/pcbnew/toolbars_update_user_interface.cpp b/pcbnew/toolbars_update_user_interface.cpp index 7a4c120127..3748780c43 100644 --- a/pcbnew/toolbars_update_user_interface.cpp +++ b/pcbnew/toolbars_update_user_interface.cpp @@ -106,12 +106,13 @@ void PCB_EDIT_FRAME::OnUpdateLayerSelectBox( wxUpdateUIEvent& aEvent ) m_SelLayerBox->SetLayerSelection( GetActiveLayer() ); } -#ifdef KICAD_SCRIPTING_WXPYTHON +// Used only when the DKICAD_SCRIPTING_WXPYTHON option is on void PCB_EDIT_FRAME::OnUpdateScriptingConsoleState( wxUpdateUIEvent& aEvent ) { - aEvent.Check( m_pythonPanelShow ); + wxMiniFrame * pythonPanelFrame = (wxMiniFrame *) findPythonConsole(); + bool pythonPanelShown = pythonPanelFrame ? pythonPanelFrame->IsShown() : false; + aEvent.Check( pythonPanelShown ); } -#endif void PCB_EDIT_FRAME::OnUpdateZoneDisplayStyle( wxUpdateUIEvent& aEvent ) {