Horizon
|
Common interface for all Tools. More...
#include <tool_pub.hpp>
Public Member Functions | |
ToolBase (class IDocument *c, ToolID tid) | |
void | set_imp_interface (class ImpInterface *i) |
void | set_transient () |
virtual void | apply_settings () |
virtual std::map< ToolID, ToolSettings * > | get_all_settings () |
virtual std::set< InToolActionID > | get_actions () const |
virtual ToolResponse | begin (const ToolArgs &args)=0 |
Gets called right after the constructor has finished. | |
virtual ToolResponse | update (const ToolArgs &args)=0 |
Gets called whenever the user generated some sort of input. | |
virtual bool | can_begin () |
virtual bool | is_specific () |
Public Attributes | |
std::set< SelectableRef > | selection |
Protected Member Functions | |
virtual ToolSettings * | get_settings () |
Protected Attributes | |
Documents | doc |
class ImpInterface * | imp = nullptr |
const ToolID | tool_id |
bool | is_transient = false |
Common interface for all Tools.
|
pure virtual |
Gets called right after the constructor has finished.
Used to get the initial placement right and set things up. For non-interactive Tools (e.g. DELETE), this one may return ToolResponse::end()
Implemented in horizon::ToolAddBlockInstance, horizon::ToolAddKeepout, horizon::ToolAddPart, horizon::ToolAddVertex, horizon::ToolAlignAndDistribute, horizon::ToolAssignPart, horizon::ToolBackannotateConnectionLines, horizon::ToolBendLineNet, horizon::ToolChangeSymbol, horizon::ToolChangeUnit, horizon::ToolClearPart, horizon::ToolDelete, horizon::ToolDisconnect, horizon::ToolDragKeepSlope, horizon::ToolDragPolygonEdge, horizon::ToolDrawArc, horizon::ToolDrawConnectionLine, horizon::ToolDrawDimension, horizon::ToolDrawLine, horizon::ToolDrawLineCircle, horizon::ToolDrawLineNet, horizon::ToolDrawLineRectangle, horizon::ToolDrawNetTie, horizon::ToolDrawPolygon, horizon::ToolDrawPolygonCircle, horizon::ToolDrawPolygonRectangle, horizon::ToolDrawTrack, horizon::ToolEditBoardHole, horizon::ToolEditCustomValue, horizon::ToolEditLineRectangle, horizon::ToolEditPadParameterSet, horizon::ToolEditPlane, horizon::ToolEditShape, horizon::ToolEditSymbolPinNames, horizon::ToolEditText, horizon::ToolEditVia, horizon::ToolEnterDatum, horizon::ToolExchangeGates, horizon::ToolFix, horizon::ToolFlipNetTie, horizon::ToolGenerateCourtyard, horizon::ToolGenerateSilkscreen, horizon::ToolImportDXF, horizon::ToolImportKiCadPackage, horizon::ToolLineLoopToPolygon, horizon::ToolLinesToTracks, horizon::ToolLock, horizon::ToolManageBuses, horizon::ToolManagePowerNets, horizon::ToolMapPackage, horizon::ToolMapPin, horizon::ToolMapPort, horizon::ToolMapSymbol, horizon::ToolMeasure, horizon::ToolMergeDuplicateJunctions, horizon::ToolMove, horizon::ToolMoveNetSegment, horizon::ToolMoveTrackCenter, horizon::ToolMoveTrackConnection, horizon::ToolNoPopulate, horizon::ToolPaste, horizon::ToolPastePart, horizon::ToolPastePlacement, horizon::ToolPlaceBoardHole, horizon::ToolPlaceBoardPanel, horizon::ToolPlaceDecal, horizon::ToolPlaceDot, horizon::ToolPlaceHole, horizon::ToolPlaceJunctionBase, horizon::ToolPlacePad, horizon::ToolPlacePicture, horizon::ToolPlacePowerSymbol, horizon::ToolPlaceRefdesAndValue, horizon::ToolPlaceShape, horizon::ToolPlaceText, horizon::ToolPolygonToLineLoop, horizon::ToolRenumberPads, horizon::ToolResizeSymbol, horizon::ToolRotateArbitrary, horizon::ToolRoundOffVertex, horizon::ToolRouteTrackInteractive, horizon::ToolSelectConnectedLines, horizon::ToolSetDiffpair, horizon::ToolSetGroup, horizon::ToolSetNotConnected, horizon::ToolSetNotConnectedAll, horizon::ToolSetTrackWidth, horizon::ToolSetViaNet, horizon::ToolSmash, horizon::ToolSmashPackageOutline, horizon::ToolSmashPanelOutline, horizon::ToolSmashSilkscreenGraphics, horizon::ToolSwapGates, horizon::ToolSwapNets, horizon::ToolTieNets, and horizon::ToolUpdateAllPlanes.
|
inlinevirtual |
Reimplemented in horizon::ToolAddBlockInstance, horizon::ToolAddKeepout, horizon::ToolAddPart, horizon::ToolAddVertex, horizon::ToolAlignAndDistribute, horizon::ToolAssignPart, horizon::ToolBackannotateConnectionLines, horizon::ToolBendLineNet, horizon::ToolChangeSymbol, horizon::ToolChangeUnit, horizon::ToolClearPart, horizon::ToolDelete, horizon::ToolDisconnect, horizon::ToolDragKeepSlope, horizon::ToolDragPolygonEdge, horizon::ToolDrawArc, horizon::ToolDrawConnectionLine, horizon::ToolDrawDimension, horizon::ToolDrawLine, horizon::ToolDrawLineCircle, horizon::ToolDrawLineNet, horizon::ToolDrawLineRectangle, horizon::ToolDrawNetTie, horizon::ToolDrawPlane, horizon::ToolDrawPolygon, horizon::ToolDrawPolygonCircle, horizon::ToolDrawPolygonRectangle, horizon::ToolDrawTrack, horizon::ToolEditBoardHole, horizon::ToolEditCustomValue, horizon::ToolEditLineRectangle, horizon::ToolEditPadParameterSet, horizon::ToolEditPlane, horizon::ToolEditShape, horizon::ToolEditSymbolPinNames, horizon::ToolEditText, horizon::ToolEditVia, horizon::ToolEnterDatum, horizon::ToolExchangeGates, horizon::ToolFix, horizon::ToolFlipNetTie, horizon::ToolGenerateCourtyard, horizon::ToolGenerateSilkscreen, horizon::ToolImportDXF, horizon::ToolImportKiCadPackage, horizon::ToolLineLoopToPolygon, horizon::ToolLinesToTracks, horizon::ToolLock, horizon::ToolManageBuses, horizon::ToolManagePowerNets, horizon::ToolMapPackage, horizon::ToolMapPin, horizon::ToolMapPort, horizon::ToolMapSymbol, horizon::ToolMeasure, horizon::ToolMergeDuplicateJunctions, horizon::ToolMove, horizon::ToolMoveNetSegment, horizon::ToolMoveTrackCenter, horizon::ToolMoveTrackConnection, horizon::ToolNoPopulate, horizon::ToolPaste, horizon::ToolPastePart, horizon::ToolPastePlacement, horizon::ToolPlaceBoardHole, horizon::ToolPlaceBoardPanel, horizon::ToolPlaceBusLabel, horizon::ToolPlaceBusRipper, horizon::ToolPlaceDecal, horizon::ToolPlaceDot, horizon::ToolPlaceHole, horizon::ToolPlaceJunctionBase, horizon::ToolPlaceNetLabel, horizon::ToolPlacePad, horizon::ToolPlacePicture, horizon::ToolPlacePowerSymbol, horizon::ToolPlaceRefdesAndValue, horizon::ToolPlaceShape, horizon::ToolPlaceText, horizon::ToolPlaceVia, horizon::ToolPolygonToLineLoop, horizon::ToolRenumberPads, horizon::ToolResizeSymbol, horizon::ToolRotateArbitrary, horizon::ToolRoundOffVertex, horizon::ToolRouteTrackInteractive, horizon::ToolSelectConnectedLines, horizon::ToolSetDiffpair, horizon::ToolSetGroup, horizon::ToolSetNotConnected, horizon::ToolSetNotConnectedAll, horizon::ToolSetTrackWidth, horizon::ToolSetViaNet, horizon::ToolSmash, horizon::ToolSmashPackageOutline, horizon::ToolSmashPanelOutline, horizon::ToolSmashSilkscreenGraphics, horizon::ToolSwapGates, horizon::ToolSwapNets, horizon::ToolTieNets, and horizon::ToolUpdateAllPlanes.
|
inlinevirtual |
Reimplemented in horizon::ToolAddKeepout, horizon::ToolAddVertex, horizon::ToolAlignAndDistribute, horizon::ToolAssignPart, horizon::ToolBendLineNet, horizon::ToolChangeSymbol, horizon::ToolClearPart, horizon::ToolDelete, horizon::ToolDisconnect, horizon::ToolDragKeepSlope, horizon::ToolDragPolygonEdge, horizon::ToolEditBoardHole, horizon::ToolEditCustomValue, horizon::ToolEditLineRectangle, horizon::ToolEditPadParameterSet, horizon::ToolEditPlane, horizon::ToolEditShape, horizon::ToolEditSymbolPinNames, horizon::ToolEditText, horizon::ToolEditVia, horizon::ToolEnterDatum, horizon::ToolExchangeGates, horizon::ToolFix, horizon::ToolFlipNetTie, horizon::ToolGenerateCourtyard, horizon::ToolGenerateSilkscreen, horizon::ToolLineLoopToPolygon, horizon::ToolLinesToTracks, horizon::ToolLock, horizon::ToolMeasure, horizon::ToolMergeDuplicateJunctions, horizon::ToolMove, horizon::ToolMoveNetSegment, horizon::ToolMoveTrackCenter, horizon::ToolMoveTrackConnection, horizon::ToolNoPopulate, horizon::ToolPaste, horizon::ToolPastePart, horizon::ToolPastePlacement, horizon::ToolPlaceText, horizon::ToolPolygonToLineLoop, horizon::ToolRenumberPads, horizon::ToolRotateArbitrary, horizon::ToolRoundOffVertex, horizon::ToolRouteTrackInteractive, horizon::ToolSelectConnectedLines, horizon::ToolSetDiffpair, horizon::ToolSetGroup, horizon::ToolSetNotConnected, horizon::ToolSetNotConnectedAll, horizon::ToolSetTrackWidth, horizon::ToolSetViaNet, horizon::ToolSmash, horizon::ToolSmashPackageOutline, horizon::ToolSmashPanelOutline, horizon::ToolSmashSilkscreenGraphics, horizon::ToolSwapGates, horizon::ToolSwapNets, and horizon::ToolTieNets.
|
pure virtual |
Gets called whenever the user generated some sort of input.
Implemented in horizon::ToolAddBlockInstance, horizon::ToolAddKeepout, horizon::ToolAddPart, horizon::ToolAddVertex, horizon::ToolAlignAndDistribute, horizon::ToolAssignPart, horizon::ToolBackannotateConnectionLines, horizon::ToolBendLineNet, horizon::ToolChangeSymbol, horizon::ToolChangeUnit, horizon::ToolClearPart, horizon::ToolDelete, horizon::ToolDisconnect, horizon::ToolDragKeepSlope, horizon::ToolDragPolygonEdge, horizon::ToolDrawArc, horizon::ToolDrawConnectionLine, horizon::ToolDrawDimension, horizon::ToolDrawLine, horizon::ToolDrawLineCircle, horizon::ToolDrawLineNet, horizon::ToolDrawLineRectangle, horizon::ToolDrawNetTie, horizon::ToolDrawPlane, horizon::ToolDrawPolygon, horizon::ToolDrawPolygonCircle, horizon::ToolDrawPolygonRectangle, horizon::ToolDrawTrack, horizon::ToolEditBoardHole, horizon::ToolEditCustomValue, horizon::ToolEditLineRectangle, horizon::ToolEditPadParameterSet, horizon::ToolEditPlane, horizon::ToolEditShape, horizon::ToolEditSymbolPinNames, horizon::ToolEditText, horizon::ToolEditVia, horizon::ToolEnterDatum, horizon::ToolExchangeGates, horizon::ToolFix, horizon::ToolFlipNetTie, horizon::ToolGenerateCourtyard, horizon::ToolGenerateSilkscreen, horizon::ToolImportDXF, horizon::ToolImportKiCadPackage, horizon::ToolLineLoopToPolygon, horizon::ToolLinesToTracks, horizon::ToolLock, horizon::ToolManageBuses, horizon::ToolManagePowerNets, horizon::ToolMapPackage, horizon::ToolMapPin, horizon::ToolMapPort, horizon::ToolMapSymbol, horizon::ToolMeasure, horizon::ToolMergeDuplicateJunctions, horizon::ToolMove, horizon::ToolMoveNetSegment, horizon::ToolMoveTrackCenter, horizon::ToolMoveTrackConnection, horizon::ToolNoPopulate, horizon::ToolPaste, horizon::ToolPastePart, horizon::ToolPastePlacement, horizon::ToolPlaceBoardHole, horizon::ToolPlaceBoardPanel, horizon::ToolPlaceDecal, horizon::ToolPlaceDot, horizon::ToolPlaceHole, horizon::ToolPlaceJunctionBase, horizon::ToolPlacePad, horizon::ToolPlacePicture, horizon::ToolPlaceRefdesAndValue, horizon::ToolPlaceShape, horizon::ToolPlaceText, horizon::ToolPolygonToLineLoop, horizon::ToolRenumberPads, horizon::ToolResizeSymbol, horizon::ToolRotateArbitrary, horizon::ToolRoundOffVertex, horizon::ToolRouteTrackInteractive, horizon::ToolSelectConnectedLines, horizon::ToolSetDiffpair, horizon::ToolSetGroup, horizon::ToolSetNotConnected, horizon::ToolSetNotConnectedAll, horizon::ToolSetTrackWidth, horizon::ToolSetViaNet, horizon::ToolSmash, horizon::ToolSmashPackageOutline, horizon::ToolSmashPanelOutline, horizon::ToolSmashSilkscreenGraphics, horizon::ToolSwapGates, horizon::ToolSwapNets, horizon::ToolTieNets, and horizon::ToolUpdateAllPlanes.