65 if( aSel.GetSize() == 1 )
67 SCH_SYMBOL* symbol = dynamic_cast<SCH_SYMBOL*>( aSel.Front() );
79 return aSel.GetSize() == 1 && aSel.Front()->Type() ==
SCH_SYMBOL_T;
85 if( aSel.GetSize() == 1 )
87 SCH_SYMBOL* symbol = dynamic_cast<SCH_SYMBOL*>( aSel.Front() );
99 if( aSel.GetSize() == 1 )
101 SCH_SYMBOL* symbol = dynamic_cast<SCH_SYMBOL*>( aSel.Front() );
116 return !static_cast<SCH_MARKER*>( aSel.Front() )->IsExcluded();
120 #define HITTEST_THRESHOLD_PIXELS 5 127 m_isSymbolEditor( false ),
128 m_isSymbolViewer( false ),
147 m_frame = getEditFrame<SCH_BASE_FRAME>();
152 if( symbolEditorFrame )
174 auto schEditSheetPageNumberCondition =
183 auto schEditCondition =
189 auto belowRootSheetCondition =
198 auto haveSymbolCondition =
202 static_cast<SYMBOL_EDIT_FRAME*>(
m_frame )->GetCurSymbol();
211 menu.AddSeparator( 100 );
215 menu.AddSeparator( 100 );
218 menu.AddSeparator( 100 );
221 menu.AddSeparator( 200 );
233 menu.AddSeparator( 400 );
239 menu.AddSeparator( 1000 );
251 m_frame = getEditFrame<SCH_BASE_FRAME>();
263 if( symbolEditFrame )
285 CONDITIONAL_MENU* conditionalMenu = dynamic_cast<CONDITIONAL_MENU*>( actionMenu );
287 if( conditionalMenu )
344 bool displayWireCursor =
false;
345 bool displayBusCursor =
false;
346 bool displayLineCursor =
false;
347 KIID rolloverItem = lastRolloverItem;
351 evt->Modifier(
MD_ALT ) );
383 schframe->FocusOnItem(
nullptr );
386 bool continueSelect =
true;
396 VECTOR2I snappedCursorPos =
grid.BestSnapAnchor( evt->Position(),
403 && collector[0]->IsPointClickableAnchor( (wxPoint) snappedCursorPos ) )
413 else if( connection && connection->
IsBus() )
418 && static_cast<SCH_LINE*>( collector[0] )->IsGraphicLine() )
432 newEvt->SetParameter( newParams );
435 newEvt->SetMousePosition( snappedCursorPos );
436 newEvt->SetHasPosition(
true );
437 newEvt->SetForceImmediate(
true );
440 continueSelect =
false;
442 else if( collector[0]->IsHypertext() )
444 collector[0]->DoHypertextMenu(
m_frame );
445 continueSelect =
false;
465 bool selectionCancelled =
false;
471 &selectionCancelled );
480 grid.GetGrid().x,
grid.GetGrid().y ).Contains(
481 (wxPoint) evt->Position() ) )
485 for(
const auto& item : saved_selection )
489 &selectionCancelled );
495 for(
const auto& item : saved_selection )
504 if( !selectionCancelled )
507 else if( evt->IsDblClick(
BUT_LEFT ) )
513 schframe->FocusOnItem(
nullptr );
549 schframe->FocusOnItem(
nullptr );
563 if( static_cast<SYMBOL_EDIT_FRAME*>(
m_frame )->IsSymbolAlias() )
601 static_cast<SCH_EDIT_FRAME*>(
m_frame )->SelectUnit( symbol, unit );
606 wxString* net =
new wxString( *evt->Parameter<wxString*>() );
611 else if( evt->IsCancelInteractive() )
616 schframe->FocusOnItem(
nullptr );
623 schframe->FocusOnItem(
nullptr );
640 if( collector.
GetCount() == 1 && !modifier_enabled )
642 VECTOR2I snappedCursorPos =
grid.BestSnapAnchor( evt->Position(),
649 && !collector[0]->IsConnectivityDirty()
650 && collector[0]->IsPointClickableAnchor( (wxPoint) snappedCursorPos ) )
657 displayWireCursor =
true;
659 else if( connection && connection->
IsBus() )
661 displayBusCursor =
true;
664 && static_cast<SCH_LINE*>( collector[0] )->IsGraphicLine() )
666 displayLineCursor =
true;
671 else if( collector[0]->IsHypertext()
672 && !collector[0]->IsSelected()
675 rolloverItem = collector[0]->m_Uuid;
685 if( rolloverItem != lastRolloverItem )
705 lastRolloverItem = rolloverItem;
716 if( displayWireCursor )
720 else if( displayBusCursor )
724 else if( displayLineCursor )
728 else if( rolloverItem !=
niluuid )
734 && evt->HasPosition()
757 wxMouseState keyboardState = wxGetMouseState();
760 keyboardState.AltDown() );
781 wxMouseState keyboardState = wxGetMouseState();
784 keyboardState.AltDown() );
809 aCollector.
m_Threshold = std::max( pixelThreshold, gridThreshold );
832 bool aCheckLocked,
bool aSelectPoints )
834 for(
int i = collector.
GetCount() - 1; i >= 0; --i )
842 if( aCheckLocked && collector[i]->IsLocked() )
849 if( aSelectPoints && collector[i]->Type() ==
SCH_LINE_T )
872 bool* aSelectionCancelledFlag,
bool aAdd,
bool aSubtract,
891 if( aSelectionCancelledFlag )
892 *aSelectionCancelledFlag =
true;
898 if( !aAdd && !aSubtract && !aExclusiveOr )
901 bool anyAdded =
false;
902 bool anySubtracted =
false;
906 for(
int i = 0; i < aCollector.
GetCount(); ++i )
908 if( aSubtract || ( aExclusiveOr && aCollector[i]->IsSelected() ) )
911 anySubtracted =
true;
925 if( aItem && aCollector.
GetCount() == 1 )
926 *aItem = aCollector[0];
930 else if( anySubtracted )
941 EDA_ITEM** aItem,
bool* aSelectionCancelledFlag,
942 bool aCheckLocked,
bool aAdd,
bool aSubtract,
947 if( !
CollectHits( collector, aWhere, aFilterList ) )
952 return selectPoint( collector, aItem, aSelectionCancelledFlag, aAdd, aSubtract, aExclusiveOr );
962 std::vector<KIGFX::VIEW::LAYER_ITEM_PAIR> selectedItems;
963 std::vector<KIGFX::VIEW::LAYER_ITEM_PAIR> sheetPins;
969 view->
Query( selectionBox, selectedItems );
974 SCH_SHEET* sheet = dynamic_cast<SCH_SHEET*>( pair.first );
978 int layer = pair.second;
985 selectedItems.insert( selectedItems.end(), sheetPins.begin(), sheetPins.end() );
987 for(
const std::pair<KIGFX::VIEW_ITEM*, int>& item_pair : selectedItems )
989 if(
EDA_ITEM* item = dynamic_cast<EDA_ITEM*>( item_pair.first ) )
1005 std::set<EDA_ITEM*> exactHits;
1007 for(
int i = collector.
GetCount() - 1; i >= 0; --i )
1010 SCH_LINE* line = dynamic_cast<SCH_LINE*>( item );
1011 LIB_SHAPE* shape = dynamic_cast<LIB_SHAPE*>( item );
1018 exactHits.insert( item );
1022 if( item->
HitTest( (wxPoint) aPos, 0 ) )
1023 exactHits.insert( item );
1027 if( exactHits.size() > 0 && exactHits.size() < (unsigned) collector.
GetCount() )
1029 for(
int i = collector.
GetCount() - 1; i >= 0; --i )
1033 if( !exactHits.count( item ) )
1039 wxPoint pos( aPos );
1043 int closestDist = INT_MAX / 2;
1047 EDA_RECT bbox = item->GetBoundingBox();
1048 int dist = INT_MAX / 2;
1050 if( exactHits.count( item ) )
1058 SCH_LINE* line = dynamic_cast<SCH_LINE*>( item );
1060 SCH_SYMBOL* symbol = dynamic_cast<SCH_SYMBOL*>( item );
1068 text->GetEffectiveTextShape()->Collide( poss, closestDist, &dist );
1076 catch(
const boost::bad_pointer& exc )
1080 wxLogError( wxT(
"Boost bad pointer exception '%s' occurred." ), exc.what() );
1088 rect.Collide( poss, closestDist, &dist );
1098 rect.
Collide( poss, collector.m_Threshold, &dist );
1101 if( dist < closestDist )
1116 for(
int i = collector.GetCount() - 1; i >= 0; --i )
1120 if( item == closest )
1123 if( !item->
HitTest( tightBox,
true ) )
1124 collector.Transfer( item );
1143 bool isMoving =
false;
1148 isMoving |= static_cast<SCH_ITEM*>( item )->IsMoving();
1150 if( !item->
IsType( aFilterList ) )
1196 bool cancelled =
false;
1212 bool isWindowSelection = width >= 0;
1215 isWindowSelection = !isWindowSelection;
1220 if( evt->IsCancelInteractive() || evt->IsActivate() )
1233 area.
SetEnd( evt->Position() );
1251 std::vector<KIGFX::VIEW::LAYER_ITEM_PAIR> nearbyViewItems;
1255 std::vector<EDA_ITEM*> nearbyItems;
1256 std::vector<EDA_ITEM*> nearbyChildren;
1260 EDA_ITEM* item = dynamic_cast<EDA_ITEM*>( pair.first );
1265 nearbyItems.push_back( item );
1268 if(
SCH_ITEM* sch_item = dynamic_cast<SCH_ITEM*>( item ) )
1270 sch_item->RunOnChildren(
1273 nearbyChildren.push_back( aChild );
1281 bool anyAdded =
false;
1282 bool anySubtracted =
false;
1289 anySubtracted =
true;
1299 for(
EDA_ITEM* item : nearbyItems )
1301 if(
Selectable( item ) && item->HitTest( selectionRect, isWindowSelection ) )
1308 for(
EDA_ITEM* item : nearbyChildren )
1312 && item->HitTest( selectionRect, isWindowSelection ) )
1335 evt->SetPassEvent();
1378 int thresholdMax = std::max( pixelThreshold, gridThreshold );
1380 for(
int threshold : { 0, thresholdMax/4, thresholdMax/2, thresholdMax } )
1389 return collector.
GetCount() ? collector[ 0 ] :
nullptr;
1521 removeItems.push_back( item );
1558 if( item.IsSelected() )
1559 select( static_cast<EDA_ITEM*>( &item ) );
1567 if( item->IsSelected() )
1573 item->RunOnChildren(
1604 bool selectAll =
false;
1605 bool expandSelection =
false;
1610 if( expandSelection )
1613 expandSelection =
false;
1615 int limit = std::min( 9, aCollector->
GetCount() );
1618 for(
int i = 0; i < limit; ++i )
1621 EDA_ITEM* item = ( *aCollector )[i];
1628 menu.AppendSeparator();
1638 menu.DisplayTitle(
true );
1642 menu.DisplayTitle(
false );
1653 for(
int i = 0; i < aCollector->
GetCount(); ++i )
1661 int id = *evt->GetCommandId();
1664 if(
id > 0 &&
id <= limit )
1666 current = ( *aCollector )[
id - 1];
1675 if(
id == limit + 1 )
1677 for(
int i = 0; i < aCollector->
GetCount(); ++i )
1690 for(
int i = 0; i < aCollector->
GetCount(); ++i )
1699 if(
id == limit + 1 )
1704 else if(
id == limit + 2 )
1708 expandSelection =
true;
1711 else if(
id && ( *
id > 0 ) && ( *
id <= limit ) )
1714 current = ( *aCollector )[*
id - 1];
1731 }
while( expandSelection );
1742 aCollector->
Empty();
1743 aCollector->
Append( current );
1752 bool checkVisibilityOnly )
const 1763 switch( aItem->
Type() )
1767 const SCH_PIN*
pin = static_cast<const SCH_PIN*>( aItem );
1780 if(
pin->IsPointClickableAnchor( (wxPoint) cursorPos ) )
1862 aGroup->
Add( aItem );
1866 if(
SCH_ITEM* sch_item = dynamic_cast<SCH_ITEM*>( aItem ) )
1868 sch_item->RunOnChildren(
1899 if(
SCH_ITEM* sch_item = dynamic_cast<SCH_ITEM*>( aItem ) )
1901 sch_item->RunOnChildren(
1920 const unsigned GRIP_MARGIN = 20;
1926 BOX2I itemBox = item->ViewBBox();
double EuclideanNorm(const wxPoint &vector)
Euclidean norm of a 2D vector.
void Empty()
Clear the list.
static TOOL_ACTION editPageNumber
void SetEnd(const VECTOR2I &aEnd)
Set the current end of the rectangle (the corner that moves with the cursor.
bool Collide(const SHAPE *aShape, int aClearance, VECTOR2I *aMTV) const override
Check if the boundary of shape (this) lies closer to the shape aShape than aClearance,...
void ClearReferencePoint()
static TOOL_ACTION pinTable
KIGFX::SCH_VIEW * GetView() const override
Return a pointer to the #VIEW instance used in the panel.
static TOOL_ACTION properties
void AddStandardSubMenus(TOOL_MENU &aMenu)
Construct a "basic" menu for a tool, containing only items that apply to all tools (e....
static const TOOL_EVENT SelectedEvent
virtual void Clear() override
Remove all the stored items from the group.
bool IsUnconnected() const
#define STARTPOINT
When a line is selected, these flags indicate which.
void SetCurrentCursor(KICURSOR aCursor)
Set the current cursor shape for this panel.
static TOOL_ACTION zoomInCenter
static TOOL_ACTION breakBus
static SELECTION_CONDITION SingleSymbol
wxPoint GetStartPoint() const
static const TOOL_EVENT UnselectedEvent
#define IS_NEW
New item, just created.
SCH_SHEET * Last() const
Return a pointer to the last SCH_SHEET of the list.
VECTOR2D ToWorld(const VECTOR2D &aCoord, bool aAbsolute=true) const
Converts a screen space point/vector to a point/vector in world space coordinates.
virtual void Add(EDA_ITEM *aItem)
static const TOOL_EVENT DisambiguatePoint
void Collect(SCH_SCREEN *aScreen, const KICAD_T aFilterList[], const wxPoint &aPos, int aUnit=0, int aConvert=0)
Scan a EDA_ITEM using this class's Inspector method which does the collection.
EDA_RECT GetBoundingBox() const override
static TOOL_ACTION addItemsToSel
Selects a list of items (specified as the event parameter)
static bool Idle(const SELECTION &aSelection)
Test if there no items selected or being edited.
static SELECTION_CONDITION OnlyTypes(const KICAD_T aTypes[])
Create a functor that tests if the selected items are only of given types.
bool HasPoint()
Indicate the cursor is over an edit point.
static TOOL_ACTION placeHierLabel
static TOOL_ACTION placeJunction
static TOOL_ACTION selectConnection
If current selection is a wire or bus, expand to entire connection.
SCH_SCREEN * GetScreen() const override
Return a pointer to a BASE_SCREEN or one of its derivatives.
virtual void Remove(VIEW_ITEM *aItem)
Remove a VIEW_ITEM from the view.
static TOOL_ACTION unfoldBus
static TOOL_ACTION cursorRight
static TOOL_ACTION zoomFitScreen
void SetFlags(EDA_ITEM_FLAGS aMask)
static TOOL_ACTION cursorRightFast
void SetExclusiveOr(bool aExclusiveOr)
Symbol library viewer main window.
Schematic editor (Eeschema) main window.
static TOOL_ACTION zoomFitObjects
#define ENDPOINT
ends. (Used to support dragging.)
static TOOL_ACTION panLeft
static TOOL_ACTION removeItemsFromSel
static TOOL_ACTION importSingleSheetPin
static SELECTION_CONDITION Count(int aNumber)
Create a functor that tests if the number of selected items is equal to the value given as parameter.
Define a library symbol object.
bool Contains(const wxPoint &aPoint) const
void Remove(int aIndex)
Remove the item at aIndex (first position is 0).
search types array terminator (End Of Types)
KICAD_T
The set of class identification values stored in EDA_ITEM::m_structType.
PAINTER * GetPainter() const
Return the painter object used by the view for drawing #VIEW_ITEMS.
static TOOL_ACTION zoomOutCenter
The base class for drawable items used by schematic library symbols.
static TOOL_ACTION breakWire
std::unique_ptr< LIB_SYMBOL > & GetLibSymbolRef()
void SetIsHover(bool aIsHover)
static TOOL_ACTION leaveSheet
static TOOL_ACTION removeItemFromSel
void Append(EDA_ITEM *item)
Add an item to the end of the list.
void SetAdditive(bool aAdditive)
A mix-in class (via multiple inheritance) that handles texts such as labels, parts,...
EESCHEMA_SETTINGS * eeconfig() const
virtual bool HitTest(const wxPoint &aPosition, int aAccuracy=0) const
Test if aPosition is inside or on the boundary of this item.
static SELECTION_CONDITION SingleDeMorganSymbol
int GetCount() const
Return the number of objects in the list.
void SetReferencePoint(const VECTOR2I &aP)
bool select_pin_selects_symbol
void SetOrigin(const VECTOR2I &aOrigin)
void Transfer(int aIndex)
Move the item at aIndex (first position is 0) to the backup list.
#define IS_MOVING
Item being moved.
static TOOL_ACTION addItemToSel
Selects an item (specified as the event parameter).
static TOOL_ACTION panDown
bool IsSymbolAlias() const
Restore the empty editor screen, without any symbol or library selected.
static TOOL_ACTION drawWire
#define DANGLING_SYMBOL_SIZE
< The size of the rectangle indicating an unconnected wire or label
static SELECTION_CONDITION LessThan(int aNumber)
Create a functor that tests if the number of selected items is smaller than the value given as parame...
static TOOL_ACTION explicitCrossProbe
const wxPoint GetPosition() const
static TOOL_ACTION symbolProperties
SCH_DRAW_PANEL * GetCanvas() const override
Return a pointer to GAL-based canvas of given EDA draw frame.
bool Contains(const Vec &aPoint) const
static TOOL_ACTION cursorUpFast
static TOOL_ACTION cursorDownFast
static TOOL_ACTION cursorLeft
static TOOL_ACTION panRight
EDA_RECT GetBodyBoundingBox() const
Return a bounding box for the symbol body but not the pins or fields.
const BOX2I ViewBBox() const override
Set the origin of the rectangle (the fixed corner)
SCHEMATIC & Schematic() const
EDA_ITEM * GetParent() const
void ClearFlags(EDA_ITEM_FLAGS aMask=EDA_ITEM_ALL_FLAGS)
static const TOOL_EVENT ClearedEvent
Selected item had a property changed (except movement)
virtual void ForceCursorPosition(bool aEnabled, const VECTOR2D &aPosition=VECTOR2D(0, 0))
Place the cursor immediately at a given point.
virtual bool IsType(const KICAD_T aScanTypes[]) const
Check whether the item is one of the listed types.
std::function< bool(const SELECTION &)> SELECTION_CONDITION
< Functor type that checks a specific condition for selected items.
void UpdateItems()
Iterate through the list of items that asked for updating and updates them.
static TOOL_ACTION selectionActivate
Activation of the selection tool.
Define a sheet pin (label) used in sheets to create hierarchical schematics.
std::vector< EDA_ITEM * > EDA_ITEMS
Define list of drawing items for screens.
static TOOL_ACTION cursorLeftFast
static TOOL_ACTION clearSelection
Clears the current selection.
static TOOL_ACTION updateMenu
static SELECTION_CONDITION SingleMultiUnitSymbol
static VECTOR2D mapCoords(const wxPoint &aCoord)
LIB_ITEMS_CONTAINER & GetDrawItems()
Return a reference to the draw item list.
bool contains(const _Container &__container, _Value __value)
Returns true if the container contains the given value.
virtual EDA_ITEM * GetItem(const KIID &aId) const
Fetch an item by KIID.
virtual void SetAutoPan(bool aEnabled)
Turn on/off auto panning (this feature is used when there is a tool active (eg.
bool Empty() const
Checks if there is anything selected.
static TOOL_ACTION drawBus
Sheet symbol placed in a schematic, and is the entry point for a sub schematic.
bool IsMirroredX() const
Return true if view is flipped across the X axis.
void SetSubtractive(bool aSubtractive)
virtual unsigned int GetSize() const override
Return the number of stored items.
std::vector< SCH_SHEET_PIN * > & GetPins()
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, const CPTREE &aTree)
Output a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
static TOOL_ACTION placeLabel
void Normalize()
Ensures that the height ant width are positive.
EDA_ITEM * GetTopLeftItem(bool onlyModules=false) const override
virtual RENDER_SETTINGS * GetSettings()=0
Return a pointer to current settings that are going to be used when drawing items.
BOX2< Vec > & Inflate(coord_type dx, coord_type dy)
Inflates the rectangle horizontally by dx and vertically by dy.
bool HasAdditionalItems()
Test if the collector has heuristic backup items.
#define TEMP_SELECTED
flag indicating that the structure has already selected
void SetHighlight(bool aEnabled, int aNetcode=-1, bool aMulti=false)
Turns on/off highlighting.
Segment description base class to describe items which have 2 end points (track, wire,...
static TOOL_ACTION zoomCenter
virtual bool GetShowAllPins() const
Allow some frames to show/hide hidden pins.
virtual KIGFX::VIEW_ITEM * GetItem(unsigned int aIdx) const override
static TOOL_ACTION cursorUp
Cursor control with keyboard.
Each graphical item can have a SCH_CONNECTION describing its logical connection (to a bus or net).
#define IS_ROLLOVER
Rollover active. Used for hyperlink highlighting.
Tool that displays edit points allowing to modify items by dragging the points.
static TOOL_ACTION assignNetclass
virtual wxString GetSelectMenuText(EDA_UNITS aUnits) const
Return the text to display to be used in the selection clarification context menu when multiple items...
virtual BITMAPS GetMenuImage() const
Return a pointer to an image to be used in menus.
std::pair< VIEW_ITEM *, int > LAYER_ITEM_PAIR
bool HitTestPoints(const wxPoint &pointA, const wxPoint &pointB, double threshold)
Test, if two points are near each other.
static TOOL_ACTION selectionMenu
Runs a selection menu to select from a list of items.
virtual void Remove(EDA_ITEM *aItem)
EE_RTREE & Items()
Gets the full RTree, usually for iterating.
static SELECTION_CONDITION OnlyType(KICAD_T aType)
Create a functor that tests if the selected items are only of given type.
virtual void Refresh(bool aEraseBackground=true, const wxRect *aRect=nullptr) override
Update the board display after modifying it by a python script (note: it is automatically called by a...
Handle the component boundary box.
VECTOR2I GetOrigin() const
static SELECTION_CONDITION SingleNonExcludedMarker
static const KICAD_T AllItems[]
int Size() const
Returns the number of selected parts.
static bool Empty(const SELECTION &aSelection)
Test if there are no items selected.
static TOOL_ACTION selectNode
Select the junction, wire or bus segment under the cursor.
constexpr ret_type KiROUND(fp_type v)
Round a floating point number to an integer using "round halfway cases away from zero".
A base class for most all the KiCad significant classes used in schematics and boards.
static TOOL_ACTION enterSheet
void SetVisible(VIEW_ITEM *aItem, bool aIsVisible=true)
Set the item visibility.
static SELECTION_CONDITION SingleSymbolOrPower
void Combine()
Re-combine the backup list into the main list of the collector.
SCH_SHEET_PATH & GetCurrentSheet() const
static TOOL_ACTION zoomIn
Represent a selection area (currently a rectangle) in a VIEW, drawn corner-to-corner between two poin...
static TOOL_ACTION zoomOut
virtual void Add(VIEW_ITEM *aItem, int aDrawPriority=-1)
Add a VIEW_ITEM to the view.
static TOOL_ACTION drawLines
void ClearDrawingState()
Clear the state flags of all the items in the screen.
virtual int Query(const BOX2I &aRect, std::vector< LAYER_ITEM_PAIR > &aResult) const
Find all visible items that touch or are within the rectangle aRect.
virtual const EDA_RECT GetBoundingBox() const
Return the orthogonal bounding box of this object for display purposes.
Hold a (potentially large) number of VIEW_ITEMs and renders them on a graphics device provided by the...
const wxPoint GetCenter() const
static TOOL_ACTION placeGlobalLabel
static TOOL_ACTION finishBus
static TOOL_ACTION cursorDown
Base class for any item which can be embedded within the SCHEMATIC container class,...
static TOOL_ACTION selectAll
static TOOL_ACTION finishWire
double DistanceLinePoint(const wxPoint &linePointA, const wxPoint &linePointB, const wxPoint &referencePoint)
Compute the distance between a line and a reference point Reference: http://mathworld....
EDA_UNITS GetUserUnits() const
Return the user units currently in use.
VECTOR2D GetCursorPosition() const
Return the current cursor position in world coordinates.
EDA_RECT & Inflate(wxCoord dx, wxCoord dy)
Inflate the rectangle horizontally by dx and vertically by dy.
virtual void Update(const VIEW_ITEM *aItem, int aUpdateFlags) const
For dynamic VIEWs, inform the associated VIEW that the graphical representation of this item has chan...
KICAD_T Type() const
Returns the type of object.
#define BRIGHTENED
item is drawn with a bright contour
The symbol library editor main window.
std::set< SCH_ITEM * > MarkConnections(SCH_LINE *aSegment)
Return all wires and junctions connected to aSegment which are not connected any symbol pin.
wxPoint GetEndPoint() const