KiCad PCB EDA Suite
footprint_wizard_frame.h
Go to the documentation of this file.
1 /*
2  * This program source code file is part of KiCad, a free EDA CAD application.
3  *
4  * Copyright (C) 2012 Miguel Angel Ajo Pelayo, miguelangel@nbee.es
5  * Copyright (C) 2018 Jean-Pierre Charras, jp.charras at wanadoo.fr
6  * Copyright (C) 2004-2021 KiCad Developers, see AUTHORS.txt for contributors.
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License
10  * as published by the Free Software Foundation; either version 2
11  * of the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, you may find one here:
20  * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
21  * or you may search the http://www.gnu.org website for the version 2 license,
22  * or you may write to the Free Software Foundation, Inc.,
23  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
24  */
25 
30 #ifndef FOOTPRINT_WIZARD_FRAME_H_
31 #define FOOTPRINT_WIZARD_FRAME_H_
32 
33 #include <wx/gdicmn.h>
34 #include <footprint_wizard.h>
35 #include <pcb_base_edit_frame.h>
36 
37 class wxSashLayoutWindow;
38 class wxSashEvent;
39 class wxListBox;
40 class WX_GRID;
41 class wxGridEvent;
43 
44 
46 {
50 };
51 
53 {
54 public:
55  FOOTPRINT_WIZARD_FRAME( KIWAY* aKiway, wxWindow* parent, FRAME_T aFrameType );
56 
58 
60  BOARD_ITEM_CONTAINER* GetModel() const override;
61 
63 
68  void PythonPluginsReload();
69 
70  COLOR_SETTINGS* GetColorSettings() const override;
71 
72 private:
73 
74  void OnSize( wxSizeEvent& event ) override;
75  void OnGridSize( wxSizeEvent& aSizeEvent );
76 
82  void UpdateMsgPanel() override;
83 
88  void updateView();
89 
94  void ExportSelectedFootprint( wxCommandEvent& aEvent );
95 
99  void OnSashDrag( wxSashEvent& event );
100 
106  void ReCreatePageList();
107 
111  void ReCreateParameterList();
112 
116  void ResizeParamColumns();
117 
121  void initParameterGrid();
122 
126  void SelectFootprintWizard();
127 
131  void ReloadFootprint();
132 
136  void DisplayBuildMessage( wxString& aMessage );
137 
142 
143  void Process_Special_Functions( wxCommandEvent& event );
144 
148  void DisplayWizardInfos();
149 
150  void doCloseWindow() override;
151  void ReCreateHToolbar() override;
152  void ReCreateVToolbar() override;
153  void ClickOnPageList( wxCommandEvent& event );
154 
155  void LoadSettings( APP_SETTINGS_BASE* aCfg ) override;
156  void SaveSettings( APP_SETTINGS_BASE* aCfg ) override;
157 
159 
164  void OnActivate( wxActivateEvent& event );
165 
166  void SelectCurrentWizard( wxCommandEvent& event );
167 
168  void DefaultParameters( wxCommandEvent& event );
169 
173  void ParametersUpdated( wxGridEvent& event );
174 
176  void Update3DView( bool aMarkDirty, bool aRefresh, const wxString* aTitle = nullptr ) override;
177 
178  /*
179  * Not used here but needed by PCB_BASE_EDIT_FRAME.
180  */
181  void SaveCopyInUndoList( EDA_ITEM*, UNDO_REDO ) override {}
182  void SaveCopyInUndoList( const PICKED_ITEMS_LIST&, UNDO_REDO ) override {}
183  void OnEditItemRequest( BOARD_ITEM* aItem ) override {}
184 
185  DECLARE_EVENT_TABLE()
186 
187 protected:
188  wxString m_wizardName;
190  wxString m_wizardStatus;
191 
192 private:
193  wxPanel* m_parametersPanel;
194  wxListBox* m_pageList;
197  wxTextCtrl* m_buildMessageBox;
200 
201  wxString m_auiPerspective;
202 
204 };
205 
206 
207 
208 #endif // FOOTPRINT_WIZARD_FRM_H_
wxString m_wizardName
name of the current wizard
void DisplayWizardInfos()
Show all the details about the current wizard.
A base class for any item which can be embedded within the BOARD container class, and therefore insta...
Definition: board_item.h:49
wxString m_auiPerspective
Encoded string describing the AUI layout.
WizardParameterColumnNames
wxListBox * m_pageList
The list of pages.
FRAME_T
The set of EDA_BASE_FRAME derivatives, typically stored in EDA_BASE_FRAME::m_Ident.
Definition: frame_type.h:32
void ExportSelectedFootprint(wxCommandEvent &aEvent)
Will let the caller exit from the wait loop, and get the built footprint.
int m_parameterGridPage
the page currently displayed by m_parameterGrid it is most of time the m_pageList selection,...
WX_GRID * m_parameterGrid
The list of parameters.
void ReloadFootprint()
Reload the current footprint.
void initParameterGrid()
Prepare the grid where parameters are displayed.
UNDO_REDO
Undo Redo considerations: Basically we have 3 cases New item Deleted item Modified item there is also...
void ClickOnPageList(wxCommandEvent &event)
void OnEditItemRequest(BOARD_ITEM *aItem) override
Install the corresponding dialog editor for the given item.
BOARD_ITEM_CONTAINER * GetModel() const override
void ReCreateParameterList()
Create the list of parameters for the current page.
void SaveCopyInUndoList(const PICKED_ITEMS_LIST &, UNDO_REDO) override
Creates a new entry in undo list of commands.
wxString m_wizardStatus
current wizard status
Stores the common settings that are saved and loaded for each window / frame.
Definition: app_settings.h:81
wxPanel * m_parametersPanel
Panel for the page list and parameter grid.
void ReCreatePageList()
Create or recreate the list of parameter pages for the current wizard.
void OnActivate(wxActivateEvent &event)
Called when the frame frame is activate to reload the libraries and component lists that can be chang...
APP_SETTINGS_BASE is a settings class that should be derived for each standalone KiCad application.
Definition: app_settings.h:99
void ParametersUpdated(wxGridEvent &event)
Update the footprint python parameters values from the values in grid.
FOOTPRINT_WIZARD_FRAME(KIWAY *aKiway, wxWindow *parent, FRAME_T aFrameType)
void SaveCopyInUndoList(EDA_ITEM *, UNDO_REDO) override
Create a new entry in undo list of commands.
void DisplayBuildMessage(wxString &aMessage)
Display the message generated by the python build footprint script.
A minimalistic software bus for communications between various DLLs/DSOs (DSOs) within the same KiCad...
Definition: kiway.h:260
COLOR_SETTINGS * GetColorSettings() const override
Helper to retrieve the current color settings.
A holder to handle information on schematic or board items.
FOOTPRINT_WIZARD * GetMyWizard()
Reloads the wizard by name.
bool m_wizardListShown
A show-once flag for the wizard list.
void PythonPluginsReload()
Reload the Python plugins if they are newer than the already loaded, and load new plugins if any.
void SaveSettings(APP_SETTINGS_BASE *aCfg) override
Save common frame parameters to a configuration data file.
void OnSize(wxSizeEvent &event) override
Recalculate the size of toolbars and display panel when the frame size changes.
void OnSashDrag(wxSashEvent &event)
Resize the child windows when dragging a sash window border.
void DefaultParameters(wxCommandEvent &event)
Common, abstract interface for edit frames.
void SelectFootprintWizard()
Show the list of footprint wizards available into the system.
void LoadSettings(APP_SETTINGS_BASE *aCfg) override
Load common frame parameters from a configuration file.
void OnGridSize(wxSizeEvent &aSizeEvent)
A base class for most all the KiCad significant classes used in schematics and boards.
Definition: eda_item.h:100
Color settings are a bit different than most of the settings objects in that there can be more than o...
void SelectCurrentWizard(wxCommandEvent &event)
void Update3DView(bool aMarkDirty, bool aRefresh, const wxString *aTitle=nullptr) override
Update the 3D view, if the viewer is opened by this frame.
void Process_Special_Functions(wxCommandEvent &event)
Abstract interface for BOARD_ITEMs capable of storing other items inside.
Class FOOTPRINT_WIZARD and FOOTPRINT_WIZARDS.
void updateView()
Rebuild the GAL view (reint tool manager, colors and drawings) must be run after any footprint change...
void UpdateMsgPanel() override
Redraw the message panel.
void ResizeParamColumns()
Expand the 'Value' column to fill available.
The parent class from where any footprint wizard class must derive.
WINDOW_SETTINGS * GetWindowSettings(APP_SETTINGS_BASE *aCfg) override
Return a pointer to the window settings for this frame.
wxString m_wizardDescription
description of the wizard