KiCad PCB EDA Suite
Loading...
Searching...
No Matches
design_block_pane.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 The KiCad Developers, see AUTHORS.txt for contributors.
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, you may find one here:
18 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
19 * or you may search the http://www.gnu.org website for the version 2 license,
20 * or you may write to the Free Software Foundation, Inc.,
21 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
22 */
23#ifndef DESIGN_BLOCK_PANE_H
24#define DESIGN_BLOCK_PANE_H
25
27#include <widgets/html_window.h>
28#include <widgets/wx_panel.h>
29#include <wx/checkbox.h>
30#include <wx/filedlgcustomize.h>
31#include <eeschema_settings.h>
32
33
34class SCH_EDIT_FRAME;
36
37
39{
40public:
50 DESIGN_BLOCK_PANE( SCH_EDIT_FRAME* aParent, const LIB_ID* aPreselect,
51 std::vector<LIB_ID>& aHistoryList );
52
53 ~DESIGN_BLOCK_PANE() override;
54
55 void SaveSettings();
56
68 LIB_ID GetSelectedLibId( int* aUnit = nullptr ) const;
69 void SelectLibId( const LIB_ID& aLibId );
70
71 void RefreshLibs();
72
73 /* Handler for checkbox events */
74 void OnCheckBox( wxCommandEvent& aEvent );
75 void UpdateCheckboxes();
76
77 void OnSaveSheetAsDesignBlock( wxCommandEvent& aEvent );
78 void OnSaveSelectionAsDesignBlock( wxCommandEvent& aEvent );
79
80 void OnDeleteLibrary( wxCommandEvent& aEvent );
81 void OnDeleteDesignBlock( wxCommandEvent& aEvent );
82
83 void OnSize( wxSizeEvent& aEvent );
84
86
87protected:
89
90 virtual void OnLanguageChanged( wxCommandEvent& aEvent );
91
92protected:
94
96 wxCheckBox* m_placeAsSheet;
97 wxCheckBox* m_keepAnnotations;
98
100};
101
102
103// This is a helper class for the file dialog to allow the user to choose similar options
104// as the design block chooser when importing a sheet.
105class FILEDLG_IMPORT_SHEET_CONTENTS : public wxFileDialogCustomizeHook
106{
107public:
109
110 virtual void AddCustomControls( wxFileDialogCustomize& customizer ) override;
111
112 virtual void TransferDataFromCustomControls() override;
113
114private:
116
117 wxFileDialogCheckBox* m_cbRepeatedPlacement;
118 wxFileDialogCheckBox* m_cbPlaceAsSheet;
119 wxFileDialogCheckBox* m_cbKeepAnnotations;
120
122};
123
124#endif
PANEL_DESIGN_BLOCK_CHOOSER * GetDesignBlockPanel() const
void OnSize(wxSizeEvent &aEvent)
~DESIGN_BLOCK_PANE() override
void OnDeleteDesignBlock(wxCommandEvent &aEvent)
void SelectLibId(const LIB_ID &aLibId)
LIB_ID GetSelectedLibId(int *aUnit=nullptr) const
To be called after this dialog returns from ShowModal().
void OnCheckBox(wxCommandEvent &aEvent)
PANEL_DESIGN_BLOCK_CHOOSER * m_chooserPanel
void OnSaveSelectionAsDesignBlock(wxCommandEvent &aEvent)
wxCheckBox * m_repeatedPlacement
virtual void OnLanguageChanged(wxCommandEvent &aEvent)
SCH_EDIT_FRAME * m_frame
wxCheckBox * m_placeAsSheet
void OnDeleteLibrary(wxCommandEvent &aEvent)
wxCheckBox * m_keepAnnotations
void OnSaveSheetAsDesignBlock(wxCommandEvent &aEvent)
wxFileDialogCheckBox * m_cbRepeatedPlacement
wxFileDialogCheckBox * m_cbPlaceAsSheet
virtual void TransferDataFromCustomControls() override
wxFileDialogCheckBox * m_cbKeepAnnotations
virtual void AddCustomControls(wxFileDialogCustomize &customizer) override
wxDECLARE_NO_COPY_CLASS(FILEDLG_IMPORT_SHEET_CONTENTS)
A logical library item identifier and consists of various portions much like a URI.
Definition: lib_id.h:49
Schematic editor (Eeschema) main window.