KiCad PCB EDA Suite
Loading...
Searching...
No Matches
panel_notebook_base.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 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
17 * along with this program. If not, see <https://www.gnu.org/licenses/>.
18 */
19
20#pragma once
21
22#include <wx/dialog.h>
23#include <wx/panel.h>
24#include <wx/aui/auibook.h>
25#include <widgets/wx_grid.h>
27
28
29class PANEL_NOTEBOOK_BASE : public wxPanel
30{
31public:
32 PANEL_NOTEBOOK_BASE( wxWindow* parent, wxWindowID id = wxID_ANY,
33 const wxPoint& pos = wxDefaultPosition,
34 const wxSize& size = wxSize( -1, -1 ), long style = wxTAB_TRAVERSAL,
35 const wxString& name = wxEmptyString ) :
36 wxPanel( parent, id, pos, size, style, name )
37 { }
38
39 bool Reparent( wxWindowBase* newParent ) override
40 {
41 // This is called from wxAuiNotebook::AddPage / InsertPageAt
42 // We need WX_AUI_TAB_ART to hide the close button cleanly.
43 if( wxAuiNotebook* notebook = wxDynamicCast( newParent, wxAuiNotebook ) )
44 {
45 if( !dynamic_cast<WX_AUI_TAB_ART*>( notebook->GetArtProvider() ) )
46 {
47 wxFAIL_MSG( "Set wxAuiNotebook WX_AUI_TAB_ART before adding pages" );
48 }
49 }
50
51 return wxPanel::Reparent( newParent );
52 }
53
54 void SetProjectTied( bool aYes ) { m_projectTied = aYes; }
55 bool GetProjectTied() { return m_projectTied; }
56
57 void SetClosable( bool aYes ) { m_closable = aYes; }
58 bool GetClosable() const { return m_closable; }
59
60 virtual bool GetCanClose() { return true; }
61
62private:
63 bool m_closable = false;
64 bool m_projectTied = false;
65};
const char * name
void SetClosable(bool aYes)
PANEL_NOTEBOOK_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1, -1), long style=wxTAB_TRAVERSAL, const wxString &name=wxEmptyString)
void SetProjectTied(bool aYes)
bool Reparent(wxWindowBase *newParent) override