pcbnew: Show/Hide button for scripting console

This commit is contained in:
Miguel Angel Ajo 2012-08-10 23:53:50 +02:00
parent c7d6dad7e0
commit f80357cb1a
8 changed files with 65 additions and 20 deletions

View File

@ -89,6 +89,7 @@ protected:
#ifdef KICAD_SCRIPTING_WXPYTHON
// Panel used to let user talk with internal scripting
wxWindow* m_pythonPanel;
bool m_pythonPanelHidden;
#endif
PCB_LAYER_WIDGET* m_Layers;
@ -1397,6 +1398,12 @@ public:
// Autoplacement:
void AutoPlace( wxCommandEvent& event );
/**
* Function ScriptingConsoleEnableDisable
* enables or disabled the scripting console
*/
void ScriptingConsoleEnableDisable( wxCommandEvent& event );
void OnSelectAutoPlaceMode( wxCommandEvent& aEvent );
/**

View File

@ -554,6 +554,14 @@ void PCB_EDIT_FRAME::ReCreateMenuBar()
_( "Fast access to the Web Based FreeROUTE advanced router" ),
KiBitmap( web_support_xpm ) );
#ifdef KICAD_SCRIPTING_WXPYTHON
/* Scripting */
AddMenuItem( toolsMenu, ID_TOOLBARH_PCB_SCRIPTING_CONSOLE,
_( "&Scripting Console" ),
_( "Show/Hide the Scripting console" ),
KiBitmap( book_xpm ) );
#endif
/* Design Rules menu
*/
wxMenu* designRulesMenu = new wxMenu;

View File

@ -174,7 +174,9 @@ BEGIN_EVENT_TABLE( PCB_EDIT_FRAME, PCB_BASE_FRAME )
EVT_TOOL( ID_TOOLBARH_PCB_MODE_MODULE, PCB_EDIT_FRAME::OnSelectAutoPlaceMode )
EVT_TOOL( ID_TOOLBARH_PCB_MODE_TRACKS, PCB_EDIT_FRAME::OnSelectAutoPlaceMode )
EVT_TOOL( ID_TOOLBARH_PCB_FREEROUTE_ACCESS, PCB_EDIT_FRAME::Access_to_External_Tool )
#ifdef KICAD_SCRIPTING_WXPYTHON
EVT_TOOL( ID_TOOLBARH_PCB_SCRIPTING_CONSOLE, PCB_EDIT_FRAME::ScriptingConsoleEnableDisable )
#endif
// Option toolbar
EVT_TOOL( ID_TB_OPTIONS_DRC_OFF,
PCB_EDIT_FRAME::OnSelectOptionToolbar )
@ -410,11 +412,13 @@ PCB_EDIT_FRAME::PCB_EDIT_FRAME( wxWindow* parent, const wxString& title,
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
@ -786,6 +790,24 @@ void PCB_EDIT_FRAME::UpdateTitle()
SetTitle( title );
}
#ifdef KICAD_SCRIPTING_WXPYTHON
void PCB_EDIT_FRAME::ScriptingConsoleEnableDisable( wxCommandEvent& aEvent )
{
if ( m_pythonPanelHidden )
{
m_auimgr.GetPane( m_pythonPanel ).Show();
m_pythonPanelHidden = false;
}
else
{
m_auimgr.GetPane( m_pythonPanel ).Hide();
m_pythonPanelHidden = true;
}
m_auimgr.Update();
}
#endif
void PCB_EDIT_FRAME::OnSelectAutoPlaceMode( wxCommandEvent& aEvent )
{

View File

@ -235,6 +235,7 @@ enum pcbnew_ids
ID_TOOLBARH_PCB_MODE_MODULE,
ID_TOOLBARH_PCB_MODE_TRACKS,
ID_TOOLBARH_PCB_FREEROUTE_ACCESS,
ID_TOOLBARH_PCB_SCRIPTING_CONSOLE,
ID_AUX_TOOLBAR_PCB_SELECT_LAYER_PAIR,

View File

@ -1,5 +1,11 @@
* finish wizard implementation
* cleanup
* better build script helpers
* think about documentation, how to do it
* toolbar button and menu for scripting console
* Action plugins:
right click hooks,
toolbar hooks,
menu hooks,
* IO plugins
* better footprint wizard (preview in footprint wizard list)

View File

@ -1,14 +1,11 @@
import pcbnew
pcb = pcbnew.GetBoard()
m = pcb.m_Modules
while m:
for m in pcb.GetModules():
print m.GetPosition()
p = m.m_Pads
while p:
for p in m.GetPads()
print "p=>",p.GetPosition(),p.GetPadName()
print p.GetPosition()
p = p.Next()
m = m.Next()

View File

@ -1,14 +1,10 @@
import pcbnew
pcb = pcbnew.GetBoard()
m = pcb.m_Modules.item()
while m:
for m in pcb.GetModules():
print m.GetReference(),"(",m.GetValue(),") at ", m.GetPosition()
m.SetValue("pepe")
p = m.m_Pads.item()
while p:
for p in m.GetPads()
print " pad",p.GetPadName(), "at",p.GetPosition()
p = p.Next()
m = m.Next()

View File

@ -300,6 +300,14 @@ void PCB_EDIT_FRAME::ReCreateHToolbar()
m_mainToolBar->AddSeparator();
// Access to the scripting console
#ifdef KICAD_SCRIPTING_WXPYTHON
m_mainToolBar->AddTool( ID_TOOLBARH_PCB_SCRIPTING_CONSOLE, wxEmptyString,
KiBitmap( book_xpm ),
_( "Show/Hide the Scripting console" ) );
m_mainToolBar->AddSeparator();
#endif
// after adding the buttons to the toolbar, must call Realize() to reflect the changes
m_mainToolBar->Realize();
}