Horizon
|
Common interface for all Tools. More...
#include <tool.hpp>
Public Member Functions | |
ToolBase (class IDocument *c, ToolID tid) | |
void | set_imp_interface (class ImpInterface *i) |
void | set_transient () |
virtual ToolID | get_tool_id_for_settings () const |
virtual const ToolSettings * | get_settings_const () const |
ToolSettingsProxy | get_settings_proxy () |
virtual void | apply_settings () |
virtual std::set< InToolActionID > | get_actions () const |
virtual ToolResponse | begin (const ToolArgs &args)=0 |
Gets called right after the constructor has finished. More... | |
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 |
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::ToolUpdateAllPlanes, horizon::ToolSwapNets, horizon::ToolSwapGates, horizon::ToolSmashSilkscreenGraphics, horizon::ToolSmashPanelOutline, horizon::ToolSmashPackageOutline, horizon::ToolSmash, horizon::ToolSetViaNet, horizon::ToolSetNotConnectedAll, horizon::ToolSetNotConnected, horizon::ToolSetGroup, horizon::ToolSetDiffpair, horizon::ToolRouteTrackInteractive, horizon::ToolRoundOffVertex, horizon::ToolRotateArbitrary, horizon::ToolResizeSymbol, horizon::ToolRenumberPads, horizon::ToolPolygonToLineLoop, horizon::ToolPlaceText, horizon::ToolPlaceShape, horizon::ToolPlaceRefdesAndValue, horizon::ToolPlacePicture, horizon::ToolPlacePad, horizon::ToolPlaceJunctionBase, horizon::ToolPlaceHole, horizon::ToolPlaceDecal, horizon::ToolPlaceBoardPanel, horizon::ToolPlaceBoardHole, horizon::ToolPaste, horizon::ToolNoPopulate, horizon::ToolMoveNetSegment, horizon::ToolMove, horizon::ToolMeasure, horizon::ToolMapSymbol, horizon::ToolMapPin, horizon::ToolMapPackage, horizon::ToolManageBuses, horizon::ToolLock, horizon::ToolLineLoopToPolygon, horizon::ToolImportKiCadPackage, horizon::ToolImportDXF, horizon::ToolGenerateSilkscreen, horizon::ToolGenerateCourtyard, horizon::ToolFix, horizon::ToolEnterDatum, horizon::ToolEditVia, horizon::ToolEditSymbolPinNames, horizon::ToolEditShape, horizon::ToolEditPlane, horizon::ToolEditPadParameterSet, horizon::ToolEditLineRectangle, horizon::ToolEditBoardHole, horizon::ToolDrawTrack, horizon::ToolDrawPolygonRectangle, horizon::ToolDrawPolygonCircle, horizon::ToolDrawPolygon, horizon::ToolDrawLineRectangle, horizon::ToolDrawLineNet, horizon::ToolDrawLineCircle, horizon::ToolDrawLine, horizon::ToolDrawDimension, horizon::ToolDrawConnectionLine, horizon::ToolDrawArc, horizon::ToolDragPolygonEdge, horizon::ToolDragKeepSlope, horizon::ToolDisconnect, horizon::ToolDelete, horizon::ToolCopyTracks, horizon::ToolCopyPlacement, horizon::ToolChangeUnit, horizon::ToolChangeSymbol, horizon::ToolBendLineNet, horizon::ToolBackannotateConnectionLines, horizon::ToolAssignPart, horizon::ToolAddVertex, horizon::ToolAddPart, and horizon::ToolAddKeepout.
|
inlinevirtual |
Reimplemented in horizon::ToolUpdateAllPlanes, horizon::ToolSwapNets, horizon::ToolSwapGates, horizon::ToolSmashSilkscreenGraphics, horizon::ToolSmashPanelOutline, horizon::ToolSmashPackageOutline, horizon::ToolSmash, horizon::ToolSetViaNet, horizon::ToolSetNotConnectedAll, horizon::ToolSetNotConnected, horizon::ToolSetGroup, horizon::ToolSetDiffpair, horizon::ToolRouteTrackInteractive, horizon::ToolRoundOffVertex, horizon::ToolRotateArbitrary, horizon::ToolResizeSymbol, horizon::ToolRenumberPads, horizon::ToolPolygonToLineLoop, horizon::ToolPlaceVia, horizon::ToolPlaceText, horizon::ToolPlaceShape, horizon::ToolPlaceRefdesAndValue, horizon::ToolPlacePowerSymbol, horizon::ToolPlacePicture, horizon::ToolPlacePad, horizon::ToolPlaceNetLabel, horizon::ToolPlaceJunctionBase, horizon::ToolPlaceHole, horizon::ToolPlaceDecal, horizon::ToolPlaceBusRipper, horizon::ToolPlaceBusLabel, horizon::ToolPlaceBoardPanel, horizon::ToolPlaceBoardHole, horizon::ToolPaste, horizon::ToolNoPopulate, horizon::ToolMoveNetSegment, horizon::ToolMove, horizon::ToolMeasure, horizon::ToolMapSymbol, horizon::ToolMapPin, horizon::ToolMapPackage, horizon::ToolManageBuses, horizon::ToolLock, horizon::ToolLineLoopToPolygon, horizon::ToolImportKiCadPackage, horizon::ToolImportDXF, horizon::ToolGenerateSilkscreen, horizon::ToolGenerateCourtyard, horizon::ToolFix, horizon::ToolEnterDatum, horizon::ToolEditVia, horizon::ToolEditSymbolPinNames, horizon::ToolEditShape, horizon::ToolEditPlane, horizon::ToolEditPadParameterSet, horizon::ToolEditLineRectangle, horizon::ToolEditBoardHole, horizon::ToolDrawTrack, horizon::ToolDrawPolygonRectangle, horizon::ToolDrawPolygonCircle, horizon::ToolDrawPolygon, horizon::ToolDrawPlane, horizon::ToolDrawLineRectangle, horizon::ToolDrawLineNet, horizon::ToolDrawLineCircle, horizon::ToolDrawLine, horizon::ToolDrawDimension, horizon::ToolDrawConnectionLine, horizon::ToolDrawArc, horizon::ToolDragPolygonEdge, horizon::ToolDragKeepSlope, horizon::ToolDisconnect, horizon::ToolDelete, horizon::ToolCopyTracks, horizon::ToolCopyPlacement, horizon::ToolChangeUnit, horizon::ToolChangeSymbol, horizon::ToolBendLineNet, horizon::ToolBackannotateConnectionLines, horizon::ToolAssignPart, horizon::ToolAddVertex, horizon::ToolAddPart, and horizon::ToolAddKeepout.
|
inlinevirtual |
Reimplemented in horizon::ToolSwapNets, horizon::ToolSwapGates, horizon::ToolSmashSilkscreenGraphics, horizon::ToolSmashPanelOutline, horizon::ToolSmashPackageOutline, horizon::ToolSmash, horizon::ToolSetViaNet, horizon::ToolSetNotConnectedAll, horizon::ToolSetNotConnected, horizon::ToolSetGroup, horizon::ToolSetDiffpair, horizon::ToolRouteTrackInteractive, horizon::ToolRoundOffVertex, horizon::ToolRotateArbitrary, horizon::ToolRenumberPads, horizon::ToolPolygonToLineLoop, horizon::ToolPlaceText, horizon::ToolPaste, horizon::ToolNoPopulate, horizon::ToolMoveNetSegment, horizon::ToolMove, horizon::ToolMeasure, horizon::ToolLock, horizon::ToolLineLoopToPolygon, horizon::ToolGenerateSilkscreen, horizon::ToolGenerateCourtyard, horizon::ToolFix, horizon::ToolEnterDatum, horizon::ToolEditVia, horizon::ToolEditSymbolPinNames, horizon::ToolEditShape, horizon::ToolEditPlane, horizon::ToolEditPadParameterSet, horizon::ToolEditLineRectangle, horizon::ToolEditBoardHole, horizon::ToolDragPolygonEdge, horizon::ToolDragKeepSlope, horizon::ToolDisconnect, horizon::ToolDelete, horizon::ToolCopyTracks, horizon::ToolCopyPlacement, horizon::ToolChangeSymbol, horizon::ToolBendLineNet, horizon::ToolAssignPart, horizon::ToolAddVertex, and horizon::ToolAddKeepout.