KiCad PCB EDA Suite
base_screen.cpp
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 Jean-Pierre Charras, jean-pierre.charras@ujf-grenoble.fr
5  * Copyright (C) 2012 SoftPLC Corporation, Dick Hollenbeck <dick@softplc.com>
6  * Copyright (C) 2012 Wayne Stambaugh <stambaughw@gmail.com>
7  * Copyright (C) 1992-2020 KiCad Developers, see AUTHORS.txt for contributors.
8  *
9  * This program is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU General Public License
11  * as published by the Free Software Foundation; either version 2
12  * of the License, or (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, you may find one here:
21  * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
22  * or you may search the http://www.gnu.org website for the version 2 license,
23  * or you may write to the Free Software Foundation, Inc.,
24  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
25  */
26 
27 #include <base_screen.h>
28 #include <eda_item.h>
29 #include <trace_helpers.h>
30 
31 
32 wxString BASE_SCREEN::m_DrawingSheetFileName; // the name of the drawing sheet file.
33 
34 
36  EDA_ITEM( aParent, aType )
37 {
39  m_pageCount = 1; // Hierarchy: Root: ScreenNumber = 1
40  m_Center = true;
41 
42  m_flagModified = false; // Set when any change is made on board.
43 }
44 
45 
46 void BASE_SCREEN::InitDataPoints( const wxSize& aPageSizeIU )
47 {
48  if( m_Center )
49  {
50  m_DrawOrg.x = -aPageSizeIU.x / 2;
51  m_DrawOrg.y = -aPageSizeIU.y / 2;
52  }
53  else
54  {
55  m_DrawOrg.x = 0;
56  m_DrawOrg.y = 0;
57  }
58 
59  m_LocalOrigin = { 0, 0 };
60 }
61 
62 
63 void BASE_SCREEN::SetPageCount( int aPageCount )
64 {
65  wxCHECK( aPageCount > 0, /* void */ );
66 
67  m_pageCount = aPageCount;
68 }
69 
70 
71 const wxString& BASE_SCREEN::GetPageNumber() const
72 {
73  static wxString pageNumber;
74 
75  if( m_pageNumber.IsEmpty() )
76  pageNumber.Printf( "%d", m_virtualPageNumber );
77  else
78  pageNumber = m_pageNumber;
79 
80  return pageNumber;
81 }
82 
83 
84 #if defined(DEBUG)
85 
86 void BASE_SCREEN::Show( int nestLevel, std::ostream& os ) const
87 {
88  // for now, make it look like XML, expand on this later.
89  NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str() << ">\n";
90 
91  NestedSpace( nestLevel, os ) << "</" << GetClass().Lower().mb_str() << ">\n";
92 }
93 
94 #endif
bool m_flagModified
Indicates current drawing has been modified.
Definition: base_screen.h:132
virtual wxString GetClass() const override
Return the class name.
Definition: base_screen.h:67
KICAD_T
The set of class identification values stored in EDA_ITEM::m_structType.
Definition: typeinfo.h:77
const wxString & GetPageNumber() const
Definition: base_screen.cpp:71
void InitDataPoints(const wxSize &aPageSizeInternalUnits)
Definition: base_screen.cpp:46
wxString m_pageNumber
A user defined string page number used for printing and plotting.
Definition: base_screen.h:129
bool m_Center
Center on screen.
Definition: base_screen.h:96
int m_pageCount
The number of BASE_SCREEN objects in this design.
Definition: base_screen.h:111
wxLogTrace helper definitions.
BASE_SCREEN(EDA_ITEM *aParent, KICAD_T aType=SCREEN_T)
Definition: base_screen.cpp:35
static wxString m_DrawingSheetFileName
the name of the drawing sheet file, or empty to use the default drawing sheet
Definition: base_screen.h:85
wxPoint m_DrawOrg
offsets for drawing the circuit on the screen
Definition: base_screen.h:88
A base class for most all the KiCad significant classes used in schematics and boards.
Definition: eda_item.h:100
BASE_SCREEN class implementation.
void SetPageCount(int aPageCount)
Definition: base_screen.cpp:63
VECTOR2D m_LocalOrigin
Relative Screen cursor coordinate (on grid) in user units.
Definition: base_screen.h:90
int m_virtualPageNumber
An integer based page number used for printing a range of pages.
Definition: base_screen.h:119