KiCad PCB EDA Suite
Loading...
Searching...
No Matches
SCH_MOVE_TOOL Class Reference

#include <sch_move_tool.h>

Inheritance diagram for SCH_MOVE_TOOL:
SCH_TOOL_BASE< SCH_EDIT_FRAME > TOOL_INTERACTIVE TOOL_BASE

Classes

struct  HIDDEN_JUNCTION
 Junctions that were hidden during the move. More...
 

Public Types

enum  MOVE_MODE { MOVE , DRAG , BREAK , SLICE }
 
enum  RESET_REASON {
  RUN , MODEL_RELOAD , SUPERMODEL_RELOAD , GAL_SWITCH ,
  REDRAW , SHUTDOWN
}
 Determine the reason of reset for a tool. More...
 

Public Member Functions

 SCH_MOVE_TOOL ()
 
 ~SCH_MOVE_TOOL () override
 
bool Init () override
 Init() is called once upon a registration of the tool.
 
void Reset (RESET_REASON aReason) override
 Bring the tool to a known, initial state.
 
int Main (const TOOL_EVENT &aEvent)
 Run an interactive move of the selected items, or the item under the cursor.
 
int AlignToGrid (const TOOL_EVENT &aEvent)
 Align selected elements to the grid.
 
bool IsSymbolEditor () const
 Returns true if the tool is running in the symbol editor.
 
int Increment (const TOOL_EVENT &aEvent)
 
int InteractiveDelete (const TOOL_EVENT &aEvent)
 
void Activate ()
 Run the tool.
 
TOOL_MENU & GetToolMenu ()
 
void SetContextMenu (ACTION_MENU *aMenu, CONTEXT_MENU_TRIGGER aTrigger=CMENU_BUTTON)
 Assign a context menu and tells when it should be activated.
 
void RunMainStack (std::function< void()> aFunc)
 Call a function using the main stack.
 
template<class T>
void Go (int(T::*aStateFunc)(const TOOL_EVENT &), const TOOL_EVENT_LIST &aConditions=TOOL_EVENT(TC_ANY, TA_ANY))
 Define which state (aStateFunc) to go when a certain event arrives (aConditions).
 
TOOL_EVENT * Wait (const TOOL_EVENT_LIST &aEventList=TOOL_EVENT(TC_ANY, TA_ANY))
 Suspend execution of the tool until an event specified in aEventList arrives.
 
TOOL_TYPE GetType () const
 Return the type of the tool.
 
TOOL_ID GetId () const
 Return the unique identifier of the tool.
 
const std::string & GetName () const
 Return the name of the tool.
 
TOOL_MANAGER * GetManager () const
 Return the instance of TOOL_MANAGER that takes care of the tool.
 
bool IsToolActive () const
 

Protected Member Functions

F * frame () const
 
EDA_ITEM * getDrawParent () const
 Return the parent container for new draw-items in the active editor.
 
void updateItem (EDA_ITEM *aItem, bool aUpdateRTree) const
 Similar to getView()->Update(), but also updates the SCH_SCREEN's RTree.
 
void saveCopyInUndoList (EDA_ITEM *aItem, UNDO_REDO aType, bool aAppend=false, bool aDirtyConnectivity=true)
 Similar to m_frame->SaveCopyInUndoList(), but also handles connectivity.
 
void attachManager (TOOL_MANAGER *aManager)
 Set the TOOL_MANAGER the tool will belong to.
 
KIGFX::VIEW * getView () const
 Return the instance of KIGFX::VIEW object used in the application.
 
KIGFX::VIEW_CONTROLS * getViewControls () const
 Return the instance of VIEW_CONTROLS object used in the application.
 
template<typename T>
T * getEditFrame () const
 Return the application window object, casted to requested user type.
 
template<typename T>
T * getModel () const
 Return the model object if it matches the requested type.
 

Protected Attributes

SCH_EDIT_FRAME * m_frame
 
KIGFX::SCH_VIEW * m_view
 
SCH_SELECTION_TOOL * m_selectionTool
 
bool m_isSymbolEditor
 
EDA_ITEM * m_pickerItem
 
std::unique_ptr< TOOL_MENU > m_menu
 The functions below are not yet implemented - their interface may change.
 
TOOL_TYPE m_type
 
TOOL_ID m_toolId
 Unique id, assigned by a TOOL_MANAGER instance.
 
std::string m_toolName
 Names are expected to obey the format application.ToolName (eg.
 
TOOL_MANAGER * m_toolMgr
 

Private Member Functions

bool doMoveSelection (const TOOL_EVENT &aEvent, SCH_COMMIT *aCommit)
 
void moveItem (EDA_ITEM *aItem, const VECTOR2I &aDelta)
 
void getConnectedItems (SCH_ITEM *aOriginalItem, const VECTOR2I &aPoint, EDA_ITEMS &aList)
 Find additional items for a drag operation.
 
void getConnectedDragItems (SCH_COMMIT *aCommit, SCH_ITEM *fixed, const VECTOR2I &selected, EDA_ITEMS &aList)
 
void orthoLineDrag (SCH_COMMIT *aCommit, SCH_LINE *line, const VECTOR2I &splitDelta, int &xBendCount, int &yBendCount, const EE_GRID_HELPER &grid)
 
void moveSelectionToSheet (SCH_SELECTION &aSelection, SCH_SHEET *aTarget, SCH_COMMIT *aCommit)
 
void clearNewDragLines ()
 Clears the new drag lines and removes them from the screen.
 
void setTransitions () override
 Set up handlers for various events.
 
void trimDanglingLines (SCH_COMMIT *aCommit)
 Cleanup dangling lines left after a drag.
 
void preprocessBreakOrSliceSelection (SCH_COMMIT *aCommit, const TOOL_EVENT &aEvent)
 Break or slice the current selection before initiating a move, if required.
 
SCH_SELECTION & prepareSelection (bool &aUnselect)
 Promote pin selections to parent symbols and request final selection.
 
void refreshSelectionTraits (const SCH_SELECTION &aSelection, bool &aHasSheetPins, bool &aHasGraphicItems, bool &aHasNonGraphicItems, bool &aIsGraphicsOnly)
 Refresh selection traits (sheet pins, graphic items, etc.)
 
void restartMoveOperation (const TOOL_EVENT &aEvent, SCH_SELECTION &aSelection, SCH_COMMIT *aCommit, std::vector< DANGLING_END_ITEM > &aInternalPoints, GRID_HELPER_GRIDS &aSnapLayer)
 Restore the original geometry and restart with the requested move mode.
 
void prepareMoveOperation (SCH_SELECTION &aSelection, SCH_COMMIT *aCommit, std::vector< DANGLING_END_ITEM > &aInternalPoints, GRID_HELPER_GRIDS &aSnapLayer)
 Set up flags, connections, and undo state for either a new or restarted move.
 
void startMoveOperation (SCH_SELECTION &aSelection, SCH_COMMIT *aCommit, std::vector< DANGLING_END_ITEM > &aInternalPoints, GRID_HELPER_GRIDS &aSnapLayer)
 Start a new move and position the selection at its initial cursor anchor.
 
void setupItemsForDrag (SCH_SELECTION &aSelection, SCH_COMMIT *aCommit)
 Setup items for drag operation, collecting connected items.
 
void setupItemsForMove (SCH_SELECTION &aSelection, std::vector< DANGLING_END_ITEM > &aInternalPoints)
 Setup items for move operation, marking dangling ends.
 
SCH_SHEET * findTargetSheet (const SCH_SELECTION &aSelection, const VECTOR2I &aCursorPos, bool aHasSheetPins, bool aIsGraphicsOnly, bool aCtrlDown)
 Find the target sheet for dropping items (if any)
 
bool dropWouldRecurse (const SCH_SELECTION &aSelection, const SCH_SHEET *aTargetSheet)
 True when dropping the selection into aTargetSheet would make a sheet its own descendant.
 
void performItemMove (SCH_SELECTION &aSelection, const VECTOR2I &aDelta, SCH_COMMIT *aCommit, int &aXBendCount, int &aYBendCount, const EE_GRID_HELPER &aGrid)
 Perform the actual move of items by delta, handling split moves and orthogonal dragging.
 
void spreadMovingSheetPinGroups (const SCH_SELECTION &aSelection)
 Slide a group of dragged sheet pins along the sheet border so they keep their spacing.
 
bool handleMoveToolActions (const TOOL_EVENT *aEvent, SCH_COMMIT *aCommit, const SCH_SELECTION &aSelection)
 Handle tool action events during the move operation.
 
void updateStoredPositions (const SCH_SELECTION &aSelection)
 Update stored positions after transformations (rotation, mirroring, etc.) during move.
 
void recordRedundantJunctions (SCH_SELECTION &aSelection)
 Hide the junction dots that the pending edit will make redundant, noting the line end each one marks.
 
void migrateHiddenJunctions (SCH_COMMIT *aCommit)
 Move those junction dots to wherever the line end they marked has ended up.
 
void finalizeMoveOperation (SCH_SELECTION &aSelection, SCH_COMMIT *aCommit, bool aUnselect, const std::vector< DANGLING_END_ITEM > &aInternalPoints)
 Finalize the move operation, updating junctions and cleaning up.
 
void resetTransitions ()
 Clear the current transition map and restores the default one created by setTransitions().
 
void goInternal (TOOL_STATE_FUNC &aState, const TOOL_EVENT_LIST &aConditions)
 
EDA_ITEM * getModelInternal () const
 
TOOLS_HOLDER * getToolHolderInternal () const
 

Private Attributes

bool m_inMoveTool
 Re-entrancy guard.
 
bool m_moveInProgress
 Flag determining if anything is being dragged right now.
 
MOVE_MODE m_mode
 
std::vector< KIID > m_dragAdditions
 Items (such as wires) which were added to the selection for a drag.
 
std::map< SCH_LINE *, EDA_ITEMS > m_lineConnectionCache
 Cache of the line's original connections before dragging started.
 
std::unordered_set< SCH_LINE * > m_newDragLines
 Lines added at bend points dynamically during the move.
 
std::unordered_set< SCH_LINE * > m_changedDragLines
 Lines changed by drag algorithm that weren't selected.
 
std::vector< HIDDEN_JUNCTION > m_hiddenJunctions
 
VECTOR2I m_moveOffset
 
VECTOR2I m_cursor
 Last cursor position (needed for getModificationPoint() to avoid changes of edit reference point).
 
OPT_VECTOR2I m_anchorPos
 
OPT_VECTOR2I m_breakPos
 
std::map< SCH_LABEL_BASE *, SPECIAL_CASE_LABEL_INFO > m_specialCaseLabels
 
std::map< SCH_SHEET_PIN *, std::pair< SCH_LINE *, bool > > m_specialCaseSheetPins
 
std::map< SCH_SHEET_PIN *, long long > m_sheetPinDragArc
 

Detailed Description

Definition at line 55 of file sch_move_tool.h.

Member Enumeration Documentation

◆ MOVE_MODE

Enumerator
MOVE 
DRAG 
BREAK 
SLICE 

Definition at line 58 of file sch_move_tool.h.

◆ RESET_REASON

enum TOOL_BASE::RESET_REASON
inherited

Determine the reason of reset for a tool.

Enumerator
RUN 

Tool is invoked after being inactive.

MODEL_RELOAD 

Model changes (the sheet for a schematic)

SUPERMODEL_RELOAD 

For schematics, the entire schematic changed, not just the sheet.

GAL_SWITCH 

Rendering engine changes.

REDRAW 

Full drawing refresh.

SHUTDOWN 

Tool is being shut down.

Definition at line 73 of file tool_base.h.

Constructor & Destructor Documentation

◆ SCH_MOVE_TOOL()

SCH_MOVE_TOOL::SCH_MOVE_TOOL ( )

◆ ~SCH_MOVE_TOOL()

SCH_MOVE_TOOL::~SCH_MOVE_TOOL ( )
inlineoverride

Definition at line 67 of file sch_move_tool.h.

Member Function Documentation

◆ Activate()

void TOOL_INTERACTIVE::Activate ( )
inherited

Run the tool.

After activation, the tool starts receiving events until it is finished.

Definition at line 61 of file tool_interactive.cpp.

References TOOL_BASE::m_toolId, and TOOL_BASE::m_toolMgr.

Referenced by CONSTRAINT_EDIT_TOOL::AddPointConstraint(), AUTOPLACE_TOOL::autoplace(), EDIT_TOOL::copyToClipboard(), PCB_TOOL_BASE::doInteractiveItemPlacement(), EDIT_TOOL::doMoveSelection(), DRAWING_TOOL::DrawArc(), DRAWING_TOOL::DrawBarcode(), DRAWING_TOOL::DrawBezier(), DRAWING_TOOL::DrawDimension(), DRAWING_TOOL::DrawEllipseArc(), DRAWING_TOOL::DrawLine(), MICROWAVE_TOOL::drawMicrowaveInductor(), DRAWING_TOOL::DrawRectangle(), PL_DRAWING_TOOLS::DrawShape(), DRAWING_TOOL::DrawTable(), DRAWING_TOOL::DrawZone(), BOARD_EDITOR_CONTROL::DrillOrigin(), PAD_TOOL::EditPad(), PAD_TOOL::EnumeratePads(), PCB_CONTROL::GridPlaceOrigin(), ROUTER_TOOL::InlineBreakTrack(), ROUTER_TOOL::InlineDrag(), BOARD_INSPECTION_TOOL::InspectClearance(), BOARD_INSPECTION_TOOL::InspectConstraints(), PCB_CONTROL::InteractiveDelete(), PL_EDIT_TOOL::InteractiveDelete(), SCH_TOOL_BASE< T >::InteractiveDelete(), POSITION_RELATIVE_TOOL::InteractiveOffset(), BOARD_INSPECTION_TOOL::LocalRatsnestTool(), PCB_PICKER_TOOL::Main(), PICKER_TOOL::Main(), PL_EDIT_TOOL::Main(), PL_POINT_EDITOR::Main(), ROUTER_TOOL::MainLoop(), GERBVIEW_INSPECTION_TOOL::MeasureTool(), PCB_VIEWER_TOOLS::MeasureTool(), PCB_POINT_EDITOR::OnSelectionChange(), ROUTER_TOOL::OptimizeSelected(), CONSTRAINT_EDIT_TOOL::pickLinearConstraint(), PCB_GROUP_TOOL::PickNewMember(), SCH_GROUP_TOOL::PickNewMember(), CONSTRAINT_EDIT_TOOL::pickShapeConstraint(), BOARD_EDITOR_CONTROL::PlaceFootprint(), DRAWING_TOOL::PlaceImportedGraphics(), PL_DRAWING_TOOLS::PlaceItem(), DRAWING_TOOL::PlaceMicroviaStack(), DRAWING_TOOL::PlaceReferenceImage(), DRAWING_TOOL::PlaceSubGrid(), DRAWING_TOOL::PlaceText(), DRAWING_TOOL::PlaceTuningPattern(), EDIT_TOOL::Remove(), ROUTER_TOOL::RouteSelected(), GRAPHIC_EDIT_TOOL::runInteractive(), MATCH_PROPERTIES_TOOL::runInteractive(), DRAWING_TOOL::runSimpleShapeDraw(), PCB_PICKER_TOOL::SelectItemInteractively(), PCB_PICKER_TOOL::SelectPointInteractively(), DRAWING_TOOL::SetAnchor(), DRC_TOOL::ShowDesignRuleEditorDialog(), DIFF_PHASE_SKEW_TOOL::ShowDiffPhaseSkew(), DRC_TOOL::ShowDRCDialog(), and DRC_RULE_EDITOR_TOOL::ShowDRCRuleEditorDialog().

◆ AlignToGrid()

◆ attachManager()

void TOOL_BASE::attachManager ( TOOL_MANAGER * aManager)
protectedinherited

Set the TOOL_MANAGER the tool will belong to.

Called by TOOL_MANAGER::RegisterTool()

Definition at line 58 of file tool_base.cpp.

References m_toolMgr, and TOOL_MANAGER.

Referenced by TOOL_MANAGER::RegisterTool().

◆ clearNewDragLines()

void SCH_MOVE_TOOL::clearNewDragLines ( )
private

Clears the new drag lines and removes them from the screen.

Definition at line 3051 of file sch_move_tool.cpp.

References SCH_TOOL_BASE< SCH_EDIT_FRAME >::m_frame, and m_newDragLines.

Referenced by doMoveSelection(), prepareMoveOperation(), and restartMoveOperation().

◆ doMoveSelection()

bool SCH_MOVE_TOOL::doMoveSelection ( const TOOL_EVENT & aEvent,
SCH_COMMIT * aCommit )
private

Definition at line 697 of file sch_move_tool.cpp.

References _, SCH_TOOL_BASE< SCH_EDIT_FRAME >::Activate(), SELECTION::begin(), BREAK, BRIGHTENED, BUT_LEFT, BUT_RIGHT, TOOL_EVENT::Category(), EDA_ITEM::ClearFlags(), clearNewDragLines(), copy, ACTIONS::CURSOR_DOWN, ACTIONS::CURSOR_LEFT, ACTIONS::CURSOR_RIGHT, ACTIONS::CURSOR_UP, ACTIONS::cursorClick, ACTIONS::cursorDblClick, delta, DRAG, SCH_ACTIONS::drag, ACTIONS::duplicate, SELECTION::Empty(), SELECTION::end(), finalizeMoveOperation(), findTargetSheet(), TOOL_EVENT::Format(), ADVANCED_CFG::GetCfg(), KIGFX::VIEW_CONTROLS::GetCursorPosition(), KIGFX::VIEW_CONTROLS::GetSettings(), SCH_TOOL_BASE< SCH_EDIT_FRAME >::getView(), SCH_TOOL_BASE< SCH_EDIT_FRAME >::getViewControls(), grid, GRID_CURRENT, handleMoveToolActions(), EDA_ITEM::HasFlag(), SCH_ACTIONS::highlightNet, HORIZONTAL, ACTIONS::increment, IS_PASTED, TOOL_EVENT::IsAction(), TOOL_EVENT::IsActivate(), TOOL_EVENT::IsCancelInteractive(), TOOL_EVENT::IsClick(), TOOL_EVENT::IsDblClick(), TOOL_EVENT::IsDrag(), TOOL_EVENT::IsMotion(), TOOL_EVENT::IsMouseUp(), m_anchorPos, m_breakPos, m_changedDragLines, ADVANCED_CFG::m_ConnectivityEngine, m_cursor, m_dragAdditions, SCH_TOOL_BASE< SCH_EDIT_FRAME >::m_frame, m_hiddenJunctions, m_inMoveTool, KIGFX::VC_SETTINGS::m_lastKeyboardCursorCommand, KIGFX::VC_SETTINGS::m_lastKeyboardCursorPosition, KIGFX::VC_SETTINGS::m_lastKeyboardCursorPositionValid, m_lineConnectionCache, SCH_TOOL_BASE< SCH_EDIT_FRAME >::m_menu, m_mode, m_moveInProgress, m_moveOffset, m_newDragLines, SCH_TOOL_BASE< SCH_EDIT_FRAME >::m_selectionTool, SCH_TOOL_BASE< SCH_EDIT_FRAME >::m_toolMgr, SCH_TOOL_BASE< SCH_EDIT_FRAME >::m_view, MD_CTRL, MD_SHIFT, TOOL_EVENT::Modifier(), SCH_COLLECTOR::MovableItems, MOVE, SCH_ACTIONS::move, moveSelectionToSheet(), MOVING, NONE, performItemMove(), PLACE, prepareSelection(), preprocessBreakOrSliceSelection(), JUNCTION_HELPERS::PreviewJunctions(), QUIET_MODE, ACTIONS::redo, ACTIONS::refreshPreview, refreshSelectionTraits(), SCH_ACTIONS::repeatDrawItem, SCH_ACTIONS::restartMove, restartMoveOperation(), SCH_ACTIONS::rotateCCW, SCH_ACTIONS::rotateCW, EVENTS::SelectedItemsMoved, ACTIONS::selectionClear, SCH_ACTIONS::selectOnPCB, KIGFX::VIEW_CONTROLS::SetAutoPan(), KIGFX::VIEW_CONTROLS::SetCursorPosition(), EDA_ITEM::SetFlags(), TOOL_EVENT::SetPassEvent(), SELECTION::SetReferencePoint(), KIGFX::VIEW_CONTROLS::ShowCursor(), SLICE, startMoveOperation(), TC_COMMAND, TC_KEYBOARD, TC_MOUSE, SCH_ACTIONS::toDLabel, SCH_ACTIONS::toGLabel, SCH_ACTIONS::toHLabel, SCH_ACTIONS::toLabel, SCH_ACTIONS::toText, SCH_ACTIONS::toTextBox, traceSchMove, ACTIONS::undo, VERTICAL, SCH_TOOL_BASE< SCH_EDIT_FRAME >::Wait(), VECTOR2< T >::x, and VECTOR2< T >::y.

Referenced by Main().

◆ dropWouldRecurse()

bool SCH_MOVE_TOOL::dropWouldRecurse ( const SCH_SELECTION & aSelection,
const SCH_SHEET * aTargetSheet )
private

True when dropping the selection into aTargetSheet would make a sheet its own descendant.

Definition at line 1601 of file sch_move_tool.cpp.

References SCH_SCREEN::GetFileName(), SCH_SHEET::GetScreen(), SCH_TOOL_BASE< SCH_EDIT_FRAME >::m_frame, SCH_SHEET_T, and SCH_SHEET_LIST::TestForRecursion().

Referenced by findTargetSheet().

◆ finalizeMoveOperation()

◆ findTargetSheet()

SCH_SHEET * SCH_MOVE_TOOL::findTargetSheet ( const SCH_SELECTION & aSelection,
const VECTOR2I & aCursorPos,
bool aHasSheetPins,
bool aIsGraphicsOnly,
bool aCtrlDown )
private

◆ frame()

◆ getConnectedDragItems()

◆ getConnectedItems()

void SCH_MOVE_TOOL::getConnectedItems ( SCH_ITEM * aOriginalItem,
const VECTOR2I & aPoint,
EDA_ITEMS & aList )
private

Find additional items for a drag operation.

Connected items with no wire are included (as there is no wire to adjust for the drag). Connected wires are included with any un-connected ends flagged (STARTPOINT or ENDPOINT).

Definition at line 2345 of file sch_move_tool.cpp.

References ENDPOINT, EDA_ITEM::GetBoundingBox(), SCH_LINE::GetEndPoint(), SCH_TEXT::GetPosition(), SCH_LINE::GetStartPoint(), EDA_ITEM::HasFlag(), SCH_LINE::HitTest(), SCH_ITEM::IsConnected(), SCH_TOOL_BASE< SCH_EDIT_FRAME >::m_frame, m_specialCaseSheetPins, EE_RTREE::Overlapping(), pin, SCH_BUS_BUS_ENTRY_T, SCH_BUS_WIRE_ENTRY_T, SCH_DIRECTIVE_LABEL_T, SCH_GLOBAL_LABEL_T, SCH_HIER_LABEL_T, SCH_JUNCTION_T, SCH_LABEL_T, SCH_LINE_T, SCH_NO_CONNECT_T, SCH_SHEET_T, SCH_SYMBOL_T, STARTPOINT, and EDA_ITEM::Type().

Referenced by setupItemsForDrag().

◆ getDrawParent()

EDA_ITEM * SCH_TOOL_BASE< SCH_EDIT_FRAME >::getDrawParent ( ) const
protectedinherited

Return the parent container for new draw-items in the active editor.

In the schematic editor this is the SCHEMATIC, in the symbol editor it is the current LIB_SYMBOL.

Definition at line 84 of file sch_tool_base.cpp.

◆ getEditFrame()

template<typename T>
T * TOOL_BASE::getEditFrame ( ) const
inlineprotectedinherited

Return the application window object, casted to requested user type.

Definition at line 182 of file tool_base.h.

References getToolHolderInternal(), and T.

Referenced by PCB_POINT_EDITOR::addCorner(), BOARD_EDITOR_CONTROL::BoardSetup(), PCB_POINT_EDITOR::chamferCorner(), PCB_POINT_EDITOR::changeArcEditMode(), ZONE_FILLER_TOOL::CheckAllZones(), FOOTPRINT_EDITOR_CONTROL::CleanupGraphics(), GLOBAL_EDIT_TOOL::CleanupGraphics(), GLOBAL_EDIT_TOOL::CleanupTracksAndVias(), EDIT_TOOL::copyToClipboard(), ARRAY_TOOL::CreateArray(), MICROWAVE_TOOL::createBaseFootprint(), MICROWAVE_TOOL::createFootprint(), MICROWAVE_TOOL::createInductorBetween(), CONVERT_TOOL::CreateLines(), MICROWAVE_TOOL::createMicrowaveInductor(), MICROWAVE_TOOL::createPolygonShape(), CONVERT_TOOL::CreatePolys(), FOOTPRINT_EDITOR_CONTROL::DefaultPadProperties(), FOOTPRINT_EDITOR_CONTROL::DeleteFootprint(), EDIT_TOOL::DeleteItems(), EDIT_TOOL::doMoveSelection(), SELECTION_TOOL::doSelectionMenu(), COMMON_TOOLS::doZoomFit(), MICROWAVE_TOOL::drawMicrowaveInductor(), EDIT_TOOL::Duplicate(), BOARD_EDITOR_CONTROL::EditFpInFpEditor(), PCB_SELECTION_TOOL::editFrame(), GLOBAL_EDIT_TOOL::EditTeardrops(), FOOTPRINT_EDITOR_CONTROL::EditTextAndGraphics(), GLOBAL_EDIT_TOOL::EditTextAndGraphics(), GLOBAL_EDIT_TOOL::EditTracksAndVias(), EDIT_TOOL::EditVertices(), GLOBAL_EDIT_TOOL::ExchangeFootprints(), BOARD_EDITOR_CONTROL::ExportSpecctraDSN(), ZONE_FILLER_TOOL::FillAllZones(), FOOTPRINT_WIZARD_TOOLS::frame(), PCB_SELECTION_TOOL::frame(), PCB_TEST_SELECTION_TOOL::frame(), PCB_TOOL_BASE::frame(), PCB_VIEWER_TOOLS::frame(), SCH_TOOL_BASE< T >::frame(), BOARD_EDITOR_CONTROL::GenerateDrillFiles(), BOARD_EDITOR_CONTROL::GeneratePosFile(), GLOBAL_EDIT_TOOL::GlobalDeletions(), PCB_CONTROL::GridPlaceOrigin(), BOARD_EDITOR_CONTROL::ImportNetlist(), BOARD_EDITOR_CONTROL::ImportSpecctraSession(), ALIGN_DISTRIBUTE_TOOL::Init(), BOARD_EDITOR_CONTROL::Init(), CONVERT_TOOL::Init(), CVPCB_FOOTPRINT_VIEWER_SELECTION_TOOL::Init(), DRAWING_TOOL::Init(), GERBVIEW_SELECTION_TOOL::Init(), GROUP_TOOL::Init(), PAD_TOOL::Init(), PCB_DESIGN_BLOCK_CONTROL::Init(), PCB_PICKER_TOOL::Init(), PCB_SELECTION_TOOL::Init(), PCB_TOOL_BASE::Init(), PICKER_TOOL::Init(), PL_DRAWING_TOOLS::Init(), PL_EDIT_TOOL::Init(), PL_EDITOR_CONTROL::Init(), PL_POINT_EDITOR::Init(), PL_SELECTION_TOOL::Init(), ROUTER_TOOL::Init(), SCH_DESIGN_BLOCK_CONTROL::Init(), SCH_SELECTION_TOOL::Init(), SCH_TOOL_BASE< T >::Init(), ZOOM_TOOL::Init(), ROUTER_TOOL::InlineDrag(), PCB_PICKER_TOOL::Main(), PCB_SELECTION_TOOL::Main(), ROUTER_TOOL::MainLoop(), GLOBAL_EDIT_TOOL::Migrate3DModels(), PCB_POINT_EDITOR::movePoint(), BOARD_EDITOR_CONTROL::OnAngleSnapModeChanged(), FOOTPRINT_EDITOR_CONTROL::OnAngleSnapModeChanged(), ARRAY_TOOL::onDialogClosed(), SELECTION_TOOL::onDisambiguationExpire(), PCB_POINT_EDITOR::OnSelectionChange(), ROUTER_TOOL::OptimizeSelected(), CONVERT_TOOL::OutsetItems(), ROUTER_TOOL::performRouting(), EDIT_TOOL::pickReferencePoint(), POSITION_RELATIVE_TOOL::PositionRelative(), ROUTER_TOOL::prepareInteractive(), EDIT_TOOL::Properties(), FOOTPRINT_EDITOR_CONTROL::Properties(), EDIT_TOOL::Remove(), PCB_POINT_EDITOR::removeCorner(), GLOBAL_EDIT_TOOL::RemoveUnusedPads(), BITMAP2CMP_CONTROL::Reset(), BOARD_EDITOR_CONTROL::Reset(), BOARD_INSPECTION_TOOL::Reset(), BOARD_REANNOTATE_TOOL::Reset(), COMMON_CONTROL::Reset(), COMMON_TOOLS::Reset(), CVPCB_ASSOCIATION_TOOL::Reset(), CVPCB_CONTROL::Reset(), CVPCB_FOOTPRINT_VIEWER_SELECTION_TOOL::Reset(), DESIGN_BLOCK_CONTROL::Reset(), DRAWING_TOOL::Reset(), DRC_RULE_EDITOR_TOOL::Reset(), DRC_TOOL::Reset(), EDIT_TOOL::Reset(), FOOTPRINT_EDITOR_CONTROL::Reset(), GERBVIEW_CONTROL::Reset(), GERBVIEW_INSPECTION_TOOL::Reset(), GERBVIEW_SELECTION_TOOL::Reset(), GROUP_TOOL::Reset(), KICAD_MANAGER_CONTROL::Reset(), LIBRARY_EDITOR_CONTROL::Reset(), PCB_CONTROL::Reset(), PCB_POINT_EDITOR::Reset(), PCB_SELECTION_TOOL::Reset(), PL_DRAWING_TOOLS::Reset(), PL_EDIT_TOOL::Reset(), PL_EDITOR_CONTROL::Reset(), PL_POINT_EDITOR::Reset(), PL_SELECTION_TOOL::Reset(), SCH_SELECTION_TOOL::Reset(), SIMULATOR_CONTROL::Reset(), ZOOM_TOOL::Reset(), FOOTPRINT_EDITOR_CONTROL::Revert(), EDIT_TOOL::Rotate(), ROUTER_TOOL::RouteSelected(), ROUTER_TOOL::saveRouterDebugLog(), CONVERT_TOOL::SegmentToArc(), GERBVIEW_SELECTION_TOOL::selectable(), SCH_SELECTION_TOOL::SelectMultiple(), BOARD_EDITOR_CONTROL::ToggleConstraintsPanel(), BOARD_EDITOR_CONTROL::ToggleLayersManager(), BOARD_EDITOR_CONTROL::ToggleLibraryTree(), BOARD_EDITOR_CONTROL::ToggleNetInspector(), BOARD_EDITOR_CONTROL::ToggleProperties(), BOARD_EDITOR_CONTROL::ToggleSearch(), PROPERTIES_TOOL::UpdateProperties(), ZONE_FILLER_TOOL::ZoneFillDirty(), and GLOBAL_EDIT_TOOL::ZonesManager().

◆ GetId()

TOOL_ID TOOL_BASE::GetId ( ) const
inlineinherited

Return the unique identifier of the tool.

The identifier is set by an instance of TOOL_MANAGER.

Returns
Identifier of the tool.

Definition at line 119 of file tool_base.h.

References m_toolId.

Referenced by TOOL_MANAGER::finishTool(), TOOL_MANAGER::InitTools(), TOOL_MANAGER::isActive(), TOOL_MANAGER::RegisterTool(), ACTION_MANAGER::RunHotKey(), TOOL_MANAGER::runTool(), TOOL_MANAGER::saveViewControls(), and TOOL_MANAGER::ShutdownTool().

◆ GetManager()

◆ getModel()

◆ getModelInternal()

EDA_ITEM * TOOL_BASE::getModelInternal ( ) const
privateinherited

Definition at line 52 of file tool_base.cpp.

References m_toolMgr.

Referenced by getModel().

◆ GetName()

const std::string & TOOL_BASE::GetName ( ) const
inlineinherited

Return the name of the tool.

Tool names are expected to obey the format: application.ToolName (eg. pcbnew.InteractiveSelection).

Returns
The name of the tool.

Definition at line 132 of file tool_base.h.

References m_toolName.

Referenced by PCB_CONTROL::AppendBoard(), TOOL_MANAGER::dispatchInternal(), COMMON_TOOLS::GridProperties(), TOOL_MANAGER::InitTools(), TOOL_MANAGER::invokeTool(), TOOL_MANAGER::RegisterTool(), TOOL_MANAGER::ResetTools(), TOOL_MANAGER::runTool(), SCH_TOOL_BASE< SCH_BASE_FRAME >::SetContextMenu(), and TOOL_MANAGER::ShutdownTool().

◆ getToolHolderInternal()

TOOLS_HOLDER * TOOL_BASE::getToolHolderInternal ( ) const
privateinherited

Definition at line 46 of file tool_base.cpp.

References m_toolMgr.

Referenced by getEditFrame().

◆ GetToolMenu()

◆ GetType()

TOOL_TYPE TOOL_BASE::GetType ( ) const
inlineinherited

Return the type of the tool.

Returns
The type of the tool.

Definition at line 107 of file tool_base.h.

References m_type.

Referenced by TOOL_MANAGER::InvokeTool(), TOOL_MANAGER::InvokeTool(), TOOL_MANAGER::ResetTools(), TOOL_MANAGER::runTool(), TOOL_MANAGER::ShutdownTool(), and TOOL_MANAGER::ShutdownTool().

◆ getView()

KIGFX::VIEW * TOOL_BASE::getView ( ) const
protectedinherited

Return the instance of KIGFX::VIEW object used in the application.

It allows tools to draw.

Returns
The instance of KIGFX::VIEW.

Definition at line 34 of file tool_base.cpp.

References m_toolMgr.

Referenced by ALIGN_DISTRIBUTE_TOOL::AlignLeft(), ALIGN_DISTRIBUTE_TOOL::AlignRight(), GERBVIEW_CONTROL::ClearAllLayers(), PL_SELECTION_TOOL::ClearSelection(), SCH_SELECTION_TOOL::ClearSelection(), SCH_SELECTION_TOOL::CollectHits(), PCB_SELECTION_TOOL::CollectMultiple(), COMMON_TOOLS::CursorControl(), EDIT_TOOL::DeleteItems(), COMMON_TOOLS::doCenter(), PL_EDIT_TOOL::DoDelete(), PCB_TOOL_BASE::doInteractiveItemPlacement(), EDIT_TOOL::doMoveSelection(), SELECTION_TOOL::doSelectionMenu(), COMMON_TOOLS::doZoomInOut(), COMMON_TOOLS::doZoomToPreset(), PCB_SELECTION_TOOL::DragSelectionArea(), DRAWING_TOOL::DrawBarcode(), DRAWING_TOOL::DrawDimension(), DRAWING_TOOL::drawManagedShape(), MICROWAVE_TOOL::drawMicrowaveInductor(), PL_DRAWING_TOOLS::DrawShape(), DRAWING_TOOL::drawShape(), DRAWING_TOOL::DrawTable(), DRAWING_TOOL::DrawZone(), BOARD_EDITOR_CONTROL::DrillOrigin(), SCH_SELECTION_TOOL::EnterGroup(), PAD_TOOL::EnumeratePads(), SCH_SELECTION_TOOL::ExitGroup(), PCB_SELECTION_TOOL::FilterCollectorForFootprints(), SCH_SELECTION_TOOL::GetNode(), ROUTER_TOOL::getStartLayer(), PCB_CONTROL::GridPlaceOrigin(), PCB_CONTROL::GridResetOrigin(), PCB_SELECTION_TOOL::GuessSelectionCandidates(), SCH_SELECTION_TOOL::GuessSelectionCandidates(), ROUTER_TOOL::handleCommonEvents(), PCB_SELECTION_TOOL::highlight(), PL_SELECTION_TOOL::highlight(), SCH_SELECTION_TOOL::highlight(), GERBVIEW_CONTROL::HighlightControl(), BOARD_INSPECTION_TOOL::highlightNet(), PNS::TOOL_BASE::highlightNets(), CONSTRAINT_EDIT_TOOL::hitTestBadge(), PCB_SELECTION_TOOL::hitTestDistance(), EDIT_TOOL::Init(), ROUTER_TOOL::InlineDrag(), PCB_CONTROL::InteractiveDelete(), PL_EDIT_TOOL::InteractiveDelete(), POSITION_RELATIVE_TOOL::InteractiveOffset(), PCB_PICKER_TOOL::Main(), PL_POINT_EDITOR::Main(), GERBVIEW_INSPECTION_TOOL::MeasureTool(), PCB_VIEWER_TOOLS::MeasureTool(), EDIT_TOOL::MoveExact(), PL_EDIT_TOOL::moveItem(), COMMON_TOOLS::OnGridChanged(), CONSTRAINT_EDIT_TOOL::onHoverMotion(), PCB_POINT_EDITOR::OnSelectionChange(), COMMON_TOOLS::PanControl(), CONSTRAINT_EDIT_TOOL::pcbRenderSettings(), ROUTER_TOOL::performRouting(), PNS::TOOL_BASE::pickSingleItem(), BOARD_EDITOR_CONTROL::PlaceFootprint(), DRAWING_TOOL::PlaceImportedGraphics(), PL_DRAWING_TOOLS::PlaceItem(), DRAWING_TOOL::PlaceMicroviaStack(), DRAWING_TOOL::PlaceReferenceImage(), DRAWING_TOOL::PlaceSubGrid(), DRAWING_TOOL::PlaceText(), DRAWING_TOOL::PlaceTuningPattern(), ROUTER_TOOL::prepareInteractive(), EDIT_TOOL::Properties(), PCB_SELECTION_TOOL::pruneObscuredSelectionCandidates(), GERBVIEW_CONTROL::ReloadAllLayers(), CONSTRAINT_EDIT_TOOL::repaintShadowItems(), BOARD_EDITOR_CONTROL::Reset(), CONSTRAINT_EDIT_TOOL::Reset(), DIFF_PHASE_SKEW_TOOL::Reset(), DRAWING_TOOL::Reset(), GENERATOR_TOOL_PNS_PROXY::Reset(), GERBVIEW_SELECTION_TOOL::Reset(), PCB_CONTROL::Reset(), PCB_POINT_EDITOR::Reset(), PCB_SELECTION_TOOL::Reset(), PL_POINT_EDITOR::Reset(), PNS::TOOL_BASE::Reset(), SCH_SELECTION_TOOL::Reset(), GERBVIEW_SELECTION_TOOL::select(), PCB_SELECTION_TOOL::Selectable(), PCB_SELECTION_TOOL::SelectAll(), SCH_SELECTION_TOOL::SelectAll(), SCH_SELECTION_TOOL::SelectConnection(), PCB_SELECTION_TOOL::selectionContains(), PL_SELECTION_TOOL::selectionContains(), SCH_SELECTION_TOOL::selectionContains(), SCH_SELECTION_TOOL::selectLasso(), SCH_SELECTION_TOOL::SelectMultiple(), PL_SELECTION_TOOL::selectMultiple(), SCH_SELECTION_TOOL::selectMultiple(), PL_SELECTION_TOOL::SelectPoint(), PCB_TEST_SELECTION_TOOL::selectPoint(), SCH_SELECTION_TOOL::selectPoint(), PCB_SELECTION_TOOL::SelectPolyArea(), ZOOM_TOOL::selectRegion(), GERBVIEW_SELECTION_TOOL::selectVisually(), DRAWING_TOOL::SetAnchor(), CONSTRAINT_EDIT_TOOL::ShowConstraints(), DRAWING_TOOL::snapEventPosition(), SCH_SELECTION_TOOL::SyncSelection(), PCB_SELECTION_TOOL::unhighlight(), PCB_TEST_SELECTION_TOOL::unhighlight(), PL_SELECTION_TOOL::unhighlight(), SCH_SELECTION_TOOL::unhighlight(), GERBVIEW_SELECTION_TOOL::unselect(), PCB_SELECTION_TOOL::UnselectAll(), SCH_SELECTION_TOOL::UnselectAll(), GERBVIEW_SELECTION_TOOL::unselectVisually(), PCB_POINT_EDITOR::updateEditedPoint(), PL_POINT_EDITOR::updateEditedPoint(), PCB_POINT_EDITOR::updateItem(), PL_POINT_EDITOR::updateItem(), PCB_POINT_EDITOR::updatePoints(), PL_POINT_EDITOR::updatePoints(), PCB_SELECTION_TOOL::updateSelection(), SCH_SELECTION_TOOL::updateSelection(), PNS::TOOL_BASE::updateStartItem(), PCB_SELECTION_TOOL::view(), PCB_TEST_SELECTION_TOOL::view(), PCB_TOOL_BASE::view(), PCB_VIEWER_TOOLS::view(), COMMON_TOOLS::ZoomFitBox(), PCB_SELECTION_TOOL::ZoomFitCrossProbeBBox(), SCH_SELECTION_TOOL::ZoomFitCrossProbeBBox(), PCB_SELECTION_TOOL::zoomFitSelection(), GERBVIEW_SELECTION_TOOL::~GERBVIEW_SELECTION_TOOL(), PCB_SELECTION_TOOL::~PCB_SELECTION_TOOL(), and SCH_SELECTION_TOOL::~SCH_SELECTION_TOOL().

◆ getViewControls()

KIGFX::VIEW_CONTROLS * TOOL_BASE::getViewControls ( ) const
protectedinherited

Return the instance of VIEW_CONTROLS object used in the application.

It allows tools to read & modify user input and its settings (eg. show cursor, enable snapping to grid, etc.).

Returns
The instance of VIEW_CONTROLS.

Definition at line 40 of file tool_base.cpp.

References m_toolMgr.

Referenced by PCB_POINT_EDITOR::addCorner(), SCH_SELECTION_TOOL::autostartEvent(), PCB_POINT_EDITOR::chamferCorner(), PCB_SELECTION_TOOL::controls(), PCB_TEST_SELECTION_TOOL::controls(), PCB_TOOL_BASE::controls(), EDIT_TOOL::copyToClipboard(), COMMON_TOOLS::CursorControl(), EDIT_TOOL::DeleteItems(), EDIT_TOOL::doMoveSelection(), COMMON_TOOLS::doZoomToPreset(), PCB_SELECTION_TOOL::DragSelectionArea(), DRAWING_TOOL::DrawBarcode(), DRAWING_TOOL::DrawLine(), MICROWAVE_TOOL::drawMicrowaveInductor(), DRAWING_TOOL::DrawRectangle(), PL_DRAWING_TOOLS::DrawShape(), DRAWING_TOOL::drawShape(), DRAWING_TOOL::DrawTable(), DRAWING_TOOL::DrawZone(), PAD_TOOL::EnumeratePads(), BOARD_INSPECTION_TOOL::HighlightNet(), BOARD_INSPECTION_TOOL::HighlightNetChain(), FOOTPRINT_EDITOR_CONTROL::ImportFootprint(), SCH_TOOL_BASE< T >::Increment(), EDIT_TOOL::Init(), POSITION_RELATIVE_TOOL::InteractiveOffset(), PCB_PICKER_TOOL::Main(), PICKER_TOOL::Main(), PL_EDIT_TOOL::Main(), PL_POINT_EDITOR::Main(), SCH_SELECTION_TOOL::Main(), ROUTER_TOOL::MainLoop(), PCB_POINT_EDITOR::makePoints(), GERBVIEW_INSPECTION_TOOL::MeasureTool(), PCB_VIEWER_TOOLS::MeasureTool(), COMMON_TOOLS::OnGridChanged(), CONSTRAINT_EDIT_TOOL::onHoverMotion(), PCB_POINT_EDITOR::OnSelectionChange(), ROUTER_TOOL::performDragging(), ROUTER_TOOL::performRouting(), PCB_CONTROL::placeBoardItems(), BOARD_EDITOR_CONTROL::PlaceFootprint(), PL_DRAWING_TOOLS::PlaceItem(), DRAWING_TOOL::PlaceReferenceImage(), DRAWING_TOOL::PlaceTuningPattern(), EDIT_TOOL::Properties(), PL_SELECTION_TOOL::RequestSelection(), SCH_SELECTION_TOOL::RequestSelection(), DIFF_PHASE_SKEW_TOOL::Reset(), DRAWING_TOOL::Reset(), PCB_POINT_EDITOR::Reset(), COMMON_TOOLS::ResetLocalCoords(), ROUTER_TOOL::RouteSelected(), MATCH_PROPERTIES_TOOL::runInteractive(), DRAWING_TOOL::runSimpleShapeDraw(), PCB_SELECTION_TOOL::selectCursor(), SCH_SELECTION_TOOL::selectLasso(), PL_SELECTION_TOOL::selectMultiple(), SCH_SELECTION_TOOL::selectMultiple(), SCH_SELECTION_TOOL::SelectNode(), PCB_SELECTION_TOOL::SelectPolyArea(), ZOOM_TOOL::selectRegion(), PCB_SELECTION_TOOL::selectTableCells(), SCH_SELECTION_TOOL::selectTableCells(), ALIGN_DISTRIBUTE_TOOL::selectTarget(), PCB_PICKER_TOOL::setControls(), PICKER_TOOL::setControls(), PCB_POINT_EDITOR::setEditedPoint(), PL_POINT_EDITOR::setEditedPoint(), DIFF_PHASE_SKEW_TOOL::ShowDiffPhaseSkew(), PCB_POINT_EDITOR::updateEditedPoint(), PL_POINT_EDITOR::updateEditedPoint(), PL_EDIT_TOOL::updateModificationPoint(), and COMMON_TOOLS::ZoomCenter().

◆ Go()

template<class T>
void TOOL_INTERACTIVE::Go ( int(T::* aStateFunc )(const TOOL_EVENT &),
const TOOL_EVENT_LIST & aConditions = TOOL_EVENT( TC_ANY, TA_ANY ) )
inherited

Define which state (aStateFunc) to go when a certain event arrives (aConditions).

No conditions means any event.

Definition at line 143 of file tool_interactive.h.

References goInternal(), and T.

Referenced by ALIGN_DISTRIBUTE_TOOL::setTransitions(), ARRAY_TOOL::setTransitions(), AUTOPLACE_TOOL::setTransitions(), BITMAP2CMP_CONTROL::setTransitions(), BOARD_EDITOR_CONTROL::setTransitions(), BOARD_INSPECTION_TOOL::setTransitions(), BOARD_REANNOTATE_TOOL::setTransitions(), COMMON_CONTROL::setTransitions(), COMMON_TOOLS::setTransitions(), CONSTRAINT_EDIT_TOOL::setTransitions(), CONVERT_TOOL::setTransitions(), CVPCB_ASSOCIATION_TOOL::setTransitions(), CVPCB_CONTROL::setTransitions(), CVPCB_FOOTPRINT_VIEWER_SELECTION_TOOL::setTransitions(), DESIGN_BLOCK_CONTROL::setTransitions(), DIFF_PHASE_SKEW_TOOL::setTransitions(), DRAWING_TOOL::setTransitions(), DRC_RULE_EDITOR_TOOL::setTransitions(), DRC_TOOL::setTransitions(), EDA_3D_CONTROLLER::setTransitions(), EDIT_TOOL::setTransitions(), EMBED_TOOL::setTransitions(), FOOTPRINT_CHOOSER_SELECTION_TOOL::setTransitions(), FOOTPRINT_EDITOR_CONTROL::setTransitions(), FOOTPRINT_WIZARD_TOOLS::setTransitions(), GENERATOR_TOOL::setTransitions(), GERBVIEW_CONTROL::setTransitions(), GERBVIEW_INSPECTION_TOOL::setTransitions(), GERBVIEW_SELECTION_TOOL::setTransitions(), GLOBAL_EDIT_TOOL::setTransitions(), GRAPHIC_EDIT_TOOL::setTransitions(), GROUP_TOOL::setTransitions(), KICAD_MANAGER_CONTROL::setTransitions(), LIBRARY_EDITOR_CONTROL::setTransitions(), MATCH_PROPERTIES_TOOL::setTransitions(), MICROWAVE_TOOL::setTransitions(), MULTICHANNEL_TOOL::setTransitions(), PAD_TOOL::setTransitions(), PCB_CONTROL::setTransitions(), PCB_DESIGN_BLOCK_CONTROL::setTransitions(), PCB_EDIT_TABLE_TOOL::setTransitions(), PCB_PICKER_TOOL::setTransitions(), PCB_POINT_EDITOR::setTransitions(), PCB_SELECTION_TOOL::setTransitions(), PCB_TEST_SELECTION_TOOL::setTransitions(), PCB_VIEWER_TOOLS::setTransitions(), PICKER_TOOL::setTransitions(), PL_DRAWING_TOOLS::setTransitions(), PL_EDIT_TOOL::setTransitions(), PL_EDITOR_CONTROL::setTransitions(), PL_POINT_EDITOR::setTransitions(), PL_SELECTION_TOOL::setTransitions(), POSITION_RELATIVE_TOOL::setTransitions(), PROPERTIES_TOOL::setTransitions(), ROUTER_TOOL::setTransitions(), SCH_DESIGN_BLOCK_CONTROL::setTransitions(), SCH_SELECTION_TOOL::setTransitions(), SIMULATOR_CONTROL::setTransitions(), VIA_STITCH_TOOL::setTransitions(), ZONE_FILLER_TOOL::setTransitions(), and ZOOM_TOOL::setTransitions().

◆ goInternal()

void TOOL_INTERACTIVE::goInternal ( TOOL_STATE_FUNC & aState,
const TOOL_EVENT_LIST & aConditions )
privateinherited

Definition at line 80 of file tool_interactive.cpp.

Referenced by Go().

◆ handleMoveToolActions()

◆ Increment()

int SCH_TOOL_BASE< SCH_EDIT_FRAME >::Increment ( const TOOL_EVENT & aEvent)
inherited

Definition at line 67 of file sch_tool_base.cpp.

Referenced by SCH_EDIT_TOOL::setTransitions().

◆ Init()

bool SCH_MOVE_TOOL::Init ( )
overridevirtual

Init() is called once upon a registration of the tool.

Returns
True if the initialization went fine, false - otherwise.

Reimplemented from TOOL_BASE.

Definition at line 184 of file sch_move_tool.cpp.

References CONDITIONAL_MENU::AddItem(), SCH_ACTIONS::alignToGrid, SCH_ACTIONS::drag, SCH_TOOL_BASE< T >::Init(), SCH_LINE_WIRE_BUS_TOOL::IsDrawingLineWireOrBus(), SCH_TOOL_BASE< SCH_EDIT_FRAME >::m_selectionTool, SCH_ACTIONS::move, and SELECTION_CONDITIONS::OnlyTypes().

◆ InteractiveDelete()

int SCH_TOOL_BASE< SCH_EDIT_FRAME >::InteractiveDelete ( const TOOL_EVENT & aEvent)
inherited

Definition at line 69 of file sch_tool_base.cpp.

Referenced by SCH_EDIT_TOOL::setTransitions().

◆ IsSymbolEditor()

bool SCH_TOOL_BASE< SCH_EDIT_FRAME >::IsSymbolEditor ( ) const
inherited

Returns true if the tool is running in the symbol editor.

Definition at line 65 of file sch_tool_base.cpp.

◆ IsToolActive()

◆ Main()

◆ migrateHiddenJunctions()

void SCH_MOVE_TOOL::migrateHiddenJunctions ( SCH_COMMIT * aCommit)
private

◆ moveItem()

◆ moveSelectionToSheet()

◆ orthoLineDrag()

◆ performItemMove()

◆ prepareMoveOperation()

◆ prepareSelection()

SCH_SELECTION & SCH_MOVE_TOOL::prepareSelection ( bool & aUnselect)
private

◆ preprocessBreakOrSliceSelection()

◆ recordRedundantJunctions()

void SCH_MOVE_TOOL::recordRedundantJunctions ( SCH_SELECTION & aSelection)
private

◆ refreshSelectionTraits()

void SCH_MOVE_TOOL::refreshSelectionTraits ( const SCH_SELECTION & aSelection,
bool & aHasSheetPins,
bool & aHasGraphicItems,
bool & aHasNonGraphicItems,
bool & aIsGraphicsOnly )
private

Refresh selection traits (sheet pins, graphic items, etc.)

Definition at line 1185 of file sch_move_tool.cpp.

References isGraphicItemForDrop(), SCH_SHEET_PIN_T, SCH_SHEET_T, and EDA_ITEM::Type().

Referenced by doMoveSelection().

◆ Reset()

void SCH_MOVE_TOOL::Reset ( RESET_REASON aReason)
overridevirtual

Bring the tool to a known, initial state.

If the tool claimed anything from the model or the view, it must release it when its reset.

Parameters
aReasoncontains information about the reason of tool reset.

Implements TOOL_BASE.

Definition at line 212 of file sch_move_tool.cpp.

References m_anchorPos, m_breakPos, m_changedDragLines, m_dragAdditions, m_hiddenJunctions, m_lineConnectionCache, m_mode, m_moveInProgress, m_moveOffset, m_newDragLines, m_sheetPinDragArc, m_specialCaseLabels, m_specialCaseSheetPins, SCH_TOOL_BASE< SCH_EDIT_FRAME >::m_view, SCH_TOOL_BASE< SCH_EDIT_FRAME >::MODEL_RELOAD, MOVE, SCH_TOOL_BASE< T >::Reset(), and SCH_TOOL_BASE< SCH_EDIT_FRAME >::SUPERMODEL_RELOAD.

◆ resetTransitions()

void TOOL_INTERACTIVE::resetTransitions ( )
privateinherited

Clear the current transition map and restores the default one created by setTransitions().

Definition at line 73 of file tool_interactive.cpp.

◆ restartMoveOperation()

◆ RunMainStack()

void TOOL_INTERACTIVE::RunMainStack ( std::function< void()> aFunc)
inherited

◆ saveCopyInUndoList()

void SCH_TOOL_BASE< SCH_EDIT_FRAME >::saveCopyInUndoList ( EDA_ITEM * aItem,
UNDO_REDO aType,
bool aAppend = false,
bool aDirtyConnectivity = true )
protectedinherited

Similar to m_frame->SaveCopyInUndoList(), but also handles connectivity.

Definition at line 92 of file sch_tool_base.cpp.

◆ SetContextMenu()

void TOOL_INTERACTIVE::SetContextMenu ( ACTION_MENU * aMenu,
CONTEXT_MENU_TRIGGER aTrigger = CMENU_BUTTON )
inherited

Assign a context menu and tells when it should be activated.

Parameters
aMenuis the menu to be assigned.
aTriggerdetermines conditions upon which the context menu is activated.

Definition at line 91 of file tool_interactive.cpp.

References CMENU_OFF, TOOL_BASE::m_toolMgr, and ACTION_MENU::SetTool().

Referenced by SELECTION_TOOL::doSelectionMenu(), DRAWING_TOOL::DrawVia(), and PCB_SELECTION_TOOL::Main().

◆ setTransitions()

void SCH_MOVE_TOOL::setTransitions ( )
overrideprivatevirtual

◆ setupItemsForDrag()

◆ setupItemsForMove()

void SCH_MOVE_TOOL::setupItemsForMove ( SCH_SELECTION & aSelection,
std::vector< DANGLING_END_ITEM > & aInternalPoints )
private

Setup items for move operation, marking dangling ends.

Definition at line 1285 of file sch_move_tool.cpp.

References DANGLING_END_ITEM_HELPER::sort_dangling_end_items().

Referenced by prepareMoveOperation().

◆ spreadMovingSheetPinGroups()

void SCH_MOVE_TOOL::spreadMovingSheetPinGroups ( const SCH_SELECTION & aSelection)
private

◆ startMoveOperation()

◆ trimDanglingLines()

◆ updateItem()

◆ updateStoredPositions()

void SCH_MOVE_TOOL::updateStoredPositions ( const SCH_SELECTION & aSelection)
private

◆ Wait()

TOOL_EVENT * TOOL_INTERACTIVE::Wait ( const TOOL_EVENT_LIST & aEventList = TOOL_EVENT( TC_ANY, TA_ANY ))
inherited

Suspend execution of the tool until an event specified in aEventList arrives.

No parameters means waiting for any event.

Definition at line 67 of file tool_interactive.cpp.

References TOOL_BASE::m_toolMgr.

Referenced by CONSTRAINT_EDIT_TOOL::AddPointConstraint(), PCB_TOOL_BASE::doInteractiveItemPlacement(), EDIT_TOOL::doMoveSelection(), SELECTION_TOOL::doSelectionMenu(), PCB_SELECTION_TOOL::DragSelectionArea(), DRAWING_TOOL::DrawBarcode(), DRAWING_TOOL::DrawDimension(), DRAWING_TOOL::drawManagedShape(), MICROWAVE_TOOL::drawMicrowaveInductor(), PL_DRAWING_TOOLS::DrawShape(), DRAWING_TOOL::drawShape(), DRAWING_TOOL::DrawTable(), DRAWING_TOOL::DrawVia(), DRAWING_TOOL::DrawZone(), PAD_TOOL::EnumeratePads(), ROUTER_TOOL::InlineDrag(), POSITION_RELATIVE_TOOL::InteractiveOffset(), CVPCB_CONTROL::Main(), CVPCB_FOOTPRINT_VIEWER_SELECTION_TOOL::Main(), EDA_3D_CONTROLLER::Main(), GERBVIEW_SELECTION_TOOL::Main(), PCB_PICKER_TOOL::Main(), PCB_SELECTION_TOOL::Main(), PCB_TEST_SELECTION_TOOL::Main(), PICKER_TOOL::Main(), PL_EDIT_TOOL::Main(), PL_POINT_EDITOR::Main(), PL_SELECTION_TOOL::Main(), SCH_SELECTION_TOOL::Main(), ZOOM_TOOL::Main(), ROUTER_TOOL::MainLoop(), GERBVIEW_INSPECTION_TOOL::MeasureTool(), PCB_VIEWER_TOOLS::MeasureTool(), PCB_POINT_EDITOR::OnSelectionChange(), ROUTER_TOOL::performDragging(), ROUTER_TOOL::performRouting(), BOARD_INSPECTION_TOOL::pickItemForInspection(), CONSTRAINT_EDIT_TOOL::pickLinearConstraint(), PCB_GROUP_TOOL::PickNewMember(), SCH_GROUP_TOOL::PickNewMember(), EDIT_TOOL::pickReferencePoint(), CONSTRAINT_EDIT_TOOL::pickShapeConstraint(), BOARD_EDITOR_CONTROL::PlaceFootprint(), DRAWING_TOOL::PlaceImportedGraphics(), PL_DRAWING_TOOLS::PlaceItem(), DRAWING_TOOL::PlaceMicroviaStack(), DRAWING_TOOL::PlaceReferenceImage(), DRAWING_TOOL::PlaceSubGrid(), DRAWING_TOOL::PlaceText(), DRAWING_TOOL::PlaceTuningPattern(), GRAPHIC_EDIT_TOOL::runInteractive(), MATCH_PROPERTIES_TOOL::runInteractive(), SCH_SELECTION_TOOL::selectLasso(), PL_SELECTION_TOOL::selectMultiple(), SCH_SELECTION_TOOL::selectMultiple(), PCB_SELECTION_TOOL::selectPoint(), PCB_SELECTION_TOOL::SelectPolyArea(), ZOOM_TOOL::selectRegion(), PCB_SELECTION_TOOL::selectTableCells(), SCH_SELECTION_TOOL::selectTableCells(), DRAWING_TOOL::SetAnchor(), and DIFF_PHASE_SKEW_TOOL::ShowDiffPhaseSkew().

Member Data Documentation

◆ m_anchorPos

OPT_VECTOR2I SCH_MOVE_TOOL::m_anchorPos
private

◆ m_breakPos

OPT_VECTOR2I SCH_MOVE_TOOL::m_breakPos
private

◆ m_changedDragLines

std::unordered_set<SCH_LINE*> SCH_MOVE_TOOL::m_changedDragLines
private

Lines changed by drag algorithm that weren't selected.

Definition at line 196 of file sch_move_tool.h.

Referenced by doMoveSelection(), finalizeMoveOperation(), orthoLineDrag(), Reset(), and restartMoveOperation().

◆ m_cursor

VECTOR2I SCH_MOVE_TOOL::m_cursor
private

Last cursor position (needed for getModificationPoint() to avoid changes of edit reference point).

Definition at line 212 of file sch_move_tool.h.

Referenced by doMoveSelection(), restartMoveOperation(), and startMoveOperation().

◆ m_dragAdditions

std::vector<KIID> SCH_MOVE_TOOL::m_dragAdditions
private

Items (such as wires) which were added to the selection for a drag.

Definition at line 187 of file sch_move_tool.h.

Referenced by doMoveSelection(), finalizeMoveOperation(), prepareMoveOperation(), Reset(), restartMoveOperation(), and setupItemsForDrag().

◆ m_frame

SCH_EDIT_FRAME* SCH_TOOL_BASE< SCH_EDIT_FRAME >::m_frame
protectedinherited

Definition at line 95 of file sch_tool_base.h.

Referenced by SCH_LINE_WIRE_BUS_TOOL::AddJunction(), SCH_LINE_WIRE_BUS_TOOL::AddJunctionsIfNeeded(), SCH_EDITOR_CONTROL::AddVariant(), SCH_MOVE_TOOL::AlignToGrid(), SCH_EDITOR_CONTROL::Annotate(), SCH_EDITOR_CONTROL::AssignFootprints(), SCH_EDITOR_CONTROL::AssignNetclass(), SCH_DRAWING_TOOLS::AutoPlaceAllSheetPins(), SCH_EDIT_TOOL::AutoplaceFields(), SCH_NAVIGATE_TOOL::Back(), SCH_LINE_WIRE_BUS_TOOL::BreakSegment(), SCH_NAVIGATE_TOOL::CanGoNext(), SCH_NAVIGATE_TOOL::CanGoPrevious(), SCH_NAVIGATE_TOOL::CanGoUp(), SCH_EDITOR_CONTROL::ChangeLineMode(), SCH_NAVIGATE_TOOL::changeSheet(), SCH_EDIT_TOOL::ChangeSymbols(), SCH_EDIT_TOOL::ChangeTextType(), SCH_NAVIGATE_TOOL::CleanHistory(), SCH_EDIT_TOOL::CleanupSheetPins(), SCH_EDITOR_CONTROL::ClearHighlight(), SCH_MOVE_TOOL::clearNewDragLines(), SCH_EDIT_TOOL::ClearVariantSymbol(), SCH_EDITOR_CONTROL::CopyVariant(), SCH_DRAWING_TOOLS::createNewLabel(), SCH_DRAWING_TOOLS::createNewText(), SCH_EDITOR_CONTROL::CrossProbeToPcb(), SCH_EDIT_TOOL::CycleBodyStyle(), SCH_ALIGN_TOOL::doAlignCleanup(), SCH_EDITOR_CONTROL::doCopy(), SCH_EDITOR_CONTROL::doCrossProbeSchToPcb(), SCH_EDIT_TOOL::DoDelete(), SCH_LINE_WIRE_BUS_TOOL::doDrawSegments(), SCH_MOVE_TOOL::doMoveSelection(), SCH_DRAWING_TOOLS::doSyncSheetsPins(), SCH_LINE_WIRE_BUS_TOOL::doUnfoldBus(), SCH_DRAWING_TOOLS::DrawRuleArea(), SCH_LINE_WIRE_BUS_TOOL::DrawSegments(), SCH_DRAWING_TOOLS::DrawSheet(), SCH_EDITOR_CONTROL::DrawSheetOnClipboard(), SCH_DRAWING_TOOLS::DrawTable(), SCH_MOVE_TOOL::dropWouldRecurse(), SCH_EDIT_TOOL::editFieldText(), SCH_EDIT_TOOL::EditPageNumber(), SCH_EDIT_TOOL::EditProperties(), SCH_EDITOR_CONTROL::EditSymbolFields(), SCH_EDITOR_CONTROL::EditSymbolLibraryLinks(), SCH_EDIT_TABLE_TOOL::EditTable(), SCH_EDITOR_CONTROL::EditVariantDescription(), SCH_EDITOR_CONTROL::EditWithSymbolEditor(), SCH_NAVIGATE_TOOL::EnterSheet(), SCH_EDITOR_CONTROL::ExportNetlist(), SCH_EDITOR_CONTROL::ExportSymbolsToLibrary(), SCH_EDIT_TABLE_TOOL::ExportTableToCSV(), SCH_MOVE_TOOL::finalizeMoveOperation(), SCH_EDITOR_CONTROL::FindNetInInspector(), SCH_EDITOR_CONTROL::FindSymbolAndItem(), SCH_MOVE_TOOL::findTargetSheet(), SCH_DRAWING_TOOLS::findWire(), SCH_DRAWING_TOOLS::findWireLabelDriverName(), SCH_LINE_WIRE_BUS_TOOL::finishSegments(), SCH_EDIT_TOOL::FixERCError(), SCH_EDIT_TOOL::FixERCErrorMenuText(), SCH_NAVIGATE_TOOL::Forward(), SCH_EDITOR_CONTROL::GenerateBOM(), SCH_EDITOR_CONTROL::GenerateBOMLegacy(), SCH_MOVE_TOOL::getConnectedDragItems(), SCH_MOVE_TOOL::getConnectedItems(), SCH_EDIT_TABLE_TOOL::getScreen(), SCH_LINE_WIRE_BUS_TOOL::getSheetPin(), SCH_EDIT_TOOL::GlobalEdit(), SCH_EDITOR_CONTROL::GridFeedback(), SCH_MOVE_TOOL::handleMoveToolActions(), SCH_EDITOR_CONTROL::HighlightNet(), SCH_EDITOR_CONTROL::HighlightNetChain(), SCH_EDITOR_CONTROL::HighlightNetCursor(), SCH_NAVIGATE_TOOL::HypertextCommand(), SCH_EDITOR_CONTROL::ImportFPAssignments(), SCH_EDITOR_CONTROL::ImportNonKicadSchematic(), SCH_DRAWING_TOOLS::ImportSheet(), SCH_EDITOR_CONTROL::IncrementAnnotations(), SCH_DRAWING_TOOLS::Init(), SCH_EDIT_TOOL::Init(), SCH_LINE_WIRE_BUS_TOOL::Init(), SCH_EDIT_TOOL::JustifyText(), SCH_NAVIGATE_TOOL::LeaveSheet(), SCH_EDITOR_CONTROL::MarkSimExclusions(), SCH_MOVE_TOOL::migrateHiddenJunctions(), SCH_EDIT_TOOL::Mirror(), SCH_EDIT_TOOL::modifyLockSelected(), SCH_ALIGN_TOOL::moveItem(), SCH_MOVE_TOOL::moveSelectionToSheet(), SCH_EDITOR_CONTROL::New(), SCH_NAVIGATE_TOOL::Next(), SCH_EDITOR_CONTROL::NextLineMode(), SCH_EDITOR_CONTROL::OnAngleSnapModeChanged(), SCH_EDITOR_CONTROL::Open(), SCH_MOVE_TOOL::orthoLineDrag(), SCH_EDITOR_CONTROL::PageSetup(), SCH_EDITOR_CONTROL::Paste(), SCH_DRAWING_TOOLS::PlaceImage(), SCH_EDITOR_CONTROL::PlaceLinkedDesignBlock(), SCH_DRAWING_TOOLS::PlaceNextSymbolUnit(), SCH_DRAWING_TOOLS::PlaceSymbol(), SCH_EDITOR_CONTROL::Plot(), SCH_MOVE_TOOL::prepareMoveOperation(), SCH_MOVE_TOOL::preprocessBreakOrSliceSelection(), SCH_NAVIGATE_TOOL::Previous(), SCH_EDITOR_CONTROL::Print(), SCH_EDITOR_CONTROL::processCmpToFootprintLinkFile(), SCH_EDIT_TOOL::Properties(), SCH_EDITOR_CONTROL::prunePastedSymbolInstances(), SCH_MOVE_TOOL::recordRedundantJunctions(), SCH_EDITOR_CONTROL::Redo(), SCH_EDITOR_CONTROL::RemapSymbols(), SCH_EDITOR_CONTROL::RemoveVariant(), SCH_EDITOR_CONTROL::RenameVariant(), SCH_EDIT_TOOL::RepeatDrawItem(), SCH_EDITOR_CONTROL::RescueLegacyProject(), SCH_EDITOR_CONTROL::rescueProject(), SCH_EDITOR_CONTROL::RescueSymbolLibTableProject(), SCH_EDITOR_CONTROL::RescueSymbols(), SCH_NAVIGATE_TOOL::ResetHistory(), SCH_EDITOR_CONTROL::Revert(), SCH_EDIT_TOOL::Rotate(), SCH_EDITOR_CONTROL::Save(), SCH_EDITOR_CONTROL::SaveAs(), SCH_EDITOR_CONTROL::SaveCurrSheetCopyAs(), SCH_EDITOR_CONTROL::SaveToLinkedDesignBlock(), SCH_EDIT_TOOL::SetAttribute(), SCH_EDIT_TOOL::SetVariantSymbol(), SCH_EDITOR_CONTROL::ShowCvpcb(), SCH_EDITOR_CONTROL::ShowPcbNew(), SCH_EDITOR_CONTROL::ShowSchematicSetup(), SCH_LINE_WIRE_BUS_TOOL::simplifyWireList(), SCH_EDITOR_CONTROL::SimProbe(), SCH_EDITOR_CONTROL::SimTune(), SCH_DRAWING_TOOLS::SingleClickPlace(), SCH_DRAWING_TOOLS::sizeSheet(), SCH_MOVE_TOOL::startMoveOperation(), SCH_LINE_WIRE_BUS_TOOL::startSegments(), SCH_EDIT_TOOL::Swap(), SCH_EDIT_TOOL::SwapPinLabels(), SCH_EDIT_TOOL::SwapPins(), SCH_EDIT_TOOL::SwapUnitLabels(), SCH_DRAWING_TOOLS::SyncAllSheetsPins(), SCH_DRAWING_TOOLS::SyncSheetsPins(), SCH_EDITOR_CONTROL::ToggleAnnotateAuto(), SCH_EDITOR_CONTROL::ToggleDirectiveLabels(), SCH_EDITOR_CONTROL::ToggleERCErrors(), SCH_EDITOR_CONTROL::ToggleERCExclusions(), SCH_EDITOR_CONTROL::ToggleERCWarnings(), SCH_EDITOR_CONTROL::ToggleHiddenFields(), SCH_EDITOR_CONTROL::ToggleHiddenPins(), SCH_EDITOR_CONTROL::ToggleOPCurrents(), SCH_EDITOR_CONTROL::ToggleOPVoltages(), SCH_EDITOR_CONTROL::TogglePinAltIcons(), SCH_MOVE_TOOL::trimDanglingLines(), SCH_LINE_WIRE_BUS_TOOL::TrimOverLappingWires(), SCH_DRAWING_TOOLS::TwoClickPlace(), SCH_EDITOR_CONTROL::Undo(), SCH_LINE_WIRE_BUS_TOOL::UnfoldBus(), SCH_EDITOR_CONTROL::UpdateFromPCB(), SCH_EDITOR_CONTROL::UpdateNetHighlighting(), SCH_EDITOR_CONTROL::updatePastedSymbol(), and SCH_EDITOR_CONTROL::UpdatePCB().

◆ m_hiddenJunctions

std::vector<HIDDEN_JUNCTION> SCH_MOVE_TOOL::m_hiddenJunctions
private

◆ m_inMoveTool

bool SCH_MOVE_TOOL::m_inMoveTool
private

Re-entrancy guard.

Definition at line 180 of file sch_move_tool.h.

Referenced by doMoveSelection(), Main(), moveItem(), and SCH_MOVE_TOOL().

◆ m_isSymbolEditor

bool SCH_TOOL_BASE< SCH_EDIT_FRAME >::m_isSymbolEditor
protectedinherited

Definition at line 98 of file sch_tool_base.h.

◆ m_lineConnectionCache

std::map<SCH_LINE*, EDA_ITEMS> SCH_MOVE_TOOL::m_lineConnectionCache
private

Cache of the line's original connections before dragging started.

Definition at line 190 of file sch_move_tool.h.

Referenced by doMoveSelection(), getConnectedDragItems(), orthoLineDrag(), Reset(), restartMoveOperation(), and setupItemsForDrag().

◆ m_menu

std::unique_ptr<TOOL_MENU> TOOL_INTERACTIVE::m_menu
protectedinherited

The functions below are not yet implemented - their interface may change.

Definition at line 121 of file tool_interactive.h.

Referenced by PCB_TOOL_BASE::doInteractiveItemPlacement(), DRAWING_TOOL::DrawBarcode(), DRAWING_TOOL::DrawDimension(), DRAWING_TOOL::drawManagedShape(), MICROWAVE_TOOL::drawMicrowaveInductor(), PL_DRAWING_TOOLS::DrawShape(), DRAWING_TOOL::drawShape(), DRAWING_TOOL::DrawTable(), DRAWING_TOOL::DrawZone(), PAD_TOOL::EnumeratePads(), GetToolMenu(), BOARD_EDITOR_CONTROL::Init(), CVPCB_FOOTPRINT_VIEWER_SELECTION_TOOL::Init(), DRAWING_TOOL::Init(), EDA_3D_CONTROLLER::Init(), FOOTPRINT_EDITOR_CONTROL::Init(), GERBVIEW_SELECTION_TOOL::Init(), PAD_TOOL::Init(), PCB_DESIGN_BLOCK_CONTROL::Init(), PCB_PICKER_TOOL::Init(), PCB_SELECTION_TOOL::Init(), PCB_TOOL_BASE::Init(), PCB_VIEWER_TOOLS::Init(), PICKER_TOOL::Init(), PL_DRAWING_TOOLS::Init(), PL_EDIT_TOOL::Init(), PL_SELECTION_TOOL::Init(), ROUTER_TOOL::Init(), SCH_DESIGN_BLOCK_CONTROL::Init(), SCH_SELECTION_TOOL::Init(), ZOOM_TOOL::Init(), CVPCB_FOOTPRINT_VIEWER_SELECTION_TOOL::Main(), EDA_3D_CONTROLLER::Main(), GERBVIEW_SELECTION_TOOL::Main(), PCB_PICKER_TOOL::Main(), PCB_SELECTION_TOOL::Main(), PICKER_TOOL::Main(), PL_EDIT_TOOL::Main(), PL_SELECTION_TOOL::Main(), SCH_SELECTION_TOOL::Main(), ZOOM_TOOL::Main(), ROUTER_TOOL::MainLoop(), GERBVIEW_INSPECTION_TOOL::MeasureTool(), PCB_VIEWER_TOOLS::MeasureTool(), ROUTER_TOOL::performDragging(), ROUTER_TOOL::performRouting(), BOARD_EDITOR_CONTROL::PlaceFootprint(), DRAWING_TOOL::PlaceImportedGraphics(), PL_DRAWING_TOOLS::PlaceItem(), DRAWING_TOOL::PlaceMicroviaStack(), DRAWING_TOOL::PlaceReferenceImage(), DRAWING_TOOL::PlaceSubGrid(), DRAWING_TOOL::PlaceText(), DRAWING_TOOL::PlaceTuningPattern(), DRAWING_TOOL::SetAnchor(), TOOL_INTERACTIVE(), and TOOL_INTERACTIVE().

◆ m_mode

◆ m_moveInProgress

bool SCH_MOVE_TOOL::m_moveInProgress
private

Flag determining if anything is being dragged right now.

Definition at line 183 of file sch_move_tool.h.

Referenced by doMoveSelection(), Main(), Reset(), restartMoveOperation(), SCH_MOVE_TOOL(), and startMoveOperation().

◆ m_moveOffset

VECTOR2I SCH_MOVE_TOOL::m_moveOffset
private

◆ m_newDragLines

std::unordered_set<SCH_LINE*> SCH_MOVE_TOOL::m_newDragLines
private

Lines added at bend points dynamically during the move.

Definition at line 193 of file sch_move_tool.h.

Referenced by clearNewDragLines(), doMoveSelection(), finalizeMoveOperation(), orthoLineDrag(), and Reset().

◆ m_pickerItem

EDA_ITEM* SCH_TOOL_BASE< SCH_EDIT_FRAME >::m_pickerItem
protectedinherited

Definition at line 99 of file sch_tool_base.h.

Referenced by SCH_EDIT_TOOL::SCH_EDIT_TOOL().

◆ m_selectionTool

SCH_SELECTION_TOOL* SCH_TOOL_BASE< SCH_EDIT_FRAME >::m_selectionTool
protectedinherited

Definition at line 97 of file sch_tool_base.h.

Referenced by SCH_MOVE_TOOL::AlignToGrid(), SCH_DRAWING_TOOLS::AutoPlaceAllSheetPins(), SCH_EDIT_TOOL::AutoplaceFields(), SCH_EDIT_TOOL::ChangeSymbols(), SCH_EDIT_TOOL::ChangeTextType(), SCH_EDIT_TOOL::CleanupSheetPins(), SCH_EDIT_TOOL::ClearVariantSymbol(), SCH_EDIT_TOOL::CycleBodyStyle(), SCH_EDIT_TOOL::DoDelete(), SCH_LINE_WIRE_BUS_TOOL::doDrawSegments(), SCH_MOVE_TOOL::doMoveSelection(), SCH_DRAWING_TOOLS::DrawRuleArea(), SCH_DRAWING_TOOLS::DrawSheet(), SCH_DRAWING_TOOLS::DrawTable(), SCH_EDIT_TOOL::EditField(), SCH_EDIT_TOOL::EditPageNumber(), SCH_EDIT_TABLE_TOOL::EditTable(), SCH_EDIT_TABLE_TOOL::ExportTableToCSV(), SCH_MOVE_TOOL::finalizeMoveOperation(), SCH_LINE_WIRE_BUS_TOOL::getBusForUnfolding(), SCH_ALIGN_TOOL::GetSelections(), SCH_EDIT_TABLE_TOOL::getTableCellSelection(), SCH_MOVE_TOOL::handleMoveToolActions(), SCH_DRAWING_TOOLS::ImportSheet(), SCH_ALIGN_TOOL::Init(), SCH_EDIT_TABLE_TOOL::Init(), SCH_EDIT_TOOL::Init(), SCH_LINE_WIRE_BUS_TOOL::Init(), SCH_MOVE_TOOL::Init(), SCH_EDIT_TOOL::JustifyText(), SCH_MOVE_TOOL::Main(), SCH_EDIT_TOOL::Mirror(), SCH_EDIT_TOOL::modifyLockSelected(), SCH_DRAWING_TOOLS::PlaceImage(), SCH_DRAWING_TOOLS::PlaceNextSymbolUnit(), SCH_DRAWING_TOOLS::PlaceSymbol(), SCH_MOVE_TOOL::prepareMoveOperation(), SCH_MOVE_TOOL::prepareSelection(), SCH_MOVE_TOOL::preprocessBreakOrSliceSelection(), SCH_EDIT_TOOL::Properties(), SCH_MOVE_TOOL::restartMoveOperation(), SCH_EDIT_TOOL::Rotate(), SCH_EDIT_TOOL::SetAttribute(), SCH_MOVE_TOOL::setupItemsForDrag(), SCH_EDIT_TOOL::SetVariantSymbol(), SCH_DRAWING_TOOLS::SingleClickPlace(), SCH_LINE_WIRE_BUS_TOOL::startSegments(), SCH_EDIT_TOOL::Swap(), SCH_EDIT_TOOL::SwapPinLabels(), SCH_EDIT_TOOL::SwapPins(), SCH_EDIT_TOOL::SwapUnitLabels(), SCH_DRAWING_TOOLS::SyncAllSheetsPins(), SCH_DRAWING_TOOLS::SyncSheetsPins(), and SCH_DRAWING_TOOLS::TwoClickPlace().

◆ m_sheetPinDragArc

std::map<SCH_SHEET_PIN*, long long> SCH_MOVE_TOOL::m_sheetPinDragArc
private

◆ m_specialCaseLabels

std::map<SCH_LABEL_BASE*, SPECIAL_CASE_LABEL_INFO> SCH_MOVE_TOOL::m_specialCaseLabels
private

◆ m_specialCaseSheetPins

std::map<SCH_SHEET_PIN*, std::pair<SCH_LINE*, bool> > SCH_MOVE_TOOL::m_specialCaseSheetPins
private

◆ m_toolId

TOOL_ID TOOL_BASE::m_toolId
protectedinherited

Unique id, assigned by a TOOL_MANAGER instance.

Definition at line 215 of file tool_base.h.

Referenced by TOOL_INTERACTIVE::Activate(), GetId(), IsToolActive(), and TOOL_BASE().

◆ m_toolMgr

TOOL_MANAGER* TOOL_BASE::m_toolMgr
protectedinherited

Definition at line 220 of file tool_base.h.

Referenced by TOOL_INTERACTIVE::Activate(), SELECTION_TOOL::AddItemsToSel(), SELECTION_TOOL::AddItemToSel(), CONSTRAINT_EDIT_TOOL::AddPointConstraint(), GROUP_TOOL::AddToGroup(), PCB_CONTROL::AppendBoard(), PCB_CONTROL::ApplyDesignBlockLayout(), BOARD_EDITOR_CONTROL::AssignNetclass(), CVPCB_ASSOCIATION_TOOL::Associate(), attachManager(), SCH_SELECTION_TOOL::autostartEvent(), EDIT_TOOL::BooleanPolygons(), BOARD_INSPECTION_TOOL::calculateSelectionRatsnest(), ROUTER_TOOL::CanInlineDrag(), BOARD_EDITOR_CONTROL::ChangeLineMode(), FOOTPRINT_EDITOR_CONTROL::ChangeLineMode(), EDIT_TOOL::ChangeTrackLayer(), EDIT_TOOL::ChangeTrackWidth(), GERBVIEW_CONTROL::ClearAllLayers(), BOARD_INSPECTION_TOOL::ClearHighlight(), PCB_SELECTION_TOOL::ClearSelection(), PL_SELECTION_TOOL::ClearSelection(), SCH_SELECTION_TOOL::ClearSelection(), GERBVIEW_SELECTION_TOOL::clearSelection(), PCB_EDIT_TABLE_TOOL::clearSelection(), VIA_STITCH_TOOL::ClearStitchViaExclusions(), ROUTER_TOOL::commitPendingViaStack(), PAD_TOOL::copyPadSettings(), EDIT_TOOL::copyToClipboard(), ARRAY_TOOL::CreateArray(), PCB_GROUP_TOOL::createCommit(), SCH_GROUP_TOOL::createCommit(), MICROWAVE_TOOL::createInductorBetween(), DRC_TOOL::CrossProbe(), COMMON_TOOLS::Cursor45Crosshairs(), COMMON_TOOLS::CursorControl(), COMMON_TOOLS::CursorFullCrosshairs(), COMMON_TOOLS::CursorSmallCrosshairs(), PCB_CONTROL::CycleLayerPresets(), EDIT_TOOL::DeleteItems(), BOARD_INSPECTION_TOOL::DiffFootprint(), BOARD_EDITOR_CONTROL::doCrossProbePcbToSch(), BOARD_INSPECTION_TOOL::doHideRatsnestNet(), PCB_TOOL_BASE::doInteractiveItemPlacement(), EDIT_TOOL::doMoveSelection(), SELECTION_TOOL::doSelectionMenu(), PCB_SELECTION_TOOL::doSyncSelection(), COMMON_TOOLS::doZoomInOut(), COMMON_TOOLS::doZoomToPreset(), EDIT_TOOL::Drag(), PCB_SELECTION_TOOL::DragSelectionArea(), DRAWING_TOOL::DrawArc(), DRAWING_TOOL::DrawBarcode(), DRAWING_TOOL::DrawBezier(), DRAWING_TOOL::DrawDimension(), DRAWING_TOOL::DrawEllipseArc(), DRAWING_TOOL::drawManagedShape(), DRAWING_TOOL::DrawRectangle(), PL_DRAWING_TOOLS::DrawShape(), DRAWING_TOOL::drawShape(), DRAWING_TOOL::DrawTable(), DRAWING_TOOL::DrawZone(), BOARD_EDITOR_CONTROL::DrillOrigin(), EDIT_TOOL::Duplicate(), BOARD_EDITOR_CONTROL::EditFpInFpEditor(), PAD_TOOL::EditPad(), PCB_EDIT_TABLE_TOOL::EditTable(), PCB_SELECTION_TOOL::EnterGroup(), SCH_SELECTION_TOOL::EnterGroup(), PAD_TOOL::EnumeratePads(), VIA_STITCH_TOOL::ExcludeStitchVia(), KICAD_MANAGER_CONTROL::Execute(), PCB_SELECTION_TOOL::ExitGroup(), SCH_SELECTION_TOOL::ExitGroup(), PCB_SELECTION_TOOL::expandConnection(), EDA_3D_CONTROLLER::ExportImage(), PCB_EDIT_TABLE_TOOL::ExportTableToCSV(), PCB_SELECTION_TOOL::extendTableCellSelectionTo(), ZONE_FILLER_TOOL::FillAllZones(), PCB_SELECTION_TOOL::filterSelection(), PCB_SELECTION_TOOL::FindItem(), DRC_TOOL::FixDRCError(), EDIT_TOOL::Flip(), EDIT_TOOL::GetAndPlace(), GetManager(), getModelInternal(), DRAWING_TOOL::getSourceZoneForAction(), PCB_EDIT_TABLE_TOOL::getTableCellSelection(), getToolHolderInternal(), PCB_EDIT_TABLE_TOOL::getToolMgr(), getView(), getViewControls(), PCB_SELECTION_TOOL::grabUnconnected(), COMMON_TOOLS::GridFast1(), COMMON_TOOLS::GridFast2(), COMMON_TOOLS::GridFastCycle(), COMMON_TOOLS::GridNext(), COMMON_TOOLS::GridOrigin(), PCB_CONTROL::GridPlaceOrigin(), COMMON_TOOLS::GridPreset(), COMMON_TOOLS::GridPrev(), PCB_GROUP_TOOL::Group(), SCH_GROUP_TOOL::Group(), EDIT_TOOL::HealShapes(), PCB_CONTROL::HighContrastModeCycle(), CONSTRAINT_EDIT_TOOL::HighlightConstraintMembers(), GERBVIEW_CONTROL::HighlightControl(), BOARD_INSPECTION_TOOL::HighlightItem(), BOARD_INSPECTION_TOOL::HighlightNet(), BOARD_INSPECTION_TOOL::highlightNet(), BOARD_INSPECTION_TOOL::HighlightNetChain(), PL_EDIT_TOOL::ImportDrawingSheetContent(), FOOTPRINT_EDITOR_CONTROL::ImportFootprint(), EDIT_TOOL::Increment(), SCH_TOOL_BASE< T >::Increment(), ALIGN_DISTRIBUTE_TOOL::Init(), BOARD_EDITOR_CONTROL::Init(), BOARD_INSPECTION_TOOL::Init(), BOARD_REANNOTATE_TOOL::Init(), CONSTRAINT_EDIT_TOOL::Init(), CONVERT_TOOL::Init(), DRAWING_TOOL::Init(), EDIT_TOOL::Init(), FOOTPRINT_CHOOSER_SELECTION_TOOL::Init(), FOOTPRINT_EDITOR_CONTROL::Init(), GENERATOR_TOOL::Init(), GLOBAL_EDIT_TOOL::Init(), GRAPHIC_EDIT_TOOL::Init(), GROUP_TOOL::Init(), MATCH_PROPERTIES_TOOL::Init(), PAD_TOOL::Init(), PCB_EDIT_TABLE_TOOL::Init(), PCB_POINT_EDITOR::Init(), PCB_SELECTION_TOOL::Init(), PL_DRAWING_TOOLS::Init(), PL_EDIT_TOOL::Init(), PL_POINT_EDITOR::Init(), POSITION_RELATIVE_TOOL::Init(), ROUTER_TOOL::Init(), SCH_TOOL_BASE< T >::Init(), VIA_STITCH_TOOL::Init(), ROUTER_TOOL::InlineBreakTrack(), ROUTER_TOOL::InlineDrag(), BOARD_INSPECTION_TOOL::InspectClearance(), BOARD_INSPECTION_TOOL::InspectConstraints(), BOARD_INSPECTION_TOOL::InspectDRCError(), PCB_CONTROL::InteractiveDelete(), PL_EDIT_TOOL::InteractiveDelete(), SCH_TOOL_BASE< T >::InteractiveDelete(), POSITION_RELATIVE_TOOL::InteractiveOffset(), EDIT_TOOL::invokeInlineRouter(), EDIT_TOOL::isRouterActive(), IsToolActive(), EDIT_TOOL::JustifyText(), BOARD_INSPECTION_TOOL::LocalRatsnestTool(), CVPCB_CONTROL::Main(), CVPCB_FOOTPRINT_VIEWER_SELECTION_TOOL::Main(), EDA_3D_CONTROLLER::Main(), GERBVIEW_SELECTION_TOOL::Main(), PCB_PICKER_TOOL::Main(), PCB_SELECTION_TOOL::Main(), PL_EDIT_TOOL::Main(), PL_SELECTION_TOOL::Main(), SCH_SELECTION_TOOL::Main(), ROUTER_TOOL::MainLoop(), GENERATOR_TOOL::MakeViaStackFromSelection(), PCB_VIEWER_TOOLS::MeasureTool(), EDIT_TOOL::Mirror(), BOARD_EDITOR_CONTROL::modifyLockSelected(), EDIT_TOOL::Move(), EDIT_TOOL::MoveExact(), PCB_VIEWER_TOOLS::NextLineMode(), ARRAY_TOOL::onDialogClosed(), SELECTION_TOOL::onDisambiguationExpire(), COMMON_TOOLS::OnGridChanged(), PCB_POINT_EDITOR::OnSelectionChange(), ROUTER_TOOL::OptimizeSelected(), CONVERT_TOOL::OutsetItems(), PCB_CONTROL::Paste(), PL_EDIT_TOOL::Paste(), PAD_TOOL::pastePadProperties(), ROUTER_TOOL::performDragging(), ROUTER_TOOL::performRouting(), BOARD_INSPECTION_TOOL::pickItemForInspection(), CONSTRAINT_EDIT_TOOL::pickLinearConstraint(), PCB_GROUP_TOOL::PickNewMember(), SCH_GROUP_TOOL::PickNewMember(), EDIT_TOOL::pickReferencePoint(), CONSTRAINT_EDIT_TOOL::pickShapeConstraint(), PCB_CONTROL::placeBoardItems(), PCB_CONTROL::PlaceDrillMap(), BOARD_EDITOR_CONTROL::PlaceFootprint(), DRAWING_TOOL::PlaceImportedGraphics(), PL_DRAWING_TOOLS::PlaceItem(), PCB_CONTROL::PlaceLinkedDesignBlock(), DRAWING_TOOL::PlaceMicroviaStack(), DRAWING_TOOL::PlaceReferenceImage(), DRAWING_TOOL::PlaceSubGrid(), DRAWING_TOOL::PlaceText(), DRAWING_TOOL::PlaceTuningPattern(), GERBVIEW_CONTROL::Print(), PCB_CONTROL::Print(), EDIT_TOOL::Properties(), PAD_TOOL::pushPadSettings(), EDIT_TOOL::rebuildConnectivity(), ZONE_FILLER_TOOL::rebuildConnectivity(), SCH_SELECTION_TOOL::RebuildSelection(), PAD_TOOL::RecombinePad(), ZONE_FILLER_TOOL::regenerateDirtyGenerators(), GENERATOR_TOOL::RegenerateSelected(), POSITION_RELATIVE_TOOL::RelativeItemSelectionMove(), EDA_3D_CONTROLLER::ReloadBoard(), EDIT_TOOL::Remove(), PCB_POINT_EDITOR::removeCorner(), GROUP_TOOL::RemoveFromGroup(), SELECTION_TOOL::RemoveItemFromSel(), SELECTION_TOOL::RemoveItemsFromSel(), FOOTPRINT_EDITOR_CONTROL::RenameFootprint(), MULTICHANNEL_TOOL::repeatLayout(), PCB_SELECTION_TOOL::RequestSelection(), SCH_SELECTION_TOOL::RequestSelection(), COMMON_TOOLS::Reset(), DIFF_PHASE_SKEW_TOOL::Reset(), EDA_3D_CONTROLLER::Reset(), GENERATOR_TOOL_PNS_PROXY::Reset(), PNS::TOOL_BASE::Reset(), COMMON_TOOLS::ResetLocalCoords(), EDIT_TOOL::reSolveConstraintsAfterEdit(), ROUTER_TOOL::restoreSelection(), EDIT_TOOL::Rotate(), ROUTER_TOOL::RouteSelected(), GRAPHIC_EDIT_TOOL::runInteractive(), MATCH_PROPERTIES_TOOL::runInteractive(), DRAWING_TOOL::runSimpleShapeDraw(), DRC_TOOL::RunTests(), PCB_CONTROL::SaveToLinkedDesignBlock(), SCH_SELECTION_TOOL::Selectable(), PCB_SELECTION_TOOL::SelectAll(), PL_SELECTION_TOOL::SelectAll(), SCH_SELECTION_TOOL::SelectAll(), PCB_SELECTION_TOOL::selectChartRow(), PCB_SELECTION_TOOL::SelectColumns(), SCH_SELECTION_TOOL::SelectColumns(), SCH_SELECTION_TOOL::SelectConnection(), PCB_TOOL_BASE::selection(), PCB_TOOL_BASE::selection(), COMMON_TOOLS::SelectionTool(), GERBVIEW_SELECTION_TOOL::SelectItem(), PCB_PICKER_TOOL::SelectItemInteractively(), GERBVIEW_SELECTION_TOOL::SelectItems(), SCH_SELECTION_TOOL::selectLasso(), PCB_SELECTION_TOOL::SelectMultiple(), SCH_SELECTION_TOOL::SelectMultiple(), PL_SELECTION_TOOL::selectMultiple(), PCB_SELECTION_TOOL::selectNet(), PCB_SELECTION_TOOL::selectNetChain(), SCH_SELECTION_TOOL::SelectNext(), PL_SELECTION_TOOL::SelectPoint(), SCH_SELECTION_TOOL::SelectPoint(), GERBVIEW_SELECTION_TOOL::selectPoint(), PCB_SELECTION_TOOL::selectPoint(), PCB_TEST_SELECTION_TOOL::selectPoint(), SCH_SELECTION_TOOL::selectPoint(), PCB_PICKER_TOOL::SelectPointInteractively(), PCB_SELECTION_TOOL::SelectPolyArea(), SCH_SELECTION_TOOL::SelectPrevious(), PCB_SELECTION_TOOL::SelectRows(), SCH_SELECTION_TOOL::SelectRows(), PCB_SELECTION_TOOL::selectSameSheet(), PCB_SELECTION_TOOL::selectSheetContents(), PCB_SELECTION_TOOL::SelectTable(), SCH_SELECTION_TOOL::SelectTable(), PCB_SELECTION_TOOL::selectTableCells(), SCH_SELECTION_TOOL::selectTableCells(), DRAWING_TOOL::SetAnchor(), TOOL_INTERACTIVE::SetContextMenu(), EDA_3D_CONTROLLER::SetMaterial(), PCB_SELECTION_TOOL::SetSelectPoly(), SCH_SELECTION_TOOL::SetSelectPoly(), PCB_SELECTION_TOOL::SetSelectRect(), SCH_SELECTION_TOOL::SetSelectRect(), DRC_TOOL::ShowDesignRuleEditorDialog(), DIFF_PHASE_SKEW_TOOL::ShowDiffPhaseSkew(), DRC_TOOL::ShowDRCDialog(), DRC_RULE_EDITOR_TOOL::ShowDRCRuleEditorDialog(), BOARD_INSPECTION_TOOL::ShowFootprintLinks(), EDIT_TOOL::SimplifyPolygons(), DRAWING_TOOL::snapEventPosition(), PCB_CONTROL::SnapMode(), EDIT_TOOL::Swap(), EDIT_TOOL::SwapGateNets(), EDIT_TOOL::SwapPadNets(), SCH_SELECTION_TOOL::SyncSelection(), COMMON_TOOLS::ToggleCursor(), EDIT_TOOL::ToggleFootprintAttribute(), EDA_3D_CONTROLLER::ToggleLayersManager(), EDA_3D_CONTROLLER::ToggleRaytracing(), PCB_SELECTION_TOOL::toggleTableCellSelection(), EDA_3D_CONTROLLER::ToggleVisibility(), TOOL_BASE(), BOARD_EDITOR_CONTROL::TrackWidthDec(), BOARD_EDITOR_CONTROL::TrackWidthInc(), GROUP_TOOL::Ungroup(), PCB_SELECTION_TOOL::unrouteSegment(), PCB_SELECTION_TOOL::unrouteSelected(), PCB_SELECTION_TOOL::UnselectAll(), SCH_SELECTION_TOOL::UnselectAll(), GERBVIEW_SELECTION_TOOL::UnselectItem(), GERBVIEW_SELECTION_TOOL::UnselectItems(), PNS::TOOL_BASE::updateEndItem(), PCB_POINT_EDITOR::updateItem(), BOARD_INSPECTION_TOOL::UpdateLocalRatsnest(), GERBVIEW_CONTROL::UpdateMessagePanel(), PCB_CONTROL::UpdateMessagePanel(), PL_EDITOR_CONTROL::UpdateMessagePanel(), EDIT_TOOL::updateModificationPoint(), MULTICHANNEL_TOOL::UpdatePickedItem(), PNS::TOOL_BASE::updateStartItem(), BOARD_EDITOR_CONTROL::ViaSizeDec(), BOARD_EDITOR_CONTROL::ViaSizeInc(), TOOL_INTERACTIVE::Wait(), BOARD_EDITOR_CONTROL::ZoneDuplicate(), ZONE_FILLER_TOOL::ZoneFill(), BOARD_EDITOR_CONTROL::ZoneMerge(), BOARD_EDITOR_CONTROL::ZonePriorityLower(), BOARD_EDITOR_CONTROL::ZonePriorityMoveToBottom(), BOARD_EDITOR_CONTROL::ZonePriorityMoveToTop(), BOARD_EDITOR_CONTROL::ZonePriorityRaise(), and ZONE_FILLER_TOOL::ZoneUnfill().

◆ m_toolName

std::string TOOL_BASE::m_toolName
protectedinherited

Names are expected to obey the format application.ToolName (eg.

pcbnew.InteractiveSelection).

Definition at line 219 of file tool_base.h.

Referenced by GetName(), and TOOL_BASE().

◆ m_type

TOOL_TYPE TOOL_BASE::m_type
protectedinherited

Definition at line 214 of file tool_base.h.

Referenced by GetType(), and TOOL_BASE().

◆ m_view


The documentation for this class was generated from the following files: