55#include <dialogs/dialog_text_properties.h>
60#include <wx/filedlg.h>
68 m_lastTextBold( false ),
69 m_lastTextItalic( false ),
78 m_mruPath( wxEmptyString ),
79 m_lastAutoLabelRotateOnPlacement( false ),
80 m_inPlaceSymbol( false ),
81 m_inDrawShape( false ),
82 m_inPlaceImage( false ),
83 m_inSingleClickPlace( false ),
84 m_inTwoClickPlace( false ),
85 m_inDrawSheet( false )
94 auto belowRootSheetCondition =
111 std::vector<PICKED_SYMBOL>* historyList =
nullptr;
112 bool ignorePrimePosition =
false;
145 filter.FilterPowerSymbols(
true );
149 wxFAIL_MSG(
"PlaceSymbol(): unexpected request" );
174 : KICURSOR::COMPONENT );
185 existingRefs.
Clear();
207 existingRefs,
false, &hierarchy );
212 for(
size_t i = 0; i < refs.
GetCount(); i++ )
213 existingRefs.
AddItem( refs[i] );
242 ignorePrimePosition =
true;
250 grid.SetUseGrid(
getView()->GetGAL()->GetGridSnapping() && !evt->DisableGridSnapping() );
256 bool isSyntheticClick = symbol && evt->IsActivate() && evt->HasPosition()
259 if( evt->IsCancelInteractive() || ( symbol && evt->IsAction( &
ACTIONS::undo ) ) )
273 else if( evt->IsActivate() && !isSyntheticClick )
275 if( symbol && evt->IsMoveTool() )
278 evt->SetPassEvent(
false );
285 evt->SetPassEvent(
false );
289 if( evt->IsMoveTool() )
300 else if( evt->IsClick(
BUT_LEFT ) || evt->IsDblClick(
BUT_LEFT ) || isSyntheticClick )
309 1, 1, footprintPreviews );
320 if( evt->IsPrime() && !ignorePrimePosition )
322 cursorPos =
grid.Align( evt->Position(), GRID_HELPER_GRIDS::GRID_CONNECTABLE );
329 GRID_HELPER_GRIDS::GRID_CONNECTABLE );
340 existingRefs.
AddItem( placedSymbolReference );
360 commit.
Added( symbol, screen );
366 commit.
Push(
_(
"Add Symbol" ) );
373 int new_unit = symbol->
GetUnit();
389 nextSymbol->
SetUnit( new_unit );
396 addSymbol( nextSymbol );
404 existingRefs.
AddItem( placedSymbolReference );
484 bool immediateMode =
image !=
nullptr;
485 bool ignorePrimePosition =
false;
548 ignorePrimePosition =
true;
556 grid.SetUseGrid(
getView()->GetGAL()->GetGridSnapping() && !evt->DisableGridSnapping() );
562 bool isSyntheticClick =
image && evt->IsActivate() && evt->HasPosition()
563 && evt->Matches( aEvent );
585 else if( evt->IsActivate() && !isSyntheticClick )
587 if(
image && evt->IsMoveTool() )
590 evt->SetPassEvent(
false );
597 evt->SetPassEvent(
false );
601 if( evt->IsMoveTool() )
612 else if( evt->IsClick(
BUT_LEFT ) || evt->IsDblClick(
BUT_LEFT ) || isSyntheticClick )
619 _(
"Image Files" ) + wxS(
" " ) + wxImage::GetImageExtWildcard(),
622 if( dlg.ShowModal() != wxID_OK )
628 if( evt->IsPrime() && !ignorePrimePosition )
630 cursorPos =
grid.Align( evt->Position() );
639 wxString fullFilename = dlg.GetPath();
642 if( wxFileExists( fullFilename ) )
645 if( !
image || !
image->ReadImageFile( fullFilename ) )
647 wxMessageBox(
_(
"Could not load image from '%s'." ), fullFilename );
670 commit.
Push(
_(
"Add Image" ) );
694 image->SetPosition( cursorPos );
733 bool loggedInfoBarError =
false;
734 wxString description;
736 bool allowRepeat =
false;
762 description =
_(
"Add No Connect Flag" );
769 description =
_(
"Add Junction" );
775 description =
_(
"Add Wire to Bus Entry" );
780 wxASSERT_MSG(
false,
"Unknown item type in SCH_DRAWING_TOOLS::SingleClickPlace" );
818 grid.SetUseGrid(
getView()->GetGAL()->GetGridSnapping() && !evt->DisableGridSnapping() );
820 cursorPos = evt->IsPrime() ? evt->Position() : controls->
GetMousePosition();
821 cursorPos =
grid.BestSnapAnchor( cursorPos,
grid.GetItemGrid( previewItem ),
nullptr );
824 if( evt->IsCancelInteractive() )
829 else if( evt->IsActivate() )
831 if( evt->IsMoveTool() )
844 if( !screen->
GetItem( cursorPos, 0, type ) )
851 "wires and/or pins." ) );
852 loggedInfoBarError =
true;
855 else if( loggedInfoBarError )
871 commit.
Added( newItem, screen );
875 commit.
Push( description );
928 std::deque<SCH_ITEM*> strokeItems;
929 strokeItems.push_back( previewItem );
937 std::deque<SCH_JUNCTION*> junctions;
938 junctions.push_back(
static_cast<SCH_JUNCTION*
>( previewItem ) );
991 SCHEMATIC* schematic = getModel<SCHEMATIC>();
1000 textItem =
new SCH_TEXT( aPosition );
1005 textItem = labelItem;
1015 labelItem->
GetFields().emplace_back(
SCH_FIELD( {0,0}, 0, labelItem, wxT(
"Netclass" ) ) );
1016 labelItem->
GetFields().back().SetItalic(
true );
1017 labelItem->
GetFields().back().SetVisible(
true );
1018 textItem = labelItem;
1025 textItem = labelItem;
1033 textItem = labelItem;
1041 wxFAIL_MSG(
"SCH_EDIT_FRAME::CreateNewText() unknown layer type" );
1070 else if( !netName.IsEmpty() )
1146 pin->SetPosition( aPosition );
1147 pin->ClearSelected();
1160 bool ignorePrimePosition =
false;
1163 wxString description;
1194 else if( isGlobalLabel )
1196 else if( isNetLabel )
1198 else if( isClassLabel )
1200 else if( isHierLabel )
1206 auto updatePreview =
1240 && ( isText || isGlobalLabel || isHierLabel || isClassLabel || isNetLabel ) )
1243 ignorePrimePosition =
true;
1251 grid.SetUseGrid(
getView()->GetGAL()->GetGridSnapping() && !evt->DisableGridSnapping() );
1254 cursorPos =
grid.BestSnapAnchor( cursorPos, snapGrid, item );
1258 bool isSyntheticClick = item && evt->IsActivate() && evt->HasPosition()
1261 if( evt->IsCancelInteractive() || evt->IsAction( &
ACTIONS::undo ) )
1275 else if( evt->IsActivate() && !isSyntheticClick )
1277 if( item && evt->IsMoveTool() )
1280 evt->SetPassEvent(
false );
1287 evt->SetPassEvent(
false );
1291 if( evt->IsPointEditor() )
1295 else if( evt->IsMoveTool() )
1306 else if( evt->IsClick(
BUT_LEFT ) || evt->IsDblClick(
BUT_LEFT ) || isSyntheticClick )
1316 description =
_(
"Add Text" );
1318 else if( isHierLabel )
1321 description =
_(
"Add Hierarchical Label" );
1323 else if( isNetLabel )
1326 description =
_(
"Add Label" );
1328 else if( isGlobalLabel )
1331 description =
_(
"Add Label" );
1333 else if( isClassLabel )
1336 description =
_(
"Add Label" );
1338 else if( isSheetPin )
1351 + wxPoint( 20, 20 ) );
1362 m_statusPopup->SetText(
_(
"No new hierarchical labels found." ) );
1364 + wxPoint( 20, 20 ) );
1375 description =
_(
"Add Sheet Pin" );
1381 if( evt->IsPrime() && !ignorePrimePosition )
1383 cursorPos =
grid.Align( evt->Position() );
1390 cursorPos =
grid.BestSnapAnchor( cursorPos, snapGrid, item );
1436 commit.
Push( description );
1448 m_statusPopup->SetText(
_(
"No new hierarchical labels found." ) );
1450 + wxPoint( 20, 20 ) );
1470 else if( item && evt->IsSelectionEvent() )
1475 if( selection.
GetSize() == 1 )
1501 evt->SetPassEvent();
1519 SCHEMATIC* schematic = getModel<SCHEMATIC>();
1524 wxString description;
1574 grid.SetUseGrid(
getView()->GetGAL()->GetGridSnapping() && !evt->DisableGridSnapping() );
1580 bool isSyntheticClick = item && evt->IsActivate() && evt->HasPosition()
1583 if( evt->IsCancelInteractive() || ( item && evt->IsAction( &
ACTIONS::undo ) ) )
1595 else if( evt->IsActivate() && !isSyntheticClick )
1597 if( item && evt->IsMoveTool() )
1600 evt->SetPassEvent(
false );
1607 if( evt->IsPointEditor() )
1611 else if( evt->IsMoveTool() )
1622 else if( evt->IsClick(
BUT_LEFT ) && !item )
1641 description =
_(
"Add Text Box" );
1650 description = wxString::Format(
_(
"Add %s" ), item->EDA_SHAPE::GetFriendlyName() );
1659 else if( item && ( evt->IsClick(
BUT_LEFT )
1704 commit.
Push( wxString::Format(
_(
"Draw %s" ), item->
GetClass() ) );
1720 else if( evt->IsDblClick(
BUT_LEFT ) && !item )
1738 evt->SetPassEvent();
1801 grid.SetUseGrid(
getView()->GetGAL()->GetGridSnapping() && !evt->DisableGridSnapping() );
1807 bool isSyntheticClick = sheet && evt->IsActivate() && evt->HasPosition()
1810 if( evt->IsCancelInteractive() || ( sheet && evt->IsAction( &
ACTIONS::undo ) ) )
1824 else if( evt->IsActivate() && !isSyntheticClick )
1826 if( sheet && evt->IsMoveTool() )
1829 evt->SetPassEvent(
false );
1836 evt->SetPassEvent(
false );
1840 if( evt->IsPointEditor() )
1844 else if( evt->IsMoveTool() )
1855 else if( !sheet && ( evt->IsClick(
BUT_LEFT ) || evt->IsDblClick(
BUT_LEFT ) ) )
1860 if( selection.
Size() == 1
1869 else if( evt->IsDblClick(
BUT_LEFT ) )
1891 else if( sheet && ( evt->IsClick(
BUT_LEFT )
1908 commit.
Push(
"Draw Sheet" );
1942 evt->SetPassEvent();
constexpr EDA_IU_SCALE schIUScale
static TOOL_ACTION duplicate
static TOOL_ACTION activatePointEditor
static TOOL_ACTION doDelete
static TOOL_ACTION refreshPreview
bool Contains(const Vec &aPoint) const
COMMIT & Modify(EDA_ITEM *aItem, BASE_SCREEN *aScreen=nullptr)
Create an undo entry for an item that has been already modified.
COMMIT & Added(EDA_ITEM *aItem, BASE_SCREEN *aScreen=nullptr)
Remove a new item from the model.
COMMIT & Add(EDA_ITEM *aItem, BASE_SCREEN *aScreen=nullptr)
Notify observers that aItem has been added.
void ShowInfoBarMsg(const wxString &aMsg, bool aShowCloseButton=false)
Show the WX_INFOBAR displayed on the top of the canvas with a message and an info icon on the left of...
void ShowInfoBarError(const wxString &aErrorMsg, bool aShowCloseButton=false, WX_INFOBAR::MESSAGE_TYPE aType=WX_INFOBAR::MESSAGE_TYPE::GENERIC)
Show the WX_INFOBAR displayed on the top of the canvas with a message and an error icon on the left o...
WX_INFOBAR * GetInfoBar()
void SetMsgPanel(const std::vector< MSG_PANEL_ITEM > &aList)
Clear the message panel and populates it with the contents of aList.
VECTOR2I GetNearestGridPosition(const VECTOR2I &aPosition) const
Return the nearest aGridSize location to aPosition.
void SetCurrentCursor(KICURSOR aCursor)
Set the current cursor shape for this panel.
A base class for most all the KiCad significant classes used in schematics and boards.
virtual void SetPosition(const VECTOR2I &aPos)
virtual const BOX2I GetBoundingBox() const
Return the orthogonal bounding box of this object for display purposes.
EDA_ITEM_FLAGS GetEditFlags() const
void SetFlags(EDA_ITEM_FLAGS aMask)
KICAD_T Type() const
Returns the type of object.
void ClearFlags(EDA_ITEM_FLAGS aMask=EDA_ITEM_ALL_FLAGS)
virtual bool Matches(const EDA_SEARCH_DATA &aSearchData, void *aAuxData) const
Compare the item against the search criteria in aSearchData.
virtual void SetParent(EDA_ITEM *aParent)
virtual EDA_ITEM * Clone() const
Create a duplicate of this item with linked list members set to NULL.
FILL_T GetFillMode() const
void SetFillColor(const COLOR4D &aColor)
COLOR4D GetFillColor() const
void SetTextSize(VECTOR2I aNewSize)
const EDA_ANGLE & GetTextAngle() const
virtual const wxString & GetText() const
Return the string associated with the text object.
GR_TEXT_H_ALIGN_T GetHorizJustify() const
virtual void SetText(const wxString &aText)
virtual void SetTextAngle(const EDA_ANGLE &aAngle)
void SetItalic(bool aItalic)
void SetHorizJustify(GR_TEXT_H_ALIGN_T aType)
PANEL_ANNOTATE m_AnnotatePanel
PANEL_SYM_CHOOSER m_SymChooserPanel
AUTOPLACE_FIELDS m_AutoplaceFields
static TOOL_ACTION mirrorV
static TOOL_ACTION properties
static TOOL_ACTION placeSymbol
static TOOL_ACTION clearSelection
Clears the current selection.
static TOOL_ACTION placeClassLabel
static TOOL_ACTION drawCircle
static TOOL_ACTION rotateCCW
static TOOL_ACTION placePower
static TOOL_ACTION mirrorH
static TOOL_ACTION rotateCW
static TOOL_ACTION importSheetPin
static TOOL_ACTION leaveSheet
static TOOL_ACTION placeGlobalLabel
static TOOL_ACTION placeHierLabel
static TOOL_ACTION drawTextBox
static TOOL_ACTION drawRectangle
static TOOL_ACTION placeImage
static TOOL_ACTION enterSheet
static TOOL_ACTION finishSheet
static TOOL_ACTION placeSchematicText
static TOOL_ACTION finishDrawing
static TOOL_ACTION drawArc
static TOOL_ACTION drawSheet
static TOOL_ACTION placeLabel
static TOOL_ACTION placeBusWireEntry
static TOOL_ACTION placeJunction
static TOOL_ACTION placeNoConnect
EE_TYPE Overlapping(const BOX2I &aRect) const
EE_TYPE OfType(KICAD_T aType) const
A color representation with 4 components: red, green, blue, alpha.
An interface for classes handling user events controlling the view behavior such as zooming,...
virtual void CaptureCursor(bool aEnabled)
Force the cursor to stay within the drawing panel area.
virtual void ForceCursorPosition(bool aEnabled, const VECTOR2D &aPosition=VECTOR2D(0, 0))
Place the cursor immediately at a given point.
virtual void ShowCursor(bool aEnabled)
Enable or disables display of cursor.
virtual void WarpMouseCursor(const VECTOR2D &aPosition, bool aWorldCoordinates=false, bool aWarpView=false)=0
If enabled (.
virtual void SetCrossHairCursorPosition(const VECTOR2D &aPosition, bool aWarpView=true)=0
Move the graphic crosshair cursor to the requested position expressed in world coordinates.
virtual VECTOR2D GetMousePosition(bool aWorldCoordinates=true) const =0
Return the current mouse pointer position.
virtual void SetCursorPosition(const VECTOR2D &aPosition, bool aWarpView=true, bool aTriggeredByArrows=false, long aArrowCommand=0)=0
Move cursor to the requested position expressed in world coordinates.
virtual void SetAutoPan(bool aEnabled)
Turn on/off auto panning (this feature is used when there is a tool active (eg.
virtual void PinCursorInsideNonAutoscrollArea(bool aWarpMouseCursor)=0
void AddToPreview(EDA_ITEM *aItem, bool aTakeOwnership=true)
void RecacheAllItems()
Rebuild GAL display lists.
bool IsValid() const
Check if this LID_ID is valid.
Define a library symbol object.
These settings were stored in SCH_BASE_FRAME previously.
bool m_IntersheetRefsShow
Holds all the data relating to one schematic.
SCHEMATIC_SETTINGS & Settings() const
SCH_SHEET_LIST GetSheets() const override
Builds and returns an updated schematic hierarchy TODO: can this be cached?
void AddToScreen(EDA_ITEM *aItem, SCH_SCREEN *aScreen=nullptr)
Add an item to the screen (and view) aScreen is the screen the item is located on,...
SCH_DRAW_PANEL * GetCanvas() const override
Return a pointer to GAL-based canvas of given EDA draw frame.
PICKED_SYMBOL PickSymbolFromLibTree(const SYMBOL_LIBRARY_FILTER *aFilter, std::vector< PICKED_SYMBOL > &aHistoryList, bool aUseLibBrowser, int aUnit, int aConvert, bool aShowFootprints, const LIB_ID *aHighlight=nullptr, bool aAllowFields=true)
Call the library viewer to select symbol to import into schematic.
EESCHEMA_SETTINGS * eeconfig() const
LIB_SYMBOL * GetLibSymbol(const LIB_ID &aLibId, bool aUseCacheLib=false, bool aShowErrorMsg=false)
Load symbol from symbol library table.
Object to handle a bitmap image that can be inserted in a schematic.
Base class for a bus or wire entry.
VECTOR2I GetPosition() const override
void MirrorHorizontally(int aCenter) override
Mirror item horizontally about aCenter.
void MirrorVertically(int aCenter) override
Mirror item vertically about aCenter.
void Rotate(const VECTOR2I &aCenter) override
Rotate the item around aCenter 90 degrees in the clockwise direction.
Class for a wire to bus entry.
virtual void Push(const wxString &aMessage=wxT("A commit"), int aCommitFlags=0) override
Revert the commit by restoring the modified items state.
Schematic editor (Eeschema) main window.
SCH_SCREEN * GetScreen() const override
Return a pointer to a BASE_SCREEN or one of its derivatives.
void SchematicCleanUp(SCH_COMMIT *aCommit, SCH_SCREEN *aScreen=nullptr)
Perform routine schematic cleaning including breaking wire and buses and deleting identical objects s...
SCH_SHEET_PATH & GetCurrentSheet() const
SCHEMATIC & Schematic() const
void SelectUnit(SCH_SYMBOL *aSymbol, int aUnit)
bool EditSheetProperties(SCH_SHEET *aSheet, SCH_SHEET_PATH *aHierarchy, bool *aClearAnnotationNewItems)
Edit an existing sheet or add a new sheet to the schematic.
void UpdateHierarchyNavigator()
Update the hierarchy navigation tree and history.
void AutoRotateItem(SCH_SCREEN *aScreen, SCH_ITEM *aItem)
Automatically set the rotation of an item (if the item supports it)
void SaveCopyForRepeatItem(const SCH_ITEM *aItem)
Clone aItem and owns that clone in this container.
Instances are attached to a symbol or sheet and provide a place for the symbol's value,...
Base class for any item which can be embedded within the SCHEMATIC container class,...
virtual bool IsConnectable() const
SCHEMATIC * Schematic() const
Searches the item hierarchy to find a SCHEMATIC.
virtual void RunOnChildren(const std::function< void(SCH_ITEM *)> &aFunction)
virtual void AutoplaceFields(SCH_SCREEN *aScreen, bool aManual)
SCH_ITEM * Duplicate(bool doClone=false) const
Routine to create a new copy of given item.
bool AutoRotateOnPlacement() const
autoRotateOnPlacement
SPIN_STYLE GetSpinStyle() const
void SetShape(LABEL_FLAG_SHAPE aShape)
LABEL_FLAG_SHAPE GetShape() const
void SetAutoRotateOnPlacement(bool autoRotate=true)
setAutoRotateOnPlacement
std::vector< SCH_FIELD > & GetFields()
virtual void SetSpinStyle(SPIN_STYLE aSpinStyle)
Segment description base class to describe items which have 2 end points (track, wire,...
bool IsWire() const
Return true if the line is a wire.
VECTOR2I GetEndPoint() const
VECTOR2I GetStartPoint() const
Container to create a flattened list of symbols because in a complex hierarchy, a symbol can be used ...
void SortByReferenceOnly()
Sort the list of references by reference.
void ReannotateByOptions(ANNOTATE_ORDER_T aSortOption, ANNOTATE_ALGO_T aAlgoOption, int aStartNumber, const SCH_REFERENCE_LIST &aAdditionalRefs, bool aStartAtCurrent, SCH_SHEET_LIST *aHierarchy)
Forces reannotation of the provided references.
void AddItem(const SCH_REFERENCE &aItem)
void UpdateAnnotation()
Update the symbol references for the schematic project (or the current sheet).
A helper to define a symbol's reference designator in a schematic.
bool AlwaysAnnotate() const
Verify the reference should always be automatically annotated.
EE_RTREE & Items()
Gets the full RTree, usually for iterating.
SCH_ITEM * GetItem(const VECTOR2I &aPosition, int aAccuracy=0, KICAD_T aType=SCH_LOCATE_ANY_T) const
Check aPosition within a distance of aAccuracy for items of type aFilter.
bool IsExplicitJunctionAllowed(const VECTOR2I &aPosition) const
Indicates that a juction dot may be placed at the given location.
void CalcEdit(const VECTOR2I &aPosition)
bool ContinueEdit(const VECTOR2I &aPosition)
void BeginEdit(const VECTOR2I &aStartPoint)
EDA_ITEM * Clone() const override
Create a duplicate of this item with linked list members set to NULL.
void SetStroke(const STROKE_PARAMS &aStroke) override
wxString GetClass() const override
Return the class name.
STROKE_PARAMS GetStroke() const override
A container for handling SCH_SHEET_PATH objects in a flattened hierarchy.
void SortByPageNumbers(bool aUpdateVirtualPageNums=true)
Sort the list of sheets by page number.
SCH_SHEET_LIST FindAllSheetsForScreen(const SCH_SCREEN *aScreen) const
Return a SCH_SHEET_LIST with a copy of all the SCH_SHEET_PATH using a particular screen.
void GetSymbols(SCH_REFERENCE_LIST &aReferences, bool aIncludePowerSymbols=true, bool aForceIncludeOrphanSymbols=false) const
Add a SCH_REFERENCE object to aReferences for each symbol in the list of sheets.
Handle access to a stack of flattened SCH_SHEET objects by way of a path for creating a flattened sch...
void UpdateAllScreenReferences() const
Update all the symbol references for this sheet path.
SCH_SCREEN * LastScreen()
SCH_SHEET * Last() const
Return a pointer to the last SCH_SHEET of the list.
Define a sheet pin (label) used in sheets to create hierarchical schematics.
Sheet symbol placed in a schematic, and is the entry point for a sub schematic.
void SetBorderColor(KIGFX::COLOR4D aColor)
void AddPin(SCH_SHEET_PIN *aSheetPin)
Add aSheetPin to the sheet.
EDA_ITEM * Clone() const override
Create a duplicate of this item with linked list members set to NULL.
bool Matches(const EDA_SEARCH_DATA &aSearchData, void *aAuxData) const override
Compare the item against the search criteria in aSearchData.
std::vector< SCH_FIELD > & GetFields()
void SetBackgroundColor(KIGFX::COLOR4D aColor)
SCH_SCREEN * GetScreen() const
VECTOR2I GetPosition() const override
bool HasPin(const wxString &aName) const
Checks if the sheet already has a sheet pin named aName.
void SetScreen(SCH_SCREEN *aScreen)
Set the SCH_SCREEN associated with this sheet to aScreen.
void AutoplaceFields(SCH_SCREEN *aScreen, bool aManual) override
void SetBorderWidth(int aWidth)
void Resize(const VECTOR2I &aSize)
Resize this sheet to aSize and adjust all of the labels accordingly.
int GetUnitCount() const
Return the number of units per package of the symbol.
void AutoplaceFields(SCH_SCREEN *aScreen, bool aManual) override
Automatically orient all the fields in the symbol.
void SetPosition(const VECTOR2I &aPosition) override
bool Matches(const EDA_SEARCH_DATA &aSearchData, void *aAuxData) const override
Compare the item against the search criteria in aSearchData.
void ClearAnnotation(const SCH_SHEET_PATH *aSheetPath, bool aResetPrefix)
Clear exiting symbol annotation.
void SetUnit(int aUnit)
Change the unit number to aUnit.
void SetUnitSelection(const SCH_SHEET_PATH *aSheet, int aUnitSelection)
Set the selected unit of this symbol on one sheet.
std::unique_ptr< LIB_SYMBOL > & GetLibSymbolRef()
const VECTOR2I NearestPoint(const VECTOR2I &aP) const
Compute a point on the segment (this) that is closest to point aP.
virtual unsigned int GetSize() const override
Return the number of stored items.
int Size() const
Returns the number of selected parts.
Helper object to filter a list of libraries.
void Dismiss() override
Dismisses the infobar and updates the containing layout and AUI manager (if one is provided).
This file is part of the common library.
static constexpr EDA_ANGLE & ANGLE_0
#define IS_NEW
New item, just created.
#define STRUCT_DELETED
flag indication structures to be erased
#define IS_MOVING
Item being moved.
@ ID_POPUP_SCH_SELECT_UNIT
@ ID_POPUP_SCH_SELECT_UNIT_END
const std::string KiCadSchematicFileExtension
ANNOTATE_ORDER_T
Schematic annotation order options.
ANNOTATE_ALGO_T
Schematic annotation type options.
KIWAY Kiway & Pgm(), KFCTL_STANDALONE
The global Program "get" accessor.
bool NoPrintableChars(const wxString &aString)
Return true if the string is empty or contains only whitespace.
PLOT_DASH_TYPE
Dashed line types.
constexpr int MilsToIU(int mils) const
COLOR4D default_sheet_border_color
COLOR4D default_sheet_background_color
int default_line_thickness
KICAD_T
The set of class identification values stored in EDA_ITEM::m_structType.
Definition of file extensions used in Kicad.