diff options
author | saurabhb17 | 2020-02-26 16:00:53 +0530 |
---|---|---|
committer | GitHub | 2020-02-26 16:00:53 +0530 |
commit | 886d9cb772e81d2e5262284bc3082664f084337f (patch) | |
tree | 6acee185a4dc19113fcbf0f9a3d6941085dedaf7 /pcbnew/scripting/python_console_frame.h | |
parent | 0db48f6533517ecebfd9f0693f89deca28408b76 (diff) | |
parent | aa35045840b78d3f48212db45da59a2e5c69b223 (diff) | |
download | KiCad-eSim-886d9cb772e81d2e5262284bc3082664f084337f.tar.gz KiCad-eSim-886d9cb772e81d2e5262284bc3082664f084337f.tar.bz2 KiCad-eSim-886d9cb772e81d2e5262284bc3082664f084337f.zip |
Merge pull request #1 from saurabhb17/develop
Added main functions
Diffstat (limited to 'pcbnew/scripting/python_console_frame.h')
-rw-r--r-- | pcbnew/scripting/python_console_frame.h | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/pcbnew/scripting/python_console_frame.h b/pcbnew/scripting/python_console_frame.h new file mode 100644 index 0000000..042e6b0 --- /dev/null +++ b/pcbnew/scripting/python_console_frame.h @@ -0,0 +1,105 @@ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2014 Jean-Pierre Charras, jp.charras at wanadoo.fr + * Copyright (C) 2004-2014 KiCad Developers, see change_log.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/** + * @file python_console_frame.h + */ + +#ifndef PYTHON_CONSOLE_FRAME_H_ +#define PYTHON_CONSOLE_FRAME_H_ + +#if defined(KICAD_SCRIPTING) || defined(KICAD_SCRIPTING_WXPYTHON) +#include <python_scripting.h> +#endif + + +/** + * Class PYTHON_CONSOLE_FRAME is a simple derived class from wxMiniFrame + * to handle the scripting python console + */ +#define PC_STYLE wxCAPTION|wxCLOSE_BOX|wxRESIZE_BORDER + +class PYTHON_CONSOLE_FRAME : public wxMiniFrame +{ +private: + static wxSize m_frameSize; ///< The size of the frame, stored during a session + static wxPoint m_framePos; ///< The position of the frame, stored during a session + wxWindow * m_pythonPanel; ///< the window managed by the python shell + +public: + + PYTHON_CONSOLE_FRAME( wxWindow* aParent, const wxString& aFramenameId ) + : wxMiniFrame( aParent, wxID_ANY, wxT("Python console"), wxDefaultPosition, wxDefaultSize, + PC_STYLE | wxFRAME_FLOAT_ON_PARENT, aFramenameId ) + { + wxBoxSizer* sizer = new wxBoxSizer( wxVERTICAL ); + SetSizer( sizer ); + SetMinSize( wxSize( 500, 200 ) ); + +#if defined(KICAD_SCRIPTING_WXPYTHON) + m_pythonPanel = CreatePythonShellWindow( this ); + sizer->Add( m_pythonPanel, 1, wxEXPAND, 0 ); +#else + m_pythonPanel = NULL; +#endif + + if( m_frameSize.x <= 0 || m_frameSize.y <= 0 ) + SetSize( wxSize( 600, 300 ) ); + else + SetSize( m_frameSize ); + + if( m_framePos.x == 0 && m_framePos.y == 0 ) + Centre(); + else + SetPosition( m_framePos ); + + Layout(); + + // Connect Events + this->Connect( wxEVT_CLOSE_WINDOW, + wxCloseEventHandler( PYTHON_CONSOLE_FRAME::OnClose ) ); + } + + ~PYTHON_CONSOLE_FRAME() + { + // Disconnect Events + this->Disconnect( wxEVT_CLOSE_WINDOW, + wxCloseEventHandler( PYTHON_CONSOLE_FRAME::OnClose ) ); + } + +private: + + void OnClose( wxCloseEvent& event ) + { + if( !IsIconized() ) + { + m_frameSize = GetSize(); + m_framePos = GetPosition(); + } + + event.Skip(); + } +}; + +#endif // PYTHON_CONSOLE_FRAME_H_ |