KiCad PCB EDA Suite
Loading...
Searching...
No Matches
ruler_item.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
24#ifndef PREVIEW_ITEMS_RULER_ITEM_H
25#define PREVIEW_ITEMS_RULER_ITEM_H
26
27#include <optional>
28
29#include <eda_item.h>
30#include <gal/color4d.h>
32
33namespace KIGFX
34{
35class GAL;
36
37namespace PREVIEW
38{
40
44class RULER_ITEM : public EDA_ITEM
45{
46public:
48 EDA_UNITS userUnits, bool aFlipX, bool aFlipY );
49
51 const BOX2I ViewBBox() const override;
52
54 std::vector<int> ViewGetLayers() const override;
55
57 void ViewDraw( int aLayer, KIGFX::VIEW* aView ) const override final;
58
59 void SetColor( const COLOR4D& aColor ) { m_color = aColor; }
60
61 void SetShowTicks( bool aShow ) { m_showTicks = aShow; }
62
63 void SetShowEndArrowHead( bool aShow ) { m_showEndArrowHead = aShow; }
64
68 wxArrayString GetDimensionStrings() const;
69
70#if defined(DEBUG)
71 void Show( int x, std::ostream& st ) const override
72 {
73 }
74#endif
75
81 wxString GetClass() const override
82 {
83 return wxT( "RULER_ITEM" );
84 }
85
91 void SwitchUnits( EDA_UNITS aUnits ) { m_userUnits = aUnits; }
92
93 void UpdateDir( bool aFlipX, bool aFlipY )
94 {
95 m_flipX = aFlipX;
96 m_flipY = aFlipY;
97 }
98
99private:
105 std::optional<COLOR4D> m_color;
106 bool m_showTicks = true;
107 bool m_showEndArrowHead = false;
108};
109
110} // PREVIEW
111} // KIGFX
112
113#endif // PREVIEW_ITEMS_RULER_ITEM_H
BOX2< VECTOR2I > BOX2I
Definition box2.h:922
EDA_ITEM(EDA_ITEM *parent, KICAD_T idType, bool isSCH_ITEM=false, bool isBOARD_ITEM=false)
Definition eda_item.cpp:39
A color representation with 4 components: red, green, blue, alpha.
Definition color4d.h:104
Abstract interface for drawing on a 2D-surface.
std::vector< int > ViewGetLayers() const override
void SetShowEndArrowHead(bool aShow)
Definition ruler_item.h:63
RULER_ITEM(const TWO_POINT_GEOMETRY_MANAGER &m_geomMgr, const EDA_IU_SCALE &aIuScale, EDA_UNITS userUnits, bool aFlipX, bool aFlipY)
Return the bounding box of the item covering all its layers.
const TWO_POINT_GEOMETRY_MANAGER & m_geomMgr
Definition ruler_item.h:100
wxArrayString GetDimensionStrings() const
Get the strings for the dimensions of the ruler.
std::optional< COLOR4D > m_color
Definition ruler_item.h:105
wxString GetClass() const override
Get class name.
Definition ruler_item.h:81
void ViewDraw(int aLayer, KIGFX::VIEW *aView) const override final
Draw the parts of the object belonging to layer aLayer.
const BOX2I ViewBBox() const override
Return the all the layers within the VIEW the object is painted on.
void SwitchUnits(EDA_UNITS aUnits)
Switch the ruler units.
Definition ruler_item.h:91
const EDA_IU_SCALE & m_iuScale
Definition ruler_item.h:102
void UpdateDir(bool aFlipX, bool aFlipY)
Definition ruler_item.h:93
void SetColor(const COLOR4D &aColor)
Definition ruler_item.h:59
void SetShowTicks(bool aShow)
Definition ruler_item.h:61
Represent a very simple geometry manager for items that have a start and end point.
Hold a (potentially large) number of VIEW_ITEMs and renders them on a graphics device provided by the...
Definition view.h:66
EDA_UNITS
Definition eda_units.h:48
The Cairo implementation of the graphics abstraction layer.
Definition eda_group.h:33