79                 wxT( 
"Cannot swap data with invalid table." ) );
 
  100        cell->SetParent( 
this );
 
 
  115    return m_cells[0]->GetPosition();
 
 
  161                for( 
int ii = col + 1; ii < col + cell->
GetColSpan(); ++ii )
 
  164                for( 
int ii = row + 1; ii < row + cell->
GetRowSpan(); ++ii )
 
 
  186    std::vector<std::vector<BOX2I>> extents;
 
  190        extents.push_back( std::vector<BOX2I>() );
 
  196            extents[row].push_back( textPoly.
BBox() );
 
  208            colWidth = std::max<int>( colWidth, extents[row][col].GetWidth() + ( margins * 1.5 ) );
 
  222            rowHeight = std::max( rowHeight, (
int) extents[row][col].GetHeight() + margins );
 
 
  235        cell->Move( aMoveVector );
 
 
  245        cell->Rotate( aRotCentre, aAngle );
 
 
  262    Rotate( aCentre, -originalAngle );
 
  266        cell->Flip( aCentre, aFlipDirection );
 
  268    std::vector<PCB_TABLECELL*> oldCells = 
m_cells;
 
  284    VECTOR2I position = currentPos - translationVector;
 
  287    std::map<int, int> newColWidths;
 
  298    Rotate( aCentre, originalAngle );
 
 
  310            cell->RunOnChildren( aFunction, aMode );
 
 
  333    std::vector<VECTOR2I> bottomRight =
 
  356            if( corners.size() == 4 )
 
  357                aCallback( corners[1], corners[2], stroke );
 
  382            if( corners.size() == 4 )
 
  383                aCallback( corners[2], corners[3], stroke );
 
 
  405    std::shared_ptr<SHAPE_COMPOUND> shape = std::make_shared<SHAPE_COMPOUND>();
 
  407    std::vector<VECTOR2I> pts;
 
  409    pts.emplace_back( topLeft[3] );
 
  410    pts.emplace_back( topRight[2] );
 
  411    pts.emplace_back( bottomRight[2] );
 
  412    pts.emplace_back( bottomLeft[3] );
 
 
  427                                         int aClearance, 
int aMaxError, 
ERROR_LOC aErrorLoc,
 
  428                                         bool aIgnoreLineWidth )
 const 
  430    int gap = aClearance;
 
  439        cell->TransformShapeToPolygon( aBuffer, aLayer, gap, aMaxError, aErrorLoc, 
false );
 
 
  448            [&aBuffer, aMaxError, aErrorLoc, aRenderSettings]
 
  463                    if( currSettings == 
nullptr )
 
  464                        currSettings = &defaultRenderSettings;
 
  479        cell->TransformTextToPolySet( aBuffer, 0, aMaxError, 
ERROR_INSIDE );
 
 
  485                                 const std::vector<KICAD_T>& aScanTypes )
 
  487    for( 
KICAD_T scanType : aScanTypes )
 
 
  511    return wxString::Format( 
_( 
"%d column table" ), 
m_colCount );
 
 
  553    aList.emplace_back( 
_( 
"Table" ), wxString::Format( 
_( 
"%d Columns" ), 
m_colCount ) );
 
 
  561    if( ( diff = (
int) aTable->
GetCells().size() - (
int) aOther->
GetCells().size() ) != 0 )
 
  567    for( 
int col = 0; col < aTable->
GetColCount(); ++col )
 
  573    for( 
int row = 0; row < aTable->
GetRowCount(); ++row )
 
  579    for( 
int row = 0; row < aTable->
GetRowCount(); ++row )
 
  581        for( 
int col = 0; col < aTable->
GetColCount(); ++col )
 
  586            if( ( diff = cell->PCB_SHAPE::Compare( other ) ) != 0 )
 
  589            if( ( diff = cell->EDA_TEXT::Compare( other ) ) != 0 )
 
 
  605    return *
this == other;
 
 
  638    for( 
int ii = 0; ii < (int) 
m_cells.size(); ++ii )
 
 
  658    double similarity = 1.0;
 
  684    for( 
int ii = 0; ii < (int) 
m_cells.size(); ++ii )
 
 
  697        if( lineStyleEnum.
Choices().GetCount() == 0 )
 
  721        const wxString tableProps = 
_( 
"Table Properties" );
 
 
 
ERROR_LOC
When approximating an arc or circle, should the error be placed on the outside or inside of the curve...
 
constexpr int ARC_LOW_DEF
 
BITMAPS
A list of all bitmap identifiers.
 
Abstract interface for BOARD_ITEMs capable of storing other items inside.
 
BOARD_ITEM_CONTAINER(BOARD_ITEM *aParent, KICAD_T aType)
 
A base class for any item which can be embedded within the BOARD container class, and therefore insta...
 
BOARD_ITEM(BOARD_ITEM *aParent, KICAD_T idtype, PCB_LAYER_ID aLayer=F_Cu)
 
virtual PCB_LAYER_ID GetLayer() const
Return the primary layer this item is on.
 
virtual void SetLayer(PCB_LAYER_ID aLayer)
Set the layer this item is on.
 
virtual const BOARD * GetBoard() const
Return the BOARD in which this BOARD_ITEM resides, or NULL if none.
 
constexpr BOX2< Vec > & Inflate(coord_type dx, coord_type dy)
Inflates the rectangle horizontally by dx and vertically by dy.
 
constexpr BOX2< Vec > & Merge(const BOX2< Vec > &aRect)
Modify the position and size of the rectangle in order to contain aRect.
 
constexpr bool Contains(const Vec &aPoint) const
 
constexpr bool Intersects(const BOX2< Vec > &aRect) const
 
The base class for create windows for drawing purpose.
 
KICAD_T Type() const
Returns the type of object.
 
virtual void SetParent(EDA_ITEM *aParent)
 
std::vector< VECTOR2I > GetCornersInSequence(EDA_ANGLE angle) const
 
const VECTOR2I & GetEnd() const
Return the ending point of the graphic.
 
void SetEnd(const VECTOR2I &aEnd)
 
const EDA_ANGLE & GetTextAngle() const
 
virtual EDA_ANGLE GetDrawRotation() const
 
virtual void ClearRenderCache()
 
ENUM_MAP & Map(T aValue, const wxString &aName)
 
static ENUM_MAP< T > & Instance()
 
A color representation with 4 components: red, green, blue, alpha.
 
PCB specific render settings.
 
Container for all the knowledge about how graphical objects are drawn on any output surface/device.
 
void SetPosition(const VECTOR2I &aPos) override
 
VECTOR2I GetPosition() const override
 
STROKE_PARAMS m_separatorsStroke
 
const BOX2I GetBoundingBox() const override
Return the orthogonal bounding box of this object for display purposes.
 
void TransformGraphicItemsToPolySet(SHAPE_POLY_SET &aBuffer, int aMaxError, ERROR_LOC aErrorLoc, KIGFX::RENDER_SETTINGS *aRenderSettings) const
Convert graphic items (segments and texts) to a set of polygonal shapes.
 
std::vector< PCB_TABLECELL * > m_cells
 
void SetColWidth(int aCol, int aWidth)
 
bool HitTest(const VECTOR2I &aPosition, int aAccuracy=0) const override
Test if aPosition is inside or on the boundary of this item.
 
void Move(const VECTOR2I &aMoveVector) override
Move this object.
 
bool StrokeHeaderSeparator() const
 
bool StrokeColumns() const
 
void SetBorderStyle(const LINE_STYLE aStyle)
 
void SetStrokeHeaderSeparator(bool aDoStroke)
 
void SetSeparatorsColor(const COLOR4D &aColor)
 
STROKE_PARAMS m_borderStroke
 
wxString GetItemDescription(UNITS_PROVIDER *aUnitsProvider, bool aFull) const override
Return a user-visible description string of this item.
 
std::shared_ptr< SHAPE > GetEffectiveShape(PCB_LAYER_ID aLayer=UNDEFINED_LAYER, FLASHING aFlash=FLASHING::DEFAULT) const override
Some pad shapes can be complex (rounded/chamfered rectangle), even without considering custom shapes.
 
void Flip(const VECTOR2I &aCentre, FLIP_DIRECTION aFlipDirection) override
Flip this object, i.e.
 
bool StrokeExternal() const
 
int GetSeparatorsWidth() const
 
void SetStrokeExternal(bool aDoStroke)
 
PCB_TABLECELL * GetCell(int aRow, int aCol) const
 
std::vector< PCB_TABLECELL * > GetCells() const
 
int GetBorderWidth() const
 
COLOR4D GetBorderColor() const
 
bool operator==(const PCB_TABLE &aOther) const
 
INSPECT_RESULT Visit(INSPECTOR inspector, void *testData, const std::vector< KICAD_T > &aScanTypes) override
May be re-implemented for each derived class in order to handle all the types given by its member dat...
 
void SetStrokeColumns(bool aDoStroke)
 
const STROKE_PARAMS & GetSeparatorsStroke() const
 
std::map< int, int > m_colWidths
 
virtual void swapData(BOARD_ITEM *aImage) override
 
void Normalize() override
Perform any normalization required after a user rotate and/or flip.
 
void AddCell(PCB_TABLECELL *aCell)
 
const STROKE_PARAMS & GetBorderStroke() const
 
BITMAPS GetMenuImage() const override
Return a pointer to an image to be used in menus.
 
void SetStrokeRows(bool aDoStroke)
 
bool m_StrokeHeaderSeparator
 
void RunOnChildren(const std::function< void(BOARD_ITEM *)> &aFunction, RECURSE_MODE aMode) const override
Invoke a function on all children.
 
double Similarity(const BOARD_ITEM &aOther) const override
Return a measure of how likely the other object is to represent the same object.
 
void TransformShapeToPolygon(SHAPE_POLY_SET &aBuffer, PCB_LAYER_ID aLayer, int aClearance, int aMaxError, ERROR_LOC aErrorLoc, bool aIgnoreLineWidth=false) const override
Convert the item shape to a closed polygon.
 
void DrawBorders(const std::function< void(const VECTOR2I &aPt1, const VECTOR2I &aPt2, const STROKE_PARAMS &aStroke)> &aCallback) const
 
LINE_STYLE GetBorderStyle() const
 
static int Compare(const PCB_TABLE *aTable, const PCB_TABLE *aOther)
 
int GetColWidth(int aCol) const
 
VECTOR2I GetPosition() const override
 
void SetSeparatorsWidth(int aWidth)
 
COLOR4D GetSeparatorsColor() const
 
void Rotate(const VECTOR2I &aRotCentre, const EDA_ANGLE &aAngle) override
Rotate this object.
 
LINE_STYLE GetSeparatorsStyle() const
 
void SetBorderColor(const COLOR4D &aColor)
 
PCB_TABLE(BOARD_ITEM *aParent, int aLineWidth)
 
void SetSeparatorsStyle(const LINE_STYLE aStyle)
 
void GetMsgPanelInfo(EDA_DRAW_FRAME *aFrame, std::vector< MSG_PANEL_ITEM > &aList) override
Populate aList of MSG_PANEL_ITEM objects with it's internal state for display purposes.
 
void SetRowHeight(int aRow, int aHeight)
 
void SetPosition(const VECTOR2I &aPos) override
 
void SetBorderWidth(int aWidth)
 
int GetRowHeight(int aRow) const
 
std::map< int, int > m_rowHeights
 
void TransformTextToPolySet(SHAPE_POLY_SET &aBuffer, int aClearance, int aMaxError, ERROR_LOC aErrorLoc) const
Function TransformTextToPolySet Convert the text to a polygonSet describing the actual character stro...
 
int GetMarginLeft() const
 
int GetMarginRight() const
 
Provide class metadata.Helper macro to map type hashes to names.
 
void InheritsAfter(TYPE_ID aDerived, TYPE_ID aBase)
Declare an inheritance relationship between types.
 
static PROPERTY_MANAGER & Instance()
 
PROPERTY_BASE & AddProperty(PROPERTY_BASE *aProperty, const wxString &aGroup=wxEmptyString)
Register a property.
 
void AddTypeCast(TYPE_CAST_BASE *aCast)
Register a type converter.
 
Represent a polyline containing arcs as well as line segments: A chain of connected line and/or arc s...
 
Represent a set of closed polygons.
 
const BOX2I BBox(int aClearance=0) const override
Compute a bounding box of the shape, with a margin of aClearance a collision.
 
Represent a simple polygon consisting of a zero-thickness closed chain of connected line segments.
 
Simple container to manage line stroke parameters.
 
LINE_STYLE GetLineStyle() const
 
static void Stroke(const SHAPE *aShape, LINE_STYLE aLineStyle, int aWidth, const KIGFX::RENDER_SETTINGS *aRenderSettings, const std::function< void(const VECTOR2I &a, const VECTOR2I &b)> &aStroker)
 
void TransformCircleToPolygon(SHAPE_LINE_CHAIN &aBuffer, const VECTOR2I &aCenter, int aRadius, int aError, ERROR_LOC aErrorLoc, int aMinSegCount=0)
Convert a circle to a polygon, using multiple straight lines.
 
void TransformOvalToPolygon(SHAPE_POLY_SET &aBuffer, const VECTOR2I &aStart, const VECTOR2I &aEnd, int aWidth, int aError, ERROR_LOC aErrorLoc, int aMinSegCount=0)
Convert a oblong shape to a polygon, using multiple segments.
 
static bool empty(const wxTextEntryBase *aCtrl)
 
const INSPECTOR_FUNC & INSPECTOR
std::function passed to nested users by ref, avoids copying std::function.
 
a few functions useful in geometry calculations.
 
PCB_LAYER_ID FlipLayer(PCB_LAYER_ID aLayerId, int aCopperLayersCount)
 
FLASHING
Enum used during connectivity building to ensure we do not query connectivity while building the data...
 
PCB_LAYER_ID
A quick note on layer IDs:
 
@ LEFT_RIGHT
Flip left to right (around the Y axis)
 
@ TOP_BOTTOM
Flip top to bottom (around the X axis)
 
bool ShapeHitTest(const SHAPE_LINE_CHAIN &aHitter, const SHAPE &aHittee, bool aHitteeContained)
Perform a shape-to-shape hit test.
 
static struct PCB_TABLE_DESC _PCB_TABLE_DESC
 
@ PT_COORD
Coordinate expressed in distance units (mm/inch)
 
@ PT_SIZE
Size expressed in distance units (mm/inch)
 
LINE_STYLE
Dashed line types.
 
void RotatePoint(int *pX, int *pY, const EDA_ANGLE &aAngle)
Calculate the new point of coord coord pX, pY, for a rotation center 0, 0.
 
KICAD_T
The set of class identification values stored in EDA_ITEM::m_structType.
 
@ PCB_TABLECELL_T
class PCB_TABLECELL, PCB_TEXTBOX for use in tables
 
@ PCB_TABLE_T
class PCB_TABLE, table of PCB_TABLECELLs
 
VECTOR2< int32_t > VECTOR2I