KiCad PCB EDA Suite
Loading...
Searching...
No Matches
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, [email protected]
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
37class wxSashLayoutWindow;
38class wxSashEvent;
39class wxListBox;
40class WX_GRID;
41class wxGridEvent;
43
44
46{
50};
51
53{
54public:
55 FOOTPRINT_WIZARD_FRAME( KIWAY* aKiway, wxWindow* parent, FRAME_T aFrameType );
56
58
60 BOARD_ITEM_CONTAINER* GetModel() const override;
61
63
69
70 COLOR_SETTINGS* GetColorSettings( bool aForceRefresh = false ) const override;
71
72private:
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
112
116 void ResizeParamColumns();
117
121 void initParameterGrid();
122
127
131 void RegenerateFootprint();
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 DECLARE_EVENT_TABLE()
179
180protected:
181 wxString m_wizardName;
183 wxString m_wizardStatus;
184
185private:
187 wxListBox* m_pageList;
192 wxTextCtrl* m_buildMessageBox;
193
195
197};
198
199
200
201#endif // FOOTPRINT_WIZARD_FRM_H_
APP_SETTINGS_BASE is a settings class that should be derived for each standalone KiCad application.
Definition: app_settings.h:92
Abstract interface for BOARD_ITEMs capable of storing other items inside.
Color settings are a bit different than most of the settings objects in that there can be more than o...
void ParametersUpdated(wxGridEvent &event)
Update the footprint python parameters values from the values in grid.
BOARD_ITEM_CONTAINER * GetModel() const override
void PythonPluginsReload()
Reload the Python plugins if they are newer than the already loaded, and load new plugins if any.
void OnSashDrag(wxSashEvent &event)
Resize the child windows when dragging a sash window border.
void initParameterGrid()
Prepare the grid where parameters are displayed.
void OnSize(wxSizeEvent &event) override
Recalculate the size of toolbars and display panel when the frame size changes.
void SaveSettings(APP_SETTINGS_BASE *aCfg) override
Save common frame parameters to a configuration data file.
int m_parameterGridPage
the page currently displayed by m_parameterGrid it is most of time the m_pageList selection,...
wxListBox * m_pageList
The list of pages.
void LoadSettings(APP_SETTINGS_BASE *aCfg) override
Load common frame parameters from a configuration file.
void ReCreateParameterList()
Create the list of parameters for the current page.
void DisplayWizardInfos()
Show all the details about the current wizard.
COLOR_SETTINGS * GetColorSettings(bool aForceRefresh=false) const override
Helper to retrieve the current color settings.
wxString m_wizardName
name of the current wizard
bool m_wizardListShown
A show-once flag for the wizard list.
void updateView()
Rebuild the GAL view (reint tool manager, colors and drawings) must be run after any footprint change...
void Update3DView(bool aMarkDirty, bool aRefresh, const wxString *aTitle=nullptr) override
Update the 3D view, if the viewer is opened by this frame.
wxString m_wizardStatus
current wizard status
void ClickOnPageList(wxCommandEvent &event)
WX_GRID * m_parameterGrid
The list of parameters.
void DisplayBuildMessage(wxString &aMessage)
Display the message generated by the python build footprint script.
FOOTPRINT_WIZARD * GetMyWizard()
Reloads the wizard by name.
FOOTPRINT_WIZARD_FRAME(KIWAY *aKiway, wxWindow *parent, FRAME_T aFrameType)
void ResizeParamColumns()
Expand the 'Value' column to fill available.
wxString m_wizardDescription
description of the wizard
void UpdateMsgPanel() override
Redraw the message panel.
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 RegenerateFootprint()
Regenerate the current footprint.
void Process_Special_Functions(wxCommandEvent &event)
void SelectFootprintWizard()
Show the list of footprint wizards available into the system.
wxString m_auiPerspective
Encoded string describing the AUI layout.
void DefaultParameters(wxCommandEvent &event)
void ExportSelectedFootprint(wxCommandEvent &aEvent)
Will let the caller exit from the wait loop, and get the built footprint.
void SelectCurrentWizard(wxCommandEvent &event)
void OnGridSize(wxSizeEvent &aSizeEvent)
WINDOW_SETTINGS * GetWindowSettings(APP_SETTINGS_BASE *aCfg) override
Return a pointer to the window settings for this frame.
void OnActivate(wxActivateEvent &event)
Called when the frame frame is activate to reload the libraries and component lists that can be chang...
The parent class from where any footprint wizard class must derive.
A minimalistic software bus for communications between various DLLs/DSOs (DSOs) within the same KiCad...
Definition: kiway.h:284
Common, abstract interface for edit frames.
Class FOOTPRINT_WIZARD and FOOTPRINT_WIZARDS.
WizardParameterColumnNames
@ WIZ_COL_VALUE
@ WIZ_COL_NAME
@ WIZ_COL_UNITS
FRAME_T
The set of EDA_BASE_FRAME derivatives, typically stored in EDA_BASE_FRAME::m_Ident.
Definition: frame_type.h:33
Stores the common settings that are saved and loaded for each window / frame.
Definition: app_settings.h:74