KiCad PCB EDA Suite
TEXTE_MODULE Class Reference

#include <class_text_mod.h>

Inheritance diagram for TEXTE_MODULE:
BOARD_ITEM EDA_TEXT EDA_ITEM KIGFX::VIEW_ITEM

Public Types

enum  TEXT_TYPE { TEXT_is_REFERENCE = 0, TEXT_is_VALUE = 1, TEXT_is_DIVERS = 2 }
 Text module type: there must be only one (and only one) for each of the reference and value texts in one module; others could be added for the user (DIVERS is French for 'others'). More...
 

Public Member Functions

 TEXTE_MODULE (MODULE *parent, TEXT_TYPE text_type=TEXT_is_DIVERS)
 
 ~TEXTE_MODULE ()
 
virtual const wxPointGetPosition () const override
 
virtual void SetPosition (const wxPoint &aPos) override
 
void SetTextAngle (double aAngle)
 
void Rotate (const wxPoint &aOffset, double aAngle) override
 Rotate text, in footprint editor (for instance in footprint rotation transform) More...
 
void Flip (const wxPoint &aCentre) override
 Flip entity during module flip. More...
 
void Mirror (const wxPoint &aCentre, bool aMirrorAroundXAxis)
 Mirror text position in footprint edition the text itself is not mirrored, and the layer not modified, only position is mirrored. More...
 
void Move (const wxPoint &aMoveVector) override
 move text in move transform, in footprint editor More...
 
void SetType (TEXT_TYPE aType)
 
TEXT_TYPE GetType () const
 
void SetEffects (const TEXTE_MODULE &aSrc)
 Function SetEffects sets the text effects from another instance. More...
 
void SwapEffects (TEXTE_MODULE &aTradingPartner)
 Function SwapEffects swaps the text effects of the two involved instances. More...
 
void SetPos0 (const wxPoint &aPos)
 
const wxPointGetPos0 () const
 
int GetLength () const
 
double GetDrawRotation () const
 
double GetDrawRotationRadians () const
 
const EDA_RECT GetBoundingBox () const override
 Function GetBoundingBox returns the orthogonal, bounding box of this object for display purposes. More...
 
void SetDrawCoord ()
 

Set absolute coordinates.

More...
 
void SetLocalCoord ()
 

Set relative coordinates.

More...
 
void Draw (EDA_DRAW_PANEL *aPanel, wxDC *aDC, GR_DRAWMODE aDrawMode, const wxPoint &aOffset=ZeroOffset) override
 Function Draw Draw the text according to the footprint pos and orient. More...
 
void DrawUmbilical (EDA_DRAW_PANEL *aPanel, wxDC *aDC, GR_DRAWMODE aDrawMode, const wxPoint &aOffset=ZeroOffset)
 Function DrawUmbilical draws a line from the TEXTE_MODULE origin to parent MODULE origin. More...
 
void GetMsgPanelInfo (std::vector< MSG_PANEL_ITEM > &aList) override
 Function GetMsgPanelInfo populates aList of MSG_PANEL_ITEM objects with it's internal state for display purposes. More...
 
virtual bool TextHitTest (const wxPoint &aPoint, int aAccuracy=0) const override
 Function TextHitTest Test if aPoint is within the bounds of this object. More...
 
virtual bool TextHitTest (const EDA_RECT &aRect, bool aContains=false, int aAccuracy=0) const override
 Function TextHitTest (overloaded) Tests if object bounding box is contained within or intersects aRect. More...
 
virtual bool HitTest (const wxPoint &aPosition) const override
 Function HitTest tests if aPosition is contained within or on the bounding area of an item. More...
 
virtual bool HitTest (const EDA_RECT &aRect, bool aContained=false, int aAccuracy=0) const override
 Function HitTest tests if the aRect intersects or contains this object (depending on aContained). More...
 
wxString GetClass () const override
 Function GetClass returns the class name. More...
 
wxString GetSelectMenuText () const override
 Function GetSelectMenuText returns the text to display to be used in the selection clarification context menu when multiple items are found at the current cursor position. More...
 
BITMAP_DEF GetMenuImage () const override
 Function GetMenuImage returns a pointer to an image to be used in menus. More...
 
EDA_ITEMClone () const override
 Function Clone creates a duplicate of this item with linked list members set to NULL. More...
 
virtual wxString GetShownText () const override
 Returns the string actually shown after processing of the base text. More...
 
virtual const BOX2I ViewBBox () const override
 Function ViewBBox() returns the bounding box of the item covering all its layers. More...
 
virtual void ViewGetLayers (int aLayers[], int &aCount) const override
 Function ViewGetLayers() Returns the all the layers within the VIEW the object is painted on. More...
 
virtual unsigned int ViewGetLOD (int aLayer, KIGFX::VIEW *aView) const override
 Function ViewGetLOD() Returns the level of detail of the item. More...
 
virtual const wxPoint GetCenter () const
 Function GetCenter() More...
 
virtual bool IsConnected () const
 Function IsConnected() Returns information if the object is derived from BOARD_CONNECTED_ITEM. More...
 
BOARD_ITEMNext () const
 
BOARD_ITEMBack () const
 
BOARD_ITEM_CONTAINERGetParent () const
 
PCB_LAYER_ID GetLayer () const
 Function GetLayer returns the primary layer this item is on. More...
 
virtual LSET GetLayerSet () const
 Function GetLayerSet returns a "layer mask", which is a bitmap of all layers on which the TRACK segment or VIA physically resides. More...
 
virtual void SetLayer (PCB_LAYER_ID aLayer)
 Function SetLayer sets the layer this item is on. More...
 
void SwapData (BOARD_ITEM *aImage)
 Swap data between aItem and aImage. More...
 
virtual bool IsOnLayer (PCB_LAYER_ID aLayer) const
 Function IsOnLayer tests to see if this object is on the given layer. More...
 
bool IsTrack () const
 Function IsTrack tests to see if this object is a track or via (or microvia). More...
 
virtual bool IsLocked () const
 Function IsLocked. More...
 
virtual void SetLocked (bool aLocked)
 Function SetLocked modifies 'lock' status for of the item. More...
 
virtual void UnLink ()
 Function UnLink detaches this object from its owner. More...
 
void DeleteStructure ()
 Function DeleteStructure deletes this object after UnLink()ing it from its owner if it has one. More...
 
virtual BOARDGetBoard () const
 Function GetBoard returns the BOARD in which this BOARD_ITEM resides, or NULL if none. More...
 
wxString GetLayerName () const
 Function GetLayerName returns the name of the PCB layer on which the item resides. More...
 
KICAD_T Type () const
 Function Type() More...
 
void SetTimeStamp (time_t aNewTimeStamp)
 
time_t GetTimeStamp () const
 
DHEADGetList () const
 
void SetParent (EDA_ITEM *aParent)
 
void SetList (DHEAD *aList)
 
bool IsNew () const
 
bool IsModified () const
 
bool IsMoving () const
 
bool IsDragging () const
 
bool IsWireImage () const
 
bool IsSelected () const
 
bool IsResized () const
 
bool IsHighlighted () const
 
bool IsBrightened () const
 
void SetWireImage ()
 
void SetSelected ()
 
void SetHighlighted ()
 
void SetBrightened ()
 
void ClearSelected ()
 
void ClearHighlighted ()
 
void ClearBrightened ()
 
void SetModified ()
 
int GetState (int type) const
 
void SetState (int type, int state)
 
STATUS_FLAGS GetStatus () const
 
void SetStatus (STATUS_FLAGS aStatus)
 
void SetFlags (STATUS_FLAGS aMask)
 
void ClearFlags (STATUS_FLAGS aMask=EDA_ITEM_ALL_FLAGS)
 
STATUS_FLAGS GetFlags () const
 
void SetForceVisible (bool aEnable)
 Function SetForceVisible is used to set and cleag force visible flag used to force the item to be drawn even if it's draw attribute is set to not visible. More...
 
virtual SEARCH_RESULT Visit (INSPECTOR inspector, void *testData, const KICAD_T scanTypes[])
 Function Visit may be re-implemented for each derived class in order to handle all the types given by its member data. More...
 
virtual bool Matches (wxFindReplaceData &aSearchData, void *aAuxData, wxPoint *aFindLocation)
 Function Matches compares the item against the search criteria in aSearchData. More...
 
bool Replace (wxFindReplaceData &aSearchData, wxString &aText)
 Helper function used in search and replace dialog Function Replace performs a text replace on aText using the find and replace criteria in aSearchData on items that support text find and replace. More...
 
virtual bool Replace (wxFindReplaceData &aSearchData, void *aAuxData=NULL)
 Function Replace performs a text replace using the find and replace criteria in aSearchData on items that support text find and replace. More...
 
virtual bool IsReplaceable () const
 Function IsReplaceable. More...
 
bool operator< (const EDA_ITEM &aItem) const
 Test if another item is less than this object. More...
 
virtual void ViewDraw (int aLayer, VIEW *aView) const
 Function ViewDraw() Draws the parts of the object belonging to layer aLayer. More...
 
VIEW_ITEM_DATA * viewPrivData () const
 
const wxString & GetText () const
 Function GetText returns the string associated with the text object. More...
 
wxString ShortenedShownText () const
 Returns a shortened version (max 15 characters) of the shown text. More...
 
virtual void SetText (const wxString &aText)
 
void SetThickness (int aNewThickness)
 Function SetThickness sets pen width. More...
 
int GetThickness () const
 Function GetThickness returns pen width. More...
 
double GetTextAngle () const
 
double GetTextAngleDegrees () const
 
double GetTextAngleRadians () const
 
void SetItalic (bool isItalic)
 
bool IsItalic () const
 
void SetBold (bool aBold)
 
bool IsBold () const
 
void SetVisible (bool aVisible)
 
bool IsVisible () const
 
void SetMirrored (bool isMirrored)
 
bool IsMirrored () const
 
void SetMultilineAllowed (bool aAllow)
 Function SetMultiLineAllowed. More...
 
bool IsMultilineAllowed () const
 
EDA_TEXT_HJUSTIFY_T GetHorizJustify () const
 
EDA_TEXT_VJUSTIFY_T GetVertJustify () const
 
void SetHorizJustify (EDA_TEXT_HJUSTIFY_T aType)
 
void SetVertJustify (EDA_TEXT_VJUSTIFY_T aType)
 
void SetEffects (const EDA_TEXT &aSrc)
 Function SetEffects sets the text effects from another instance. More...
 
void SwapEffects (EDA_TEXT &aTradingPartner)
 Function SwapEffects swaps the text effects of the two involved instances. More...
 
bool IsDefaultFormatting () const
 
void SetTextSize (const wxSize &aNewSize)
 
const wxSize & GetTextSize () const
 
void SetTextWidth (int aWidth)
 
int GetTextWidth () const
 
void SetTextHeight (int aHeight)
 
int GetTextHeight () const
 
void SetTextPos (const wxPoint &aPoint)
 
const wxPointGetTextPos () const
 
void SetTextX (int aX)
 
void SetTextY (int aY)
 
void Offset (const wxPoint &aOffset)
 
void Empty ()
 
void Draw (EDA_RECT *aClipBox, wxDC *aDC, const wxPoint &aOffset, COLOR4D aColor, GR_DRAWMODE aDrawMode, EDA_DRAW_MODE_T aDisplay_mode=FILLED, COLOR4D aAnchor_color=COLOR4D::UNSPECIFIED)
 Function Draw. More...
 
void TransformTextShapeToSegmentList (std::vector< wxPoint > &aCornerBuffer) const
 Convert the text shape to a list of segment each segment is stored as 2 wxPoints: the starting point and the ending point there are therefore 2*n points. More...
 
int LenSize (const wxString &aLine) const
 Function LenSize. More...
 
EDA_RECT GetTextBox (int aLine=-1, int aThickness=-1, bool aInvertY=false) const
 Function GetTextBox useful in multiline texts to calculate the full text or a line area (for zones filling, locate functions....) More...
 
int GetInterline (int aTextThickness=-1) const
 Return the distance between two lines of text. More...
 
wxString GetTextStyleName ()
 Function GetTextStyleName. More...
 
void GetPositionsOfLinesOfMultilineText (std::vector< wxPoint > &aPositions, int aLineCount) const
 Function GetPositionsOfLinesOfMultilineText Populates aPositions with the position of each line of a multiline text, according to the vertical justification and the rotation of the whole text. More...
 
virtual void Format (OUTPUTFORMATTER *aFormatter, int aNestLevel, int aControlBits) const
 Function Format outputs the object to aFormatter in s-expression form. More...
 

Static Public Member Functions

static bool ClassOf (const EDA_ITEM *aItem)
 
static wxString ShowShape (STROKE_T aShape)
 Function ShowShape converts the enum STROKE_T integer value to a wxString. More...
 
static std::string FormatInternalUnits (int aValue)
 Function FormatInternalUnits converts aValue from board internal units to a string appropriate for writing to file. More...
 
static std::string FormatInternalUnits (const wxPoint &aPoint)
 
static std::string FormatInternalUnits (const wxSize &aSize)
 
static std::string FormatAngle (double aAngle)
 Function FormatAngle converts aAngle from board units to a string appropriate for writing to file. More...
 
static SEARCH_RESULT IterateForward (EDA_ITEM *listStart, INSPECTOR inspector, void *testData, const KICAD_T scanTypes[])
 Function IterateForward walks through the object tree calling the inspector() on each object type requested in scanTypes. More...
 
static bool Sort (const EDA_ITEM *aLeft, const EDA_ITEM *aRight)
 Function Sort is a helper function to be used by the C++ STL sort algorithm for sorting a STL container of EDA_ITEM pointers. More...
 

Static Public Attributes

static wxPoint ZeroOffset
 A value of wxPoint(0,0) which can be passed to the Draw() functions. More...
 

Protected Member Functions

bool Matches (const wxString &aText, wxFindReplaceData &aSearchData)
 Function Matches compares aText against search criteria in aSearchData. More...
 

Static Protected Member Functions

static int getTrailingInt (wxString aStr)
 
static int getNextNumberInSequence (const std::set< int > &aSeq, bool aFillSequenceGaps)
 

Protected Attributes

PCB_LAYER_ID m_Layer
 
EDA_ITEMPnext
 next in linked list More...
 
EDA_ITEMPback
 previous in linked list More...
 
DHEADm_List
 which DLIST I am on. More...
 
EDA_ITEMm_Parent
 Linked list: Link (parent struct) More...
 
time_t m_TimeStamp
 Time stamp used for logical links. More...
 
bool m_forceVisible
 Set to true to override the visibility setting of the item. More...
 
STATUS_FLAGS m_Flags
 Flag bits for editing and other uses. More...
 
wxString m_Text
 

Private Attributes

TEXT_TYPE m_Type
 0=ref, 1=val, etc. More...
 
wxPoint m_Pos0
 text coordinates relative to the footprint anchor, orient 0. More...
 

Detailed Description

Definition at line 49 of file class_text_mod.h.

Member Enumeration Documentation

Text module type: there must be only one (and only one) for each of the reference and value texts in one module; others could be added for the user (DIVERS is French for 'others').

Reference and value always live on silkscreen (on the module side); other texts are planned to go on whatever layer the user wants (except copper, probably)

Enumerator
TEXT_is_REFERENCE 
TEXT_is_VALUE 
TEXT_is_DIVERS 

Definition at line 58 of file class_text_mod.h.

Constructor & Destructor Documentation

TEXTE_MODULE::TEXTE_MODULE ( MODULE parent,
TEXT_TYPE  text_type = TEXT_is_DIVERS 
)

Definition at line 53 of file class_text_mod.cpp.

References B_SilkS, F_SilkS, BOARD_ITEM::GetLayer(), MODULE::GetPosition(), IsBackLayer(), EDA_ITEM::m_Parent, m_Type, PCB_MODULE_T, SetDrawCoord(), BOARD_ITEM::SetLayer(), EDA_TEXT::SetMirrored(), EDA_TEXT::SetTextPos(), EDA_TEXT::SetThickness(), and EDA_ITEM::Type().

Referenced by Clone().

53  :
54  BOARD_ITEM( parent, PCB_MODULE_TEXT_T ),
55  EDA_TEXT()
56 {
57  MODULE* module = static_cast<MODULE*>( m_Parent );
58 
59  m_Type = text_type;
60 
61  // Set text thickness to a default value
62  SetThickness( Millimeter2iu( 0.15 ) );
63  SetLayer( F_SilkS );
64 
65  // Set position and give a default layer if a valid parent footprint exists
66  if( module && ( module->Type() == PCB_MODULE_T ) )
67  {
68  SetTextPos( module->GetPosition() );
69 
70  if( IsBackLayer( module->GetLayer() ) )
71  {
72  SetLayer( B_SilkS );
73  SetMirrored( true );
74  }
75  }
76 
77  SetDrawCoord();
78 }
void SetMirrored(bool isMirrored)
Definition: eda_text.h:178
EDA_TEXT(const wxString &text=wxEmptyString)
Definition: eda_text.cpp:54
KICAD_T Type() const
Function Type()
Definition: base_struct.h:198
EDA_ITEM * m_Parent
Linked list: Link (parent struct)
Definition: base_struct.h:168
virtual void SetLayer(PCB_LAYER_ID aLayer)
Function SetLayer sets the layer this item is on.
bool IsBackLayer(PCB_LAYER_ID aLayerId)
Layer classification: check if it's a back layer.
const wxPoint & GetPosition() const override
Definition: class_module.h:155
void SetTextPos(const wxPoint &aPoint)
Definition: eda_text.h:223
class MODULE, a footprint
Definition: typeinfo.h:101
BOARD_ITEM(BOARD_ITEM *aParent, KICAD_T idtype)
class TEXTE_MODULE, text in a footprint
Definition: typeinfo.h:105
PCB_LAYER_ID GetLayer() const
Function GetLayer returns the primary layer this item is on.
void SetDrawCoord()
Set absolute coordinates.
TEXT_TYPE m_Type
0=ref, 1=val, etc.
void SetThickness(int aNewThickness)
Function SetThickness sets pen width.
Definition: eda_text.h:148
TEXTE_MODULE::~TEXTE_MODULE ( )

Definition at line 81 of file class_text_mod.cpp.

82 {
83 }

Member Function Documentation

BOARD_ITEM* BOARD_ITEM::Back ( ) const
inlineinherited

Definition at line 125 of file class_board_item.h.

References EDA_ITEM::Pback.

Referenced by PCB_EDIT_FRAME::Delete_Segment_Edge().

125 { return static_cast<BOARD_ITEM*>( Pback ); }
EDA_ITEM * Pback
previous in linked list
Definition: base_struct.h:165
Class BOARD_ITEM is a base class for any item which can be embedded within the BOARD container class...
static bool TEXTE_MODULE::ClassOf ( const EDA_ITEM aItem)
inlinestatic

Definition at line 72 of file class_text_mod.h.

References PCB_MODULE_TEXT_T, and EDA_ITEM::Type().

73  {
74  return aItem && PCB_MODULE_TEXT_T == aItem->Type();
75  }
KICAD_T Type() const
Function Type()
Definition: base_struct.h:198
class TEXTE_MODULE, text in a footprint
Definition: typeinfo.h:105
void EDA_ITEM::ClearBrightened ( )
inlineinherited

Definition at line 233 of file base_struct.h.

References BRIGHTENED, and EDA_ITEM::ClearFlags().

Referenced by SELECTION_TOOL::disambiguationMenu().

233 { ClearFlags( BRIGHTENED ); }
#define BRIGHTENED
item is drawn with a bright contour
Definition: base_struct.h:137
void ClearFlags(STATUS_FLAGS aMask=EDA_ITEM_ALL_FLAGS)
Definition: base_struct.h:254
void EDA_ITEM::ClearFlags ( STATUS_FLAGS  aMask = EDA_ITEM_ALL_FLAGS)
inlineinherited

Definition at line 254 of file base_struct.h.

Referenced by Abort_Edit_Pcb_Text(), Abort_EditEdge(), Abort_Move_ModuleOutline(), Abort_Move_Pad(), Abort_MoveOrCopyModule(), Abort_MoveTrack(), Abort_Zone_Create_Outline(), Abort_Zone_Move_Corner_Or_Outlines(), AbortMoveAndEditTarget(), abortMoveBitmap(), AbortMoveDimensionText(), abortMoveItem(), AbortMoveTextModule(), AbortPinMove(), SCH_SCREEN::addConnectedItemsToBlock(), SCH_EDIT_FRAME::addCurrentItemToList(), PNS_KICAD_IFACE::AddItem(), PCB_EDIT_FRAME::AppendBoardFile(), SCH_EDIT_FRAME::AppendOneEEProject(), PCB_EDIT_FRAME::Begin_DrawSegment(), FOOTPRINT_EDIT_FRAME::Begin_Edge_Module(), PCB_EDIT_FRAME::Begin_Zone(), SCH_EDIT_FRAME::BeginSegment(), PCB_EDIT_FRAME::Block_Delete(), PCB_EDIT_FRAME::Block_Flip(), PCB_EDIT_FRAME::Block_Move(), PCB_EDIT_FRAME::Change_Side_Module(), SCH_SCREEN::ClearAnnotation(), EDA_ITEM::ClearBrightened(), EDA_ITEM::ClearHighlighted(), ClearMarkItems(), clearModuleItemFlags(), EDA_ITEM::ClearSelected(), SCH_EDIT_FRAME::ConvertPart(), SCH_EDIT_FRAME::copyBlockItems(), CopyMarkedItems(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copyPanelToOptions(), LIB_PART::CopySelectedItems(), MWAVE::CreateMicrowaveInductor(), FOOTPRINT_EDIT_FRAME::CreateTextModule(), PCB_EDIT_FRAME::Delete_LastCreatedCorner(), PCB_EDIT_FRAME::Delete_Segment_Edge(), LIB_PART::DeleteSelectedItems(), DIALOG_LIB_EDIT_PIN::DIALOG_LIB_EDIT_PIN(), PCB_EDIT_FRAME::EditDimension(), PCB_EDIT_FRAME::End_Edge(), FOOTPRINT_EDIT_FRAME::End_Edge_Module(), PCB_EDIT_FRAME::End_Move_Zone_Corner_Or_Outlines(), PCB_EDIT_FRAME::End_Zone(), SCH_EDIT_FRAME::EndSegment(), PCB_EDIT_FRAME::Exchange_Module(), ExitSheet(), SCH_SCREEN::GetConnection(), PCB_BASE_FRAME::GlobalChange_PadSettings(), PCB_BASE_FRAME::Import_Pad_Settings(), SCH_JUNCTION::IsSelectStateChanged(), SCH_NO_CONNECT::IsSelectStateChanged(), SCH_MARKER::IsSelectStateChanged(), SCH_BUS_ENTRY_BASE::IsSelectStateChanged(), SCH_LINE::IsSelectStateChanged(), SCH_BITMAP::IsSelectStateChanged(), SCH_TEXT::IsSelectStateChanged(), SCH_COMPONENT::IsSelectStateChanged(), SCH_SHEET::IsSelectStateChanged(), FOOTPRINT_EDIT_FRAME::Load_Module_From_BOARD(), MarkItemsInBloc(), MirrorX(), MirrorY(), moveBitmap(), FOOTPRINT_EDIT_FRAME::OnEditItemRequest(), LIB_EDIT_FRAME::OnEditPin(), FOOTPRINT_EDIT_FRAME::OnLeftClick(), SCH_EDIT_FRAME::OnLeftClick(), PCB_EDIT_FRAME::OnLeftClick(), LIB_EDIT_FRAME::OnRotateItem(), SCH_EDIT_FRAME::OnSelectUnit(), SCH_FIELD::Place(), PCB_EDIT_FRAME::Place_DrawItem(), FOOTPRINT_EDIT_FRAME::Place_EdgeMod(), PCB_EDIT_FRAME::Place_Texte_Pcb(), PCB_EDIT_FRAME::PlaceDimensionText(), PCB_EDIT_FRAME::PlaceDraggedOrMovedTrackSegment(), PCB_BASE_FRAME::PlaceModule(), PCB_BASE_FRAME::PlacePad(), PCB_EDIT_FRAME::PlaceTarget(), DRAWING_TOOL::PlaceText(), PCB_BASE_FRAME::PlaceTexteModule(), FOOTPRINT_EDIT_FRAME::Process_Special_Functions(), LIB_EDIT_FRAME::Process_Special_Functions(), EDIT_TOOL::Properties(), BOARD_COMMIT::Push(), PCB_BASE_EDIT_FRAME::PutDataInPreviousState(), SCH_EDIT_FRAME::PutDataInPreviousState(), SCH_EDIT_FRAME::RepeatDrawItem(), LIB_EDIT_FRAME::RepeatPinItem(), BOARD_COMMIT::Revert(), PCB_BASE_FRAME::Rotate_Module(), RotateListOfItems(), LIB_PIN::Save(), PCB_BASE_EDIT_FRAME::SaveCopyInUndoList(), FOOTPRINT_VIEWER_FRAME::SelectCurrentFootprint(), SCH_EDIT_FRAME::SetRepeatItem(), PCB_EDIT_FRAME::Start_DragTrackSegmentAndKeepSlope(), PCB_EDIT_FRAME::StartMoveModule(), PCB_EDIT_FRAME::StartMoveOneNodeOrSegment(), and DIALOG_PAD_PROPERTIES::TransferDataFromWindow().

254 { m_Flags &= ~aMask; }
STATUS_FLAGS m_Flags
Flag bits for editing and other uses.
Definition: base_struct.h:175
void EDA_ITEM::ClearHighlighted ( )
inlineinherited

Definition at line 232 of file base_struct.h.

References EDA_ITEM::ClearFlags(), and HIGHLIGHTED.

232 { ClearFlags( HIGHLIGHTED ); }
#define HIGHLIGHTED
item is drawn in normal colors, when the rest is darkened
Definition: base_struct.h:136
void ClearFlags(STATUS_FLAGS aMask=EDA_ITEM_ALL_FLAGS)
Definition: base_struct.h:254
void EDA_ITEM::ClearSelected ( )
inlineinherited

Definition at line 231 of file base_struct.h.

References EDA_ITEM::ClearFlags(), and SELECTED.

Referenced by POINT_EDITOR::addCorner(), EDIT_TOOL::Duplicate(), GAL_ARRAY_CREATOR::prePushAction(), SELECTION_TOOL::unselectVisually(), and PCB_EDITOR_CONTROL::ZoneDuplicate().

231 { ClearFlags( SELECTED ); }
#define SELECTED
Definition: base_struct.h:120
void ClearFlags(STATUS_FLAGS aMask=EDA_ITEM_ALL_FLAGS)
Definition: base_struct.h:254
EDA_ITEM * TEXTE_MODULE::Clone ( ) const
overridevirtual

Function Clone creates a duplicate of this item with linked list members set to NULL.

The default version will return NULL in release builds and likely crash the program. In debug builds, a warning message indicating the derived class has not implemented cloning. This really should be a pure virtual function. Due to the fact that there are so many objects derived from EDA_ITEM, the decision was made to return NULL until all the objects derived from EDA_ITEM implement cloning. Once that happens, this function should be made pure.

Returns
A clone of the item.

Reimplemented from EDA_ITEM.

Definition at line 428 of file class_text_mod.cpp.

References TEXTE_MODULE().

429 {
430  return new TEXTE_MODULE( *this );
431 }
TEXTE_MODULE(MODULE *parent, TEXT_TYPE text_type=TEXT_is_DIVERS)
void BOARD_ITEM::DeleteStructure ( )
inherited
void TEXTE_MODULE::Draw ( EDA_DRAW_PANEL aPanel,
wxDC *  aDC,
GR_DRAWMODE  aDrawMode,
const wxPoint aOffset = ZeroOffset 
)
overridevirtual

Function Draw Draw the text according to the footprint pos and orient.

Parameters
aPanel= draw panel, Used to know the clip box
aDC= Current Device Context
aOffset= draw offset (usually wxPoint(0,0)
aDrawMode= GR_OR, GR_XOR..

Implements BOARD_ITEM.

Definition at line 225 of file class_text_mod.cpp.

References BROWN, color, DARKDARKGRAY, DIM_ANCRE_TEXTE, DrawGraphicText(), BOARD_ITEM::GetBoard(), GetBoundingBox(), EDA_DRAW_PANEL::GetClipBox(), EDA_DRAW_PANEL::GetDisplayOptions(), GetDrawRotation(), EDA_TEXT::GetHorizJustify(), BOARD_ITEM::GetLayer(), EDA_DRAW_PANEL::GetParent(), EDA_DRAW_PANEL::GetScreen(), GetShownText(), EDA_TEXT::GetTextPos(), EDA_TEXT::GetTextSize(), EDA_TEXT::GetThickness(), EDA_TEXT::GetVertJustify(), GR_ALLOW_HIGHCONTRAST, GRDrawAnchor(), GRRect(), GRSetDrawMode(), IsBackLayer(), EDA_TEXT::IsBold(), BOARD::IsElementVisible(), IsFrontLayer(), EDA_TEXT::IsItalic(), BOARD::IsLayerVisible(), EDA_TEXT::IsMirrored(), BOARD_ITEM::IsOnLayer(), EDA_TEXT::IsVisible(), LAYER_ANCHOR, LAYER_MOD_TEXT_BK, LAYER_MOD_TEXT_FR, LAYER_MOD_TEXT_INVISIBLE, DISPLAY_OPTIONS::m_ContrastModeDisplay, DISPLAY_OPTIONS::m_DisplayModTextFill, BOARD_ITEM::m_Layer, EDA_ITEM::m_Parent, SKETCH, wxPoint::x, and wxPoint::y.

Referenced by AbortMoveTextModule(), FOOTPRINT_EDIT_FRAME::CreateTextModule(), MODULE::Draw(), Print_Module(), PCB_BASE_FRAME::RotateTextModule(), Show_MoveTexte_Module(), and DialogEditModuleText::TransferDataFromWindow().

227 {
228  if( aPanel == NULL )
229  return;
230 
231  /* parent must *not* be NULL (a footprint text without a footprint
232  parent has no sense) */
233  wxASSERT( m_Parent );
234 
235  BOARD* brd = GetBoard( );
236 
237  auto frame = static_cast<PCB_BASE_FRAME*> ( aPanel->GetParent() );
238  auto color = frame->Settings().Colors().GetLayerColor( GetLayer() );
239 
240  PCB_LAYER_ID text_layer = GetLayer();
241 
242  if( !brd->IsLayerVisible( m_Layer )
243  || ( IsFrontLayer( text_layer ) && !brd->IsElementVisible( LAYER_MOD_TEXT_FR ) )
244  || ( IsBackLayer( text_layer ) && !brd->IsElementVisible( LAYER_MOD_TEXT_BK ) ) )
245  return;
246 
247  // Invisible texts are still drawn (not plotted) in LAYER_MOD_TEXT_INVISIBLE
248  // Just because we must have to edit them (at least to make them visible)
249  if( !IsVisible() )
250  {
252  return;
253 
254  color = frame->Settings().Colors().GetItemColor( LAYER_MOD_TEXT_INVISIBLE );
255  }
256 
257  DISPLAY_OPTIONS* displ_opts = (DISPLAY_OPTIONS*)aPanel->GetDisplayOptions();
258 
259  // shade text if high contrast mode is active
260  if( ( aDrawMode & GR_ALLOW_HIGHCONTRAST ) && displ_opts && displ_opts->m_ContrastModeDisplay )
261  {
262  PCB_LAYER_ID curr_layer = ( (PCB_SCREEN*) aPanel->GetScreen() )->m_Active_Layer;
263 
264  if( !IsOnLayer( curr_layer ) )
266  }
267 
268  // Draw mode compensation for the width
269  int width = GetThickness();
270 
271  if( displ_opts && displ_opts->m_DisplayModTextFill == SKETCH )
272  width = -width;
273 
274  GRSetDrawMode( aDC, aDrawMode );
275  wxPoint pos = GetTextPos() - aOffset;
276 
277  // Draw the text anchor point
278  if( brd->IsElementVisible( LAYER_ANCHOR ) )
279  {
280  COLOR4D anchor_color = frame->Settings().Colors().GetItemColor( LAYER_ANCHOR );
281  GRDrawAnchor( aPanel->GetClipBox(), aDC, pos.x, pos.y, DIM_ANCRE_TEXTE, anchor_color );
282  }
283 
284  // Draw the text proper, with the right attributes
285  wxSize size = GetTextSize();
286  double orient = GetDrawRotation();
287 
288  // If the text is mirrored : negate size.x (mirror / Y axis)
289  if( IsMirrored() )
290  size.x = -size.x;
291 
292  DrawGraphicText( aPanel->GetClipBox(), aDC, pos, color, GetShownText(), orient,
293  size, GetHorizJustify(), GetVertJustify(),
294  width, IsItalic(), IsBold() );
295 
296  // Enable these line to draw the bounding box (debug test purpose only)
297 #if 0
298  {
299  EDA_RECT BoundaryBox = GetBoundingBox();
300  GRRect( aPanel->GetClipBox(), aDC, BoundaryBox, 0, BROWN );
301  }
302 #endif
303 }
void DrawGraphicText(EDA_RECT *aClipBox, wxDC *aDC, const wxPoint &aPos, COLOR4D aColor, const wxString &aText, double aOrient, const wxSize &aSize, enum EDA_TEXT_HJUSTIFY_T aH_justify, enum EDA_TEXT_VJUSTIFY_T aV_justify, int aWidth, bool aItalic, bool aBold, void(*aCallback)(int x0, int y0, int xf, int yf), PLOTTER *aPlotter)
Function DrawGraphicText Draw a graphic text (like module texts)
Definition: drawtxt.cpp:122
bool IsElementVisible(GAL_LAYER_ID LAYER_aPCB) const
Function IsElementVisible tests whether a given element category is visible.
EDA_ITEM * m_Parent
Linked list: Link (parent struct)
Definition: base_struct.h:168
double GetDrawRotation() const
void GRSetDrawMode(wxDC *DC, GR_DRAWMODE draw_mode)
Definition: gr_basic.cpp:290
const wxPoint & GetTextPos() const
Definition: eda_text.h:224
bool IsItalic() const
Definition: eda_text.h:170
virtual bool IsOnLayer(PCB_LAYER_ID aLayer) const
Function IsOnLayer tests to see if this object is on the given layer.
anchor of items having an anchor point (texts, footprints)
bool IsBackLayer(PCB_LAYER_ID aLayerId)
Layer classification: check if it's a back layer.
void GRDrawAnchor(EDA_RECT *aClipBox, wxDC *aDC, int x, int y, int aSize, COLOR4D aColor)
Definition: gr_basic.cpp:1267
virtual wxString GetShownText() const override
Returns the string actually shown after processing of the base text.
EDA_TEXT_HJUSTIFY_T GetHorizJustify() const
Definition: eda_text.h:190
bool IsBold() const
Definition: eda_text.h:173
int GetThickness() const
Function GetThickness returns pen width.
Definition: eda_text.h:154
PCB_LAYER_ID m_Layer
void GRRect(EDA_RECT *aClipBox, wxDC *aDC, int x1, int y1, int x2, int y2, COLOR4D aColor)
Definition: gr_basic.cpp:1077
PCB_LAYER_ID
A quick note on layer IDs:
bool m_ContrastModeDisplay
Definition: pcbstruct.h:85
EDA_RECT * GetClipBox()
const EDA_RECT GetBoundingBox() const override
Function GetBoundingBox returns the orthogonal, bounding box of this object for display purposes...
EDA_DRAW_FRAME * GetParent() const
Definition: draw_panel.cpp:175
#define DIM_ANCRE_TEXTE
Definition: eda_text.h:75
Class DISPLAY_OPTIONS handles display options like enable/disable some optional drawings.
Definition: pcbstruct.h:62
bool IsFrontLayer(PCB_LAYER_ID aLayerId)
Layer classification: check if it's a front layer.
EDA_TEXT_VJUSTIFY_T GetVertJustify() const
Definition: eda_text.h:191
PCB_LAYER_ID GetLayer() const
Function GetLayer returns the primary layer this item is on.
Class BOARD holds information pertinent to a Pcbnew printed circuit board.
Definition: class_board.h:169
bool IsMirrored() const
Definition: eda_text.h:179
bool IsVisible() const
Definition: eda_text.h:176
Class EDA_RECT handles the component boundary box.
BASE_SCREEN * GetScreen()
Definition: draw_panel.cpp:188
virtual BOARD * GetBoard() const
Function GetBoard returns the BOARD in which this BOARD_ITEM resides, or NULL if none.
const wxSize & GetTextSize() const
Definition: eda_text.h:215
void * GetDisplayOptions()
Function GetDisplayOptions A way to pass info to draw functions.
Definition: draw_panel.cpp:182
bool m_DisplayModTextFill
Definition: pcbstruct.h:70
class PCB_BASE_FRAME basic PCB main window class for Pcbnew, Gerbview, and CvPcb footprint viewer...
bool IsLayerVisible(PCB_LAYER_ID aLayer) const
Function IsLayerVisible is a proxy function that calls the correspondent function in m_BoardSettings ...
Definition: class_board.h:443
Class COLOR4D is the color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:39
Definition: colors.h:62
void EDA_TEXT::Draw ( EDA_RECT aClipBox,
wxDC *  aDC,
const wxPoint aOffset,
COLOR4D  aColor,
GR_DRAWMODE  aDrawMode,
EDA_DRAW_MODE_T  aDisplay_mode = FILLED,
COLOR4D  aAnchor_color = COLOR4D::UNSPECIFIED 
)
inherited

Function Draw.

Parameters
aClipBox= the clipping rect, or NULL if no clipping
aDC= the current Device Context
aOffset= draw offset (usually (0,0))
aColor= text color
aDrawMode= GR_OR, GR_XOR.., -1 to use the current mode.
aDisplay_mode= FILLED or SKETCH
aAnchor_color= anchor color ( COLOR4D::UNSPECIFIED = do not draw anchor ).

Definition at line 292 of file eda_text.cpp.

References DIM_ANCRE_TEXTE, EDA_TEXT::drawOneLineOfText(), EDA_TEXT::GetPositionsOfLinesOfMultilineText(), EDA_TEXT::GetShownText(), EDA_TEXT::GetTextPos(), GRDrawAnchor(), EDA_TEXT::IsMultilineAllowed(), wxStringSplit(), wxPoint::x, and wxPoint::y.

Referenced by TEXTE_PCB::Draw(), SCH_TEXT::Draw(), SCH_GLOBALLABEL::Draw(), SCH_HIERLABEL::Draw(), and WS_DRAW_ITEM_TEXT::DrawWsItem().

295 {
296  if( IsMultilineAllowed() )
297  {
298  std::vector<wxPoint> positions;
299  wxArrayString strings;
300  wxStringSplit( GetShownText(), strings, '\n' );
301 
302  positions.reserve( strings.Count() );
303 
304  GetPositionsOfLinesOfMultilineText( positions, strings.Count() );
305 
306  for( unsigned ii = 0; ii < strings.Count(); ii++ )
307  {
308  wxString& txt = strings.Item( ii );
309  drawOneLineOfText( aClipBox, aDC, aOffset, aColor,
310  aDrawMode, aFillMode, txt, positions[ii] );
311  }
312  }
313  else
314  drawOneLineOfText( aClipBox, aDC, aOffset, aColor,
315  aDrawMode, aFillMode, GetShownText(), GetTextPos() );
316 
317  // Draw text anchor, if requested
318  if( aAnchor_color != COLOR4D::UNSPECIFIED )
319  {
320  GRDrawAnchor( aClipBox, aDC,
321  GetTextPos().x + aOffset.x, GetTextPos().y + aOffset.y,
322  DIM_ANCRE_TEXTE, aAnchor_color );
323  }
324 }
void wxStringSplit(const wxString &aText, wxArrayString &aStrings, wxChar aSplitter)
Function wxStringSplit splits aString to a string list separated at aSplitter.
Definition: common.cpp:137
bool IsMultilineAllowed() const
Definition: eda_text.h:188
const wxPoint & GetTextPos() const
Definition: eda_text.h:224
void GRDrawAnchor(EDA_RECT *aClipBox, wxDC *aDC, int x, int y, int aSize, COLOR4D aColor)
Definition: gr_basic.cpp:1267
void drawOneLineOfText(EDA_RECT *aClipBox, wxDC *aDC, const wxPoint &aOffset, COLOR4D aColor, GR_DRAWMODE aDrawMode, EDA_DRAW_MODE_T aFillMode, const wxString &aText, const wxPoint &aPos)
Function drawOneLineOfText draws a single text line.
Definition: eda_text.cpp:369
virtual wxString GetShownText() const
Returns the string actually shown after processing of the base text.
Definition: eda_text.h:135
void GetPositionsOfLinesOfMultilineText(std::vector< wxPoint > &aPositions, int aLineCount) const
Function GetPositionsOfLinesOfMultilineText Populates aPositions with the position of each line of a ...
Definition: eda_text.cpp:327
#define DIM_ANCRE_TEXTE
Definition: eda_text.h:75
void TEXTE_MODULE::DrawUmbilical ( EDA_DRAW_PANEL aPanel,
wxDC *  aDC,
GR_DRAWMODE  aDrawMode,
const wxPoint aOffset = ZeroOffset 
)

Function DrawUmbilical draws a line from the TEXTE_MODULE origin to parent MODULE origin.

Parameters
aPanel= the current DrawPanel
aDC= the current device context
aDrawMode= drawing mode, typically GR_XOR
aOffset= offset for TEXTE_MODULE

Definition at line 306 of file class_text_mod.cpp.

References EDA_DRAW_PANEL::GetClipBox(), BOARD_ITEM::GetParent(), MODULE::GetPosition(), EDA_TEXT::GetTextPos(), GR_XOR, GRLine(), GRSetDrawMode(), and UMBILICAL_COLOR.

Referenced by AbortMoveTextModule(), PCB_BASE_FRAME::PlaceTexteModule(), and Show_MoveTexte_Module().

310 {
311  MODULE* parent = static_cast<MODULE*>( GetParent() );
312 
313  if( !parent )
314  return;
315 
316  GRSetDrawMode( aDC, GR_XOR );
317  GRLine( aPanel->GetClipBox(), aDC,
318  parent->GetPosition(), GetTextPos() + aOffset,
319  0, UMBILICAL_COLOR);
320 }
BOARD_ITEM_CONTAINER * GetParent() const
void GRSetDrawMode(wxDC *DC, GR_DRAWMODE draw_mode)
Definition: gr_basic.cpp:290
const wxPoint & GetTextPos() const
Definition: eda_text.h:224
void GRLine(EDA_RECT *ClipBox, wxDC *DC, int x1, int y1, int x2, int y2, int width, COLOR4D Color)
Definition: gr_basic.cpp:352
const wxPoint & GetPosition() const override
Definition: class_module.h:155
#define UMBILICAL_COLOR
EDA_RECT * GetClipBox()
void EDA_TEXT::Empty ( )
inlineinherited

Definition at line 231 of file eda_text.h.

References EDA_TEXT::m_Text.

Referenced by SCH_COMPONENT::Load(), LIB_PART::Load(), and SCH_LEGACY_PLUGIN_CACHE::loadPart().

231 { m_Text.Empty(); }
wxString m_Text
Definition: eda_text.h:346
void TEXTE_MODULE::Flip ( const wxPoint aCentre)
overridevirtual

Flip entity during module flip.

Reimplemented from BOARD_ITEM.

Definition at line 136 of file class_text_mod.cpp.

References FlipLayer(), BOARD_ITEM::GetLayer(), EDA_TEXT::GetTextAngle(), EDA_TEXT::GetTextPos(), IsBackLayer(), Mirror(), BOARD_ITEM::SetLayer(), SetLocalCoord(), EDA_TEXT::SetMirrored(), SetTextAngle(), EDA_TEXT::SetTextY(), and wxPoint::y.

Referenced by MODULE::Flip().

137 {
138  // flipping the footprint is relative to the X axis
139  SetTextY( ::Mirror( GetTextPos().y, aCentre.y ) );
140 
142 
143  SetLayer( FlipLayer( GetLayer() ) );
145  SetLocalCoord();
146 }
void SetMirrored(bool isMirrored)
Definition: eda_text.h:178
const wxPoint & GetTextPos() const
Definition: eda_text.h:224
virtual void SetLayer(PCB_LAYER_ID aLayer)
Function SetLayer sets the layer this item is on.
bool IsBackLayer(PCB_LAYER_ID aLayerId)
Layer classification: check if it's a back layer.
PCB_LAYER_ID FlipLayer(PCB_LAYER_ID aLayerId, int aCopperLayersCount)
Function FlippedLayerNumber.
Definition: lset.cpp:445
double GetTextAngle() const
Definition: eda_text.h:164
PCB_LAYER_ID GetLayer() const
Function GetLayer returns the primary layer this item is on.
void SetLocalCoord()
Set relative coordinates.
void Mirror(const wxPoint &aCentre, bool aMirrorAroundXAxis)
Mirror text position in footprint edition the text itself is not mirrored, and the layer not modified...
void SetTextAngle(double aAngle)
void SetTextY(int aY)
Definition: eda_text.h:227
void EDA_TEXT::Format ( OUTPUTFORMATTER aFormatter,
int  aNestLevel,
int  aControlBits 
) const
virtualinherited

Function Format outputs the object to aFormatter in s-expression form.

Parameters
aFormatterThe OUTPUTFORMATTER object to write to.
aNestLevelThe indentation next level.
aControlBitsThe control bit definition for object specific formatting.
Exceptions
IO_ERRORon write error.

Definition at line 430 of file eda_text.cpp.

References CTL_OMIT_HIDE, DEFAULT_SIZE_TEXT, FMT_IU, EDA_TEXT::GetHorizJustify(), EDA_TEXT::GetTextHeight(), EDA_TEXT::GetTextWidth(), EDA_TEXT::GetThickness(), EDA_TEXT::GetVertJustify(), GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_TOP, EDA_TEXT::IsBold(), EDA_TEXT::IsDefaultFormatting(), EDA_TEXT::IsItalic(), EDA_TEXT::IsMirrored(), EDA_TEXT::IsVisible(), and OUTPUTFORMATTER::Print().

431 {
432 #ifndef GERBVIEW // Gerbview does not use EDA_TEXT::Format
433  // and does not define FMT_IU, used here
434  // however this function should exist
435  if( !IsDefaultFormatting() )
436  {
437  aFormatter->Print( aNestLevel+1, "(effects" );
438 
439  if( ( GetTextWidth() != Mils2iu( DEFAULT_SIZE_TEXT ) )
440  || ( GetTextHeight() != Mils2iu( DEFAULT_SIZE_TEXT ) )
441  || ( GetThickness() != 0 ) || IsBold() || IsItalic() )
442  {
443  aFormatter->Print( 0, " (font" );
444 
445  // Add font support here at some point in the future.
446 
447  if( GetTextWidth() != Mils2iu( DEFAULT_SIZE_TEXT )
448  || GetTextHeight() != Mils2iu( DEFAULT_SIZE_TEXT ) )
449  {
450  aFormatter->Print( 0, " (size %s %s)",
451  FMT_IU( GetTextHeight() ).c_str(),
452  FMT_IU( GetTextWidth() ).c_str()
453  );
454  }
455 
456  if( GetThickness() )
457  aFormatter->Print( 0, " (thickness %s)", FMT_IU( GetThickness() ).c_str() );
458 
459  if( IsBold() )
460  aFormatter->Print( 0, " bold" );
461 
462  if( IsItalic() )
463  aFormatter->Print( 0, " italic" );
464 
465  aFormatter->Print( 0, ")");
466  }
467 
470  {
471  aFormatter->Print( 0, " (justify");
472 
474  aFormatter->Print( 0, (GetHorizJustify() == GR_TEXT_HJUSTIFY_LEFT) ? " left" : " right" );
475 
477  aFormatter->Print( 0, (GetVertJustify() == GR_TEXT_VJUSTIFY_TOP) ? " top" : " bottom" );
478 
479  if( IsMirrored() )
480  aFormatter->Print( 0, " mirror" );
481 
482  aFormatter->Print( 0, ")" );
483  }
484 
485  if( !(aControlBits & CTL_OMIT_HIDE) && !IsVisible() )
486  aFormatter->Print( 0, " hide" );
487 
488  aFormatter->Print( 0, ")\n" );
489  }
490 #endif
491 }
#define DEFAULT_SIZE_TEXT
This is the "default-of-the-default" hardcoded text size; individual application define their own def...
Definition: eda_text.h:74
bool IsItalic() const
Definition: eda_text.h:170
int GetTextWidth() const
Definition: eda_text.h:218
EDA_TEXT_HJUSTIFY_T GetHorizJustify() const
Definition: eda_text.h:190
bool IsBold() const
Definition: eda_text.h:173
int GetThickness() const
Function GetThickness returns pen width.
Definition: eda_text.h:154
bool IsDefaultFormatting() const
Definition: eda_text.cpp:414
#define FMT_IU
EDA_TEXT_VJUSTIFY_T GetVertJustify() const
Definition: eda_text.h:191
bool IsMirrored() const
Definition: eda_text.h:179
bool IsVisible() const
Definition: eda_text.h:176
int GetTextHeight() const
Definition: eda_text.h:221
int PRINTF_FUNC Print(int nestLevel, const char *fmt,...)
Function Print formats and writes text to the output stream.
Definition: richio.cpp:408
#define CTL_OMIT_HIDE
Definition: eda_text.h:42
std::string BOARD_ITEM::FormatAngle ( double  aAngle)
staticinherited

Function FormatAngle converts aAngle from board units to a string appropriate for writing to file.

Note
Internal angles for board items can be either degrees or tenths of degree on how KiCad is built.
Parameters
aAngleA angle value to convert.
Returns
A std::string object containing the converted angle.

Definition at line 170 of file class_board_item.cpp.

171 {
172  char temp[50];
173 
174  int len = snprintf( temp, sizeof(temp), "%.10g", aAngle / 10.0 );
175 
176  return std::string( temp, len );
177 }
std::string BOARD_ITEM::FormatInternalUnits ( int  aValue)
staticinherited

Function FormatInternalUnits converts aValue from board internal units to a string appropriate for writing to file.

Note
Internal units for board items can be either deci-mils or nanometers depending on how KiCad is build.
Parameters
aValueA coordinate value to convert.
Returns
A std::string object containing the converted value.

Definition at line 89 of file class_board_item.cpp.

Referenced by checkConnectedTo(), ConvertOutlineToPolygon(), BOARD_ITEM::FormatInternalUnits(), and BOARD::TracksInNetBetweenPoints().

90 {
91 #if 1
92 
93  char buf[50];
94  int len;
95  double mm = aValue / IU_PER_MM;
96 
97  if( mm != 0.0 && fabs( mm ) <= 0.0001 )
98  {
99  len = sprintf( buf, "%.10f", mm );
100 
101  while( --len > 0 && buf[len] == '0' )
102  buf[len] = '\0';
103 
104  if( buf[len] == '.' )
105  buf[len] = '\0';
106  else
107  ++len;
108  }
109  else
110  {
111  len = sprintf( buf, "%.10g", mm );
112  }
113 
114  return std::string( buf, len );
115 
116 #else
117 
118  // Assume aValue is in nanometers, and that we want the result in millimeters,
119  // and that int is 32 bits wide. Then perform an alternative algorithm.
120  // Can be used to verify that the above algorithm is correctly generating text.
121  // Convert aValue into an integer string, then insert a decimal point manually.
122  // Results are the same as above general purpose algorithm.
123 
124  wxASSERT( sizeof(int) == 4 );
125 
126  if( aValue == 0 )
127  return std::string( 1, '0' );
128  else
129  {
130  char buf[50];
131  int len = sprintf( buf, aValue > 0 ? "%06d" : "%07d", aValue ); // optionally pad w/leading zeros
132 
133  std::string ret( buf, len );
134 
135  std::string::iterator it = ret.end() - 1; // last byte
136 
137  // insert '.' at 6 positions from end, dividing by 10e6 (a million), nm => mm
138  std::string::iterator decpoint = ret.end() - 6;
139 
140  // truncate trailing zeros, up to decimal point position
141  for( ; *it=='0' && it >= decpoint; --it )
142  ret.erase( it ); // does not invalidate iterators it or decpoint
143 
144  if( it >= decpoint )
145  {
146  ret.insert( decpoint, '.' );
147 
148  // decpoint is invalidated here, after insert()
149 
150 #if 1 // want a leading zero when decimal point is in first position?
151  if( ret[0] == '.' )
152  {
153  // insert leading zero ahead of decimal point.
154  ret.insert( ret.begin(), '0' );
155  }
156  else if( ret[0]=='-' && ret[1]=='.' )
157  {
158  ret.insert( ret.begin() + 1, '0' );
159  }
160 #endif
161  }
162 
163  return ret;
164  }
165 
166 #endif
167 }
std::string BOARD_ITEM::FormatInternalUnits ( const wxPoint aPoint)
staticinherited

Definition at line 180 of file class_board_item.cpp.

References BOARD_ITEM::FormatInternalUnits(), wxPoint::x, and wxPoint::y.

181 {
182  return FormatInternalUnits( aPoint.x ) + " " + FormatInternalUnits( aPoint.y );
183 }
static std::string FormatInternalUnits(int aValue)
Function FormatInternalUnits converts aValue from board internal units to a string appropriate for wr...
std::string BOARD_ITEM::FormatInternalUnits ( const wxSize &  aSize)
staticinherited

Definition at line 186 of file class_board_item.cpp.

References BOARD_ITEM::FormatInternalUnits().

187 {
188  return FormatInternalUnits( aSize.GetWidth() ) + " " + FormatInternalUnits( aSize.GetHeight() );
189 }
static std::string FormatInternalUnits(int aValue)
Function FormatInternalUnits converts aValue from board internal units to a string appropriate for wr...
BOARD * BOARD_ITEM::GetBoard ( ) const
virtualinherited

Function GetBoard returns the BOARD in which this BOARD_ITEM resides, or NULL if none.

Definition at line 63 of file class_board_item.cpp.

References BOARD_ITEM::GetBoard(), BOARD_ITEM::GetParent(), PCB_T, and EDA_ITEM::Type().

Referenced by ZONE_CONTAINER::buildFeatureHoleList(), DeleteMarkedItems(), TEXTE_PCB::Draw(), PCB_TARGET::Draw(), EDGE_MODULE::Draw(), ZONE_CONTAINER::Draw(), Draw(), TRACK::Draw(), DRAWSEGMENT::Draw(), DIMENSION::Draw(), MODULE::Draw(), D_PAD::Draw(), SEGZONE::Draw(), VIA::Draw(), MODULE::DrawAncre(), ZONE_CONTAINER::DrawFilledArea(), BOARD_PRINTOUT_CONTROLLER::DrawPage(), EVT_COMMAND_RANGE(), TEXTE_PCB::Flip(), TRACK::Flip(), VIA::Flip(), ZONE_CONTAINER::Flip(), BOARD_ITEM::GetBoard(), MODULE::GetBoundingBox(), BOARD_ITEM::GetLayerName(), TRACK::GetMsgPanelInfo(), NETINFO_ITEM::GetMsgPanelInfo(), D_PAD::GetMsgPanelInfo(), TRACK::GetMsgPanelInfoBase(), SEGZONE::GetMsgPanelInfoBase(), VIA::GetMsgPanelInfoBase(), TRACK::GetMsgPanelInfoBase_Common(), BOARD_CONNECTED_ITEM::GetNetClass(), TRACK::GetSelectMenuText(), SEGZONE::GetSelectMenuText(), VIA::GetSelectMenuText(), D_PAD::GetSelectMenuText(), ZONE_CONTAINER::GetSelectMenuText(), D_PAD::GetSolderMaskMargin(), D_PAD::GetSolderPasteMargin(), PushTrack(), BOARD_CONNECTED_ITEM::SetNet(), BOARD_CONNECTED_ITEM::SetNetCode(), and VIA::ViewGetLOD().

64 {
65  if( Type() == PCB_T )
66  return (BOARD*) this;
67 
68  BOARD_ITEM* parent = GetParent();
69 
70  if( parent )
71  return parent->GetBoard();
72 
73  return NULL;
74 }
KICAD_T Type() const
Function Type()
Definition: base_struct.h:198
BOARD_ITEM_CONTAINER * GetParent() const
Definition: typeinfo.h:97
Class BOARD_ITEM is a base class for any item which can be embedded within the BOARD container class...
Class BOARD holds information pertinent to a Pcbnew printed circuit board.
Definition: class_board.h:169
virtual BOARD * GetBoard() const
Function GetBoard returns the BOARD in which this BOARD_ITEM resides, or NULL if none.
const EDA_RECT TEXTE_MODULE::GetBoundingBox ( ) const
overridevirtual

Function GetBoundingBox returns the orthogonal, bounding box of this object for display purposes.

This box should be an enclosing perimeter for visible components of this object, and the units should be in the pcb or schematic coordinate system. It is OK to overestimate the size by a few counts.

Reimplemented from EDA_ITEM.

Definition at line 213 of file class_text_mod.cpp.

References PNS::angle(), EDA_RECT::GetBoundingBoxRotated(), GetDrawRotation(), EDA_TEXT::GetTextBox(), and EDA_TEXT::GetTextPos().

Referenced by AbortMoveTextModule(), PCB_BASE_FRAME::DeleteTextModule(), Draw(), MODULE::GetBoundingBox(), PCB_BASE_FRAME::PlaceTexteModule(), and TextHitTest().

214 {
215  double angle = GetDrawRotation();
216  EDA_RECT text_area = GetTextBox( -1, -1 );
217 
218  if( angle )
219  text_area = text_area.GetBoundingBoxRotated( GetTextPos(), angle );
220 
221  return text_area;
222 }
double GetDrawRotation() const
const wxPoint & GetTextPos() const
Definition: eda_text.h:224
EDA_RECT GetTextBox(int aLine=-1, int aThickness=-1, bool aInvertY=false) const
Function GetTextBox useful in multiline texts to calculate the full text or a line area (for zones fi...
Definition: eda_text.cpp:115
const EDA_RECT GetBoundingBoxRotated(wxPoint aRotCenter, double aAngle)
Function GetBoundingBoxRotated.
static DIRECTION_45::AngleType angle(const VECTOR2I &a, const VECTOR2I &b)
Class EDA_RECT handles the component boundary box.
virtual const wxPoint BOARD_ITEM::GetCenter ( ) const
inlinevirtualinherited

Function GetCenter()

This defaults to the same point as returned by GetPosition(), unless overridden

Returns
centre point of the item

Reimplemented in DRAWSEGMENT.

Definition at line 105 of file class_board_item.h.

References BOARD_ITEM::GetPosition().

Referenced by LEGACY_ARRAY_CREATOR::getRotationCentre(), and DIALOG_CREATE_ARRAY::ARRAY_CIRCULAR_OPTIONS::TransformItem().

105 { return GetPosition(); }
virtual const wxPoint & GetPosition() const =0
wxString TEXTE_MODULE::GetClass ( ) const
inlineoverridevirtual

Function GetClass returns the class name.

Returns
wxString

Implements EDA_ITEM.

Definition at line 201 of file class_text_mod.h.

202  {
203  return wxT( "MTEXT" );
204  }
double TEXTE_MODULE::GetDrawRotation ( ) const
Returns
the text rotation for drawings and plotting the footprint rotation is taken in account

Definition at line 323 of file class_text_mod.cpp.

References MODULE::GetOrientation(), EDA_TEXT::GetTextAngle(), and EDA_ITEM::m_Parent.

Referenced by CINFO3D_VISU::AddGraphicsShapesWithClearanceToContainer(), Draw(), export_vrml_text_module(), GetBoundingBox(), GetDrawRotationRadians(), BRDITEMS_PLOTTER::PlotTextModule(), TextHitTest(), MODULE::TransformGraphicShapesWithClearanceToPolygonSet(), MODULE::TransformGraphicTextWithClearanceToPolygonSet(), and ViewBBox().

324 {
325  MODULE* module = (MODULE*) m_Parent;
326  double rotation = GetTextAngle();
327 
328  if( module )
329  rotation += module->GetOrientation();
330 
331  // Keep angle between -90 .. 90 deg. Otherwise the text is not easy to read
332  while( rotation > 900 )
333  rotation -= 1800;
334 
335  while( rotation < -900 )
336  rotation += 1800;
337 
338  return rotation;
339 }
EDA_ITEM * m_Parent
Linked list: Link (parent struct)
Definition: base_struct.h:168
double GetTextAngle() const
Definition: eda_text.h:164
double GetOrientation() const
Definition: class_module.h:160
double TEXTE_MODULE::GetDrawRotationRadians ( ) const
inline

Definition at line 145 of file class_text_mod.h.

References GetDrawRotation().

Referenced by KIGFX::PCB_PAINTER::draw().

145 { return GetDrawRotation() * M_PI/1800; }
double GetDrawRotation() const
STATUS_FLAGS EDA_ITEM::GetFlags ( ) const
inlineinherited

Definition at line 255 of file base_struct.h.

References EDA_ITEM::m_Flags.

Referenced by AbortMoveAndEditTarget(), SCH_SCREEN::addConnectedItemsToBlock(), AddMenusForBitmap(), AddMenusForBusEntry(), AddMenusForComponent(), AddMenusForComponentField(), AddMenusForEditComponent(), AddMenusForGLabel(), AddMenusForHierchicalSheet(), AddMenusForHLabel(), AddMenusForLabel(), AddMenusForSheetPin(), AddMenusForText(), SCH_EDIT_FRAME::BeginSegment(), SCH_EDIT_FRAME::ChangeTextOrient(), Collect_TrackSegmentsToDrag(), SCH_EDIT_FRAME::ConvertPart(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copyPanelToOptions(), LIB_EDIT_FRAME::CreatePin(), PCB_EDIT_FRAME::createPopUpMenuForFootprints(), PCB_EDIT_FRAME::createPopUpMenuForFpPads(), PCB_EDIT_FRAME::createPopUpMenuForFpTexts(), PCB_EDIT_FRAME::createPopUpMenuForTexts(), PCB_EDIT_FRAME::createPopupMenuForTracks(), PCB_EDIT_FRAME::createPopUpMenuForZones(), PCB_EDIT_FRAME::Delete_Segment_Edge(), BOARD::Draw(), PCB_EDIT_FRAME::Edit_TrackSegm_Width(), SCH_EDIT_FRAME::EditComponentFieldText(), SCH_EDIT_FRAME::EditImage(), PCB_EDIT_FRAME::FlipTextePcb(), LIB_VIEW_FRAME::GeneralControl(), SCH_EDIT_FRAME::GeneralControl(), SCH_SCREEN::GetConnection(), InitialiseDragParameters(), LIB_EDIT_FRAME::LoadOneSymbol(), Magnetize(), SCH_EDIT_FRAME::MirrorImage(), SCH_EDIT_FRAME::MirrorSheet(), moveBitmap(), SCH_EDIT_FRAME::OnAutoplaceFields(), SCH_EDIT_FRAME::OnConvertTextType(), SCH_EDIT_FRAME::OnCopySchematicItemRequest(), SCH_EDIT_FRAME::OnDragItem(), SCH_EDIT_FRAME::OnEditItem(), LIB_EDIT_FRAME::OnEditPin(), FOOTPRINT_EDIT_FRAME::OnHotKey(), SCH_EDIT_FRAME::OnHotKey(), PCB_EDIT_FRAME::OnHotKey(), PCB_EDIT_FRAME::OnHotkeyBeginRoute(), PCB_EDIT_FRAME::OnHotkeyCopyItem(), PCB_EDIT_FRAME::OnHotkeyDeleteItem(), PCB_EDIT_FRAME::OnHotkeyDuplicateOrArrayItem(), PCB_EDIT_FRAME::OnHotkeyEditItem(), PCB_EDIT_FRAME::OnHotkeyFlipItem(), PCB_EDIT_FRAME::OnHotkeyMoveItem(), PCB_EDIT_FRAME::OnHotkeyPlaceItem(), PCB_EDIT_FRAME::OnHotkeyRotateItem(), FOOTPRINT_EDIT_FRAME::OnLeftClick(), SCH_EDIT_FRAME::OnLeftClick(), PCB_EDIT_FRAME::OnLeftClick(), FOOTPRINT_EDIT_FRAME::OnLeftDClick(), SCH_EDIT_FRAME::OnLeftDClick(), PCB_EDIT_FRAME::OnLeftDClick(), SCH_EDIT_FRAME::OnMoveItem(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnOKButtonClick(), TARGET_PROPERTIES_DIALOG_EDITOR::OnOkClick(), SCH_EDIT_FRAME::OnOpenLibraryEditor(), SCH_EDIT_FRAME::OnOrient(), FOOTPRINT_EDIT_FRAME::OnRightClick(), GERBVIEW_FRAME::OnRightClick(), SCH_EDIT_FRAME::OnRightClick(), PCB_EDIT_FRAME::OnRightClick(), SCH_EDIT_FRAME::OnRotate(), SCH_EDIT_FRAME::OnSelectUnit(), PCB_EDIT_FRAME::PlaceTarget(), FOOTPRINT_EDIT_FRAME::PrepareItemForHotkey(), LIB_EDIT_FRAME::Process_Special_Functions(), EDIT_TOOL::Properties(), PCB_BASE_FRAME::Rotate_Module(), PCB_EDIT_FRAME::Rotate_Texte_Pcb(), SCH_EDIT_FRAME::RotateField(), SCH_EDIT_FRAME::RotateHierarchicalSheet(), SCH_EDIT_FRAME::RotateImage(), PCB_BASE_FRAME::RotateTextModule(), SCH_EDIT_FRAME::SaveCopyInUndoList(), SCH_SCREEN::SelectBlockItems(), SCH_EDIT_FRAME::SetBusEntryShape(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::SetInitCmp(), Show_Drag_Track_Segment_With_Cte_Slope(), Show_MoveNode(), PCB_EDIT_FRAME::Start_DragTrackSegmentAndKeepSlope(), PCB_EDIT_FRAME::StartMoveOneNodeOrSegment(), DIALOG_LABEL_EDITOR::TextPropertiesAccept(), DIALOG_PCB_TEXT_PROPERTIES::TransferDataFromWindow(), and DIALOG_MODULE_BOARD_EDITOR::TransferDataFromWindow().

255 { return m_Flags; }
STATUS_FLAGS m_Flags
Flag bits for editing and other uses.
Definition: base_struct.h:175
EDA_TEXT_HJUSTIFY_T EDA_TEXT::GetHorizJustify ( ) const
inlineinherited

Definition at line 190 of file eda_text.h.

References TEXT_EFFECTS::hjustify, and EDA_TEXT::m_e.

Referenced by CINFO3D_VISU::AddGraphicsShapesWithClearanceToContainer(), CINFO3D_VISU::AddShapeWithClearanceToContainer(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copySelectedFieldToPanel(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::copySelectedFieldToPanel(), DIALOG_EDIT_ONE_FIELD::DIALOG_EDIT_ONE_FIELD(), Draw(), LIB_FIELD::drawGraphic(), EDA_TEXT::drawOneLineOfText(), export_vrml_pcbtext(), export_vrml_text_module(), AUTOPLACER::field_horiz_placement(), EDA_TEXT::Format(), EDA_TEXT::GetTextBox(), DIALOG_LIB_EDIT_TEXT::initDlg(), EDA_TEXT::IsDefaultFormatting(), SCH_FIELD::IsHorizJustifyFlipped(), LEGACY_PLUGIN::loadPCB_TEXT(), DRAWING_TOOL::PlaceDXF(), SCH_TEXT::Plot(), BRDITEMS_PLOTTER::PlotTextePcb(), BRDITEMS_PLOTTER::PlotTextModule(), PlotWorkSheet(), LIB_TEXT::Save(), LIB_FIELD::Save(), SCH_FIELD::Save(), SCH_LEGACY_PLUGIN::saveField(), KIGFX::GAL::SetTextAttributes(), DIALOG_PCB_TEXT_PROPERTIES::TransferDataToWindow(), MODULE::TransformGraphicShapesWithClearanceToPolygonSet(), MODULE::TransformGraphicTextWithClearanceToPolygonSet(), TEXTE_PCB::TransformShapeWithClearanceToPolygonSet(), and EDA_TEXT::TransformTextShapeToSegmentList().

190 { return EDA_TEXT_HJUSTIFY_T( m_e.hjustify ); };
EDA_TEXT_HJUSTIFY_T
Definition: eda_text.h:47
TEXT_EFFECTS m_e
Definition: eda_text.h:368
signed char hjustify
horizontal justification
Definition: eda_text.h:95
int EDA_TEXT::GetInterline ( int  aTextThickness = -1) const
inherited

Return the distance between two lines of text.

Calculates the distance (pitch) between two lines of text. This distance includes the interline distance plus room for characters like j, {, and [. It also used for single line text, to calculate the text bounding box.

Parameters
aTextThicknessOverrides the current thickness when greater than 0. this is needed when the current m_Thickness is 0 and a default line thickness is used

Definition at line 107 of file eda_text.cpp.

References KIGFX::STROKE_FONT::GetInterline(), EDA_TEXT::GetTextHeight(), EDA_TEXT::GetThickness(), and KiROUND().

Referenced by EDA_TEXT::GetPositionsOfLinesOfMultilineText(), and EDA_TEXT::GetTextBox().

108 {
109  int thickness = aTextThickness <= 0 ? GetThickness() : aTextThickness;
110 
111  return KiROUND( KIGFX::STROKE_FONT::GetInterline( GetTextHeight(), thickness ) );
112 }
static double GetInterline(double aGlyphHeight, double aGlyphThickness)
Compute the distance (interline) between 2 lines of text (for multiline texts).
static int KiROUND(double v)
KiROUND rounds a floating point number to an int using "round halfway cases away from zero"...
Definition: common.h:107
int GetThickness() const
Function GetThickness returns pen width.
Definition: eda_text.h:154
int GetTextHeight() const
Definition: eda_text.h:221
PCB_LAYER_ID BOARD_ITEM::GetLayer ( ) const
inlineinherited

Function GetLayer returns the primary layer this item is on.

Definition at line 132 of file class_board_item.h.

References BOARD_ITEM::m_Layer.

Referenced by Abort_MoveOrCopyModule(), DIALOG_GLOBAL_DELETION::AcceptPcbDelete(), CINFO3D_VISU::AddGraphicsShapesWithClearanceToContainer(), DIMENSION::AdjustDimensionDetails(), PCB_EDIT_FRAME::Begin_DrawSegment(), PCB_EDIT_FRAME::Begin_Zone(), GRID_HELPER::BestSnapAnchor(), PCB_EDIT_FRAME::Block_SelectItems(), ZONE_CONTAINER::buildFeatureHoleList(), BuildUnconnectedThermalStubsPolygonList(), PCB_EDIT_FRAME::Change_Side_Module(), checkConnectedTo(), BOARD::CombineAllAreasInNet(), BOARD::ConvertBrdLayerToPolygonalContours(), MODULE::CopyNetlistSettings(), CreateBoardSection(), CINFO3D_VISU::createLayers(), MWAVE::CreateMicrowaveInductor(), CreateRoutesSection(), DIALOG_DIMENSION_EDITOR::DIALOG_DIMENSION_EDITOR(), DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES(), DRC::doEdgeZoneDrc(), PCB_EDIT_FRAME::DoGenFootprintsPositionFile(), DRC::doTrackKeepoutDrc(), Draw(), DRAWSEGMENT::Draw(), KIGFX::PCB_PAINTER::draw(), DRAWING_TOOL::DrawVia(), PCB_EDIT_FRAME::duplicateZone(), FOOTPRINT_EDIT_FRAME::Edit_Edge_Layer(), PCB_EDIT_FRAME::Edit_Zone_Params(), PCB_EDIT_FRAME::End_Zone(), export_vrml_drawsegment(), export_vrml_edge_module(), export_vrml_module(), export_vrml_pcbtext(), export_vrml_text_module(), export_vrml_zones(), PCB_EDIT_FRAME::ExportToGenCAD(), TEXTE_PCB::Flip(), PCB_TARGET::Flip(), EDGE_MODULE::Flip(), Flip(), TRACK::Flip(), DIMENSION::Flip(), MODULE::Flip(), DRAWSEGMENT::Flip(), ZONE_CONTAINER::Flip(), PCB_IO::FootprintSave(), FootprintWriteShape(), PCB_IO::formatLayer(), DSN::SPECCTRA_DB::FromBOARD(), genModuleOnRoutingMatrix(), genPlacementRoutingMatrix(), BOARD::GetFootprint(), getOptimalModulePlacement(), BOARD::GetPad(), BOARD::GetVisibleTrack(), SELECTION_TOOL::guessSelectionCandidates(), ZONE_CONTAINER::Hatch(), BOARD::HitTestForAnyFilledArea(), idf_export_module(), DIALOG_NON_COPPER_ZONES_EDITOR::Init(), DIALOG_MODULE_BOARD_EDITOR::InitBoardProperties(), GENERAL_COLLECTOR::Inspect(), D_PAD::IsFlipped(), MODULE::IsFlipped(), ZONE_CONTAINER::IsOnCopperLayer(), ZONE_CONTAINER::IsSame(), itemIsIncludedByFilter(), FOOTPRINT_EDIT_FRAME::Load_Module_From_BOARD(), BOARD::MarkTrace(), BOARD::NormalizeAreaPolygon(), BOARD::OnAreaPolygonModified(), PCB_EDIT_FRAME::OnRightClick(), ZONE_SETTINGS::operator<<(), PlaceCells(), PCB_EDIT_FRAME::PlaceDraggedOrMovedTrackSegment(), BRDITEMS_PLOTTER::Plot_1_EdgeModule(), BRDITEMS_PLOTTER::Plot_Edges_Modules(), BRDITEMS_PLOTTER::PlotAllTextsModule(), BRDITEMS_PLOTTER::PlotDimension(), BRDITEMS_PLOTTER::PlotDrawSegment(), BRDITEMS_PLOTTER::PlotFilledAreas(), BRDITEMS_PLOTTER::PlotPcbTarget(), PlotSilkScreen(), PlotSolderMaskLayer(), PlotStandardLayer(), BRDITEMS_PLOTTER::PlotTextePcb(), Print_Module(), PCB_EDIT_FRAME::PrintPage(), BOARD::RedrawAreasOutlines(), BOARD::RedrawFilledAreas(), PCB_EDIT_FRAME::Remove_Zone_Corner(), TRACKS_CLEANER::removeDuplicatesOfTrack(), SaveCopyOfZones(), SELECTION_TOOL::selectable(), ShowClearance(), PCB_EDIT_FRAME::Start_Move_Zone_Corner(), PCB_EDIT_FRAME::Start_Move_Zone_Drag_Outline_Edge(), PCB_EDIT_FRAME::Start_Move_Zone_Outlines(), PCB_EDIT_FRAME::Swap_Layers(), PNS_KICAD_IFACE::syncTrack(), BOARD::Test_Drc_Areas_Outlines_To_Areas_Outlines(), BOARD::TestAreaIntersection(), BOARD::TestAreaIntersections(), DRC::testKeepoutAreas(), TEXTE_MODULE(), TraceSegmentPcb(), TrackListSortByNetcode(), DialogEditModuleText::TransferDataFromWindow(), DIALOG_GRAPHIC_ITEM_PROPERTIES::TransferDataFromWindow(), DIALOG_MODULE_BOARD_EDITOR::TransferDataFromWindow(), DialogEditModuleText::TransferDataToWindow(), DIALOG_PCB_TEXT_PROPERTIES::TransferDataToWindow(), DIALOG_MODEDIT_FP_BODY_ITEM_PROPERTIES::TransferDataToWindow(), DIALOG_GRAPHIC_ITEM_PROPERTIES::TransferDataToWindow(), CINFO3D_VISU::transformGraphicModuleEdgeToPolygonSet(), MODULE::TransformGraphicShapesWithClearanceToPolygonSet(), MODULE::TransformGraphicTextWithClearanceToPolygonSet(), TstModuleOnBoard(), ViewGetLayers(), TRACK::ViewGetLayers(), and PCB_EDITOR_CONTROL::ZoneMerge().

132 { return m_Layer; }
PCB_LAYER_ID m_Layer
wxString BOARD_ITEM::GetLayerName ( ) const
inherited

Function GetLayerName returns the name of the PCB layer on which the item resides.

Returns
wxString containing the layer name associated with this item.

Definition at line 77 of file class_board_item.cpp.

References BOARD_ITEM::GetBoard(), BOARD::GetLayerName(), BOARD::GetStandardLayerName(), and BOARD_ITEM::m_Layer.

Referenced by PCB_IO::format(), PCB_IO::formatLayer(), TEXTE_PCB::GetMsgPanelInfo(), EDGE_MODULE::GetMsgPanelInfo(), ZONE_CONTAINER::GetMsgPanelInfo(), DRAWSEGMENT::GetMsgPanelInfo(), GetMsgPanelInfo(), EDGE_MODULE::GetSelectMenuText(), TEXTE_PCB::GetSelectMenuText(), GetSelectMenuText(), DIMENSION::GetSelectMenuText(), DRAWSEGMENT::GetSelectMenuText(), TRACK::GetSelectMenuText(), SEGZONE::GetSelectMenuText(), MODULE::GetSelectMenuText(), and ZONE_CONTAINER::GetSelectMenuText().

78 {
79  BOARD* board = GetBoard();
80 
81  if( board )
82  return board->GetLayerName( m_Layer );
83 
84  // If no parent, return standard name
86 }
PCB_LAYER_ID m_Layer
const wxString GetLayerName(PCB_LAYER_ID aLayer) const
Function GetLayerName returns the name of a layer given by aLayer.
Class BOARD holds information pertinent to a Pcbnew printed circuit board.
Definition: class_board.h:169
virtual BOARD * GetBoard() const
Function GetBoard returns the BOARD in which this BOARD_ITEM resides, or NULL if none.
static wxString GetStandardLayerName(PCB_LAYER_ID aLayerId)
Function GetStandardLayerName returns an "English Standard" name of a PCB layer when given aLayerNumb...
Definition: class_board.h:639
virtual LSET BOARD_ITEM::GetLayerSet ( ) const
inlinevirtualinherited

Function GetLayerSet returns a "layer mask", which is a bitmap of all layers on which the TRACK segment or VIA physically resides.

Returns
int - a layer mask, see layers_id_colors_visibility.h.

Reimplemented in VIA, and D_PAD.

Definition at line 140 of file class_board_item.h.

Referenced by build_pad_testpoints(), BOARD::chainMarkedSegments(), Collect_TrackSegmentsToDrag(), DRC::doTrackDrc(), PCB_EDIT_FRAME::EraseRedundantTrack(), find_vias_and_tracks_at(), TRACK::GetEndSegments(), TRACK::GetTrack(), BOARD::MarkTrace(), PCB_EDIT_FRAME::PrintPage(), CN_CONNECTIVITY_ALGO::searchConnections(), and PCB_EDIT_FRAME::StartMoveOneNodeOrSegment().

140 { return LSET( m_Layer ); }
PCB_LAYER_ID m_Layer
Class LSET is a set of PCB_LAYER_IDs.
int TEXTE_MODULE::GetLength ( ) const

Definition at line 170 of file class_text_mod.cpp.

References EDA_TEXT::m_Text.

Referenced by CreateComponentsSection(), and FOOTPRINT_EDIT_FRAME::Process_Special_Functions().

171 {
172  return m_Text.Len();
173 }
wxString m_Text
Definition: eda_text.h:346
DHEAD* EDA_ITEM::GetList ( ) const
inlineinherited
BITMAP_DEF TEXTE_MODULE::GetMenuImage ( ) const
overridevirtual

Function GetMenuImage returns a pointer to an image to be used in menus.

The default version returns the right arrow image. Override this function to provide object specific menu images.

Returns
The menu image associated with the item.

Reimplemented from EDA_ITEM.

Definition at line 422 of file class_text_mod.cpp.

423 {
424  return footprint_text_xpm;
425 }
void TEXTE_MODULE::GetMsgPanelInfo ( std::vector< MSG_PANEL_ITEM > &  aList)
overridevirtual

Function GetMsgPanelInfo populates aList of MSG_PANEL_ITEM objects with it's internal state for display purposes.

Note
This method replaces DisplayInfo() so that KiCad objects no longer have any knowledge of wxWidgets UI objects.
Parameters
aListis the list to populate.

Reimplemented from EDA_ITEM.

Definition at line 343 of file class_text_mod.cpp.

References BROWN, CoordinateToString(), DARKCYAN, DARKGREEN, BOARD_ITEM::GetLayerName(), MODULE::GetReference(), GetShownText(), EDA_TEXT::GetTextAngleDegrees(), EDA_TEXT::GetTextHeight(), EDA_TEXT::GetTextWidth(), EDA_TEXT::GetThickness(), EDA_TEXT::IsMirrored(), EDA_TEXT::IsVisible(), EDA_ITEM::m_Parent, m_Type, RED, TEXT_is_DIVERS, and TEXT_is_REFERENCE.

344 {
345  MODULE* module = (MODULE*) m_Parent;
346 
347  if( module == NULL ) // Happens in modedit, and for new texts
348  return;
349 
350  wxString msg, Line;
351 
352  static const wxString text_type_msg[3] =
353  {
354  _( "Ref." ), _( "Value" ), _( "Text" )
355  };
356 
357  Line = module->GetReference();
358  aList.push_back( MSG_PANEL_ITEM( _( "Footprint" ), Line, DARKCYAN ) );
359 
360  Line = GetShownText();
361  aList.push_back( MSG_PANEL_ITEM( _( "Text" ), Line, BROWN ) );
362 
363  wxASSERT( m_Type >= TEXT_is_REFERENCE && m_Type <= TEXT_is_DIVERS );
364  aList.push_back( MSG_PANEL_ITEM( _( "Type" ), text_type_msg[m_Type], DARKGREEN ) );
365 
366  if( !IsVisible() )
367  msg = _( "No" );
368  else
369  msg = _( "Yes" );
370 
371  aList.push_back( MSG_PANEL_ITEM( _( "Display" ), msg, DARKGREEN ) );
372 
373  // Display text layer
374  aList.push_back( MSG_PANEL_ITEM( _( "Layer" ), GetLayerName(), DARKGREEN ) );
375 
376  if( IsMirrored() )
377  msg = _( " Yes" );
378  else
379  msg = _( " No" );
380 
381  aList.push_back( MSG_PANEL_ITEM( _( "Mirror" ), msg, DARKGREEN ) );
382 
383  msg.Printf( wxT( "%.1f" ), GetTextAngleDegrees() );
384  aList.push_back( MSG_PANEL_ITEM( _( "Angle" ), msg, DARKGREEN ) );
385 
387  aList.push_back( MSG_PANEL_ITEM( _( "Thickness" ), msg, DARKGREEN ) );
388 
390  aList.push_back( MSG_PANEL_ITEM( _( "Width" ), msg, RED ) );
391 
393  aList.push_back( MSG_PANEL_ITEM( _( "Height" ), msg, RED ) );
394 }
wxString CoordinateToString(int aValue, bool aConvertToMils)
Function CoordinateToString is a helper to convert the integer coordinate aValue to a string in inche...
Definition: base_units.cpp:117
EDA_ITEM * m_Parent
Linked list: Link (parent struct)
Definition: base_struct.h:168
int GetTextWidth() const
Definition: eda_text.h:218
double GetTextAngleDegrees() const
Definition: eda_text.h:166
virtual wxString GetShownText() const override
Returns the string actually shown after processing of the base text.
wxString GetLayerName() const
Function GetLayerName returns the name of the PCB layer on which the item resides.
int GetThickness() const
Function GetThickness returns pen width.
Definition: eda_text.h:154
Definition: colors.h:60
const wxString & GetReference() const
Function GetReference.
Definition: class_module.h:419
bool IsMirrored() const
Definition: eda_text.h:179
bool IsVisible() const
Definition: eda_text.h:176
int GetTextHeight() const
Definition: eda_text.h:221
Class EDA_MSG_ITEM is used EDA_MSG_PANEL as the item type for displaying messages.
Definition: msgpanel.h:53
TEXT_TYPE m_Type
0=ref, 1=val, etc.
Definition: colors.h:62
int BOARD_ITEM::getNextNumberInSequence ( const std::set< int > &  aSeq,
bool  aFillSequenceGaps 
)
staticprotectedinherited

Definition at line 223 of file class_board_item.cpp.

Referenced by MODULE::GetNextPadName().

224 {
225  if( aSeq.empty() )
226  return 1;
227 
228  // By default go to the end of the sequence
229  int candidate = *aSeq.rbegin();
230 
231  // Filling in gaps in pad numbering
232  if( aFillSequenceGaps )
233  {
234  // start at the beginning
235  candidate = *aSeq.begin();
236 
237  for( auto it : aSeq )
238  {
239  if( it - candidate > 1 )
240  break;
241 
242  candidate = it;
243  }
244  }
245 
246  ++candidate;
247 
248  return candidate;
249 }
BOARD_ITEM_CONTAINER* BOARD_ITEM::GetParent ( void  ) const
inlineinherited

Definition at line 126 of file class_board_item.h.

References EDA_ITEM::m_Parent.

Referenced by Abort_Move_ModuleOutline(), AbortMoveTextModule(), POINT_EDITOR::addCorner(), CmpHoleSorting(), compute_Ratsnest_PlaceModule(), PCB_EDIT_FRAME::createPopUpMenuForFpTexts(), FOOTPRINT_EDIT_FRAME::Delete_Edge_Module(), BOARD_ITEM::DeleteStructure(), PCB_BASE_FRAME::DeleteTextModule(), DialogEditModuleText::DialogEditModuleText(), KIGFX::PCB_PAINTER::draw(), DrawUmbilical(), PCB_EDIT_FRAME::duplicateItems(), PCB_IO::format(), FormatProbeItem(), BOARD_ITEM::GetBoard(), LEGACY_ARRAY_CREATOR::getModule(), EDGE_MODULE::GetMsgPanelInfo(), EDGE_MODULE::GetSelectMenuText(), GetSelectMenuText(), GetShownText(), GENERAL_COLLECTOR::Inspect(), LEGACY_PLUGIN::loadMODULE_TEXT(), PCB_EDIT_FRAME::moveExact(), FOOTPRINT_EDIT_FRAME::OnRightClick(), FOOTPRINT_EDIT_FRAME::Place_EdgeMod(), PCB_BASE_FRAME::PlaceTexteModule(), BRDITEMS_PLOTTER::Plot_1_EdgeModule(), BRDITEMS_PLOTTER::PlotTextModule(), PCB_EDIT_FRAME::Process_Special_Functions(), BOARD_COMMIT::Push(), PAD_TOOL::pushPadSettings(), PCB_BASE_FRAME::ResetTextSize(), PCB_BASE_FRAME::RotateTextModule(), PCB_BASE_EDIT_FRAME::SaveCopyInUndoList(), SELECTION_TOOL::select(), ShowCurrentOutlineWhileMoving(), ShowNewEdgeModule(), and PCB_BASE_FRAME::StartMoveTexteModule().

126 { return (BOARD_ITEM_CONTAINER*) m_Parent; }
EDA_ITEM * m_Parent
Linked list: Link (parent struct)
Definition: base_struct.h:168
Abstract interface for BOARD_ITEMs capable of storing other items inside.
const wxPoint& TEXTE_MODULE::GetPos0 ( ) const
inline

Definition at line 136 of file class_text_mod.h.

References m_Pos0.

Referenced by CreateComponentsSection(), PCB_IO::format(), MODULE::MoveAnchorPosition(), and DialogEditModuleText::TransferDataToWindow().

136 { return m_Pos0; }
wxPoint m_Pos0
text coordinates relative to the footprint anchor, orient 0.
virtual const wxPoint& TEXTE_MODULE::GetPosition ( ) const
inlineoverridevirtual

Implements BOARD_ITEM.

Definition at line 77 of file class_text_mod.h.

References EDA_TEXT::GetTextPos().

78  {
79  return EDA_TEXT::GetTextPos();
80  }
const wxPoint & GetTextPos() const
Definition: eda_text.h:224
void EDA_TEXT::GetPositionsOfLinesOfMultilineText ( std::vector< wxPoint > &  aPositions,
int  aLineCount 
) const
inherited

Function GetPositionsOfLinesOfMultilineText Populates aPositions with the position of each line of a multiline text, according to the vertical justification and the rotation of the whole text.

Parameters
aPositionsis the list to populate by the wxPoint positions
aLineCountis the number of lines (not recalculated here for efficiency reasons

Definition at line 327 of file eda_text.cpp.

References EDA_TEXT::GetInterline(), EDA_TEXT::GetTextAngle(), EDA_TEXT::GetTextPos(), EDA_TEXT::GetVertJustify(), GR_TEXT_VJUSTIFY_BOTTOM, GR_TEXT_VJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_TOP, RotatePoint(), and wxPoint::y.

Referenced by CINFO3D_VISU::AddShapeWithClearanceToContainer(), EDA_TEXT::Draw(), export_vrml_pcbtext(), SCH_TEXT::Plot(), BRDITEMS_PLOTTER::PlotTextePcb(), TEXTE_PCB::TransformShapeWithClearanceToPolygonSet(), and EDA_TEXT::TransformTextShapeToSegmentList().

329 {
330  wxPoint pos = GetTextPos(); // Position of first line of the
331  // multiline text according to
332  // the center of the multiline text block
333 
334  wxPoint offset; // Offset to next line.
335 
336  offset.y = GetInterline();
337 
338  if( aLineCount > 1 )
339  {
340  switch( GetVertJustify() )
341  {
343  break;
344 
346  pos.y -= ( aLineCount - 1 ) * offset.y / 2;
347  break;
348 
350  pos.y -= ( aLineCount - 1 ) * offset.y;
351  break;
352  }
353  }
354 
355  // Rotate the position of the first line
356  // around the center of the multiline text block
357  RotatePoint( &pos, GetTextPos(), GetTextAngle() );
358 
359  // Rotate the offset lines to increase happened in the right direction
360  RotatePoint( &offset, GetTextAngle() );
361 
362  for( int ii = 0; ii < aLineCount; ii++ )
363  {
364  aPositions.push_back( pos );
365  pos += offset;
366  }
367 }
int GetInterline(int aTextThickness=-1) const
Return the distance between two lines of text.
Definition: eda_text.cpp:107
const wxPoint & GetTextPos() const
Definition: eda_text.h:224
void RotatePoint(int *pX, int *pY, double angle)
Definition: trigo.cpp:317
double GetTextAngle() const
Definition: eda_text.h:164
EDA_TEXT_VJUSTIFY_T GetVertJustify() const
Definition: eda_text.h:191
wxString TEXTE_MODULE::GetSelectMenuText ( ) const
overridevirtual

Function GetSelectMenuText returns the text to display to be used in the selection clarification context menu when multiple items are found at the current cursor position.

The default version of this function raises an assertion in the debug mode and returns a string to indicate that it was not overridden to provide the object specific text.

Returns
The menu text string.

Reimplemented from EDA_ITEM.

Definition at line 397 of file class_text_mod.cpp.

References GetChars(), BOARD_ITEM::GetLayerName(), BOARD_ITEM::GetParent(), GetShownText(), m_Type, EDA_TEXT::ShortenedShownText(), TEXT_is_REFERENCE, and TEXT_is_VALUE.

Referenced by PCB_EDIT_FRAME::createPopUpMenuForFpTexts().

398 {
399  wxString text;
400  const wxChar *reference = GetChars( static_cast<MODULE*>( GetParent() )->GetReference() );
401 
402  switch( m_Type )
403  {
404  case TEXT_is_REFERENCE:
405  text.Printf( _( "Reference %s" ), reference );
406  break;
407 
408  case TEXT_is_VALUE:
409  text.Printf( _( "Value %s of %s" ), GetChars( GetShownText() ), reference );
410  break;
411 
412  default: // wrap this one in quotes:
413  text.Printf( _( "Text \"%s\" on %s of %s" ), GetChars( ShortenedShownText() ),
414  GetChars( GetLayerName() ), reference );
415  break;
416  }
417 
418  return text;
419 }
BOARD_ITEM_CONTAINER * GetParent() const
wxString ShortenedShownText() const
Returns a shortened version (max 15 characters) of the shown text.
Definition: eda_text.cpp:92
virtual wxString GetShownText() const override
Returns the string actually shown after processing of the base text.
wxString GetLayerName() const
Function GetLayerName returns the name of the PCB layer on which the item resides.
static const wxChar * GetChars(const wxString &s)
Function GetChars returns a wxChar* to the actual wxChar* data within a wxString, and is helpful for ...
Definition: macros.h:92
TEXT_TYPE m_Type
0=ref, 1=val, etc.
wxString TEXTE_MODULE::GetShownText ( ) const
overridevirtual

Returns the string actually shown after processing of the base text.

Default is no processing

Reimplemented from EDA_TEXT.

Definition at line 486 of file class_text_mod.cpp.

References BOARD_ITEM::GetParent(), MODULE::GetReference(), MODULE::GetValue(), EDA_TEXT::m_Text, m_Type, and TEXT_is_DIVERS.

Referenced by CINFO3D_VISU::AddGraphicsShapesWithClearanceToContainer(), Draw(), KIGFX::PCB_PAINTER::draw(), export_vrml_text_module(), GetMsgPanelInfo(), MODULE::GetMsgPanelInfo(), GetSelectMenuText(), BRDITEMS_PLOTTER::PlotTextModule(), MODULE::TransformGraphicShapesWithClearanceToPolygonSet(), and MODULE::TransformGraphicTextWithClearanceToPolygonSet().

487 {
488  /* First order optimization: no % means that no processing is
489  * needed; just hope that RVO and copy constructor implementation
490  * avoid to copy the whole block; anyway it should be better than
491  * rebuild the string one character at a time...
492  * Also it seems wise to only expand macros in user text (but there
493  * is no technical reason, probably) */
494 
495  if( (m_Type != TEXT_is_DIVERS) || (wxString::npos == m_Text.find('%')) )
496  return m_Text;
497 
498  wxString newbuf;
499  const MODULE *module = static_cast<MODULE*>( GetParent() );
500 
501  for( wxString::const_iterator it = m_Text.begin(); it != m_Text.end(); ++it )
502  {
503  // Process '%' and copy everything else
504  if( *it != '%' )
505  newbuf.append(*it);
506  else
507  {
508  /* Look at the next character (if is it there) and append
509  * its expansion */
510  ++it;
511 
512  if( it != m_Text.end() )
513  {
514  switch( char(*it) )
515  {
516  case '%':
517  newbuf.append( '%' );
518  break;
519 
520  case 'R':
521  if( module )
522  newbuf.append( module->GetReference() );
523  break;
524 
525  case 'V':
526  if( module )
527  newbuf.append( module->GetValue() );
528  break;
529 
530  default:
531  newbuf.append( '?' );
532  break;
533  }
534  }
535  else
536  break; // The string is over and we can't ++ anymore
537  }
538  }
539 
540  return newbuf;
541 }
BOARD_ITEM_CONTAINER * GetParent() const
wxString m_Text
Definition: eda_text.h:346
const wxString & GetValue() const
Function GetValue.
Definition: class_module.h:447
const wxString & GetReference() const
Function GetReference.
Definition: class_module.h:419
TEXT_TYPE m_Type
0=ref, 1=val, etc.
STATUS_FLAGS EDA_ITEM::GetStatus ( ) const
inlineinherited

Definition at line 250 of file base_struct.h.

References EDA_ITEM::m_Status.

Referenced by PCB_IO::format().

250 { return m_Status; }
STATUS_FLAGS m_Status
Definition: base_struct.h:161
const wxString& EDA_TEXT::GetText ( ) const
inlineinherited

Function GetText returns the string associated with the text object.

Returns
a const wxString reference containing the string of the item.

Definition at line 130 of file eda_text.h.

References EDA_TEXT::m_Text.

Referenced by NETLIST_EXPORTER_GENERIC::addComponentFields(), AddMenusForComponent(), AddMenusForText(), SIM_PLOT_FRAME::AddTuner(), SCH_EDIT_FRAME::backAnnotateFootprints(), SCH_SHEET::CleanupSheet(), CMP_TREE_NODE_ALIAS::CMP_TREE_NODE_ALIAS(), SCH_REFERENCE::CompareValue(), SCH_SHEET::ComponentCount(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copySelectedFieldToPanel(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::copySelectedFieldToPanel(), CreateComponentsSection(), LIB_EDIT_FRAME::CreateGraphicItem(), SCH_EDIT_FRAME::CreateNewText(), SCH_EDIT_FRAME::CreateSheetPin(), PCB_EDIT_FRAME::CreateTextePcb(), FOOTPRINT_EDIT_FRAME::CreateTextModule(), DIALOG_DIMENSION_EDITOR::DIALOG_DIMENSION_EDITOR(), DIALOG_EDIT_ONE_FIELD::DIALOG_EDIT_ONE_FIELD(), LIB_EDIT_FRAME::EditField(), SCH_EDIT_FRAME::EditSheetPin(), PCB_IO::format(), FormatProbeItem(), LIB_FIELD::GetFullText(), SCH_COMPONENT::GetRef(), MODULE::GetReference(), NETLIST_EXPORTER_PSPICE::GetSpiceField(), NETLIST_EXPORTER_PSPICE::GetSpiceFieldDefVal(), DIMENSION::GetText(), MODULE::GetValue(), SCH_SHEET::HasUndefinedPins(), LIB_FIELD::HitTest(), SCH_EDIT_FRAME::ImportSheetPin(), DIALOG_LABEL_EDITOR::InitDialog(), DIALOG_LIB_EDIT_TEXT::initDlg(), DIALOG_MODULE_MODULE_EDITOR::initModeditProperties(), DIALOG_MODULE_BOARD_EDITOR::InitModeditProperties(), GENERAL_COLLECTOR::Inspect(), SCH_COMPONENT::IsInNetlist(), SCH_SCREEN::IsTerminalPoint(), SCH_COMPONENT::Load(), LIB_PART::LoadField(), LEGACY_PLUGIN::loadPCB_TEXT(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::moveUpButtonHandler(), SCH_EDIT_FRAME::OnConvertTextType(), DIALOG_MODULE_MODULE_EDITOR::OnEditReference(), DIALOG_MODULE_BOARD_EDITOR::OnEditReference(), DIALOG_MODULE_MODULE_EDITOR::OnEditValue(), DIALOG_MODULE_BOARD_EDITOR::OnEditValue(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnOKButtonClick(), SCH_COMPONENT::operator==(), PlaceCells(), DRAWING_TOOL::PlaceDXF(), DRAWING_TOOL::PlaceText(), DIALOG_RESCUE_EACH::PopulateInstanceList(), NETLIST_EXPORTER_PSPICE::ProcessNetlist(), LIB_EDIT_FRAME::RedrawComponent(), SCH_EDIT_FRAME::RotateField(), LIB_PART::Save(), SCH_LEGACY_PLUGIN::saveComponent(), SCH_LEGACY_PLUGIN::saveField(), LIB_EDIT_FRAME::SaveOneSymbol(), SCH_LEGACY_PLUGIN::saveText(), SCH_COMPONENT::SCH_COMPONENT(), SCH_REFERENCE::SCH_REFERENCE(), SCH_SCREEN::SetComponentFootprint(), BOM_TABLE_MODEL::SetComponents(), SCH_COMPONENT::SetRef(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::setRowItem(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::setRowItem(), LIB_FIELD::SetText(), SCH_REFERENCE_LIST::sortByReferenceOnly(), DialogEditModuleText::TransferDataToWindow(), DIALOG_PCB_TEXT_PROPERTIES::TransferDataToWindow(), TEXTE_PCB::TransformBoundingBoxWithClearanceToPolygon(), EDA_TEXT::TransformTextShapeToSegmentList(), TUNER_SLIDER::TUNER_SLIDER(), NETLIST_EXPORTER_ORCADPCB2::WriteNetlist(), and NETLIST_EXPORTER_CADSTAR::WriteNetlist().

130 { return m_Text; }
wxString m_Text
Definition: eda_text.h:346
double EDA_TEXT::GetTextAngle ( ) const
inlineinherited

Definition at line 164 of file eda_text.h.

References TEXT_EFFECTS::angle, and EDA_TEXT::m_e.

Referenced by CINFO3D_VISU::AddShapeWithClearanceToContainer(), LIB_TEXT::calcEdit(), LIB_FIELD::calcEdit(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copyPanelToSelectedField(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copySelectedFieldToPanel(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::copySelectedFieldToPanel(), CreateComponentsSection(), DIALOG_EDIT_ONE_FIELD::DIALOG_EDIT_ONE_FIELD(), SCH_FIELD::Draw(), KIGFX::WORKSHEET_VIEWITEM::draw(), LIB_TEXT::drawGraphic(), LIB_FIELD::drawGraphic(), EDA_TEXT::drawOneLineOfText(), export_vrml_pcbtext(), Flip(), PCB_IO::format(), LIB_TEXT::GetBoundingBox(), SCH_FIELD::GetBoundingBox(), TEXTE_PCB::GetBoundingBox(), SCH_TEXT::GetBoundingBox(), LIB_FIELD::GetBoundingBox(), SCH_LABEL::GetBoundingBox(), GetDrawRotation(), TEXTE_PCB::GetMsgPanelInfo(), EDA_TEXT::GetPositionsOfLinesOfMultilineText(), EDA_TEXT::GetTextAngleDegrees(), EDA_TEXT::GetTextAngleRadians(), LIB_TEXT::HitTest(), LIB_FIELD::HitTest(), DIALOG_LIB_EDIT_TEXT::initDlg(), DIMENSION::Mirror(), EAGLE_PLUGIN::orientModuleText(), PCB_PARSER::parseMODULE_unchecked(), PlaceCells(), DRAWING_TOOL::PlaceDXF(), PCB_BASE_FRAME::PlaceTexteModule(), LIB_TEXT::Plot(), SCH_FIELD::Plot(), SCH_TEXT::Plot(), LIB_FIELD::Plot(), BRDITEMS_PLOTTER::PlotTextePcb(), PlotWorkSheet(), TEXTE_PCB::Rotate(), Rotate(), LIB_TEXT::Rotate(), DIMENSION::Rotate(), LIB_FIELD::Rotate(), PCB_EDIT_FRAME::Rotate_Texte_Pcb(), SCH_EDIT_FRAME::RotateField(), PCB_BASE_FRAME::RotateTextModule(), LIB_TEXT::Save(), LIB_FIELD::Save(), SCH_FIELD::Save(), SCH_LEGACY_PLUGIN::saveField(), SCH_SCREEN::SetComponentFootprint(), PCB_BASE_FRAME::StartMoveTexteModule(), EDA_TEXT::TextHitTest(), DialogEditModuleText::TransferDataFromWindow(), DialogEditModuleText::TransferDataToWindow(), TEXTE_PCB::TransformBoundingBoxWithClearanceToPolygon(), TEXTE_PCB::TransformShapeWithClearanceToPolygonSet(), and EDA_TEXT::TransformTextShapeToSegmentList().

164 { return m_e.angle; }
TEXT_EFFECTS m_e
Definition: eda_text.h:368
double angle
now: 0.1 degrees; future: degrees
Definition: eda_text.h:99
double EDA_TEXT::GetTextAngleDegrees ( ) const
inlineinherited

Definition at line 166 of file eda_text.h.

References EDA_TEXT::GetTextAngle().

Referenced by GetMsgPanelInfo(), and DIALOG_PCB_TEXT_PROPERTIES::TransferDataToWindow().

166 { return GetTextAngle() / 10.0; }
double GetTextAngle() const
Definition: eda_text.h:164
double EDA_TEXT::GetTextAngleRadians ( ) const
inlineinherited

Definition at line 167 of file eda_text.h.

References EDA_TEXT::GetTextAngle().

Referenced by KIGFX::PCB_PAINTER::draw().

167 { return GetTextAngle() * M_PI/1800; }
double GetTextAngle() const
Definition: eda_text.h:164
EDA_RECT EDA_TEXT::GetTextBox ( int  aLine = -1,
int  aThickness = -1,
bool  aInvertY = false 
) const
inherited

Function GetTextBox useful in multiline texts to calculate the full text or a line area (for zones filling, locate functions....)

Returns
the rect containing the line of text (i.e. the position and the size of one line) this rectangle is calculated for 0 orient text. If orientation is not 0 the rect must be rotated to match the physical area
Parameters
aLineThe line of text to consider. for single line text, aLine is unused If aLine == -1, the full area (considering all lines) is returned
aThicknessOverrides the current penwidth when greater than 0. This is needed when the current penwidth is 0 and a default penwidth is used.
aInvertYInvert the Y axis when calculating bounding box.

Definition at line 115 of file eda_text.cpp.

References basic_gal, KIGFX::STROKE_FONT::ComputeOverbarVerticalPosition(), KIGFX::STROKE_FONT::ComputeStringBoundaryLimits(), EDA_TEXT::GetHorizJustify(), EDA_TEXT::GetInterline(), EDA_TEXT::GetShownText(), KIGFX::GAL::GetStrokeFont(), EDA_TEXT::GetTextHeight(), EDA_TEXT::GetTextPos(), EDA_TEXT::GetTextSize(), EDA_TEXT::GetThickness(), EDA_TEXT::GetVertJustify(), EDA_RECT::GetWidth(), EDA_RECT::GetX(), EDA_RECT::GetY(), GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_HJUSTIFY_RIGHT, GR_TEXT_VJUSTIFY_BOTTOM, GR_TEXT_VJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_TOP, EDA_TEXT::IsMirrored(), EDA_TEXT::IsMultilineAllowed(), KiROUND(), max, EDA_RECT::Move(), EDA_RECT::Normalize(), EDA_RECT::SetOrigin(), EDA_RECT::SetSize(), EDA_RECT::SetX(), EDA_RECT::SetY(), wxStringSplit(), VECTOR2< T >::x, and wxPoint::y.

Referenced by LIB_TEXT::GetBoundingBox(), SCH_FIELD::GetBoundingBox(), TEXTE_PCB::GetBoundingBox(), GetBoundingBox(), SCH_TEXT::GetBoundingBox(), LIB_FIELD::GetBoundingBox(), DIMENSION::GetBoundingBox(), SCH_LABEL::GetBoundingBox(), PlaceCells(), WORKSHEET_DATAITEM_TEXT::SetConstrainedTextSize(), TextHitTest(), EDA_TEXT::TextHitTest(), TEXTE_PCB::TransformBoundingBoxWithClearanceToPolygon(), and ViewBBox().

116 {
117  EDA_RECT rect;
118  wxArrayString strings;
119  wxString text = GetShownText();
120  int thickness = ( aThickness < 0 ) ? GetThickness() : aThickness;
121  int linecount = 1;
122  bool hasOverBar = false; // true if the first line of text as an overbar
123 
124  if( IsMultilineAllowed() )
125  {
126  wxStringSplit( text, strings, '\n' );
127 
128  if( strings.GetCount() ) // GetCount() == 0 for void strings
129  {
130  if( aLine >= 0 && (aLine < (int)strings.GetCount()) )
131  text = strings.Item( aLine );
132  else
133  text = strings.Item( 0 );
134 
135  linecount = strings.GetCount();
136  }
137  }
138 
139  // Search for overbar symbol. Only text is scanned,
140  // because only this line can change the bounding box
141  for( unsigned ii = 1; ii < text.size(); ii++ )
142  {
143  if( text[ii-1] == '~' && text[ii] != '~' )
144  {
145  hasOverBar = true;
146  break;
147  }
148  }
149 
150  // calculate the H and V size
152  text, VECTOR2D( GetTextSize() ), double( thickness ) ).x );
153  int dy = GetInterline( thickness );
154 
155  // Creates bounding box (rectangle) for an horizontal
156  // and left and top justified text. the bounding box will be moved later
157  // according to the actual text options
158  wxSize textsize = wxSize( dx, dy );
159  wxPoint pos = GetTextPos();
160 
161  if( aInvertY )
162  pos.y = -pos.y;
163 
164  rect.SetOrigin( pos );
165 
166  // The bbox vertical size returned by GetInterline( aThickness )
167  // includes letters like j and y and ] + interval between lines.
168  // The interval below the last line is not usefull, and we can use its half value
169  // as vertical margin above the text
170  // the full interval is roughly GetTextHeight() * 0.4 - aThickness/2
171  rect.Move( wxPoint( 0, thickness/4 - KiROUND( GetTextHeight() * 0.22 ) ) );
172 
173  if( hasOverBar )
174  { // A overbar adds an extra size to the text
175  // Height from the base line text of chars like [ or {
176  double curr_height = GetTextHeight() * 1.15;
177  int extra_height = KiROUND(
178  basic_gal.GetStrokeFont().ComputeOverbarVerticalPosition( GetTextHeight(), thickness ) - curr_height );
179  extra_height += thickness/2;
180  textsize.y += extra_height;
181  rect.Move( wxPoint( 0, -extra_height ) );
182  }
183 
184  // for multiline texts and aLine < 0, merge all rectangles
185  // ( if aLine < 0, we want the full text bounding box )
186  if( IsMultilineAllowed() && aLine < 0 )
187  {
188  for( unsigned ii = 1; ii < strings.GetCount(); ii++ )
189  {
190  text = strings.Item( ii );
192  text, VECTOR2D( GetTextSize() ), double( thickness ) ).x );
193  textsize.x = std::max( textsize.x, dx );
194  textsize.y += dy;
195  }
196  }
197 
198  rect.SetSize( textsize );
199 
200  /* Now, calculate the rect origin, according to text justification
201  * At this point the rectangle origin is the text origin (m_Pos).
202  * This is true only for left and top text justified texts (using top to bottom Y axis
203  * orientation). and must be recalculated for others justifications
204  * also, note the V justification is relative to the first line
205  */
206  switch( GetHorizJustify() )
207  {
209  if( IsMirrored() )
210  rect.SetX( rect.GetX() - rect.GetWidth() );
211  break;
212 
214  rect.SetX( rect.GetX() - (rect.GetWidth() / 2) );
215  break;
216 
218  if( !IsMirrored() )
219  rect.SetX( rect.GetX() - rect.GetWidth() );
220  break;
221  }
222 
223  dy = GetTextHeight() + thickness;
224 
225  switch( GetVertJustify() )
226  {
228  break;
229 
231  rect.SetY( rect.GetY() - ( dy / 2) );
232  break;
233 
235  rect.SetY( rect.GetY() - dy );
236  break;
237  }
238 
239  if( linecount > 1 )
240  {
241  int yoffset;
242  linecount -= 1;
243 
244  switch( GetVertJustify() )
245  {
247  break;
248 
250  yoffset = linecount * GetInterline() / 2;
251  rect.SetY( rect.GetY() - yoffset );
252  break;
253 
255  yoffset = linecount * GetInterline( aThickness );
256  rect.SetY( rect.GetY() - yoffset );
257  break;
258  }
259  }
260 
261  rect.Normalize(); // Make h and v sizes always >= 0
262 
263  return rect;
264 }
void wxStringSplit(const wxString &aText, wxArrayString &aStrings, wxChar aSplitter)
Function wxStringSplit splits aString to a string list separated at aSplitter.
Definition: common.cpp:137
int GetInterline(int aTextThickness=-1) const
Return the distance between two lines of text.
Definition: eda_text.cpp:107
void Move(const wxPoint &aMoveVector)
Function Move moves the rectangle by the aMoveVector.
bool IsMultilineAllowed() const
Definition: eda_text.h:188
const wxPoint & GetTextPos() const
Definition: eda_text.h:224
static int KiROUND(double v)
KiROUND rounds a floating point number to an int using "round halfway cases away from zero"...
Definition: common.h:107
void SetOrigin(const wxPoint &pos)
EDA_TEXT_HJUSTIFY_T GetHorizJustify() const
Definition: eda_text.h:190
VECTOR2D ComputeStringBoundaryLimits(const UTF8 &aText, VECTOR2D aGlyphSize, double aGlyphThickness, double *aTopLimit=NULL, double *aBottomLimit=NULL) const
Compute the boundary limits of aText (the bbox of all shapes).
int GetThickness() const
Function GetThickness returns pen width.
Definition: eda_text.h:154
virtual wxString GetShownText() const
Returns the string actually shown after processing of the base text.
Definition: eda_text.h:135
VECTOR2< double > VECTOR2D
Definition: vector2d.h:589
void SetX(int val)
void SetY(int val)
void Normalize()
Function Normalize ensures that the height ant width are positive.
EDA_TEXT_VJUSTIFY_T GetVertJustify() const
Definition: eda_text.h:191
void SetSize(const wxSize &size)
#define max(a, b)
Definition: auxiliary.h:86
bool IsMirrored() const
Definition: eda_text.h:179
Class EDA_RECT handles the component boundary box.
int GetX() const
double ComputeOverbarVerticalPosition(double aGlyphHeight, double aGlyphThickness) const
Compute the vertical position of an overbar, sometimes used in texts.
int GetWidth() const
int GetY() const
int GetTextHeight() const
Definition: eda_text.h:221
BASIC_GAL basic_gal(basic_displayOptions)
const wxSize & GetTextSize() const
Definition: eda_text.h:215
const STROKE_FONT & GetStrokeFont() const
const wxPoint& EDA_TEXT::GetTextPos ( ) const
inlineinherited

Definition at line 224 of file eda_text.h.

References EDA_TEXT::m_e, and TEXT_EFFECTS::pos.

Referenced by CINFO3D_VISU::AddGraphicsShapesWithClearanceToContainer(), CINFO3D_VISU::AddShapeWithClearanceToContainer(), LIB_TEXT::BeginEdit(), LIB_FIELD::BeginEdit(), PCB_EDIT_FRAME::BeginMoveDimensionText(), LIB_TEXT::compare(), LIB_FIELD::compare(), SCH_SHEET_PIN::ConstrainOnEdge(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copySelectedFieldToPanel(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::copySelectedFieldToPanel(), DIALOG_DIMENSION_EDITOR::DIALOG_DIMENSION_EDITOR(), SCH_LABEL::doIsConnected(), SCH_GLOBALLABEL::doIsConnected(), SCH_HIERLABEL::doIsConnected(), SCH_TEXT::Draw(), SCH_FIELD::Draw(), KIGFX::WORKSHEET_VIEWITEM::draw(), Draw(), KIGFX::PCB_PAINTER::draw(), EDA_TEXT::Draw(), SCH_GLOBALLABEL::Draw(), SCH_HIERLABEL::Draw(), WS_DRAW_ITEM_LIST::Draw(), LIB_FIELD::drawGraphic(), DrawUmbilical(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::EditSpiceModel(), export_vrml_pcbtext(), export_vrml_text_module(), TEXTE_PCB::Flip(), Flip(), PCB_EDIT_FRAME::FlipTextePcb(), PCB_IO::format(), LIB_TEXT::GetBoundingBox(), SCH_FIELD::GetBoundingBox(), TEXTE_PCB::GetBoundingBox(), GetBoundingBox(), SCH_TEXT::GetBoundingBox(), LIB_FIELD::GetBoundingBox(), SCH_LABEL::GetBoundingBox(), SCH_GLOBALLABEL::GetBoundingBox(), SCH_HIERLABEL::GetBoundingBox(), SCH_TEXT::GetConnectionPoints(), SCH_TEXT::GetEndPoints(), SCH_SHEET_PIN::GetEndPoints(), SCH_FIELD::GetLibPosition(), SCH_TEXT::GetNetListItem(), TEXTE_PCB::GetPosition(), GetPosition(), DIMENSION::GetPosition(), LIB_TEXT::GetPosition(), SCH_FIELD::GetPosition(), SCH_TEXT::GetPosition(), LIB_FIELD::GetPosition(), EDA_TEXT::GetPositionsOfLinesOfMultilineText(), EDA_TEXT::GetTextBox(), LIB_TEXT::HitTest(), LIB_FIELD::HitTest(), WS_DRAW_ITEM_TEXT::HitTestStartPoint(), LIB_TEXT::Inside(), LIB_FIELD::Inside(), SCH_TEXT::IsDanglingStateChanged(), SCH_TEXT::IsSelectStateChanged(), MarkItemsInBloc(), Mirror(), DIMENSION::Mirror(), LIB_TEXT::MirrorHorizontal(), LIB_FIELD::MirrorHorizontal(), LIB_TEXT::MirrorVertical(), LIB_FIELD::MirrorVertical(), SCH_TEXT::MirrorX(), SCH_SHEET_PIN::MirrorX(), SCH_LABEL::MirrorX(), SCH_GLOBALLABEL::MirrorX(), SCH_HIERLABEL::MirrorX(), SCH_COMPONENT::MirrorX(), SCH_TEXT::MirrorY(), SCH_SHEET_PIN::MirrorY(), SCH_GLOBALLABEL::MirrorY(), SCH_HIERLABEL::MirrorY(), SCH_COMPONENT::MirrorY(), DIALOG_MODULE_MODULE_EDITOR::OnEditReference(), DIALOG_MODULE_BOARD_EDITOR::OnEditReference(), DIALOG_MODULE_MODULE_EDITOR::OnEditValue(), DIALOG_MODULE_BOARD_EDITOR::OnEditValue(), PCB_PARSER::parseDIMENSION(), PCB_EDIT_FRAME::Place_Texte_Pcb(), PCB_EDIT_FRAME::PlaceDimensionText(), DRAWING_TOOL::PlaceDXF(), PCB_BASE_FRAME::PlaceTexteModule(), SCH_TEXT::Plot(), BRDITEMS_PLOTTER::PlotTextePcb(), BRDITEMS_PLOTTER::PlotTextModule(), PlotWorkSheet(), TEXTE_PCB::Rotate(), Rotate(), LIB_TEXT::Rotate(), SCH_FIELD::Rotate(), SCH_TEXT::Rotate(), SCH_SHEET_PIN::Rotate(), DIMENSION::Rotate(), LIB_FIELD::Rotate(), SCH_LABEL::Rotate(), SCH_GLOBALLABEL::Rotate(), SCH_HIERLABEL::Rotate(), SCH_COMPONENT::Rotate(), PCB_EDIT_FRAME::Rotate_Texte_Pcb(), LIB_TEXT::Save(), LIB_FIELD::Save(), SCH_FIELD::Save(), SCH_TEXT::Save(), SCH_SHEET_PIN::Save(), SCH_LABEL::Save(), SCH_GLOBALLABEL::Save(), SCH_HIERLABEL::Save(), SCH_SCREEN::SetComponentFootprint(), SetDrawCoord(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::SetInitCmp(), SetLocalCoord(), SCH_COMPONENT::SetRef(), PCB_BASE_FRAME::StartMoveTexteModule(), PCB_EDIT_FRAME::StartMoveTextePcb(), TextHitTest(), EDA_TEXT::TextHitTest(), DIALOG_PCB_TEXT_PROPERTIES::TransferDataToWindow(), TEXTE_PCB::TransformBoundingBoxWithClearanceToPolygon(), MODULE::TransformGraphicShapesWithClearanceToPolygonSet(), MODULE::TransformGraphicTextWithClearanceToPolygonSet(), TEXTE_PCB::TransformShapeWithClearanceToPolygonSet(), EDA_TEXT::TransformTextShapeToSegmentList(), and ViewBBox().

224 { return m_e.pos; }
TEXT_EFFECTS m_e
Definition: eda_text.h:368
wxPoint pos
Definition: eda_text.h:100
const wxSize& EDA_TEXT::GetTextSize ( void  ) const
inlineinherited

Definition at line 215 of file eda_text.h.

References EDA_TEXT::m_e, and TEXT_EFFECTS::size.

Referenced by CINFO3D_VISU::AddGraphicsShapesWithClearanceToContainer(), CINFO3D_VISU::AddShapeWithClearanceToContainer(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::copySelectedFieldToPanel(), SCH_GLOBALLABEL::CreateGraphicShape(), MWAVE::CreateMicrowaveInductor(), SCH_EDIT_FRAME::CreateSheetPin(), SCH_TEXT::Draw(), SCH_FIELD::Draw(), Draw(), SCH_GLOBALLABEL::Draw(), SCH_HIERLABEL::Draw(), DRAWING_TOOL::DrawDimension(), LIB_TEXT::drawGraphic(), LIB_FIELD::drawGraphic(), EDA_TEXT::drawOneLineOfText(), PCB_EDIT_FRAME::EditDimension(), export_vrml_pcbtext(), export_vrml_text_module(), SCH_FIELD::GetBoundingBox(), SCH_TEXT::GetBoundingBox(), LIB_TEXT::GetPenSize(), SCH_FIELD::GetPenSize(), SCH_TEXT::GetPenSize(), SCH_GLOBALLABEL::GetSchematicTextOffset(), EDA_TEXT::GetTextBox(), EDA_TEXT::LenSize(), EAGLE_PLUGIN::loadPlain(), SCH_EDIT_FRAME::OnConvertTextType(), DIALOG_DIMENSION_EDITOR::OnOKClick(), EAGLE_PLUGIN::orientModuleText(), DRAWING_TOOL::PlaceDXF(), LIB_TEXT::Plot(), SCH_FIELD::Plot(), SCH_TEXT::Plot(), LIB_FIELD::Plot(), BRDITEMS_PLOTTER::PlotTextePcb(), BRDITEMS_PLOTTER::PlotTextModule(), PlotWorkSheet(), PCB_BASE_FRAME::ResetModuleTextSizes(), PCB_BASE_FRAME::ResetTextSize(), SCH_SCREEN::SetComponentFootprint(), KIGFX::GAL::SetTextAttributes(), DialogEditModuleText::TransferDataFromWindow(), DIALOG_PCB_TEXT_PROPERTIES::TransferDataFromWindow(), MODULE::TransformGraphicShapesWithClearanceToPolygonSet(), MODULE::TransformGraphicTextWithClearanceToPolygonSet(), TEXTE_PCB::TransformShapeWithClearanceToPolygonSet(), and EDA_TEXT::TransformTextShapeToSegmentList().

215 { return m_e.size; };
TEXT_EFFECTS m_e
Definition: eda_text.h:368
wxSize size
Definition: eda_text.h:97
wxString EDA_TEXT::GetTextStyleName ( )
inherited

Function GetTextStyleName.

Returns
a wxString with the style name( Normal, Italic, Bold, Bold+Italic)

Definition at line 393 of file eda_text.cpp.

References EDA_TEXT::IsBold(), and EDA_TEXT::IsItalic().

Referenced by LIB_FIELD::GetMsgPanelInfo().

394 {
395  int style = 0;
396 
397  if( IsItalic() )
398  style = 1;
399 
400  if( IsBold() )
401  style += 2;
402 
403  wxString stylemsg[4] = {
404  _("Normal"),
405  _("Italic"),
406  _("Bold"),
407  _("Bold+Italic")
408  };
409 
410  return stylemsg[style];
411 }
bool IsItalic() const
Definition: eda_text.h:170
bool IsBold() const
Definition: eda_text.h:173
int EDA_TEXT::GetThickness ( ) const
inlineinherited

Function GetThickness returns pen width.

Definition at line 154 of file eda_text.h.

References EDA_TEXT::m_e, and TEXT_EFFECTS::penwidth.

Referenced by CINFO3D_VISU::AddGraphicsShapesWithClearanceToContainer(), CINFO3D_VISU::AddShapeWithClearanceToContainer(), DIMENSION::AdjustDimensionDetails(), SCH_GLOBALLABEL::CreateGraphicShape(), SCH_TEXT::Draw(), SCH_FIELD::Draw(), KIGFX::WORKSHEET_VIEWITEM::draw(), Draw(), KIGFX::PCB_PAINTER::draw(), SCH_GLOBALLABEL::Draw(), SCH_HIERLABEL::Draw(), EDA_TEXT::drawOneLineOfText(), export_vrml_pcbtext(), export_vrml_text_module(), EDA_TEXT::Format(), SCH_FIELD::GetBoundingBox(), SCH_TEXT::GetBoundingBox(), SCH_LABEL::GetBoundingBox(), SCH_GLOBALLABEL::GetBoundingBox(), SCH_HIERLABEL::GetBoundingBox(), EDA_TEXT::GetInterline(), TEXTE_PCB::GetMsgPanelInfo(), LIB_TEXT::GetMsgPanelInfo(), GetMsgPanelInfo(), LIB_TEXT::GetPenSize(), LIB_FIELD::GetPenSize(), SCH_FIELD::GetPenSize(), SCH_TEXT::GetPenSize(), WS_DRAW_ITEM_TEXT::GetPenWidth(), SCH_GLOBALLABEL::GetSchematicTextOffset(), SCH_HIERLABEL::GetSchematicTextOffset(), EDA_TEXT::GetTextBox(), LIB_TEXT::GetWidth(), LIB_FIELD::GetWidth(), EDA_TEXT::IsDefaultFormatting(), SCH_EDIT_FRAME::OnConvertTextType(), DRAWING_TOOL::PlaceDXF(), BRDITEMS_PLOTTER::PlotTextePcb(), BRDITEMS_PLOTTER::PlotTextModule(), PCB_BASE_FRAME::ResetModuleTextSizes(), PCB_BASE_FRAME::ResetTextSize(), SCH_TEXT::Save(), SCH_LABEL::Save(), SCH_GLOBALLABEL::Save(), SCH_HIERLABEL::Save(), SCH_LEGACY_PLUGIN::saveText(), DRC::testTexts(), DIALOG_PCB_TEXT_PROPERTIES::TransferDataFromWindow(), DialogEditModuleText::TransferDataToWindow(), DIALOG_PCB_TEXT_PROPERTIES::TransferDataToWindow(), MODULE::TransformGraphicShapesWithClearanceToPolygonSet(), MODULE::TransformGraphicTextWithClearanceToPolygonSet(), TEXTE_PCB::TransformShapeWithClearanceToPolygonSet(), and EDA_TEXT::TransformTextShapeToSegmentList().

154 { return m_e.penwidth; };
TEXT_EFFECTS m_e
Definition: eda_text.h:368
int penwidth
Definition: eda_text.h:98
int BOARD_ITEM::getTrailingInt ( wxString  aStr)
staticprotectedinherited

Definition at line 200 of file class_board_item.cpp.

Referenced by MODULE::GetNextPadName().

201 {
202  int number = 0;
203  int base = 1;
204 
205  // Trim and extract the trailing numeric part
206  int index = aStr.Len() - 1;
207  while( index >= 0 )
208  {
209  const char chr = aStr.GetChar( index );
210 
211  if( chr < '0' || chr > '9' )
212  break;
213 
214  number += ( chr - '0' ) * base;
215  base *= 10;
216  index--;
217  }
218 
219  return number;
220 }
virtual bool TEXTE_MODULE::HitTest ( const wxPoint aPosition) const
inlineoverridevirtual

Function HitTest tests if aPosition is contained within or on the bounding area of an item.

Parameters
aPositionA reference to a wxPoint object containing the coordinates to test.
Returns
True if aPosition is within or on the item bounding area.

Reimplemented from BOARD_ITEM.

Definition at line 191 of file class_text_mod.h.

References TextHitTest().

192  {
193  return TextHitTest( aPosition );
194  }
virtual bool TextHitTest(const wxPoint &aPoint, int aAccuracy=0) const override
Function TextHitTest Test if aPoint is within the bounds of this object.
virtual bool TEXTE_MODULE::HitTest ( const EDA_RECT aRect,
bool  aContained = false,
int  aAccuracy = 0 
) const
inlineoverridevirtual

Function HitTest tests if the aRect intersects or contains this object (depending on aContained).

Parameters
aRectA reference to an EDA_RECT object containg the area to test.
aContainedTest if aRect contains this object completly.
aAccuracyIncrease the item bounding box by this amount.
Returns
bool - True if aRect contains this object completly or if aRect intersects the object and aContained is False, otherwise false.

Reimplemented from BOARD_ITEM.

Definition at line 196 of file class_text_mod.h.

References TextHitTest().

197  {
198  return TextHitTest( aRect, aContained, aAccuracy );
199  }
virtual bool TextHitTest(const wxPoint &aPoint, int aAccuracy=0) const override
Function TextHitTest Test if aPoint is within the bounds of this object.
bool EDA_TEXT::IsBold ( ) const
inlineinherited

Definition at line 173 of file eda_text.h.

References TEXT_EFFECTS::Bit(), EDA_TEXT::m_e, and EDA_TEXT::TE_BOLD.

Referenced by DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copySelectedFieldToPanel(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::copySelectedFieldToPanel(), SCH_GLOBALLABEL::CreateGraphicShape(), SCH_EDIT_FRAME::CreateNewText(), DIALOG_EDIT_ONE_FIELD::DIALOG_EDIT_ONE_FIELD(), SCH_TEXT::Draw(), SCH_FIELD::Draw(), Draw(), SCH_GLOBALLABEL::Draw(), SCH_HIERLABEL::Draw(), LIB_TEXT::drawGraphic(), LIB_FIELD::drawGraphic(), EDA_TEXT::drawOneLineOfText(), EDA_TEXT::Format(), SCH_FIELD::GetBoundingBox(), SCH_TEXT::GetBoundingBox(), SCH_TEXT::GetMsgPanelInfo(), LIB_TEXT::GetPenSize(), SCH_FIELD::GetPenSize(), SCH_TEXT::GetPenSize(), SCH_GLOBALLABEL::GetSchematicTextOffset(), EDA_TEXT::GetTextStyleName(), DIALOG_LABEL_EDITOR::InitDialog(), DIALOG_LIB_EDIT_TEXT::initDlg(), EDA_TEXT::IsDefaultFormatting(), EDA_TEXT::LenSize(), SCH_TEXT::Load(), SCH_LABEL::Load(), SCH_GLOBALLABEL::Load(), SCH_HIERLABEL::Load(), SCH_EDIT_FRAME::OnConvertTextType(), DRAWING_TOOL::PlaceDXF(), LIB_TEXT::Plot(), SCH_FIELD::Plot(), SCH_TEXT::Plot(), LIB_FIELD::Plot(), BRDITEMS_PLOTTER::PlotTextePcb(), BRDITEMS_PLOTTER::PlotTextModule(), PlotWorkSheet(), LIB_TEXT::Save(), LIB_FIELD::Save(), SCH_FIELD::Save(), SCH_LEGACY_PLUGIN::saveField(), and KIGFX::GAL::SetTextAttributes().

173 { return m_e.Bit( TE_BOLD ); }
TEXT_EFFECTS m_e
Definition: eda_text.h:368
void Bit(int aBit, bool aValue)
Definition: eda_text.h:102
bool EDA_ITEM::IsBrightened ( ) const
inlineinherited

Definition at line 224 of file base_struct.h.

References BRIGHTENED.

Referenced by SELECTION_TOOL::disambiguationMenu().

224 { return m_Flags & BRIGHTENED; }
#define BRIGHTENED
item is drawn with a bright contour
Definition: base_struct.h:137
STATUS_FLAGS m_Flags
Flag bits for editing and other uses.
Definition: base_struct.h:175
virtual bool BOARD_ITEM::IsConnected ( ) const
inlinevirtualinherited

Function IsConnected() Returns information if the object is derived from BOARD_CONNECTED_ITEM.

Returns
True if the object is of BOARD_CONNECTED_ITEM type, false otherwise.

Reimplemented in BOARD_CONNECTED_ITEM.

Definition at line 114 of file class_board_item.h.

Referenced by CONNECTIVITY_DATA::MarkItemNetAsDirty(), and CN_CONNECTIVITY_ALGO::markItemNetAsDirty().

115  {
116  return false;
117  }
bool EDA_TEXT::IsDefaultFormatting ( ) const
inherited

Definition at line 414 of file eda_text.cpp.

References DEFAULT_SIZE_TEXT, EDA_TEXT::GetHorizJustify(), EDA_TEXT::GetTextHeight(), EDA_TEXT::GetTextWidth(), EDA_TEXT::GetThickness(), EDA_TEXT::GetVertJustify(), GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_CENTER, EDA_TEXT::IsBold(), EDA_TEXT::IsItalic(), EDA_TEXT::IsMirrored(), EDA_TEXT::IsMultilineAllowed(), and EDA_TEXT::IsVisible().

Referenced by EDA_TEXT::Format().

415 {
416  return ( GetTextWidth() == Mils2iu( DEFAULT_SIZE_TEXT )
417  && GetTextHeight() == Mils2iu( DEFAULT_SIZE_TEXT )
418  && IsVisible()
419  && !IsMirrored()
422  && GetThickness() == 0
423  && !IsItalic()
424  && !IsBold()
425  && !IsMultilineAllowed()
426  );
427 }
#define DEFAULT_SIZE_TEXT
This is the "default-of-the-default" hardcoded text size; individual application define their own def...
Definition: eda_text.h:74
bool IsMultilineAllowed() const
Definition: eda_text.h:188
bool IsItalic() const
Definition: eda_text.h:170
int GetTextWidth() const
Definition: eda_text.h:218
EDA_TEXT_HJUSTIFY_T GetHorizJustify() const
Definition: eda_text.h:190
bool IsBold() const
Definition: eda_text.h:173
int GetThickness() const
Function GetThickness returns pen width.
Definition: eda_text.h:154
EDA_TEXT_VJUSTIFY_T GetVertJustify() const
Definition: eda_text.h:191
bool IsMirrored() const
Definition: eda_text.h:179
bool IsVisible() const
Definition: eda_text.h:176
int GetTextHeight() const
Definition: eda_text.h:221
bool EDA_ITEM::IsDragging ( ) const
inlineinherited
bool EDA_ITEM::IsHighlighted ( ) const
inlineinherited

Definition at line 223 of file base_struct.h.

References HIGHLIGHTED.

223 { return m_Flags & HIGHLIGHTED; }
#define HIGHLIGHTED
item is drawn in normal colors, when the rest is darkened
Definition: base_struct.h:136
STATUS_FLAGS m_Flags
Flag bits for editing and other uses.
Definition: base_struct.h:175
bool EDA_TEXT::IsItalic ( ) const
inlineinherited

Definition at line 170 of file eda_text.h.

References TEXT_EFFECTS::Bit(), EDA_TEXT::m_e, and EDA_TEXT::TE_ITALIC.

Referenced by CINFO3D_VISU::AddGraphicsShapesWithClearanceToContainer(), CINFO3D_VISU::AddShapeWithClearanceToContainer(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copySelectedFieldToPanel(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::copySelectedFieldToPanel(), SCH_EDIT_FRAME::CreateNewText(), DIALOG_EDIT_ONE_FIELD::DIALOG_EDIT_ONE_FIELD(), SCH_FIELD::Draw(), Draw(), LIB_TEXT::drawGraphic(), LIB_FIELD::drawGraphic(), EDA_TEXT::drawOneLineOfText(), export_vrml_pcbtext(), export_vrml_text_module(), EDA_TEXT::Format(), SCH_TEXT::GetMsgPanelInfo(), EDA_TEXT::GetTextStyleName(), DIALOG_LABEL_EDITOR::InitDialog(), DIALOG_LIB_EDIT_TEXT::initDlg(), EDA_TEXT::IsDefaultFormatting(), EDA_TEXT::LenSize(), SCH_EDIT_FRAME::OnConvertTextType(), DRAWING_TOOL::PlaceDXF(), LIB_TEXT::Plot(), SCH_FIELD::Plot(), SCH_TEXT::Plot(), LIB_FIELD::Plot(), BRDITEMS_PLOTTER::PlotTextePcb(), BRDITEMS_PLOTTER::PlotTextModule(), PlotWorkSheet(), LIB_TEXT::Save(), LIB_FIELD::Save(), SCH_FIELD::Save(), SCH_TEXT::Save(), SCH_LABEL::Save(), SCH_GLOBALLABEL::Save(), SCH_HIERLABEL::Save(), SCH_LEGACY_PLUGIN::saveField(), SCH_LEGACY_PLUGIN::saveText(), KIGFX::GAL::SetTextAttributes(), DialogEditModuleText::TransferDataToWindow(), DIALOG_PCB_TEXT_PROPERTIES::TransferDataToWindow(), MODULE::TransformGraphicShapesWithClearanceToPolygonSet(), MODULE::TransformGraphicTextWithClearanceToPolygonSet(), TEXTE_PCB::TransformShapeWithClearanceToPolygonSet(), and EDA_TEXT::TransformTextShapeToSegmentList().

170 { return m_e.Bit( TE_ITALIC ); }
TEXT_EFFECTS m_e
Definition: eda_text.h:368
void Bit(int aBit, bool aValue)
Definition: eda_text.h:102
virtual bool BOARD_ITEM::IsLocked ( ) const
inlinevirtualinherited

Function IsLocked.

Returns
bool - true if the object is locked, else false

Reimplemented in MODULE, and TRACK.

Definition at line 202 of file class_board_item.h.

Referenced by DIALOG_GLOBAL_DELETION::AcceptPcbDelete(), GENERAL_COLLECTOR::Inspect(), PCB_EDITOR_CONTROL::modifyLockSelected(), and PCB_EDIT_FRAME::OnHotkeyDeleteItem().

203  {
204  // only MODULEs & TRACKs can be locked at this time.
205  return false;
206  }
bool EDA_ITEM::IsModified ( ) const
inlineinherited

Definition at line 217 of file base_struct.h.

References IS_CHANGED.

Referenced by LIB_EDIT_FRAME::OnEditPin().

217 { return m_Flags & IS_CHANGED; }
#define IS_CHANGED
std::function passed to nested users by ref, avoids copying std::function
Definition: base_struct.h:109
STATUS_FLAGS m_Flags
Flag bits for editing and other uses.
Definition: base_struct.h:175
bool EDA_ITEM::IsNew ( ) const
inlineinherited

Definition at line 216 of file base_struct.h.

References IS_NEW.

Referenced by Abort_Edit_Pcb_Text(), Abort_EditEdge(), Abort_Move_ModuleOutline(), Abort_MoveOrCopyModule(), Abort_Zone_Create_Outline(), AbortBuildDimension(), AbortMoveAndEditTarget(), abortMoveBitmap(), abortMoveItem(), AbortPinMove(), AbortSymbolTraceOn(), SCH_EDIT_FRAME::addCurrentItemToList(), SCH_EDIT_FRAME::addJunctionMenuEntries(), AddMenusForBus(), AddMenusForWire(), PCB_EDIT_FRAME::Delete_Segment(), PCB_EDIT_FRAME::Delete_Segment_Edge(), SCH_EDIT_FRAME::DeleteCurrentSegment(), LIB_ARC::drawEditGraphics(), LIB_ARC::drawGraphic(), DrawMovePin(), SCH_EDIT_FRAME::EditSheetPin(), LIB_PIN::EnableEditMode(), LIB_EDIT_FRAME::EndDrawGraphicItem(), SCH_EDIT_FRAME::EndSegment(), ExitSheet(), LIB_PART::LIB_PART(), SCH_EDIT_FRAME::OnAutoplaceFields(), SCH_EDIT_FRAME::OnConvertTextType(), LIB_EDIT_FRAME::OnEditPin(), SCH_EDIT_FRAME::OnHotKey(), FOOTPRINT_EDIT_FRAME::OnLeftClick(), LIB_EDIT_FRAME::OnLeftClick(), PCB_EDIT_FRAME::OnLeftClick(), FOOTPRINT_EDIT_FRAME::OnLeftDClick(), LIB_EDIT_FRAME::OnLeftDClick(), SCH_EDIT_FRAME::OnLeftDClick(), PCB_EDIT_FRAME::OnLeftDClick(), LIB_EDIT_FRAME::OnRightClick(), SCH_EDIT_FRAME::OnRightClick(), SCH_EDIT_FRAME::OnRotate(), PCB_EDIT_FRAME::Place_Texte_Pcb(), PCB_BASE_FRAME::PlaceModule(), LIB_EDIT_FRAME::PlacePin(), PCB_EDIT_FRAME::PlaceTarget(), SCH_EDIT_FRAME::PrepareMoveItem(), SCH_EDIT_FRAME::ReSizeSheet(), ShowClearance(), PCB_EDIT_FRAME::StartMoveTextePcb(), PCB_EDIT_FRAME::SwitchLayer(), and DIALOG_LABEL_EDITOR::TextPropertiesAccept().

216 { return m_Flags & IS_NEW; }
#define IS_NEW
New item, just created.
Definition: base_struct.h:113
STATUS_FLAGS m_Flags
Flag bits for editing and other uses.
Definition: base_struct.h:175
virtual bool BOARD_ITEM::IsOnLayer ( PCB_LAYER_ID  aLayer) const
inlinevirtualinherited

Function IsOnLayer tests to see if this object is on the given layer.

Is virtual so objects like D_PAD, which reside on multiple layers can do their own form of testing.

Parameters
aLayerThe layer to test for.
Returns
bool - true if on given layer, else false.

Reimplemented in D_PAD, VIA, and MARKER_PCB.

Definition at line 182 of file class_board_item.h.

Referenced by CINFO3D_VISU::createLayers(), TEXTE_PCB::Draw(), EDGE_MODULE::Draw(), ZONE_CONTAINER::Draw(), Draw(), TRACK::Draw(), DRAWSEGMENT::Draw(), SEGZONE::Draw(), ZONE_CONTAINER::DrawFilledArea(), TRACK::DrawShortNetname(), ZONE_CONTAINER::DrawWhileCreateOutline(), GENERAL_COLLECTOR::Inspect(), SELECTION_TOOL::selectable(), and TraceSegmentPcb().

183  {
184  return m_Layer == aLayer;
185  }
PCB_LAYER_ID m_Layer
virtual bool EDA_ITEM::IsReplaceable ( ) const
inlinevirtualinherited

Function IsReplaceable.

Override this method in any derived object that supports test find and replace.

Returns
True if the item has replaceable text that can be modified using the find and replace dialog.

Reimplemented in SCH_COMPONENT, SCH_SHEET, SCH_LABEL, SCH_SHEET_PIN, SCH_FIELD, and SCH_TEXT.

Definition at line 444 of file base_struct.h.

Referenced by EDA_ITEM::Matches(), and EDA_ITEM::Replace().

444 { return false; }
bool EDA_ITEM::IsResized ( ) const
inlineinherited

Definition at line 222 of file base_struct.h.

References IS_RESIZED.

Referenced by ExitSheet().

222 { return m_Flags & IS_RESIZED; }
STATUS_FLAGS m_Flags
Flag bits for editing and other uses.
Definition: base_struct.h:175
#define IS_RESIZED
Item being resized.
Definition: base_struct.h:114
bool BOARD_ITEM::IsTrack ( ) const
inlineinherited

Function IsTrack tests to see if this object is a track or via (or microvia).

form of testing.

Returns
bool - true if a track or via, else false.

Definition at line 193 of file class_board_item.h.

References PCB_TRACE_T, PCB_VIA_T, and EDA_ITEM::Type().

Referenced by PCB_EDIT_FRAME::OnHotKey(), and PCB_EDIT_FRAME::OnHotkeyDeleteItem().

194  {
195  return ( Type() == PCB_TRACE_T ) || ( Type() == PCB_VIA_T );
196  }
KICAD_T Type() const
Function Type()
Definition: base_struct.h:198
class TRACK, a track segment (segment on a copper layer)
Definition: typeinfo.h:107
class VIA, a via (like a track segment on a copper layer)
Definition: typeinfo.h:108
bool EDA_ITEM::IsWireImage ( ) const
inlineinherited

Definition at line 220 of file base_struct.h.

References IS_WIRE_IMAGE.

Referenced by abortMoveItem(), and SCH_FIELD::Draw().

220 { return m_Flags & IS_WIRE_IMAGE; }
#define IS_WIRE_IMAGE
Item to be drawn as wireframe while editing.
Definition: base_struct.h:117
STATUS_FLAGS m_Flags
Flag bits for editing and other uses.
Definition: base_struct.h:175
SEARCH_RESULT EDA_ITEM::IterateForward ( EDA_ITEM listStart,
INSPECTOR  inspector,
void *  testData,
const KICAD_T  scanTypes[] 
)
staticinherited

Function IterateForward walks through the object tree calling the inspector() on each object type requested in scanTypes.

Parameters
listStartThe first in a list of EDA_ITEMs to iterate over.
inspectorIs an INSPECTOR to call on each object that is one of the requested scanTypes.
testDataIs an aid to testFunc, and should be sufficient to allow it to fully determine if an item meets the match criteria, but it may also be used to collect output.
scanTypesA KICAD_T array that is EOT terminated, and provides both the order and interest level of of the types of objects to be iterated over.
Returns
SEARCH_RESULT SEARCH_QUIT if the called INSPECTOR returned SEARCH_QUIT, else SCAN_CONTINUE;

Definition at line 132 of file base_struct.cpp.

References EDA_ITEM::Pnext, SEARCH_CONTINUE, SEARCH_QUIT, and EDA_ITEM::Visit().

Referenced by SCH_COLLECTOR::Collect(), SCH_FIND_COLLECTOR::Collect(), SCH_TYPE_COLLECTOR::Collect(), MODULE::Visit(), and BOARD::Visit().

136 {
137  EDA_ITEM* p = listStart;
138 
139  for( ; p; p = p->Pnext )
140  {
141  if( SEARCH_QUIT == p->Visit( inspector, testData, scanTypes ) )
142  return SEARCH_QUIT;
143  }
144 
145  return SEARCH_CONTINUE;
146 }
virtual SEARCH_RESULT Visit(INSPECTOR inspector, void *testData, const KICAD_T scanTypes[])
Function Visit may be re-implemented for each derived class in order to handle all the types given by...
Class EDA_ITEM is a base class for most all the KiCad significant classes, used in schematics and boa...
Definition: base_struct.h:151
EDA_ITEM * Pnext
next in linked list
Definition: base_struct.h:164
int EDA_TEXT::LenSize ( const wxString &  aLine) const
inherited

Function LenSize.

Returns
the text length in internal units
Parameters
aLine: the line of text to consider. For single line text, this parameter is always m_Text

Definition at line 80 of file eda_text.cpp.

References basic_gal, KIGFX::GAL::GetTextLineSize(), EDA_TEXT::GetTextSize(), EDA_TEXT::IsBold(), EDA_TEXT::IsItalic(), KiROUND(), KIGFX::GAL::SetFontBold(), KIGFX::GAL::SetFontItalic(), KIGFX::GAL::SetGlyphSize(), and VECTOR2< T >::x.

Referenced by SCH_GLOBALLABEL::CreateGraphicShape(), SCH_GLOBALLABEL::GetBoundingBox(), and SCH_HIERLABEL::GetBoundingBox().

81 {
85 
86  VECTOR2D tsize = basic_gal.GetTextLineSize( aLine );
87 
88  return KiROUND( tsize.x );
89 }
void SetFontItalic(const bool aItalic)
Set italic property of current font.
static int KiROUND(double v)
KiROUND rounds a floating point number to an int using "round halfway cases away from zero"...
Definition: common.h:107
bool IsItalic() const
Definition: eda_text.h:170
bool IsBold() const
Definition: eda_text.h:173
void SetFontBold(const bool aBold)
Set bold property of current font.
VECTOR2< double > VECTOR2D
Definition: vector2d.h:589
void SetGlyphSize(const VECTOR2D aGlyphSize)
Set the font glyph size.
BASIC_GAL basic_gal(basic_displayOptions)
const wxSize & GetTextSize() const
Definition: eda_text.h:215
VECTOR2D GetTextLineSize(const UTF8 &aText) const
Compute the X and Y size of a given text.
virtual bool EDA_ITEM::Matches ( wxFindReplaceData &  aSearchData,
void *  aAuxData,
wxPoint aFindLocation 
)
inlinevirtualinherited

Function Matches compares the item against the search criteria in aSearchData.

The base class returns false since many of the objects derived from EDA_ITEM do not have any text to search.

Parameters
aSearchDataA reference to a wxFindReplaceData object containing the search criteria.
aAuxDataA pointer to optional data required for the search or NULL if not used.
aFindLocationA pointer to a wxPoint object to store the location of matched item. The pointer can be NULL if it is not used.
Returns
True if the item's text matches the search criteria in aSearchData.

Reimplemented in SCH_SHEET, SCH_COMPONENT, SCH_SHEET_PIN, SCH_FIELD, SCH_TEXT, LIB_PIN, and SCH_MARKER.

Definition at line 400 of file base_struct.h.

Referenced by SCH_FIND_COLLECTOR::Inspect(), SCH_MARKER::Matches(), LIB_PIN::Matches(), SCH_TEXT::Matches(), SCH_FIELD::Matches(), SCH_SHEET_PIN::Matches(), and SCH_SHEET::Matches().

401  {
402  return false;
403  }
bool EDA_ITEM::Matches ( const wxString &  aText,
wxFindReplaceData &  aSearchData 
)
protectedinherited

Function Matches compares aText against search criteria in aSearchData.

This is a helper function for simplify derived class logic.

Parameters
aTextA reference to a wxString object containing the string to test.
aSearchDataThe criteria to search against.
Returns
True if aText matches the search criteria in aSearchData.

Definition at line 184 of file base_struct.cpp.

References FR_MATCH_WILDCARD, FR_SEARCH_REPLACE, and EDA_ITEM::IsReplaceable().

185 {
186  wxString text = aText;
187  wxString searchText = aSearchData.GetFindString();
188 
189  // Don't match if searching for replaceable item and the item doesn't support text replace.
190  if( (aSearchData.GetFlags() & FR_SEARCH_REPLACE) && !IsReplaceable() )
191  return false;
192 
193  if( aSearchData.GetFlags() & wxFR_WHOLEWORD )
194  return aText.IsSameAs( searchText, aSearchData.GetFlags() & wxFR_MATCHCASE );
195 
196  if( aSearchData.GetFlags() & FR_MATCH_WILDCARD )
197  {
198  if( aSearchData.GetFlags() & wxFR_MATCHCASE )
199  return text.Matches( searchText );
200 
201  return text.MakeUpper().Matches( searchText.MakeUpper() );
202  }
203 
204  if( aSearchData.GetFlags() & wxFR_MATCHCASE )
205  return aText.Find( searchText ) != wxNOT_FOUND;
206 
207  return text.MakeUpper().Find( searchText.MakeUpper() ) != wxNOT_FOUND;
208 }
virtual bool IsReplaceable() const
Function IsReplaceable.
Definition: base_struct.h:444
Perform search using simple wild card matching (* & ?).
Perform a search for a item that has replaceable text.
void TEXTE_MODULE::Mirror ( const wxPoint aCentre,
bool  aMirrorAroundXAxis 
)

Mirror text position in footprint edition the text itself is not mirrored, and the layer not modified, only position is mirrored.

(use Flip to change layer to its paired and mirror the text in fp editor).

Definition at line 149 of file class_text_mod.cpp.

References EDA_TEXT::GetTextPos(), SetLocalCoord(), EDA_TEXT::SetTextX(), EDA_TEXT::SetTextY(), wxPoint::x, and wxPoint::y.

Referenced by Flip(), EDIT_TOOL::Mirror(), and MirrorMarkedItems().

150 {
151  // Used in modedit, to transform the footprint
152  // the mirror is around the Y axis or X axis if aMirrorAroundXAxis = true
153  // the position is mirrored, but the text itself is not mirrored
154  if( aMirrorAroundXAxis )
155  SetTextY( ::Mirror( GetTextPos().y, aCentre.y ) );
156  else
157  SetTextX( ::Mirror( GetTextPos().x, aCentre.x ) );
158 
159  SetLocalCoord();
160 }
const wxPoint & GetTextPos() const
Definition: eda_text.h:224
void SetTextX(int aX)
Definition: eda_text.h:226
void SetLocalCoord()
Set relative coordinates.
void Mirror(const wxPoint &aCentre, bool aMirrorAroundXAxis)
Mirror text position in footprint edition the text itself is not mirrored, and the layer not modified...
void SetTextY(int aY)
Definition: eda_text.h:227
void TEXTE_MODULE::Move ( const wxPoint aMoveVector)
overridevirtual

move text in move transform, in footprint editor

Reimplemented from BOARD_ITEM.

Definition at line 163 of file class_text_mod.cpp.

References EDA_TEXT::Offset(), and SetLocalCoord().

Referenced by MoveMarkedItems(), and MoveMarkedItemsExactly().

164 {
165  Offset( aMoveVector );
166  SetLocalCoord();
167 }
void Offset(const wxPoint &aOffset)
Definition: eda_text.h:229
void SetLocalCoord()
Set relative coordinates.
BOARD_ITEM* BOARD_ITEM::Next ( ) const
inlineinherited

Definition at line 124 of file class_board_item.h.

References EDA_ITEM::Pnext.

Referenced by DIALOG_GLOBAL_DELETION::AcceptPcbDelete(), CINFO3D_VISU::AddGraphicsShapesWithClearanceToContainer(), PCBNEW_CONTROL::AppendBoard(), PCB_EDIT_FRAME::AppendBoardFile(), PCB_EDIT_FRAME::ArchiveModulesOnBoard(), FOOTPRINT_EDIT_FRAME::Begin_Edge_Module(), ZONE_CONTAINER::buildFeatureHoleList(), MODULE::BuildPolyCourtyard(), BOARD::ComputeBoundingBox(), BOARD::ConvertBrdLayerToPolygonalContours(), CopyMarkedItems(), DeleteMarkedItems(), PCB_EDIT_FRAME::DoGenFootprintsReport(), MODULE::Draw(), BOARD::Draw(), MODULE::DrawEdgesOnly(), DrawMovingBlockOutlines(), FOOTPRINT_EDIT_FRAME::Edit_Edge_Layer(), FOOTPRINT_EDIT_FRAME::Edit_Edge_Width(), export_vrml_module(), MODULE::Flip(), PCB_IO::format(), PCB_BASE_FRAME::GetFootprintFromBoardByReference(), MODULE::GetFootprintRect(), MODULE::HitTest(), PCB_EDIT_FRAME::ImportSpecctraSession(), MirrorMarkedItems(), MODULE::MODULE(), MODULE::MoveAnchorPosition(), MODULE::operator=(), PlaceCells(), BRDITEMS_PLOTTER::Plot_Edges_Modules(), BRDITEMS_PLOTTER::PlotAllTextsModule(), PlotSolderMaskLayer(), PlotStandardLayer(), Print_Module(), FOOTPRINT_EDIT_FRAME::PrintPage(), FOOTPRINT_EDIT_FRAME::RedrawActiveWindow(), PCB_BASE_FRAME::ResetModuleTextSizes(), RotateMarkedItems(), MODULE::RunOnChildren(), PCB_BASE_EDIT_FRAME::SaveCopyInUndoList(), MODULE::SetOrientation(), MODULE::SetPosition(), PCB_EDIT_FRAME::Swap_Layers(), TestForExistingItem(), CINFO3D_VISU::transformGraphicModuleEdgeToPolygonSet(), MODULE::TransformGraphicShapesWithClearanceToPolygonSet(), and MODULE::TransformGraphicTextWithClearanceToPolygonSet().

124 { return static_cast<BOARD_ITEM*>( Pnext ); }
Class BOARD_ITEM is a base class for any item which can be embedded within the BOARD container class...
EDA_ITEM * Pnext
next in linked list
Definition: base_struct.h:164
bool EDA_ITEM::operator< ( const EDA_ITEM aItem) const
inherited

Test if another item is less than this object.

Parameters
aItem- Item to compare against.
Returns
- True if aItem is less than the item.

Definition at line 241 of file base_struct.cpp.

References Format(), GetChars(), and EDA_ITEM::GetClass().

242 {
243  wxFAIL_MSG( wxString::Format( wxT( "Less than operator not defined for item type %s." ),
244  GetChars( GetClass() ) ) );
245 
246  return false;
247 }
static const wxChar * GetChars(const wxString &s)
Function GetChars returns a wxChar* to the actual wxChar* data within a wxString, and is helpful for ...
Definition: macros.h:92
virtual wxString GetClass() const =0
Function GetClass returns the class name.
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, CPTREE &aTree)
Function Format outputs a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:205
bool EDA_ITEM::Replace ( wxFindReplaceData &  aSearchData,
wxString &  aText 
)
inherited

Helper function used in search and replace dialog Function Replace performs a text replace on aText using the find and replace criteria in aSearchData on items that support text find and replace.

Parameters
aSearchDataA reference to a wxFindReplaceData object containing the search and replace criteria.
aTextA reference to a wxString object containing the text to be replaced.
Returns
True if aText was modified, otherwise false.

Definition at line 211 of file base_struct.cpp.

References GetChars(), EDA_ITEM::GetClass(), and EDA_ITEM::IsReplaceable().

Referenced by SCH_TEXT::Replace(), SCH_FIELD::Replace(), SCH_SHEET_PIN::Replace(), SCH_SHEET::Replace(), and SCH_FIND_COLLECTOR::ReplaceItem().

212 {
213  wxCHECK_MSG( IsReplaceable(), false,
214  wxT( "Attempt to replace text in <" ) + GetClass() + wxT( "> item." ) );
215 
216  wxString searchString = (aSearchData.GetFlags() & wxFR_MATCHCASE) ? aText : aText.Upper();
217 
218  int result = searchString.Find( (aSearchData.GetFlags() & wxFR_MATCHCASE) ?
219  aSearchData.GetFindString() :
220  aSearchData.GetFindString().Upper() );
221 
222  if( result == wxNOT_FOUND )
223  return false;
224 
225  wxString prefix = aText.Left( result );
226  wxString suffix;
227 
228  if( aSearchData.GetFindString().length() + result < aText.length() )
229  suffix = aText.Right( aText.length() - ( aSearchData.GetFindString().length() + result ) );
230 
231  wxLogTrace( traceFindReplace, wxT( "Replacing '%s', prefix '%s', replace '%s', suffix '%s'." ),
232  GetChars( aText ), GetChars( prefix ), GetChars( aSearchData.GetReplaceString() ),
233  GetChars( suffix ) );
234 
235  aText = prefix + aSearchData.GetReplaceString() + suffix;
236 
237  return true;
238 }
virtual bool IsReplaceable() const
Function IsReplaceable.
Definition: base_struct.h:444
const wxString traceFindReplace(wxT("KicadFindReplace"))
static const wxChar * GetChars(const wxString &s)
Function GetChars returns a wxChar* to the actual wxChar* data within a wxString, and is helpful for ...
Definition: macros.h:92
virtual wxString GetClass() const =0
Function GetClass returns the class name.
virtual bool EDA_ITEM::Replace ( wxFindReplaceData &  aSearchData,
void *  aAuxData = NULL 
)
inlinevirtualinherited

Function Replace performs a text replace using the find and replace criteria in aSearchData on items that support text find and replace.

This function must be overridden for items that support text replace.

Parameters
aSearchDataA reference to a wxFindReplaceData object containing the search and replace criteria.
aAuxDataA pointer to optional data required for the search or NULL if not used.
Returns
True if the item text was modified, otherwise false.

Reimplemented in SCH_SHEET, SCH_SHEET_PIN, SCH_FIELD, and SCH_TEXT.

Definition at line 432 of file base_struct.h.

432 { return false; }
void TEXTE_MODULE::Rotate ( const wxPoint aOffset,
double  aAngle 
)
overridevirtual

Rotate text, in footprint editor (for instance in footprint rotation transform)

Reimplemented from BOARD_ITEM.

Definition at line 122 of file class_text_mod.cpp.

References EDA_TEXT::GetTextAngle(), EDA_TEXT::GetTextPos(), RotatePoint(), SetLocalCoord(), SetTextAngle(), and EDA_TEXT::SetTextPos().

Referenced by MoveMarkedItemsExactly(), and RotateMarkedItems().

123 {
124  // Used in footprint edition
125  // Note also in module editor, m_Pos0 = m_Pos
126 
127  wxPoint pt = GetTextPos();
128  RotatePoint( &pt, aRotCentre, aAngle );
129  SetTextPos( pt );
130 
131  SetTextAngle( GetTextAngle() + aAngle );
132  SetLocalCoord();
133 }
const wxPoint & GetTextPos() const
Definition: eda_text.h:224
void SetTextPos(const wxPoint &aPoint)
Definition: eda_text.h:223
void RotatePoint(int *pX, int *pY, double angle)
Definition: trigo.cpp:317
double GetTextAngle() const
Definition: eda_text.h:164
void SetLocalCoord()
Set relative coordinates.
void SetTextAngle(double aAngle)
void EDA_ITEM::SetBrightened ( )
inlineinherited

Definition at line 229 of file base_struct.h.

References BRIGHTENED, and EDA_ITEM::SetFlags().

Referenced by SELECTION_TOOL::disambiguationMenu().

229 { SetFlags( BRIGHTENED ); }
void SetFlags(STATUS_FLAGS aMask)
Definition: base_struct.h:253
#define BRIGHTENED
item is drawn with a bright contour
Definition: base_struct.h:137
void TEXTE_MODULE::SetDrawCoord ( )

Set absolute coordinates.

Definition at line 176 of file class_text_mod.cpp.

References PNS::angle(), MODULE::GetOrientation(), MODULE::GetPosition(), EDA_TEXT::GetTextPos(), EDA_ITEM::m_Parent, m_Pos0, EDA_TEXT::Offset(), RotatePoint(), and EDA_TEXT::SetTextPos().

Referenced by PCAD2KICAD::PCB_MODULE::AddToBoard(), LEGACY_PLUGIN::loadMODULE_TEXT(), MODULE::MoveAnchorPosition(), PCB_PARSER::parseMODULE_unchecked(), MODULE::SetOrientation(), SetPos0(), TEXTE_MODULE(), and DialogEditModuleText::TransferDataFromWindow().

177 {
178  const MODULE* module = static_cast<const MODULE*>( m_Parent );
179 
180  SetTextPos( m_Pos0 );
181 
182  if( module )
183  {
184  double angle = module->GetOrientation();
185 
186  wxPoint pt = GetTextPos();
187  RotatePoint( &pt, angle );
188  SetTextPos( pt );
189 
190  Offset( module->GetPosition() );
191  }
192 }
void Offset(const wxPoint &aOffset)
Definition: eda_text.h:229
EDA_ITEM * m_Parent
Linked list: Link (parent struct)
Definition: base_struct.h:168
const wxPoint & GetTextPos() const
Definition: eda_text.h:224
const wxPoint & GetPosition() const override
Definition: class_module.h:155
void SetTextPos(const wxPoint &aPoint)
Definition: eda_text.h:223
void RotatePoint(int *pX, int *pY, double angle)
Definition: trigo.cpp:317
double GetOrientation() const
Definition: class_module.h:160
wxPoint m_Pos0
text coordinates relative to the footprint anchor, orient 0.
static DIRECTION_45::AngleType angle(const VECTOR2I &a, const VECTOR2I &b)
void TEXTE_MODULE::SetEffects ( const TEXTE_MODULE aSrc)
inline

Function SetEffects sets the text effects from another instance.

Definition at line 115 of file class_text_mod.h.

References EDA_TEXT::SetEffects(), and SetLocalCoord().

Referenced by PCB_EDIT_FRAME::Exchange_Module(), and BOARD::ReplaceNetlist().

116  {
117  EDA_TEXT::SetEffects( aSrc );
118  SetLocalCoord();
119  // SetType( aSrc.GetType() );
120  }
void SetEffects(const EDA_TEXT &aSrc)
Function SetEffects sets the text effects from another instance.
Definition: eda_text.cpp:68
void SetLocalCoord()
Set relative coordinates.
void EDA_TEXT::SetEffects ( const EDA_TEXT aSrc)
inherited

Function SetEffects sets the text effects from another instance.

(TEXT_EFFECTS is not exposed in the public API, but includes everything except the actual text string itself.)

Definition at line 68 of file eda_text.cpp.

References EDA_TEXT::m_e.

Referenced by LIB_TEXT::Clone(), LIB_FIELD::Copy(), SCH_FIELD::ExportValues(), SCH_FIELD::ImportValues(), LIB_FIELD::operator=(), and SetEffects().

69 {
70  m_e = aSrc.m_e;
71 }
TEXT_EFFECTS m_e
Definition: eda_text.h:368
void EDA_ITEM::SetFlags ( STATUS_FLAGS  aMask)
inlineinherited

Definition at line 253 of file base_struct.h.

Referenced by SCH_SCREEN::addConnectedItemsToBlock(), AddSegmentToDragList(), PCBNEW_CONTROL::AppendBoard(), PCB_EDIT_FRAME::AppendBoardFile(), PCB_EDIT_FRAME::Begin_DrawSegment(), FOOTPRINT_EDIT_FRAME::Begin_Edge_Module(), PCB_EDIT_FRAME::Begin_Route(), PCB_EDIT_FRAME::Begin_Zone(), PCB_EDIT_FRAME::BeginMoveDimensionText(), PCB_EDIT_FRAME::BeginMoveTarget(), SCH_EDIT_FRAME::BeginSegment(), PCB_EDIT_FRAME::Change_Side_Module(), SCH_EDIT_FRAME::ConvertPart(), CopyMarkedItems(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copyPanelToOptions(), LIB_PART::CopySelectedItems(), SCH_EDIT_FRAME::CreateBusBusEntry(), SCH_EDIT_FRAME::CreateBusWireEntry(), SCH_EDIT_FRAME::CreateNewImage(), SCH_EDIT_FRAME::CreateNewText(), LIB_EDIT_FRAME::CreatePin(), SCH_EDIT_FRAME::CreateSheet(), SCH_EDIT_FRAME::CreateSheetPin(), PCB_EDIT_FRAME::CreateTarget(), PCB_EDIT_FRAME::CreateTextePcb(), FOOTPRINT_EDIT_FRAME::CreateTextModule(), PCB_EDIT_FRAME::EditDimension(), LIB_PIN::EnableEditMode(), PCB_EDIT_FRAME::FlipTextePcb(), SCH_SCREEN::GetConnection(), PCB_BASE_FRAME::GlobalChange_PadSettings(), FOOTPRINT_EDIT_FRAME::HandleBlockEnd(), PCB_BASE_FRAME::Import_Pad_Settings(), SCH_EDIT_FRAME::ImportSheetPin(), SCH_JUNCTION::IsSelectStateChanged(), SCH_NO_CONNECT::IsSelectStateChanged(), SCH_MARKER::IsSelectStateChanged(), SCH_BUS_ENTRY_BASE::IsSelectStateChanged(), SCH_LINE::IsSelectStateChanged(), SCH_BITMAP::IsSelectStateChanged(), SCH_TEXT::IsSelectStateChanged(), SCH_COMPONENT::IsSelectStateChanged(), SCH_SHEET::IsSelectStateChanged(), SCH_EDIT_FRAME::Load_Component(), PCB_BASE_FRAME::LoadModuleFromLibrary(), SCH_SCREEN::MarkConnections(), MarkItemsInBloc(), moveBitmap(), SCH_EDIT_FRAME::MoveImage(), SCH_EDIT_FRAME::OnConvertTextType(), SCH_EDIT_FRAME::OnCopySchematicItemRequest(), LIB_EDIT_FRAME::OnEditPin(), TARGET_PROPERTIES_DIALOG_EDITOR::OnOkClick(), SCH_EDIT_FRAME::OnSelectUnit(), PCB_EDIT_FRAME::Other_Layer_Route(), DRAWING_TOOL::PlaceText(), SCH_EDIT_FRAME::PrepareMoveItem(), LIB_EDIT_FRAME::Process_Special_Functions(), EDIT_TOOL::Properties(), SCH_EDIT_FRAME::PutDataInPreviousState(), SCH_EDIT_FRAME::RepeatDrawItem(), LIB_EDIT_FRAME::RepeatPinItem(), SCH_EDIT_FRAME::ReSizeSheet(), PCB_BASE_FRAME::Rotate_Module(), PCB_EDIT_FRAME::Rotate_Texte_Pcb(), SCH_SCREEN::SchematicCleanUp(), SCH_SCREEN::SelectBlockItems(), EDA_ITEM::SetBrightened(), LIB_PIN::SetConversion(), EDA_ITEM::SetHighlighted(), EDA_ITEM::SetModified(), LIB_PIN::SetNumber(), EDA_ITEM::SetSelected(), EDA_ITEM::SetWireImage(), PCB_EDIT_FRAME::Start_DragTrackSegmentAndKeepSlope(), PCB_EDIT_FRAME::Start_Move_DrawItem(), FOOTPRINT_EDIT_FRAME::Start_Move_EdgeMod(), PCB_EDIT_FRAME::Start_Move_Zone_Corner(), PCB_EDIT_FRAME::Start_Move_Zone_Drag_Outline_Edge(), PCB_EDIT_FRAME::Start_Move_Zone_Outlines(), PCB_EDIT_FRAME::StartMoveModule(), PCB_EDIT_FRAME::StartMoveOneNodeOrSegment(), PCB_BASE_FRAME::StartMovePad(), LIB_EDIT_FRAME::StartMovePin(), PCB_BASE_FRAME::StartMoveTexteModule(), PCB_EDIT_FRAME::StartMoveTextePcb(), DIALOG_PCB_TEXT_PROPERTIES::TransferDataFromWindow(), DIALOG_PAD_PROPERTIES::TransferDataFromWindow(), and UndrawAndMarkSegmentsToDrag().

253 { m_Flags |= aMask; }
STATUS_FLAGS m_Flags
Flag bits for editing and other uses.
Definition: base_struct.h:175
void EDA_ITEM::SetForceVisible ( bool  aEnable)
inlineinherited

Function SetForceVisible is used to set and cleag force visible flag used to force the item to be drawn even if it's draw attribute is set to not visible.

Parameters
aEnableTrue forces the item to be drawn. False uses the item's visibility setting to determine if the item is to be drawn.

Definition at line 265 of file base_struct.h.

Referenced by SCH_EDIT_FRAME::OnFindSchematicItem(), and SCH_EDIT_FRAME::updateFindReplaceView().

265 { m_forceVisible = aEnable; }
bool m_forceVisible
Set to true to override the visibility setting of the item.
Definition: base_struct.h:172
void EDA_ITEM::SetHighlighted ( )
inlineinherited

Definition at line 228 of file base_struct.h.

References HIGHLIGHTED, and EDA_ITEM::SetFlags().

228 { SetFlags( HIGHLIGHTED ); }
void SetFlags(STATUS_FLAGS aMask)
Definition: base_struct.h:253
#define HIGHLIGHTED
item is drawn in normal colors, when the rest is darkened
Definition: base_struct.h:136
virtual void BOARD_ITEM::SetLayer ( PCB_LAYER_ID  aLayer)
inlinevirtualinherited

Function SetLayer sets the layer this item is on.

Parameters
aLayerThe layer number. is virtual because some items (in fact: class DIMENSION) have a slightly different initialization

Reimplemented in DIMENSION.

Definition at line 149 of file class_board_item.h.

Referenced by DXF2BRD_CONVERTER::addArc(), DXF2BRD_CONVERTER::addCircle(), PNS_KICAD_IFACE::AddItem(), DXF2BRD_CONVERTER::addLine(), DXF2BRD_CONVERTER::addMText(), DXF2BRD_CONVERTER::addPolyline(), DXF2BRD_CONVERTER::addText(), PCAD2KICAD::PCB_TEXT::AddToBoard(), PCAD2KICAD::PCB_ARC::AddToBoard(), PCAD2KICAD::PCB_PAD::AddToBoard(), PCAD2KICAD::PCB_LINE::AddToBoard(), PCAD2KICAD::PCB_POLYGON::AddToBoard(), PCAD2KICAD::PCB_MODULE::AddToBoard(), PCAD2KICAD::PCB_ARC::AddToModule(), PCAD2KICAD::PCB_LINE::AddToModule(), DIMENSION::AdjustDimensionDetails(), DIALOG_TRACK_VIA_PROPERTIES::Apply(), PCB_EDIT_FRAME::Begin_DrawSegment(), FOOTPRINT_EDIT_FRAME::Begin_Edge_Module(), PCB_EDIT_FRAME::Begin_Route(), PCB_EDIT_FRAME::Begin_Zone(), PCB_EDIT_FRAME::Create_MuWaveComponent(), PCB_EDIT_FRAME::Create_MuWavePolygonShape(), MWAVE::CreateMicrowaveInductor(), PCB_BASE_FRAME::CreateNewModule(), PCB_EDIT_FRAME::CreateTarget(), PCB_EDIT_FRAME::CreateTextePcb(), FOOTPRINT_EDIT_FRAME::CreateTextModule(), DRAWING_TOOL::drawArc(), DRAWING_TOOL::drawSegment(), FOOTPRINT_EDIT_FRAME::Edit_Edge_Layer(), ZONE_SETTINGS::ExportSetting(), TEXTE_PCB::Flip(), PCB_TARGET::Flip(), EDGE_MODULE::Flip(), Flip(), TRACK::Flip(), MODULE::Flip(), DRAWSEGMENT::Flip(), ZONE_CONTAINER::Flip(), genPlacementRoutingMatrix(), DXF2BRD_CONVERTER::insertArc(), BOARD::InsertArea(), DXF2BRD_CONVERTER::insertLine(), LEGACY_PLUGIN::loadMODULE(), LEGACY_PLUGIN::loadMODULE_TEXT(), LEGACY_PLUGIN::loadPCB_TEXT(), EAGLE_PLUGIN::loadPlain(), EAGLE_PLUGIN::loadSignals(), LEGACY_PLUGIN::loadTrackList(), DSN::SPECCTRA_DB::makeTRACK(), PCB_EDIT_FRAME::Other_Layer_Route(), EAGLE_PLUGIN::packageCircle(), EAGLE_PLUGIN::packagePolygon(), EAGLE_PLUGIN::packageRectangle(), EAGLE_PLUGIN::packageSMD(), EAGLE_PLUGIN::packageText(), EAGLE_PLUGIN::packageWire(), GPCB_FPL_CACHE::parseMODULE(), PlaceCells(), DRAWING_TOOL::PlaceDXF(), DRAWING_TOOL::PlaceText(), BRDITEMS_PLOTTER::PlotDimension(), BRDITEMS_PLOTTER::PlotPcbTarget(), PlotSolderMaskLayer(), DIMENSION::SetLayer(), ShowNewTrackWhenMovingCursor(), PCB_EDIT_FRAME::Swap_Layers(), TEXTE_MODULE(), DialogEditModuleText::TransferDataFromWindow(), DIALOG_PCB_TEXT_PROPERTIES::TransferDataFromWindow(), DIALOG_GRAPHIC_ITEM_PROPERTIES::TransferDataFromWindow(), and DIALOG_MODEDIT_FP_BODY_ITEM_PROPERTIES::TransferDataFromWindow().

150  {
151  // trap any invalid layers, then go find the caller and fix it.
152  // wxASSERT( unsigned( aLayer ) < unsigned( NB_PCB_LAYERS ) );
153  m_Layer = aLayer;
154  }
PCB_LAYER_ID m_Layer
void EDA_ITEM::SetList ( DHEAD aList)
inlineinherited

Definition at line 214 of file base_struct.h.

Referenced by DHEAD::append(), DHEAD::insert(), and DHEAD::remove().

214 { m_List = aList; }
DHEAD * m_List
which DLIST I am on.
Definition: base_struct.h:166
void TEXTE_MODULE::SetLocalCoord ( )

Set relative coordinates.

Definition at line 195 of file class_text_mod.cpp.

References PNS::angle(), MODULE::GetOrientation(), MODULE::GetPosition(), EDA_TEXT::GetTextPos(), EDA_ITEM::m_Parent, m_Pos0, RotatePoint(), wxPoint::x, and wxPoint::y.

Referenced by Flip(), Mirror(), Move(), DRAWING_TOOL::PlaceDXF(), Rotate(), SetEffects(), SetPosition(), and SwapEffects().

196 {
197  const MODULE* module = static_cast<const MODULE*>( m_Parent );
198 
199  if( module )
200  {
201  m_Pos0 = GetTextPos() - module->GetPosition();
202 
203  double angle = module->GetOrientation();
204 
205  RotatePoint( &m_Pos0.x, &m_Pos0.y, -angle );
206  }
207  else
208  {
209  m_Pos0 = GetTextPos();
210  }
211 }
EDA_ITEM * m_Parent
Linked list: Link (parent struct)
Definition: base_struct.h:168
const wxPoint & GetTextPos() const
Definition: eda_text.h:224
const wxPoint & GetPosition() const override
Definition: class_module.h:155
void RotatePoint(int *pX, int *pY, double angle)
Definition: trigo.cpp:317
double GetOrientation() const
Definition: class_module.h:160
wxPoint m_Pos0
text coordinates relative to the footprint anchor, orient 0.
static DIRECTION_45::AngleType angle(const VECTOR2I &a, const VECTOR2I &b)
virtual void BOARD_ITEM::SetLocked ( bool  aLocked)
inlinevirtualinherited

Function SetLocked modifies 'lock' status for of the item.

Reimplemented in MODULE, and TRACK.

Definition at line 212 of file class_board_item.h.

213  {
214  // only MODULEs & TRACKs can be locked at this time.
215  }
void EDA_ITEM::SetModified ( )
inherited
void EDA_TEXT::SetMultilineAllowed ( bool  aAllow)
inlineinherited

Function SetMultiLineAllowed.

Parameters
aAllowtrue if ok to use multiline option, false if ok to use only single line text. (Single line is faster in calculations than multiline.)

Definition at line 187 of file eda_text.h.

References TEXT_EFFECTS::Bit(), EDA_TEXT::m_e, and EDA_TEXT::TE_MULTILINE.

Referenced by WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(), DRAWING_TOOL::PlaceDXF(), SCH_GLOBALLABEL::SCH_GLOBALLABEL(), SCH_HIERLABEL::SCH_HIERLABEL(), SCH_LABEL::SCH_LABEL(), SCH_TEXT::SCH_TEXT(), WORKSHEET_DATAITEM_TEXT::SetConstrainedTextSize(), and TEXTE_PCB::TEXTE_PCB().

187 { m_e.Bit( TE_MULTILINE, aAllow ); }
TEXT_EFFECTS m_e
Definition: eda_text.h:368
void Bit(int aBit, bool aValue)
Definition: eda_text.h:102
void EDA_ITEM::SetParent ( EDA_ITEM aParent)
inlineinherited

Definition at line 213 of file base_struct.h.

Referenced by MODULE::Add(), BOARD::Add(), BOARD_NETLIST_UPDATER::addNewComponent(), LIB_FIELD::Copy(), SCH_EDIT_FRAME::copyBlockItems(), CopyMarkedItems(), SCH_EDIT_FRAME::CreateSheet(), DIALOG_LIB_EDIT_PIN::DIALOG_LIB_EDIT_PIN(), PCB_EDIT_FRAME::Exchange_Module(), PCB_IO::FootprintSave(), DISPLAY_FOOTPRINTS_FRAME::Get_Module(), DIALOG_MODULE_MODULE_EDITOR::initModeditProperties(), DIALOG_MODULE_BOARD_EDITOR::InitModeditProperties(), LIB_PART::LIB_PART(), SCH_SHEET::Load(), FOOTPRINT_EDIT_FRAME::Load_Module_From_BOARD(), SCH_LEGACY_PLUGIN::loadHierarchy(), LIB_EDIT_FRAME::LoadOneSymbol(), MODULE::MODULE(), DIALOG_MODULE_BOARD_EDITOR::OnEditReference(), DIALOG_MODULE_BOARD_EDITOR::OnEditValue(), DIALOG_LIB_EDIT_PIN::OnPaintShowPanel(), MODULE::operator=(), SCH_COMPONENT::operator=(), PCB_PARSER::parseMODULE_unchecked(), MODULE_EDITOR_TOOLS::PasteItems(), FOOTPRINT_EDIT_FRAME::Process_Special_Functions(), FOOTPRINT_PREVIEW_PANEL::renderFootprint(), BOARD_NETLIST_UPDATER::replaceComponent(), BOARD::ReplaceNetlist(), FOOTPRINT_EDIT_FRAME::restoreLastFootprint(), PCB_BASE_EDIT_FRAME::SaveCopyInUndoList(), SaveCopyOfZones(), SCH_COMPONENT::SCH_COMPONENT(), SCH_SHEET::SCH_SHEET(), SCH_SHEET_PIN::SCH_SHEET_PIN(), LIB_PART::SetFields(), SetSchItemParent(), PCB_EDIT_FRAME::StartMoveModule(), BOARD_ITEM::SwapData(), SCH_SHEET::SwapData(), and SCH_COMPONENT::SwapData().

213 { m_Parent = aParent; }
EDA_ITEM * m_Parent
Linked list: Link (parent struct)
Definition: base_struct.h:168
void TEXTE_MODULE::SetPos0 ( const wxPoint aPos)
inline

Definition at line 135 of file class_text_mod.h.

References m_Pos0, and SetDrawCoord().

Referenced by PCAD2KICAD::PCB_MODULE::AddToBoard(), LEGACY_PLUGIN::loadMODULE_TEXT(), MODULE::MoveAnchorPosition(), EAGLE_PLUGIN::packageText(), PCB_BASE_FRAME::PlaceTexteModule(), and DialogEditModuleText::TransferDataFromWindow().

135 { m_Pos0 = aPos; SetDrawCoord(); }
wxPoint m_Pos0
text coordinates relative to the footprint anchor, orient 0.
void SetDrawCoord()
Set absolute coordinates.
virtual void TEXTE_MODULE::SetPosition ( const wxPoint aPos)
inlineoverridevirtual

Implements BOARD_ITEM.

Definition at line 82 of file class_text_mod.h.

References SetLocalCoord(), and EDA_TEXT::SetTextPos().

Referenced by MWAVE::CreateMicrowaveInductor(), PCB_BASE_FRAME::CreateNewModule(), FOOTPRINT_EDIT_FRAME::CreateTextModule(), and MODULE::SetPosition().

83  {
84  EDA_TEXT::SetTextPos( aPos );
85  SetLocalCoord();
86  }
void SetTextPos(const wxPoint &aPoint)
Definition: eda_text.h:223
void SetLocalCoord()
Set relative coordinates.
void EDA_ITEM::SetSelected ( )
inlineinherited

Definition at line 227 of file base_struct.h.

References SELECTED, and EDA_ITEM::SetFlags().

Referenced by SELECTION_TOOL::selectVisually().

227 { SetFlags( SELECTED ); }
#define SELECTED
Definition: base_struct.h:120
void SetFlags(STATUS_FLAGS aMask)
Definition: base_struct.h:253
void EDA_ITEM::SetStatus ( STATUS_FLAGS  aStatus)
inlineinherited
virtual void EDA_TEXT::SetText ( const wxString &  aText)
inlinevirtualinherited
void EDA_TEXT::SetTextHeight ( int  aHeight)
inlineinherited

Definition at line 220 of file eda_text.h.

References EDA_TEXT::m_e, and TEXT_EFFECTS::size.

Referenced by DXF2BRD_CONVERTER::addMText(), DXF2BRD_CONVERTER::addText(), LIB_FIELD::Init(), and DIALOG_DIMENSION_EDITOR::OnOKClick().

220 { m_e.size.y = aHeight; }
TEXT_EFFECTS m_e
Definition: eda_text.h:368
wxSize size
Definition: eda_text.h:97
void EDA_TEXT::SetTextPos ( const wxPoint aPoint)
inlineinherited

Definition at line 223 of file eda_text.h.

References EDA_TEXT::m_e, and TEXT_EFFECTS::pos.

Referenced by AbortMoveDimensionText(), DXF2BRD_CONVERTER::addMText(), DXF2BRD_CONVERTER::addText(), PCAD2KICAD::PCB_TEXT::AddToBoard(), DIMENSION::AdjustDimensionDetails(), LIB_TEXT::BeginEdit(), LIB_FIELD::BeginEdit(), LIB_TEXT::calcEdit(), LIB_FIELD::calcEdit(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copyPanelToSelectedField(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::copyPanelToSelectedField(), PCB_EDIT_FRAME::CreateTextePcb(), LIB_TEXT::HitTest(), LIB_FIELD::HitTest(), LIB_TEXT::Load(), LIB_FIELD::Load(), SCH_TEXT::Load(), SCH_SHEET_PIN::Load(), SCH_COMPONENT::Load(), SCH_LABEL::Load(), SCH_GLOBALLABEL::Load(), SCH_HIERLABEL::Load(), LEGACY_PLUGIN::loadPCB_TEXT(), EAGLE_PLUGIN::loadPlain(), DIMENSION::Mirror(), SCH_COMPONENT::MirrorX(), SCH_COMPONENT::MirrorY(), LIB_TEXT::Move(), LIB_FIELD::Move(), Move_Texte_Pcb(), MoveDimensionText(), DIALOG_DIMENSION_EDITOR::OnOKClick(), EAGLE_PLUGIN::orientModuleText(), EAGLE_PLUGIN::packageText(), PCB_EDIT_FRAME::PlaceDimensionText(), DRAWING_TOOL::PlaceDXF(), DRAWING_TOOL::PlaceText(), PCB_BASE_FRAME::PlaceTexteModule(), TEXTE_PCB::Rotate(), Rotate(), LIB_TEXT::Rotate(), SCH_FIELD::Rotate(), SCH_TEXT::Rotate(), SCH_SHEET_PIN::Rotate(), DIMENSION::Rotate(), LIB_FIELD::Rotate(), SCH_LABEL::Rotate(), SCH_GLOBALLABEL::Rotate(), SCH_HIERLABEL::Rotate(), SCH_COMPONENT::Rotate(), SCH_COMPONENT::SCH_COMPONENT(), SCH_FIELD::SCH_FIELD(), SCH_SHEET_PIN::SCH_SHEET_PIN(), SCH_TEXT::SCH_TEXT(), SCH_SCREEN::SetComponentFootprint(), SetDrawCoord(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::SetInitCmp(), TEXTE_PCB::SetPosition(), SetPosition(), DIMENSION::SetPosition(), SCH_FIELD::SetPosition(), SCH_TEXT::SetPosition(), SCH_COMPONENT::SetRef(), TEXTE_MODULE(), DIALOG_PCB_TEXT_PROPERTIES::TransferDataFromWindow(), and WS_DRAW_ITEM_TEXT::WS_DRAW_ITEM_TEXT().

223 { m_e.pos = aPoint; }
TEXT_EFFECTS m_e
Definition: eda_text.h:368
wxPoint pos
Definition: eda_text.h:100
void EDA_TEXT::SetTextSize ( const wxSize &  aNewSize)
inlineinherited

Definition at line 214 of file eda_text.h.

References EDA_TEXT::m_e, and TEXT_EFFECTS::size.

Referenced by DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copyPanelToSelectedField(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::copyPanelToSelectedField(), LIB_EDIT_FRAME::CreateGraphicItem(), PCB_EDIT_FRAME::CreateMuWaveBaseFootprint(), PCB_BASE_FRAME::CreateNewModule(), SCH_EDIT_FRAME::CreateNewText(), SCH_EDIT_FRAME::CreateSheetPin(), PCB_EDIT_FRAME::CreateTextePcb(), FOOTPRINT_EDIT_FRAME::CreateTextModule(), DRAWING_TOOL::DrawDimension(), DrawGraphicText(), dummy(), EDA_TEXT::EDA_TEXT(), PCB_EDIT_FRAME::EditDimension(), SCH_EDIT_FRAME::EditSheetPin(), SCH_EDIT_FRAME::ImportSheetPin(), LIB_TEXT::LIB_TEXT(), LIB_TEXT::Load(), LIB_FIELD::Load(), SCH_TEXT::Load(), SCH_SHEET_PIN::Load(), SCH_COMPONENT::Load(), SCH_LABEL::Load(), SCH_GLOBALLABEL::Load(), SCH_HIERLABEL::Load(), LEGACY_PLUGIN::loadMODULE_TEXT(), LEGACY_PLUGIN::loadPCB_TEXT(), EAGLE_PLUGIN::loadPlain(), SCH_EDIT_FRAME::OnConvertTextType(), DIALOG_LIB_EDIT_TEXT::OnOkClick(), EAGLE_PLUGIN::orientModuleText(), EAGLE_PLUGIN::packageText(), PCB_PARSER::parseEDA_TEXT(), DRAWING_TOOL::PlaceDXF(), DRAWING_TOOL::PlaceText(), PCB_BASE_FRAME::ResetModuleTextSizes(), PCB_BASE_FRAME::ResetTextSize(), SCH_SCREEN::SetComponentFootprint(), DIMENSION::SetTextSize(), PCAD2KICAD::SetTextSizeFromStrokeFontHeight(), DIALOG_LABEL_EDITOR::TextPropertiesAccept(), DialogEditModuleText::TransferDataFromWindow(), DIALOG_PCB_TEXT_PROPERTIES::TransferDataFromWindow(), DIALOG_EDIT_ONE_FIELD::updateText(), and WS_DRAW_ITEM_TEXT::WS_DRAW_ITEM_TEXT().

214 { m_e.size = aNewSize; };
TEXT_EFFECTS m_e
Definition: eda_text.h:368
wxSize size
Definition: eda_text.h:97
void EDA_TEXT::SetTextWidth ( int  aWidth)
inlineinherited

Definition at line 217 of file eda_text.h.

References EDA_TEXT::m_e, and TEXT_EFFECTS::size.

Referenced by DXF2BRD_CONVERTER::addMText(), DXF2BRD_CONVERTER::addText(), LIB_FIELD::Init(), and DIALOG_DIMENSION_EDITOR::OnOKClick().

217 { m_e.size.x = aWidth; }
TEXT_EFFECTS m_e
Definition: eda_text.h:368
wxSize size
Definition: eda_text.h:97
void EDA_TEXT::SetThickness ( int  aNewThickness)
inlineinherited
void EDA_ITEM::SetTimeStamp ( time_t  aNewTimeStamp)
inlineinherited

Definition at line 203 of file base_struct.h.

Referenced by BOARD_NETLIST_UPDATER::addNewComponent(), PCAD2KICAD::PCB_TEXT::AddToBoard(), PCAD2KICAD::PCB_PAD::AddToBoard(), PCAD2KICAD::PCB_ARC::AddToBoard(), PCAD2KICAD::PCB_LINE::AddToBoard(), PCAD2KICAD::PCB_POLYGON::AddToBoard(), PCAD2KICAD::PCB_MODULE::AddToBoard(), SCH_EDIT_FRAME::AppendOneEEProject(), PCB_EDIT_FRAME::Begin_Zone(), SCH_EDIT_FRAME::CreateSheet(), Diagnose(), DuplicateItemsInList(), DuplicateStruct(), EDIT_TOOL::editFootprintInFpEditor(), PCB_EDIT_FRAME::Exchange_Module(), PCB_IO::FootprintSave(), DIALOG_MODULE_BOARD_EDITOR::GotoModuleEditor(), EDA_ITEM::initVars(), BOARD::InsertArea(), SCH_SHEET::Load(), LEGACY_PLUGIN::loadMODULE(), PCB_BASE_FRAME::LoadModuleFromLibrary(), LEGACY_PLUGIN::loadPCB_TARGET(), LEGACY_PLUGIN::loadPCB_TEXT(), EAGLE_PLUGIN::loadPlain(), EAGLE_PLUGIN::loadSignals(), LEGACY_PLUGIN::loadTrackList(), EDA_ITEM::operator=(), EAGLE_PLUGIN::packageCircle(), EAGLE_PLUGIN::packagePolygon(), EAGLE_PLUGIN::packageRectangle(), EAGLE_PLUGIN::packageText(), SCH_EDIT_FRAME::PasteListOfItems(), FOOTPRINT_EDIT_FRAME::Process_Special_Functions(), PCB_EDIT_FRAME::Process_Special_Functions(), SCH_SCREENS::ReplaceDuplicateTimeStamps(), BOARD::ReplaceNetlist(), SCH_SHEET::SCH_SHEET(), SCH_COMPONENT::SetTimeStamp(), SimilarLabelsDiagnose(), BOARD_ITEM::SwapData(), and TestDuplicateSheetNames().

203 { m_TimeStamp = aNewTimeStamp; }
time_t m_TimeStamp
Time stamp used for logical links.
Definition: base_struct.h:169
void TEXTE_MODULE::SetType ( TEXT_TYPE  aType)
inline
Deprecated:
it seems (but the type is used to 'protect'

Definition at line 108 of file class_text_mod.h.

References m_Type.

Referenced by PCAD2KICAD::PCB_MODULE::AddToBoard(), LEGACY_PLUGIN::loadMODULE_TEXT(), and FOOTPRINT_EDIT_FRAME::Process_Special_Functions().

108 { m_Type = aType; }
TEXT_TYPE m_Type
0=ref, 1=val, etc.
void EDA_ITEM::SetWireImage ( )
inlineinherited

Definition at line 226 of file base_struct.h.

References IS_WIRE_IMAGE, and EDA_ITEM::SetFlags().

Referenced by moveItemWithMouseCursor().

226 { SetFlags( IS_WIRE_IMAGE ); }
void SetFlags(STATUS_FLAGS aMask)
Definition: base_struct.h:253
#define IS_WIRE_IMAGE
Item to be drawn as wireframe while editing.
Definition: base_struct.h:117
wxString EDA_TEXT::ShortenedShownText ( ) const
inherited

Returns a shortened version (max 15 characters) of the shown text.

Definition at line 92 of file eda_text.cpp.

References EDA_TEXT::GetShownText().

Referenced by LIB_TEXT::GetSelectMenuText(), TEXTE_PCB::GetSelectMenuText(), SCH_TEXT::GetSelectMenuText(), SCH_SHEET_PIN::GetSelectMenuText(), GetSelectMenuText(), LIB_FIELD::GetSelectMenuText(), SCH_LABEL::GetSelectMenuText(), SCH_GLOBALLABEL::GetSelectMenuText(), and SCH_HIERLABEL::GetSelectMenuText().

93 {
94  wxString tmp = GetShownText();
95 
96  tmp.Replace( wxT( "\n" ), wxT( " " ) );
97  tmp.Replace( wxT( "\r" ), wxT( " " ) );
98  tmp.Replace( wxT( "\t" ), wxT( " " ) );
99 
100  if( tmp.Length() > 15 )
101  tmp = tmp.Left( 12 ) + wxT( "..." );
102 
103  return tmp;
104 }
virtual wxString GetShownText() const
Returns the string actually shown after processing of the base text.
Definition: eda_text.h:135
wxString BOARD_ITEM::ShowShape ( STROKE_T  aShape)
staticinherited

Function ShowShape converts the enum STROKE_T integer value to a wxString.

Definition at line 38 of file class_board_item.cpp.

References S_ARC, S_CIRCLE, S_CURVE, S_POLYGON, S_RECT, and S_SEGMENT.

Referenced by ConvertOutlineToPolygon(), DRAWSEGMENT::GetCenter(), EDGE_MODULE::GetSelectMenuText(), DRAWSEGMENT::GetSelectMenuText(), DSN::SPECCTRA_DB::makeIMAGE(), and DRAWSEGMENT::Rotate().

39 {
40  switch( aShape )
41  {
42  case S_SEGMENT: return _( "Line" );
43  case S_RECT: return _( "Rect" );
44  case S_ARC: return _( "Arc" );
45  case S_CIRCLE: return _( "Circle" );
46  case S_CURVE: return _( "Bezier Curve" );
47  case S_POLYGON: return _( "Polygon" );
48  default: return wxT( "??" );
49  }
50 }
polygon (not yet used for tracks, but could be in microwave apps)
usual segment : line with rounded ends
segment with non rounded ends
Arcs (with rounded ends)
Bezier Curve.
static bool EDA_ITEM::Sort ( const EDA_ITEM aLeft,
const EDA_ITEM aRight 
)
inlinestaticinherited

Function Sort is a helper function to be used by the C++ STL sort algorithm for sorting a STL container of EDA_ITEM pointers.

Parameters
aLeftThe left hand item to compare.
aRightThe right hand item to compare.
Returns
True if aLeft is less than aRight.

Definition at line 463 of file base_struct.h.

Referenced by PART_LIB::GetEntryTypePowerNames().

463 { return *aLeft < *aRight; }
void BOARD_ITEM::SwapData ( BOARD_ITEM aImage)
inherited

Swap data between aItem and aImage.

aItem and aImage should have the same type Used in undo redo command to swap values between an item and its copy Only values like layer, size .. which are modified by edition are swapped, not the pointers like Pnext and Pback because aItem is not changed in the linked list

Parameters
aImage= the item image which contains data to swap

Definition at line 567 of file undo_redo.cpp.

References EDA_ITEM::Back(), EDA_ITEM::GetParent(), EDA_ITEM::GetTimeStamp(), EDA_ITEM::m_List, EDA_ITEM::Next(), EDA_ITEM::Pback, PCB_DIMENSION_T, PCB_LINE_T, PCB_MODULE_T, PCB_TARGET_T, PCB_TEXT_T, PCB_TRACE_T, PCB_VIA_T, PCB_ZONE_AREA_T, PCB_ZONE_T, EDA_ITEM::Pnext, EDA_ITEM::SetParent(), EDA_ITEM::SetTimeStamp(), and EDA_ITEM::Type().

Referenced by Abort_Edit_Pcb_Text(), PCB_EDIT_FRAME::Place_Texte_Pcb(), PCB_EDIT_FRAME::PlaceTarget(), PCB_BASE_EDIT_FRAME::PutDataInPreviousState(), and BOARD_COMMIT::Revert().

568 {
569  if( aImage == NULL )
570  return;
571 
572  wxASSERT( Type() == aImage->Type() );
573 
574  // Remark: to create images of edited items to undo, we are using Clone method
575  // which can duplication of items foe copy, but does not clone all members
576  // mainly pointers in chain and time stamp, which is set to new, unique value.
577  // So we have to use the current values of these parameters.
578 
579  EDA_ITEM* pnext = Next();
580  EDA_ITEM* pback = Back();
581  DHEAD* mylist = m_List;
582  time_t timestamp = GetTimeStamp();
583  EDA_ITEM* parent = GetParent();
584 
585  switch( Type() )
586  {
587  case PCB_MODULE_T:
588  std::swap( *((MODULE*) this), *((MODULE*) aImage) );
589  break;
590 
591  case PCB_ZONE_AREA_T:
592  std::swap( *((ZONE_CONTAINER*) this), *((ZONE_CONTAINER*) aImage) );
593  break;
594 
595  case PCB_LINE_T:
596  std::swap( *((DRAWSEGMENT*) this), *((DRAWSEGMENT*) aImage) );
597  break;
598 
599  case PCB_TRACE_T:
600  std::swap( *((TRACK*) this), *((TRACK*) aImage) );
601  break;
602 
603  case PCB_VIA_T:
604  std::swap( *((VIA*) this), *((VIA*) aImage) );
605  break;
606 
607  case PCB_TEXT_T:
608  std::swap( *((TEXTE_PCB*)this), *((TEXTE_PCB*)aImage) );
609  break;
610 
611  case PCB_TARGET_T:
612  std::swap( *((PCB_TARGET*)this), *((PCB_TARGET*)aImage) );
613  break;
614 
615  case PCB_DIMENSION_T:
616  std::swap( *((DIMENSION*)this), *((DIMENSION*)aImage) );
617  break;
618 
619  case PCB_ZONE_T:
620  default:
621  wxLogMessage( wxT( "SwapData() error: unexpected type %d" ), Type() );
622  break;
623  }
624 
625  // Restore pointers and time stamp, to be sure they are not broken
626  Pnext = pnext;
627  Pback = pback;
628  m_List = mylist;
629  SetTimeStamp( timestamp );
630  SetParent( parent );
631 }
KICAD_T Type() const
Function Type()
Definition: base_struct.h:198
BOARD_ITEM_CONTAINER * GetParent() const
Class ZONE_CONTAINER handles a list of polygons defining a copper zone.
Definition: class_zone.h:78
EDA_ITEM * Pback
previous in linked list
Definition: base_struct.h:165
Class DHEAD is only for use by template class DLIST, use that instead.
Definition: dlist.h:40
class ZONE_CONTAINER, a zone area
Definition: typeinfo.h:114
class TEXTE_PCB, text on a layer
Definition: typeinfo.h:104
void SetTimeStamp(time_t aNewTimeStamp)
Definition: base_struct.h:203
class TRACK, a track segment (segment on a copper layer)
Definition: typeinfo.h:107
BOARD_ITEM * Next() const
class MODULE, a footprint
Definition: typeinfo.h:101
void SetParent(EDA_ITEM *aParent)
Definition: base_struct.h:213
class SEGZONE, a segment used to fill a zone area (segment on a copper layer)
Definition: typeinfo.h:109
class DIMENSION, a dimension (graphic item)
Definition: typeinfo.h:112
class PCB_TARGET, a target (graphic item)
Definition: typeinfo.h:113
time_t GetTimeStamp() const
Definition: base_struct.h:204
Class EDA_ITEM is a base class for most all the KiCad significant classes, used in schematics and boa...
Definition: base_struct.h:151
class VIA, a via (like a track segment on a copper layer)
Definition: typeinfo.h:108
class DRAWSEGMENT, a segment not on copper layers
Definition: typeinfo.h:103
DHEAD * m_List
which DLIST I am on.
Definition: base_struct.h:166
EDA_ITEM * Pnext
next in linked list
Definition: base_struct.h:164
Class DIMENSION.
BOARD_ITEM * Back() const
void TEXTE_MODULE::SwapEffects ( TEXTE_MODULE aTradingPartner)
inline

Function SwapEffects swaps the text effects of the two involved instances.

Definition at line 126 of file class_text_mod.h.

References SetLocalCoord(), and EDA_TEXT::SwapEffects().

127  {
128  EDA_TEXT::SwapEffects( aTradingPartner );
129  SetLocalCoord();
130  aTradingPartner.SetLocalCoord();
131  // std::swap( m_Type, aTradingPartner.m_Type );
132  }
void SwapEffects(EDA_TEXT &aTradingPartner)
Function SwapEffects swaps the text effects of the two involved instances.
Definition: eda_text.cpp:74
void SetLocalCoord()
Set relative coordinates.
void EDA_TEXT::SwapEffects ( EDA_TEXT aTradingPartner)
inherited

Function SwapEffects swaps the text effects of the two involved instances.

(TEXT_EFECTS is not exposed in the public API, but includes everything except the actual text string itself.)

Definition at line 74 of file eda_text.cpp.

References EDA_TEXT::m_e.

Referenced by SCH_FIELD::SwapData(), SCH_TEXT::SwapData(), and SwapEffects().

75 {
76  std::swap( m_e, aTradingPartner.m_e );
77 }
TEXT_EFFECTS m_e
Definition: eda_text.h:368
bool TEXTE_MODULE::TextHitTest ( const wxPoint aPoint,
int  aAccuracy = 0 
) const
overridevirtual

Function TextHitTest Test if aPoint is within the bounds of this object.

Parameters
aPoint-A wxPoint to test
aAccuracy- Amount to inflate the bounding box.
Returns
bool - true if a hit, else false

Reimplemented from EDA_TEXT.

Definition at line 92 of file class_text_mod.cpp.

References EDA_RECT::Contains(), GetDrawRotation(), EDA_TEXT::GetTextBox(), EDA_TEXT::GetTextPos(), EDA_RECT::Inflate(), and RotatePoint().

Referenced by HitTest().

93 {
94  EDA_RECT rect = GetTextBox( -1 );
95  wxPoint location = aPoint;
96 
97  rect.Inflate( aAccuracy );
98 
99  RotatePoint( &location, GetTextPos(), -GetDrawRotation() );
100 
101  return rect.Contains( location );
102 }
double GetDrawRotation() const
const wxPoint & GetTextPos() const
Definition: eda_text.h:224
bool Contains(const wxPoint &aPoint) const
Function Contains.
void RotatePoint(int *pX, int *pY, double angle)
Definition: trigo.cpp:317
EDA_RECT GetTextBox(int aLine=-1, int aThickness=-1, bool aInvertY=false) const
Function GetTextBox useful in multiline texts to calculate the full text or a line area (for zones fi...
Definition: eda_text.cpp:115
Class EDA_RECT handles the component boundary box.
EDA_RECT & Inflate(wxCoord dx, wxCoord dy)
Function Inflate inflates the rectangle horizontally by dx and vertically by dy.
bool TEXTE_MODULE::TextHitTest ( const EDA_RECT aRect,
bool  aContains = false,
int  aAccuracy = 0 
) const
overridevirtual

Function TextHitTest (overloaded) Tests if object bounding box is contained within or intersects aRect.

Parameters
aRect- Rect to test against.
aContains- Test for containment instead of intersection if true.
aAccuracy- Amount to inflate the bounding box.
Returns
bool - true if a hit, else false

Reimplemented from EDA_TEXT.

Definition at line 105 of file class_text_mod.cpp.

References EDA_RECT::Contains(), GetBoundingBox(), GetDrawRotation(), EDA_TEXT::GetTextBox(), EDA_RECT::Inflate(), and EDA_RECT::Intersects().

106 {
107  EDA_RECT rect = aRect;
108 
109  rect.Inflate( aAccuracy );
110 
111  if( aContains )
112  {
113  return rect.Contains( GetBoundingBox() );
114  }
115  else
116  {
117  return rect.Intersects( GetTextBox( -1 ), GetDrawRotation() );
118  }
119 }
double GetDrawRotation() const
bool Contains(const wxPoint &aPoint) const
Function Contains.
EDA_RECT GetTextBox(int aLine=-1, int aThickness=-1, bool aInvertY=false) const
Function GetTextBox useful in multiline texts to calculate the full text or a line area (for zones fi...
Definition: eda_text.cpp:115
const EDA_RECT GetBoundingBox() const override
Function GetBoundingBox returns the orthogonal, bounding box of this object for display purposes...
bool Intersects(const EDA_RECT &aRect) const
Function Intersects tests for a common area between rectangles.
Class EDA_RECT handles the component boundary box.
EDA_RECT & Inflate(wxCoord dx, wxCoord dy)
Function Inflate inflates the rectangle horizontally by dx and vertically by dy.
void EDA_TEXT::TransformTextShapeToSegmentList ( std::vector< wxPoint > &  aCornerBuffer) const
inherited

Convert the text shape to a list of segment each segment is stored as 2 wxPoints: the starting point and the ending point there are therefore 2*n points.

Parameters
aCornerBuffer= a buffer to store the polygon

Definition at line 506 of file eda_text.cpp.

References addTextSegmToBuffer(), BLACK, color, DrawGraphicText(), EDA_TEXT::GetHorizJustify(), EDA_TEXT::GetPositionsOfLinesOfMultilineText(), EDA_TEXT::GetShownText(), EDA_TEXT::GetText(), EDA_TEXT::GetTextAngle(), EDA_TEXT::GetTextPos(), EDA_TEXT::GetTextSize(), EDA_TEXT::GetThickness(), EDA_TEXT::GetVertJustify(), EDA_TEXT::IsItalic(), EDA_TEXT::IsMirrored(), EDA_TEXT::IsMultilineAllowed(), s_cornerBuffer, and wxStringSplit().

Referenced by DRC::testTexts().

507 {
508  wxSize size = GetTextSize();
509 
510  if( IsMirrored() )
511  size.x = -size.x;
512 
513  s_cornerBuffer = &aCornerBuffer;
514  COLOR4D color = COLOR4D::BLACK; // not actually used, but needed by DrawGraphicText
515 
516  if( IsMultilineAllowed() )
517  {
518  wxArrayString strings_list;
519  wxStringSplit( GetShownText(), strings_list, wxChar('\n') );
520  std::vector<wxPoint> positions;
521  positions.reserve( strings_list.Count() );
522  GetPositionsOfLinesOfMultilineText( positions,strings_list.Count() );
523 
524  for( unsigned ii = 0; ii < strings_list.Count(); ii++ )
525  {
526  wxString txt = strings_list.Item( ii );
527  DrawGraphicText( NULL, NULL, positions[ii], color,
528  txt, GetTextAngle(), size,
530  GetThickness(), IsItalic(),
531  true, addTextSegmToBuffer );
532  }
533  }
534  else
535  {
536  DrawGraphicText( NULL, NULL, GetTextPos(), color,
537  GetText(), GetTextAngle(), size,
539  GetThickness(), IsItalic(),
540  true, addTextSegmToBuffer );
541  }
542 }
void wxStringSplit(const wxString &aText, wxArrayString &aStrings, wxChar aSplitter)
Function wxStringSplit splits aString to a string list separated at aSplitter.
Definition: common.cpp:137
void DrawGraphicText(EDA_RECT *aClipBox, wxDC *aDC, const wxPoint &aPos, COLOR4D aColor, const wxString &aText, double aOrient, const wxSize &aSize, enum EDA_TEXT_HJUSTIFY_T aH_justify, enum EDA_TEXT_VJUSTIFY_T aV_justify, int aWidth, bool aItalic, bool aBold, void(*aCallback)(int x0, int y0, int xf, int yf), PLOTTER *aPlotter)
Function DrawGraphicText Draw a graphic text (like module texts)
Definition: drawtxt.cpp:122
bool IsMultilineAllowed() const
Definition: eda_text.h:188
const wxPoint & GetTextPos() const
Definition: eda_text.h:224
bool IsItalic() const
Definition: eda_text.h:170
static std::vector< wxPoint > * s_cornerBuffer
Definition: eda_text.cpp:497
EDA_TEXT_HJUSTIFY_T GetHorizJustify() const
Definition: eda_text.h:190
double GetTextAngle() const
Definition: eda_text.h:164
int GetThickness() const
Function GetThickness returns pen width.
Definition: eda_text.h:154
virtual wxString GetShownText() const
Returns the string actually shown after processing of the base text.
Definition: eda_text.h:135
const wxString & GetText() const
Function GetText returns the string associated with the text object.
Definition: eda_text.h:130
void GetPositionsOfLinesOfMultilineText(std::vector< wxPoint > &aPositions, int aLineCount) const
Function GetPositionsOfLinesOfMultilineText Populates aPositions with the position of each line of a ...
Definition: eda_text.cpp:327
EDA_TEXT_VJUSTIFY_T GetVertJustify() const
Definition: eda_text.h:191
bool IsMirrored() const
Definition: eda_text.h:179
Definition: colors.h:45
const wxSize & GetTextSize() const
Definition: eda_text.h:215
static void addTextSegmToBuffer(int x0, int y0, int xf, int yf)
Definition: eda_text.cpp:500
Class COLOR4D is the color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:39
KICAD_T EDA_ITEM::Type ( ) const
inlineinherited

Function Type()

returns the type of object. This attribute should never be changed after a constructor sets it, so there is no public "setter" method.

Returns
KICAD_T - the type of object.

Definition at line 198 of file base_struct.h.

References EDA_ITEM::m_StructType.

Referenced by Abort_Move_ModuleOutline(), abortMoveBitmap(), abortMoveItem(), AbortPinMove(), MODULE::Add(), CN_CLUSTER::Add(), BOARD::Add(), CN_CONNECTIVITY_ALGO::Add(), PCB_EDIT_FRAME::Add45DegreeSegment(), SCH_SCREEN::addConnectedItemsToBlock(), POINT_EDITOR::addCorner(), POINT_EDITOR::addCornerCondition(), SCH_EDIT_FRAME::addCurrentItemToList(), AddMenusForComponent(), AddMenusForEditComponent(), SCH_SHEET::AddPin(), SCH_EDIT_FRAME::AppendOneEEProject(), PCB_EDIT_FRAME::Attribut_Track(), PCB_EDIT_FRAME::Autoroute(), PCB_EDIT_FRAME::Begin_Route(), SCH_EDIT_FRAME::BeginSegment(), PCB_EDIT_FRAME::Block_Delete(), PCB_EDIT_FRAME::Block_Duplicate(), PCB_EDIT_FRAME::Block_Flip(), PCB_EDIT_FRAME::Block_Move(), PCB_EDIT_FRAME::Block_Rotate(), SCH_SCREENS::BuildScreenList(), SCH_SHEET_LIST::BuildSheetList(), HIERARCHY_NAVIG_DLG::BuildSheetsTree(), calcArea(), calcMaxArea(), DIALOG_EXCHANGE_MODULE::changeAllFootprints(), DIALOG_EXCHANGE_MODULE::changeSameFootprints(), TEXTE_PCB::ClassOf(), EDGE_MODULE::ClassOf(), BOARD_CONNECTED_ITEM::ClassOf(), ClassOf(), DRAWSEGMENT::ClassOf(), TRACK::ClassOf(), NETINFO_ITEM::ClassOf(), MODULE::ClassOf(), D_PAD::ClassOf(), BOARD::ClassOf(), VIA::ClassOf(), SCH_SHEET::CleanupSheet(), Collect_TrackSegmentsToDrag(), LIB_BEZIER::compare(), LIB_CIRCLE::compare(), LIB_RECTANGLE::compare(), LIB_POLYLINE::compare(), LIB_TEXT::compare(), LIB_ARC::compare(), LIB_FIELD::compare(), LIB_PIN::compare(), SCH_SHEET::ComponentCount(), GRID_HELPER::computeAnchors(), LIB_PART::CopySelectedItems(), SCH_SCREEN::CountConnectedItems(), SCH_SHEET::CountSheets(), LIB_EDIT_FRAME::CreateGraphicItem(), CINFO3D_VISU::createLayers(), BOARD::CreateLockPoint(), SCH_EDIT_FRAME::CreateNewText(), CINFO3D_VISU::createNewTrack(), PCB_EDIT_FRAME::createPopupMenuForTracks(), CreateRoutesSection(), PCB_EDITOR_CONTROL::CrossProbeSchToPcb(), D_PAD::D_PAD(), FOOTPRINT_EDIT_FRAME::Delete_Edge_Module(), PCB_EDIT_FRAME::Delete_Segment_Edge(), SCH_SCREENS::DeleteAllMarkers(), SCH_SCREEN::DeleteItem(), LIB_EDIT_FRAME::deleteItem(), deleteItem(), SCH_EDIT_FRAME::DeleteItem(), DeleteItemsInList(), DeleteNullTrackSegments(), LIB_PART::DeleteSelectedItems(), DIALOG_SCH_EDIT_ONE_FIELD::DIALOG_SCH_EDIT_ONE_FIELD(), DIALOG_ERC::DisplayERC_MarkersList(), DRC::doTrackDrc(), DRC::doTrackKeepoutDrc(), KIGFX::PCB_PAINTER::Draw(), KIGFX::PCB_PAINTER::draw(), DrawMovePin(), DrawMovingBlockOutlines(), drawPickedItems(), CN_ITEM::Dump(), BOARD::Duplicate(), MODULE::Duplicate(), PCB_EDIT_FRAME::duplicateItems(), DuplicateItemsInList(), SCH_EDIT_FRAME::EditComponent(), SCH_EDIT_FRAME::EditComponentFieldText(), LIB_EDIT_FRAME::EditSymbolText(), SCH_EDIT_FRAME::EndSegment(), PCB_EDIT_FRAME::EraseRedundantTrack(), ExitSheet(), SCH_SCREEN::ExtractWires(), DRC::fillMarker(), find_vias_and_tracks_at(), SCH_EDIT_FRAME::FindComponentAndItem(), NETLIST_EXPORTER::findNextComponent(), NETLIST_EXPORTER::findNextComponentAndCreatePinList(), SCH_SHEET_PATH::FindNextItem(), SCH_SHEET_LIST::FindNextItem(), SCH_SHEET_PATH::FindPreviousItem(), SCH_SHEET_LIST::FindPreviousItem(), POINT_EDITOR::finishItem(), FootprintWriteShape(), PCB_IO::Format(), PCB_IO::format(), FormatProbeItem(), POINT_EDITOR::get45DegConstrainer(), getAnchorPoint(), TRACK::GetBestInsertPoint(), BOARD_ITEM::GetBoard(), TRACK::GetBoundingBox(), BOARD_CONNECTED_ITEM::GetClearance(), NETLIST_OBJECT::GetComponentParent(), SCH_SCREEN::GetConnection(), SCH_TEXT::GetConnectionPoints(), SCH_TEXT::GetEndPoints(), SCH_SHEET::GetEndPoints(), GetFirstVia(), SCH_SCREEN::GetHierarchicalItems(), TEXTE_PCB::GetMsgPanelInfo(), SCH_TEXT::GetMsgPanelInfo(), BOARD_CONNECTED_ITEM::GetNetClass(), CONNECTIVITY_DATA::GetNetItems(), LIB_PART::GetNextDrawItem(), DRAWSEGMENT::GetParentModule(), SCH_SCREEN::GetPin(), LIB_PART::GetPin(), SCH_COMPONENT::GetPinPhysicalPosition(), getRect(), SELECTION::GetTopLeftItem(), LIB_EDIT_FRAME::GlobalSetPins(), SELECTION_TOOL::guessSelectionCandidates(), SCH_SCREENS::HasNoFullyDefinedLibIds(), SCH_SHEET::HasUndefinedPins(), SCH_EDIT_FRAME::ImportSheetPin(), DIALOG_LABEL_EDITOR::InitDialog(), ROUTER_TOOL::InlineDrag(), SCH_COLLECTOR::Inspect(), GENERAL_COLLECTOR::Inspect(), SCH_FIND_COLLECTOR::Inspect(), ARRAY_CREATOR::Invoke(), SCH_TEXT::IsDanglingStateChanged(), SCH_COLLECTOR::IsDraggableJunction(), SCH_COLLECTOR::IsNode(), TRACK::IsNull(), SCH_SCREEN::IsTerminalPoint(), BOARD_ITEM::IsTrack(), itemIsIncludedByFilter(), SCH_SHEET::Load(), PNS_PCBNEW_RULE_RESOLVER::localPadClearance(), SCH_EDIT_FRAME::LocateAndShowItem(), SCH_EDIT_FRAME::LocateItem(), SCH_SHEET::LocatePathOfScreen(), Magnetize(), EDIT_POINTS_FACTORY::Make(), SCH_SCREEN::MarkConnections(), CONNECTIVITY_DATA::MarkItemNetAsDirty(), CN_CONNECTIVITY_ALGO::markItemNetAsDirty(), MarkItemsInBloc(), BOARD::MarkTrace(), TRACKS_CLEANER::mergeCollinearSegmentIfPossible(), TRACKS_CLEANER::MergeCollinearTracks(), SCH_LINE::MergeOverlap(), FOOTPRINT_EDIT_FRAME::ModeditLocateAndDisplay(), moveItemWithMouseCursor(), MoveMarkedItems(), MoveMarkedItemsExactly(), SCH_EDIT_FRAME::OnConvertTextType(), SCH_EDIT_FRAME::OnCopySchematicItemRequest(), SCH_EDIT_FRAME::OnDragItem(), SCH_EDIT_FRAME::OnEditItem(), FOOTPRINT_EDIT_FRAME::OnEditItemRequest(), PCB_EDIT_FRAME::OnEditItemRequest(), LIB_EDIT_FRAME::OnEditPin(), LIB_EDIT_FRAME::OnHotKey(), SCH_EDIT_FRAME::OnHotKey(), PCB_EDIT_FRAME::OnHotkeyCopyItem(), FOOTPRINT_EDIT_FRAME::OnHotkeyDeleteItem(), PCB_EDIT_FRAME::OnHotkeyDeleteItem(), FOOTPRINT_EDIT_FRAME::OnHotkeyDuplicateItem(), PCB_EDIT_FRAME::OnHotkeyDuplicateOrArrayItem(), FOOTPRINT_EDIT_FRAME::OnHotkeyEditItem(), PCB_EDIT_FRAME::OnHotkeyEditItem(), PCB_EDIT_FRAME::OnHotkeyFlipItem(), FOOTPRINT_EDIT_FRAME::OnHotkeyMoveItem(), PCB_EDIT_FRAME::OnHotkeyMoveItem(), FOOTPRINT_EDIT_FRAME::OnHotkeyMoveItemExact(), PCB_EDIT_FRAME::OnHotkeyPlaceItem(), FOOTPRINT_EDIT_FRAME::OnHotkeyRotateItem(), PCB_EDIT_FRAME::OnHotkeyRotateItem(), FOOTPRINT_EDIT_FRAME::OnLeftClick(), LIB_EDIT_FRAME::OnLeftClick(), SCH_EDIT_FRAME::OnLeftClick(), PCB_EDIT_FRAME::OnLeftClick(), LIB_EDIT_FRAME::OnLeftDClick(), SCH_EDIT_FRAME::OnLeftDClick(), PCB_EDIT_FRAME::OnLeftDClick(), SCH_EDIT_FRAME::OnMoveItem(), SCH_EDIT_FRAME::OnOpenLibraryEditor(), SCH_EDIT_FRAME::OnOrient(), FOOTPRINT_EDIT_FRAME::OnRightClick(), LIB_EDIT_FRAME::OnRightClick(), SCH_EDIT_FRAME::OnRightClick(), PCB_EDIT_FRAME::OnRightClick(), SCH_EDIT_FRAME::OnRotate(), SCH_EDIT_FRAME::OnSelectUnit(), SCH_LINE::operator<(), LIB_ITEM::operator<(), SCH_ITEM::operator<(), SCH_COMPONENT::operator<(), SCH_BITMAP::operator=(), SCH_SHEET::operator=(), SCH_COMPONENT::operator=(), LIB_ITEM::operator==(), OrCell_Trace(), SCH_EDIT_FRAME::OrientComponent(), BOARD_COMMIT::parentObject(), MODULE_EDITOR_TOOLS::PasteItems(), SCH_EDIT_FRAME::PasteListOfItems(), PCB_BASE_FRAME::PcbGeneralLocateAndDisplay(), LIB_EDIT_FRAME::PlacePin(), SCH_FIELD::Plot(), BRDITEMS_PLOTTER::Plot_1_EdgeModule(), SCH_EDIT_FRAME::PrepareMoveItem(), GAL_ARRAY_CREATOR::prePushAction(), PCB_EDIT_FRAME::PrintPage(), FOOTPRINT_EDIT_FRAME::Process_Special_Functions(), LIB_EDIT_FRAME::Process_Special_Functions(), SCH_EDIT_FRAME::Process_Special_Functions(), PCB_EDIT_FRAME::Process_Special_Functions(), BOARD_COMMIT::Push(), LIB_ITEMS_LIST::push_back(), PCB_BASE_EDIT_FRAME::PutDataInPreviousState(), RedrawWhileMovingCursor(), DIALOG_SYMBOL_REMAP::remapSymbolsToLibTable(), MODULE::Remove(), BOARD::Remove(), CN_CONNECTIVITY_ALGO::Remove(), POINT_EDITOR::removeCorner(), POINT_EDITOR::removeCornerCondition(), LIB_PART::RemoveDrawItem(), TRACKS_CLEANER::removeDuplicatesOfTrack(), SCH_SHEET::RemovePin(), FOOTPRINT_EDIT_FRAME::RemoveStruct(), PCB_EDIT_FRAME::RemoveStruct(), SCH_EDIT_FRAME::RepeatDrawItem(), LIB_EDIT_FRAME::RepeatPinItem(), SCH_SCREENS::ReplaceDuplicateTimeStamps(), SCH_SCREEN::ReplaceWires(), SELECTION_TOOL::RequestSelection(), PCB_EDIT_FRAME::Reset_All_Tracks_And_Vias_To_Netclass_Values(), PCB_BASE_FRAME::ResetTextSize(), SCH_EDIT_FRAME::ReSizeSheet(), BOARD_COMMIT::Revert(), SCH_EDIT_FRAME::RotateField(), PCB_BASE_EDIT_FRAME::SaveCopyInUndoList(), SCH_EDIT_FRAME::SaveUndoItemInUndoList(), CN_CONNECTIVITY_ALGO::searchConnections(), SCH_SHEET::SearchHierarchy(), SELECTION_TOOL::select(), SELECTION_TOOL::selectable(), SCH_SCREEN::SelectBlockItems(), PCB_EDIT_FRAME::SelectHighLight(), SELECTION_TOOL::selectVisually(), ITEM_PICKER::SetItem(), SetSchItemParent(), DIALOG_LABEL_EDITOR::SetTitle(), PCB_EDIT_FRAME::SetTrackSegmentWidth(), PCB_EDIT_FRAME::Show_1_Ratsnest(), Show_MoveNode(), ShowClearance(), ShowNewTrackWhenMovingCursor(), SortByTimeStamp(), PCB_EDIT_FRAME::Start_DragTrackSegmentAndKeepSlope(), LIB_EDIT_FRAME::StartMoveDrawSymbol(), PCB_EDIT_FRAME::StartMoveOneNodeOrSegment(), SCH_JUNCTION::SwapData(), SCH_NO_CONNECT::SwapData(), SCH_BITMAP::SwapData(), SCH_FIELD::SwapData(), SCH_SHEET_PIN::SwapData(), BOARD_ITEM::SwapData(), SCH_SHEET::SwapData(), SCH_COMPONENT::SwapData(), PCB_EDIT_FRAME::SwitchLayer(), TestDuplicateSheetNames(), TRACKS_CLEANER::testTrackEndpointDangling(), TEXTE_MODULE(), TraceSegmentPcb(), TRACK::TransformShapeWithClearanceToPolygon(), SELECTION_TOOL::unselectVisually(), SCH_SHEET_PATH::UpdateAllScreenReferences(), DIALOG_SCH_EDIT_ONE_FIELD::UpdateField(), POINT_EDITOR::updateItem(), POINT_EDITOR::updatePoints(), PCB_BRIGHT_BOX::ViewDraw(), TRACK::Visit(), EDA_ITEM::Visit(), SCH_SHEET::Visit(), and SCH_COMPONENT::Visit().

199  {
200  return m_StructType;
201  }
KICAD_T m_StructType
Run time identification, keep private so it can never be changed after a constructor sets it...
Definition: base_struct.h:160
void BOARD_ITEM::UnLink ( )
virtualinherited

Function UnLink detaches this object from its owner.

This base class implementation should work for all derived classes which are held in a DLIST<>.

Definition at line 53 of file class_board_item.cpp.

References EDA_ITEM::GetList().

Referenced by PCB_EDIT_FRAME::Block_Delete(), PCB_EDIT_FRAME::Delete_Segment_Edge(), PCB_EDIT_FRAME::Delete_Texte_Pcb(), PCB_EDIT_FRAME::DeleteDimension(), PCB_EDIT_FRAME::DeleteTarget(), PCB_EDIT_FRAME::EraseRedundantTrack(), and BOARD::MarkTrace().

54 {
56  wxASSERT( list );
57 
58  if( list )
59  list->Remove( this );
60 }
DHEAD * GetList() const
Definition: base_struct.h:209
const BOX2I TEXTE_MODULE::ViewBBox ( ) const
overridevirtual

Function ViewBBox() returns the bounding box of the item covering all its layers.

Returns
BOX2I - the current bounding box

Reimplemented from EDA_ITEM.

Definition at line 434 of file class_text_mod.cpp.

References PNS::angle(), EDA_RECT::GetBoundingBoxRotated(), GetDrawRotation(), EDA_RECT::GetPosition(), EDA_RECT::GetSize(), EDA_TEXT::GetTextBox(), and EDA_TEXT::GetTextPos().

Referenced by FOOTPRINT_PREVIEW_PANEL::renderFootprint().

435 {
436  double angle = GetDrawRotation();
437  EDA_RECT text_area = GetTextBox( -1, -1 );
438 
439  if( angle )
440  text_area = text_area.GetBoundingBoxRotated( GetTextPos(), angle );
441 
442  return BOX2I( text_area.GetPosition(), text_area.GetSize() );
443 }
BOX2< VECTOR2I > BOX2I
Definition: box2.h:468
double GetDrawRotation() const
const wxPoint & GetTextPos() const
Definition: eda_text.h:224
EDA_RECT GetTextBox(int aLine=-1, int aThickness=-1, bool aInvertY=false) const
Function GetTextBox useful in multiline texts to calculate the full text or a line area (for zones fi...
Definition: eda_text.cpp:115
const EDA_RECT GetBoundingBoxRotated(wxPoint aRotCenter, double aAngle)
Function GetBoundingBoxRotated.
const wxPoint & GetPosition() const
static DIRECTION_45::AngleType angle(const VECTOR2I &a, const VECTOR2I &b)
Class EDA_RECT handles the component boundary box.
const wxSize & GetSize() const
virtual void KIGFX::VIEW_ITEM::ViewDraw ( int  aLayer,
VIEW aView 
) const
inlinevirtualinherited

Function ViewDraw() Draws the parts of the object belonging to layer aLayer.

viewDraw() is an alternative way for drawing objects if if there is no PAINTER assigned for the view or if the PAINTER doesn't know how to paint this particular implementation of VIEW_ITEM. The preferred way of drawing is to design an appropriate PAINTER object, the method below is intended only for quick hacks and debugging purposes.

Parameters
aLayercurrent drawing layer
aViewpointer to the VIEW device we are drawing on

Reimplemented in EDIT_POINTS, KIGFX::WORKSHEET_VIEWITEM, ROUTER_PREVIEW_ITEM, KIGFX::VIEW_GROUP, KIGFX::PREVIEW::SELECTION_AREA, KIGFX::PREVIEW::SIMPLE_OVERLAY_ITEM, BRIGHT_BOX, KIGFX::PREVIEW::RULER_ITEM, KIGFX::ORIGIN_VIEWITEM, KIGFX::RATSNEST_VIEWITEM, KIGFX::PREVIEW::ARC_ASSISTANT, and PCB_BRIGHT_BOX.

Definition at line 114 of file view_item.h.

Referenced by KIGFX::VIEW::draw(), and KIGFX::VIEW::updateItemGeometry().

115  {}
void TEXTE_MODULE::ViewGetLayers ( int  aLayers[],
int &  aCount 
) const
overridevirtual

Function ViewGetLayers() Returns the all the layers within the VIEW the object is painted on.

For instance, a D_PAD spans zero or more copper layers and a few technical layers. ViewDraw() or PAINTER::Draw() is repeatedly called for each of the layers returned by ViewGetLayers(), depending on the rendering order.

Parameters
aLayers[]output layer index array
aCountnumber of layer indices in aLayers[]

Reimplemented from BOARD_ITEM.

Definition at line 446 of file class_text_mod.cpp.

References BOARD_ITEM::GetLayer(), EDA_TEXT::IsVisible(), and LAYER_MOD_TEXT_INVISIBLE.

447 {
448  if( !IsVisible() ) // Hidden text
449  aLayers[0] = LAYER_MOD_TEXT_INVISIBLE;
450  //else if( IsFrontLayer( m_Layer ) )
451  //aLayers[0] = LAYER_MOD_TEXT_FR;
452  //else if( IsBackLayer( m_Layer ) )
453  //aLayers[0] = LAYER_MOD_TEXT_BK;
454  else
455  aLayers[0] = GetLayer();
456 
457  aCount = 1;
458 }
PCB_LAYER_ID GetLayer() const
Function GetLayer returns the primary layer this item is on.
bool IsVisible() const
Definition: eda_text.h:176
unsigned int TEXTE_MODULE::ViewGetLOD ( int  aLayer,
KIGFX::VIEW aView 
) const
overridevirtual

Function ViewGetLOD() Returns the level of detail of the item.

A level of detail is the minimal VIEW scale that is sufficient for an item to be shown on a given layer.

Reimplemented from KIGFX::VIEW_ITEM.

Definition at line 461 of file class_text_mod.cpp.

References IsBackLayer(), IsFrontLayer(), KIGFX::VIEW::IsLayerVisible(), LAYER_MOD_BK, LAYER_MOD_FR, LAYER_MOD_REFERENCES, LAYER_MOD_TEXT_BK, LAYER_MOD_TEXT_FR, LAYER_MOD_VALUES, BOARD_ITEM::m_Layer, m_Type, max, TEXT_is_REFERENCE, and TEXT_is_VALUE.

462 {
463  const int MAX = std::numeric_limits<unsigned int>::max();
464 
465  if( !aView )
466  return 0;
467 
468  if( m_Type == TEXT_is_VALUE && !aView->IsLayerVisible( LAYER_MOD_VALUES ) )
469  return MAX;
470 
472  return MAX;
473 
474  if( IsFrontLayer( m_Layer ) && ( !aView->IsLayerVisible( LAYER_MOD_TEXT_FR ) ||
475  !aView->IsLayerVisible( LAYER_MOD_FR ) ) )
476  return MAX;
477 
478  if( IsBackLayer( m_Layer ) && ( !aView->IsLayerVisible( LAYER_MOD_TEXT_BK ) ||
479  !aView->IsLayerVisible( LAYER_MOD_BK ) ) )
480  return MAX;
481 
482  return 0;
483 }
bool IsLayerVisible(int aLayer) const
Function IsLayerVisible() Returns information about visibility of a particular layer.
Definition: view.h:404
bool IsBackLayer(PCB_LAYER_ID aLayerId)
Layer classification: check if it's a back layer.
show modules on back
show modules values (when texts are visibles)
show modules on front
PCB_LAYER_ID m_Layer
bool IsFrontLayer(PCB_LAYER_ID aLayerId)
Layer classification: check if it's a front layer.
#define max(a, b)
Definition: auxiliary.h:86
TEXT_TYPE m_Type
0=ref, 1=val, etc.
show modules references (when texts are visibles)
SEARCH_RESULT EDA_ITEM::Visit ( INSPECTOR  inspector,
void *  testData,
const KICAD_T  scanTypes[] 
)
virtualinherited

Function Visit may be re-implemented for each derived class in order to handle all the types given by its member data.

Implementations should call inspector->Inspect() on types in scanTypes[], and may use IterateForward() to do so on lists of such data.

Parameters
inspectorAn INSPECTOR instance to use in the inspection.
testDataArbitrary data used by the inspector.
scanTypesWhich KICAD_T types are of interest and the order is significant too, terminated by EOT.
Returns
SEARCH_RESULT SEARCH_QUIT if the Iterator is to stop the scan, else SCAN_CONTINUE, and determined by the inspector.

Reimplemented in BOARD, SCH_COMPONENT, SCH_SHEET, MODULE, and TRACK.

Definition at line 151 of file base_struct.cpp.

References EOT, EDA_ITEM::GetClass(), SEARCH_CONTINUE, SEARCH_QUIT, and EDA_ITEM::Type().

Referenced by GENERAL_COLLECTOR::Collect(), PCB_TYPE_COLLECTOR::Collect(), and EDA_ITEM::IterateForward().

152 {
153  KICAD_T stype;
154 
155 #if 0 && defined(DEBUG)
156  std::cout << GetClass().mb_str() << ' ';
157 #endif
158 
159  for( const KICAD_T* p = scanTypes; (stype = *p) != EOT; ++p )
160  {
161  // If caller wants to inspect my type
162  if( stype == Type() )
163  {
164  if( SEARCH_QUIT == inspector( this, testData ) )
165  return SEARCH_QUIT;
166 
167  break;
168  }
169  }
170 
171  return SEARCH_CONTINUE;
172 }
KICAD_T Type() const
Function Type()
Definition: base_struct.h:198
search types array terminator (End Of Types)
Definition: typeinfo.h:94
KICAD_T
Enum KICAD_T is the set of class identification values, stored in EDA_ITEM::m_StructType.
Definition: typeinfo.h:90
virtual wxString GetClass() const =0
Function GetClass returns the class name.

Member Data Documentation

STATUS_FLAGS EDA_ITEM::m_Flags
protectedinherited

Flag bits for editing and other uses.

Definition at line 175 of file base_struct.h.

Referenced by LIB_CIRCLE::BeginEdit(), LIB_RECTANGLE::BeginEdit(), LIB_POLYLINE::BeginEdit(), LIB_TEXT::BeginEdit(), LIB_ARC::BeginEdit(), LIB_FIELD::BeginEdit(), LIB_CIRCLE::calcEdit(), LIB_POLYLINE::calcEdit(), LIB_RECTANGLE::calcEdit(), LIB_TEXT::calcEdit(), LIB_ARC::calcEdit(), LIB_FIELD::calcEdit(), LIB_TEXT::Clone(), LIB_CIRCLE::ContinueEdit(), LIB_RECTANGLE::ContinueEdit(), LIB_POLYLINE::ContinueEdit(), LIB_TEXT::ContinueEdit(), LIB_ARC::ContinueEdit(), LIB_FIELD::ContinueEdit(), SCH_LINE::Draw(), TRACK::Draw(), DRAWSEGMENT::Draw(), MODULE::Draw(), D_PAD::Draw(), SEGZONE::Draw(), LIB_CIRCLE::drawGraphic(), LIB_POLYLINE::drawGraphic(), LIB_RECTANGLE::drawGraphic(), LIB_BEZIER::drawGraphic(), LIB_ARC::drawGraphic(), DRAWSEGMENT::DRAWSEGMENT(), LIB_CIRCLE::EndEdit(), LIB_RECTANGLE::EndEdit(), LIB_POLYLINE::EndEdit(), LIB_TEXT::EndEdit(), LIB_ARC::EndEdit(), LIB_ITEM::EndEdit(), LIB_FIELD::EndEdit(), EDA_ITEM::GetFlags(), TRACK::GetMsgPanelInfoBase_Common(), SCH_JUNCTION::HitTest(), SCH_LINE::HitTest(), SCH_COMPONENT::HitTest(), LIB_ITEM::InEditMode(), EDA_ITEM::initVars(), SCH_ITEM::IsConnected(), SCH_COMPONENT::Load(), SCH_LINE::Move(), EDA_ITEM::operator=(), SCH_COMPONENT::SCH_COMPONENT(), LIB_PIN::SetConversion(), LIB_PIN::SetLength(), LIB_PIN::SetName(), LIB_PIN::SetNameTextSize(), LIB_PIN::SetNumberTextSize(), LIB_PIN::SetOrientation(), LIB_PIN::SetPartNumber(), LIB_PIN::SetPinPosition(), LIB_PIN::SetShape(), LIB_PIN::SetType(), and LIB_PIN::SetVisible().

bool EDA_ITEM::m_forceVisible
protectedinherited

Set to true to override the visibility setting of the item.

Definition at line 172 of file base_struct.h.

Referenced by SCH_FIELD::Draw(), EDA_ITEM::initVars(), and EDA_ITEM::operator=().

DHEAD* EDA_ITEM::m_List
protectedinherited

which DLIST I am on.

Definition at line 166 of file base_struct.h.

Referenced by EDA_ITEM::GetList(), EDA_ITEM::initVars(), and BOARD_ITEM::SwapData().

wxPoint TEXTE_MODULE::m_Pos0
private

text coordinates relative to the footprint anchor, orient 0.

text coordinate ref point is the text center

Definition at line 231 of file class_text_mod.h.

Referenced by GetPos0(), SetDrawCoord(), SetLocalCoord(), and SetPos0().