KiCad PCB EDA Suite
sch_textbox.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) 2022 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 SCH_TEXTBOX_H
25#define SCH_TEXTBOX_H
26
27
28#include <eda_text.h>
29#include <sch_shape.h>
30
31
33
34class SCH_TEXTBOX : public SCH_SHAPE, public EDA_TEXT
35{
36public:
37 SCH_TEXTBOX( int aLineWidth = 0, FILL_T aFillType = FILL_T::NO_FILL,
38 const wxString& aText = wxEmptyString );
39
40 SCH_TEXTBOX( const SCH_TEXTBOX& aText );
41
43
44 static inline bool ClassOf( const EDA_ITEM* aItem )
45 {
46 return aItem && SCH_TEXTBOX_T == aItem->Type();
47 }
48
49 virtual wxString GetClass() const override
50 {
51 return wxT( "SCH_TEXTBOX" );
52 }
53
54 int GetTextMargin() const;
55
56 VECTOR2I GetDrawPos() const override;
57
58 wxString GetShownText( int aDepth = 0 ) const override;
59
60 bool IsHypertext() const override
61 {
62 return HasHyperlink();
63 }
64
65 void DoHypertextAction( EDA_DRAW_FRAME* aFrame ) const override;
66
67 void Print( const RENDER_SETTINGS* aSettings, const VECTOR2I& offset ) override;
68
69 void SwapData( SCH_ITEM* aItem ) override;
70
71 bool operator<( const SCH_ITEM& aItem ) const override;
72
73 KIFONT::FONT* GetDrawFont() const override;
74
75 void Move( const VECTOR2I& aMoveVector ) override
76 {
77 EDA_SHAPE::move( aMoveVector );
78 EDA_TEXT::Offset( aMoveVector );
79 }
80
81 void MirrorHorizontally( int aCenter ) override;
82 void MirrorVertically( int aCenter ) override;
83 void Rotate( const VECTOR2I& aCenter ) override;
84
85 virtual void Rotate90( bool aClockwise );
86
87 bool HitTest( const VECTOR2I& aPosition, int aAccuracy = 0 ) const override;
88
89 bool HitTest( const BOX2I& aRect, bool aContained, int aAccuracy = 0 ) const override;
90
91 bool Matches( const EDA_SEARCH_DATA& aSearchData, void* aAuxData ) const override
92 {
93 return SCH_ITEM::Matches( GetText(), aSearchData );
94 }
95
96 bool Replace( const EDA_SEARCH_DATA& aSearchData, void* aAuxData ) override
97 {
98 return EDA_TEXT::Replace( aSearchData );
99 }
100
101 virtual bool IsReplaceable() const override { return true; }
102
103 wxString GetSelectMenuText( UNITS_PROVIDER* aUnitsProvider ) const override;
104
105 BITMAPS GetMenuImage() const override;
106
107 void Plot( PLOTTER* aPlotter, bool aBackground ) const override;
108
109 EDA_ITEM* Clone() const override
110 {
111 return new SCH_TEXTBOX( *this );
112 }
113
114 void GetMsgPanelInfo( EDA_DRAW_FRAME* aFrame, std::vector<MSG_PANEL_ITEM>& aList ) override;
115};
116
117
118#endif /* SCH_TEXTBOX_H */
BITMAPS
A list of all bitmap identifiers.
Definition: bitmaps_list.h:33
The base class for create windows for drawing purpose.
A base class for most all the KiCad significant classes used in schematics and boards.
Definition: eda_item.h:85
KICAD_T Type() const
Returns the type of object.
Definition: eda_item.h:97
virtual bool Matches(const EDA_SEARCH_DATA &aSearchData, void *aAuxData) const
Compare the item against the search criteria in aSearchData.
Definition: eda_item.h:382
void move(const VECTOR2I &aMoveVector)
Definition: eda_shape.cpp:141
A mix-in class (via multiple inheritance) that handles texts such as labels, parts,...
Definition: eda_text.h:72
virtual const wxString & GetText() const
Return the string associated with the text object.
Definition: eda_text.h:87
virtual bool HasHyperlink() const
Definition: eda_text.h:324
void Offset(const VECTOR2I &aOffset)
Definition: eda_text.cpp:389
bool Replace(const EDA_SEARCH_DATA &aSearchData)
Helper function used in search and replace dialog.
Definition: eda_text.cpp:318
FONT is an abstract base class for both outline and stroke fonts.
Definition: font.h:105
Container for all the knowledge about how graphical objects are drawn on any output surface/device.
Base plotter engine class.
Definition: plotter.h:110
Base class for any item which can be embedded within the SCHEMATIC container class,...
Definition: sch_item.h:147
bool Matches(const EDA_SEARCH_DATA &aSearchData, void *aAuxData) const override
Compare the item against the search criteria in aSearchData.
Definition: sch_textbox.h:91
void MirrorHorizontally(int aCenter) override
Mirror item horizontally about aCenter.
Definition: sch_textbox.cpp:70
bool HitTest(const VECTOR2I &aPosition, int aAccuracy=0) const override
Test if aPosition is inside or on the boundary of this item.
virtual wxString GetClass() const override
Return the class name.
Definition: sch_textbox.h:49
void Plot(PLOTTER *aPlotter, bool aBackground) const override
Plot the schematic item to aPlotter.
void Rotate(const VECTOR2I &aCenter) override
Rotate the item around aCenter 90 degrees in the clockwise direction.
virtual bool IsReplaceable() const override
Override this method in any derived object that supports test find and replace.
Definition: sch_textbox.h:101
BITMAPS GetMenuImage() const override
Return a pointer to an image to be used in menus.
bool operator<(const SCH_ITEM &aItem) const override
int GetTextMargin() const
Definition: sch_textbox.cpp:64
SCH_TEXTBOX(int aLineWidth=0, FILL_T aFillType=FILL_T::NO_FILL, const wxString &aText=wxEmptyString)
Definition: sch_textbox.cpp:46
KIFONT::FONT * GetDrawFont() const override
VECTOR2I GetDrawPos() const override
wxString GetShownText(int aDepth=0) const override
Return the string actually shown after processing of the base text.
bool Replace(const EDA_SEARCH_DATA &aSearchData, void *aAuxData) override
Perform a text replace using the find and replace criteria in aSearchData on items that support text ...
Definition: sch_textbox.h:96
bool IsHypertext() const override
Allow items to support hypertext actions when hovered/clicked.
Definition: sch_textbox.h:60
EDA_ITEM * Clone() const override
Create a duplicate of this item with linked list members set to NULL.
Definition: sch_textbox.h:109
static bool ClassOf(const EDA_ITEM *aItem)
Definition: sch_textbox.h:44
void Move(const VECTOR2I &aMoveVector) override
Move the item by aMoveVector to a new position.
Definition: sch_textbox.h:75
void GetMsgPanelInfo(EDA_DRAW_FRAME *aFrame, std::vector< MSG_PANEL_ITEM > &aList) override
Populate aList of MSG_PANEL_ITEM objects with it's internal state for display purposes.
wxString GetSelectMenuText(UNITS_PROVIDER *aUnitsProvider) const override
Return the text to display to be used in the selection clarification context menu when multiple items...
virtual void Rotate90(bool aClockwise)
void Print(const RENDER_SETTINGS *aSettings, const VECTOR2I &offset) override
Print a schematic item.
void MirrorVertically(int aCenter) override
Mirror item vertically about aCenter.
Definition: sch_textbox.cpp:85
void DoHypertextAction(EDA_DRAW_FRAME *aFrame) const override
void SwapData(SCH_ITEM *aItem) override
Swap the internal data structures aItem with the schematic item.
FILL_T
Definition: eda_shape.h:54
@ SCH_TEXTBOX_T
Definition: typeinfo.h:148