1 /*
2  * This program source code file is part of KiCad, a free EDA CAD application.
3  *
4  * Copyright (C) 2017-2018 KiCad Developers, see AUTHORS.txt for contributors.
5  *
6  * This program is free software: you can redistribute it and/or modify it
7  * under the terms of the GNU General Public License as published by the
8  * Free Software Foundation, either version 3 of the License, or (at your
9  * option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful, but
12  * WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License along
17  * with this program.  If not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 
21 #ifndef KICAD_DIALOG_BOARD_SETUP_H
22 #define KICAD_DIALOG_BOARD_SETUP_H
23 
24 #include <widgets/paged_dialog.h>
25 
26 class PCB_EDIT_FRAME;
27 class PANEL_SETUP_CONSTRAINTS;
28 class PANEL_SETUP_LAYERS;
29 class PANEL_SETUP_TEXT_AND_GRAPHICS;
30 class PANEL_SETUP_NETCLASSES;
31 class PANEL_SETUP_RULES;
32 class PANEL_SETUP_TRACKS_AND_VIAS;
33 class PANEL_SETUP_MASK_AND_PASTE;
34 class PANEL_SETUP_BOARD_STACKUP;
35 class PANEL_SETUP_BOARD_FINISH;
36 class PANEL_SETUP_SEVERITIES;
37 class PANEL_TEXT_VARIABLES;
38 
39 
40 class DIALOG_BOARD_SETUP : public PAGED_DIALOG
41 {
42 public:
43     DIALOG_BOARD_SETUP( PCB_EDIT_FRAME* aFrame );
44     ~DIALOG_BOARD_SETUP();
45 
46 protected:
47     void OnAuxiliaryAction( wxCommandEvent& event ) override;
48 
49     PCB_EDIT_FRAME*                  m_frame;
50 
51     PANEL_SETUP_CONSTRAINTS*         m_constraints;
52     PANEL_SETUP_LAYERS*              m_layers;
53     PANEL_SETUP_TEXT_AND_GRAPHICS*   m_textAndGraphics;
54     PANEL_SETUP_NETCLASSES*          m_netclasses;
55     PANEL_SETUP_RULES*               m_rules;
56     PANEL_SETUP_TRACKS_AND_VIAS*     m_tracksAndVias;
57     PANEL_SETUP_MASK_AND_PASTE*      m_maskAndPaste;
58     PANEL_SETUP_BOARD_STACKUP*       m_physicalStackup;
59     PANEL_SETUP_BOARD_FINISH*        m_boardFinish;
60     PANEL_SETUP_SEVERITIES*          m_severities;
61     PANEL_TEXT_VARIABLES*            m_textVars;
62 
63     std::vector<bool>                m_macHack;
64 
65     // event handlers
66     void OnPageChange( wxBookCtrlEvent& event );
67 
68 private:
69     int m_currentPage;              // the current page index
70     int m_physicalStackupPage;      // the page index of the PANEL_SETUP_BOARD_STACKUP page
71     int m_layerSetupPage;           // the page index of the PANEL_SETUP_LAYERS page
72 };
73 
74 
75 #endif //KICAD_DIALOG_BOARD_SETUP_H
76