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 (C) 2024 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
64 LIB_ID GetSelectedLibId( int* aUnit = nullptr ) const;
65 void SelectLibId( const LIB_ID& aLibId );
66
67 void RefreshLibs();
68
69 /* Handler for checkbox events */
70 void OnCheckBox( wxCommandEvent& aEvent );
71 void UpdateCheckboxes();
72
73 void OnSaveSheetAsDesignBlock( wxCommandEvent& aEvent );
74 void OnSaveSelectionAsDesignBlock( wxCommandEvent& aEvent );
75
76 void OnDeleteLibrary( wxCommandEvent& aEvent );
77 void OnDeleteDesignBlock( wxCommandEvent& aEvent );
78
80
81protected:
83
85 wxCheckBox* m_placeAsSheet;
86 wxCheckBox* m_keepAnnotations;
87
89};
90
91
92// This is a helper class for the file dialog to allow the user to choose similar options
93// as the design block chooser when importing a sheet.
94class FILEDLG_IMPORT_SHEET_CONTENTS : public wxFileDialogCustomizeHook
95{
96public:
98
99 virtual void AddCustomControls( wxFileDialogCustomize& customizer ) override;
100
101 virtual void TransferDataFromCustomControls() override;
102
103private:
105
106 wxFileDialogCheckBox* m_cbRepeatedPlacement;
107 wxFileDialogCheckBox* m_cbPlaceAsSheet;
108 wxFileDialogCheckBox* m_cbKeepAnnotations;
109
111};
112
113#endif
PANEL_DESIGN_BLOCK_CHOOSER * GetDesignBlockPanel() const
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
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.