Pcbnew, python console: make it not dockable (workaround to avoid the fact hot keys which are used in the main menu are not sent to the console, in docked mode)
Minor cosmetic enhancement.
This commit is contained in:
commit
a2abb20793
|
@ -107,7 +107,7 @@ protected:
|
||||||
#ifdef KICAD_SCRIPTING_WXPYTHON
|
#ifdef KICAD_SCRIPTING_WXPYTHON
|
||||||
// Panel used to let user talk with internal scripting
|
// Panel used to let user talk with internal scripting
|
||||||
wxWindow* m_pythonPanel;
|
wxWindow* m_pythonPanel;
|
||||||
bool m_pythonPanelHidden;
|
bool m_pythonPanelShow; ///< Visibility flag for Python Console
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
PCB_LAYER_WIDGET* m_Layers;
|
PCB_LAYER_WIDGET* m_Layers;
|
||||||
|
@ -1524,7 +1524,9 @@ public:
|
||||||
* Function ScriptingConsoleEnableDisable
|
* Function ScriptingConsoleEnableDisable
|
||||||
* enables or disabled the scripting console
|
* enables or disabled the scripting console
|
||||||
*/
|
*/
|
||||||
void ScriptingConsoleEnableDisable( wxCommandEvent& event );
|
void ScriptingConsoleEnableDisable( wxCommandEvent& aEvent );
|
||||||
|
|
||||||
|
void OnUpdateScriptingConsoleState( wxUpdateUIEvent& aEvent );
|
||||||
|
|
||||||
void OnSelectAutoPlaceMode( wxCommandEvent& aEvent );
|
void OnSelectAutoPlaceMode( wxCommandEvent& aEvent );
|
||||||
|
|
||||||
|
|
|
@ -534,8 +534,8 @@ void PCB_EDIT_FRAME::ReCreateMenuBar()
|
||||||
#if defined(KICAD_SCRIPTING_WXPYTHON)
|
#if defined(KICAD_SCRIPTING_WXPYTHON)
|
||||||
AddMenuItem( toolsMenu, ID_TOOLBARH_PCB_SCRIPTING_CONSOLE,
|
AddMenuItem( toolsMenu, ID_TOOLBARH_PCB_SCRIPTING_CONSOLE,
|
||||||
_( "&Scripting Console" ),
|
_( "&Scripting Console" ),
|
||||||
_( "Show/Hide the Scripting console" ),
|
_( "Show/Hide the Python Scripting console" ),
|
||||||
KiBitmap( book_xpm ) );
|
KiBitmap( py_script_xpm ) );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
wxMenu* designRulesMenu = new wxMenu;
|
wxMenu* designRulesMenu = new wxMenu;
|
||||||
|
|
|
@ -72,6 +72,8 @@
|
||||||
|
|
||||||
#if defined(KICAD_SCRIPTING) || defined(KICAD_SCRIPTING_WXPYTHON)
|
#if defined(KICAD_SCRIPTING) || defined(KICAD_SCRIPTING_WXPYTHON)
|
||||||
#include <python_scripting.h>
|
#include <python_scripting.h>
|
||||||
|
// The name of the pane info handling the python console:
|
||||||
|
#define PYTHONCONSOLE_STRID wxT( "PythonPanel" )
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <class_draw_panel_gal.h>
|
#include <class_draw_panel_gal.h>
|
||||||
|
@ -203,6 +205,8 @@ BEGIN_EVENT_TABLE( PCB_EDIT_FRAME, PCB_BASE_FRAME )
|
||||||
EVT_TOOL( ID_TOOLBARH_PCB_FREEROUTE_ACCESS, PCB_EDIT_FRAME::Access_to_External_Tool )
|
EVT_TOOL( ID_TOOLBARH_PCB_FREEROUTE_ACCESS, PCB_EDIT_FRAME::Access_to_External_Tool )
|
||||||
#ifdef KICAD_SCRIPTING_WXPYTHON
|
#ifdef KICAD_SCRIPTING_WXPYTHON
|
||||||
EVT_TOOL( ID_TOOLBARH_PCB_SCRIPTING_CONSOLE, PCB_EDIT_FRAME::ScriptingConsoleEnableDisable )
|
EVT_TOOL( ID_TOOLBARH_PCB_SCRIPTING_CONSOLE, PCB_EDIT_FRAME::ScriptingConsoleEnableDisable )
|
||||||
|
EVT_UPDATE_UI( ID_TOOLBARH_PCB_SCRIPTING_CONSOLE,
|
||||||
|
PCB_EDIT_FRAME::OnUpdateScriptingConsoleState )
|
||||||
#endif
|
#endif
|
||||||
// Option toolbar
|
// Option toolbar
|
||||||
EVT_TOOL( ID_TB_OPTIONS_DRC_OFF,
|
EVT_TOOL( ID_TB_OPTIONS_DRC_OFF,
|
||||||
|
@ -316,13 +320,13 @@ PCB_EDIT_FRAME::PCB_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
||||||
m_RecordingMacros = -1;
|
m_RecordingMacros = -1;
|
||||||
m_microWaveToolBar = NULL;
|
m_microWaveToolBar = NULL;
|
||||||
m_useCmpFileForFpNames = true;
|
m_useCmpFileForFpNames = true;
|
||||||
|
#if defined(KICAD_SCRIPTING_WXPYTHON)
|
||||||
|
m_pythonPanel = NULL;
|
||||||
|
m_pythonPanelShow = false;
|
||||||
|
#endif
|
||||||
|
|
||||||
m_rotationAngle = 900;
|
m_rotationAngle = 900;
|
||||||
|
|
||||||
#ifdef KICAD_SCRIPTING_WXPYTHON
|
|
||||||
m_pythonPanel = NULL;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for ( int i = 0; i < 10; i++ )
|
for ( int i = 0; i < 10; i++ )
|
||||||
m_Macros[i].m_Record.clear();
|
m_Macros[i].m_Record.clear();
|
||||||
|
|
||||||
|
@ -415,7 +419,8 @@ PCB_EDIT_FRAME::PCB_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
||||||
|
|
||||||
if( m_microWaveToolBar ) // The auxiliary vertical right toolbar (currently microwave tools)
|
if( m_microWaveToolBar ) // The auxiliary vertical right toolbar (currently microwave tools)
|
||||||
m_auimgr.AddPane( m_microWaveToolBar,
|
m_auimgr.AddPane( m_microWaveToolBar,
|
||||||
wxAuiPaneInfo( vert ).Name( wxT( "m_microWaveToolBar" ) ).Right().Layer( 1 ).Position(1).Hide() );
|
wxAuiPaneInfo( vert ).Name( wxT( "m_microWaveToolBar" ) ).
|
||||||
|
Right().Layer( 1 ).Position(1).Hide() );
|
||||||
|
|
||||||
if( m_drawToolBar ) // The main right vertical toolbar
|
if( m_drawToolBar ) // The main right vertical toolbar
|
||||||
m_auimgr.AddPane( m_drawToolBar,
|
m_auimgr.AddPane( m_drawToolBar,
|
||||||
|
@ -445,23 +450,6 @@ PCB_EDIT_FRAME::PCB_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
||||||
m_auimgr.AddPane( m_messagePanel,
|
m_auimgr.AddPane( m_messagePanel,
|
||||||
wxAuiPaneInfo( mesg ).Name( wxT( "MsgPanel" ) ).Bottom().Layer(10) );
|
wxAuiPaneInfo( mesg ).Name( wxT( "MsgPanel" ) ).Bottom().Layer(10) );
|
||||||
|
|
||||||
|
|
||||||
#if defined(KICAD_SCRIPTING_WXPYTHON)
|
|
||||||
// Add the scripting panel
|
|
||||||
EDA_PANEINFO pythonAuiInfo;
|
|
||||||
pythonAuiInfo.ScriptingToolbarPane();
|
|
||||||
pythonAuiInfo.Caption( wxT( "Python Scripting" ) );
|
|
||||||
pythonAuiInfo.MinSize( wxSize( 200, 100 ) );
|
|
||||||
pythonAuiInfo.BestSize( wxSize( GetClientSize().x/2, 200 ) );
|
|
||||||
pythonAuiInfo.Hide();
|
|
||||||
|
|
||||||
m_pythonPanel = CreatePythonShellWindow( this );
|
|
||||||
m_auimgr.AddPane( m_pythonPanel,
|
|
||||||
pythonAuiInfo.Name( wxT( "PythonPanel" ) ).Bottom().Layer(9) );
|
|
||||||
|
|
||||||
m_pythonPanelHidden = true;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ReFillLayerWidget(); // this is near end because contents establish size
|
ReFillLayerWidget(); // this is near end because contents establish size
|
||||||
|
|
||||||
m_Layers->ReFillRender(); // Update colors in Render after the config is read
|
m_Layers->ReFillRender(); // Update colors in Render after the config is read
|
||||||
|
@ -1093,19 +1081,39 @@ void PCB_EDIT_FRAME::UpdateTitle()
|
||||||
#if defined(KICAD_SCRIPTING_WXPYTHON)
|
#if defined(KICAD_SCRIPTING_WXPYTHON)
|
||||||
void PCB_EDIT_FRAME::ScriptingConsoleEnableDisable( wxCommandEvent& aEvent )
|
void PCB_EDIT_FRAME::ScriptingConsoleEnableDisable( wxCommandEvent& aEvent )
|
||||||
{
|
{
|
||||||
if ( m_pythonPanelHidden )
|
if( m_pythonPanel == NULL )
|
||||||
{
|
{
|
||||||
m_auimgr.GetPane( m_pythonPanel ).Show();
|
// Add the scripting panel
|
||||||
m_pythonPanelHidden = false;
|
EDA_PANEINFO pythonAuiPane;
|
||||||
}
|
pythonAuiPane.ScriptingToolbarPane();
|
||||||
else
|
pythonAuiPane.Caption( wxT( "Python Scripting" ) );
|
||||||
{
|
pythonAuiPane.MinSize( 300, 150 );
|
||||||
m_auimgr.GetPane( m_pythonPanel ).Hide();
|
|
||||||
m_pythonPanelHidden = true;
|
#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) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_pythonPanelShow = ! m_pythonPanelShow;
|
||||||
|
m_auimgr.GetPane( PYTHONCONSOLE_STRID ).Show( m_pythonPanelShow );
|
||||||
|
|
||||||
m_auimgr.Update();
|
m_auimgr.Update();
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -307,16 +307,16 @@ void PCB_EDIT_FRAME::ReCreateHToolbar()
|
||||||
KiBitmap( web_support_xpm ),
|
KiBitmap( web_support_xpm ),
|
||||||
_( "Fast access to the Web Based FreeROUTE advanced router" ) );
|
_( "Fast access to the Web Based FreeROUTE advanced router" ) );
|
||||||
|
|
||||||
m_mainToolBar->AddSeparator();
|
|
||||||
|
|
||||||
// Access to the scripting console
|
// Access to the scripting console
|
||||||
#ifdef KICAD_SCRIPTING_WXPYTHON
|
#ifdef KICAD_SCRIPTING_WXPYTHON
|
||||||
|
m_mainToolBar->AddSeparator();
|
||||||
|
|
||||||
m_mainToolBar->AddTool( ID_TOOLBARH_PCB_SCRIPTING_CONSOLE, wxEmptyString,
|
m_mainToolBar->AddTool( ID_TOOLBARH_PCB_SCRIPTING_CONSOLE, wxEmptyString,
|
||||||
KiBitmap( py_script_xpm ),
|
KiBitmap( py_script_xpm ),
|
||||||
_( "Show/Hide the Scripting console" ) );
|
_( "Show/Hide the Python Scripting console" ),
|
||||||
|
wxITEM_CHECK );
|
||||||
m_mainToolBar->AddSeparator();
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// after adding the buttons to the toolbar, must call Realize() to reflect the changes
|
// after adding the buttons to the toolbar, must call Realize() to reflect the changes
|
||||||
m_mainToolBar->Realize();
|
m_mainToolBar->Realize();
|
||||||
}
|
}
|
||||||
|
|
|
@ -109,6 +109,12 @@ void PCB_EDIT_FRAME::OnUpdateLayerSelectBox( wxUpdateUIEvent& aEvent )
|
||||||
m_SelLayerBox->SetLayerSelection( GetActiveLayer() );
|
m_SelLayerBox->SetLayerSelection( GetActiveLayer() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef KICAD_SCRIPTING_WXPYTHON
|
||||||
|
void PCB_EDIT_FRAME::OnUpdateScriptingConsoleState( wxUpdateUIEvent& aEvent )
|
||||||
|
{
|
||||||
|
aEvent.Check( m_pythonPanelShow );
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void PCB_EDIT_FRAME::OnUpdateZoneDisplayStyle( wxUpdateUIEvent& aEvent )
|
void PCB_EDIT_FRAME::OnUpdateZoneDisplayStyle( wxUpdateUIEvent& aEvent )
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue