Horizon
|
Common interface for all Tools. More...
#include <core.hpp>
Public Member Functions | |
ToolBase (class Core *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 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 () |
virtual bool | handles_esc () |
Protected Member Functions | |
virtual ToolSettings * | get_settings () |
Protected Attributes | |
Cores | core |
class ImpInterface * | imp = nullptr |
ToolID | tool_id = ToolID::NONE |
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::ToolRouteTrackInteractive, horizon::ToolRouteTrack, horizon::ToolEditParameterProgram, horizon::ToolEditSymbolPinNames, horizon::ToolManageBuses, horizon::ToolPaste, horizon::ToolPlaceText, horizon::ToolAddVertex, horizon::ToolAssignPart, horizon::ToolBackannotateConnectionLines, horizon::ToolChangeSymbol, horizon::ToolDragKeepSlope, horizon::ToolDrawLine, horizon::ToolDrawLineNet, horizon::ToolDrawPolygon, horizon::ToolMove, horizon::ToolPlaceHole, horizon::ToolPlaceRefdesAndValue, horizon::ToolPlaceShape, horizon::ToolAddPart, horizon::ToolBendLineNet, horizon::ToolCopyPlacement, horizon::ToolCopyTracks, horizon::ToolDisconnect, horizon::ToolDrawArc, horizon::ToolDrawLineRectangle, horizon::ToolDrawTrack, horizon::ToolEditShape, horizon::ToolEditVia, horizon::ToolEnterDatum, horizon::ToolFix, horizon::ToolGenerateCourtyard, horizon::ToolLock, horizon::ToolMapSymbol, horizon::ToolPlaceJunction, horizon::ToolSetNotConnected, horizon::ToolSetNotConnectedAll, horizon::ToolSmash, horizon::ToolUpdateAllPlanes, horizon::ToolDelete, horizon::ToolDrawConnectionLine, horizon::ToolDrawDimension, horizon::ToolDrawPolygonCircle, horizon::ToolDrawPolygonRectangle, horizon::ToolEditBoardHole, horizon::ToolEditLineRectangle, horizon::ToolEditPadParameterSet, horizon::ToolEditPlane, horizon::ToolLineLoopToPolygon, horizon::ToolMapPackage, horizon::ToolMoveNetSegment, horizon::ToolPlacePad, horizon::ToolPolygonToLineLoop, horizon::ToolRenumberPads, horizon::ToolRotateArbitrary, horizon::ToolSetDiffpair, horizon::ToolSetViaNet, horizon::ToolSmashSilkscreenGraphics, horizon::ToolSwapNets, horizon::ToolAddKeepout, horizon::ToolChangeUnit, horizon::ToolMapPin, horizon::ToolPlaceBoardHole, horizon::ToolSetGroup, horizon::ToolImportDXF, and horizon::ToolImportKiCadPackage.
|
inlinevirtual |
Reimplemented in horizon::ToolRouteTrackInteractive, horizon::ToolRouteTrack, horizon::ToolEditParameterProgram, horizon::ToolEditSymbolPinNames, horizon::ToolManageBuses, horizon::ToolPaste, horizon::ToolPlaceText, horizon::ToolAddVertex, horizon::ToolAssignPart, horizon::ToolBackannotateConnectionLines, horizon::ToolChangeSymbol, horizon::ToolDragKeepSlope, horizon::ToolDrawLine, horizon::ToolDrawLineNet, horizon::ToolDrawPolygon, horizon::ToolMove, horizon::ToolPlaceHole, horizon::ToolPlaceNetLabel, horizon::ToolPlaceRefdesAndValue, horizon::ToolPlaceShape, horizon::ToolAddPart, horizon::ToolBendLineNet, horizon::ToolCopyPlacement, horizon::ToolCopyTracks, horizon::ToolDisconnect, horizon::ToolDrawArc, horizon::ToolDrawLineRectangle, horizon::ToolDrawTrack, horizon::ToolEditShape, horizon::ToolEditVia, horizon::ToolEnterDatum, horizon::ToolFix, horizon::ToolGenerateCourtyard, horizon::ToolLock, horizon::ToolMapSymbol, horizon::ToolPlaceBusRipper, horizon::ToolPlaceJunction, horizon::ToolPlacePowerSymbol, horizon::ToolSetNotConnected, horizon::ToolSetNotConnectedAll, horizon::ToolSmash, horizon::ToolUpdateAllPlanes, horizon::ToolDelete, horizon::ToolDrawConnectionLine, horizon::ToolDrawDimension, horizon::ToolDrawPolygonCircle, horizon::ToolDrawPolygonRectangle, horizon::ToolEditBoardHole, horizon::ToolEditLineRectangle, horizon::ToolEditPadParameterSet, horizon::ToolEditPlane, horizon::ToolLineLoopToPolygon, horizon::ToolMapPackage, horizon::ToolMoveNetSegment, horizon::ToolPlaceBusLabel, horizon::ToolPlacePad, horizon::ToolPlaceVia, horizon::ToolPolygonToLineLoop, horizon::ToolRenumberPads, horizon::ToolRotateArbitrary, horizon::ToolSetDiffpair, horizon::ToolSetViaNet, horizon::ToolSmashSilkscreenGraphics, horizon::ToolSwapNets, horizon::ToolAddKeepout, horizon::ToolChangeUnit, horizon::ToolMapPin, horizon::ToolPlaceBoardHole, horizon::ToolSetGroup, horizon::ToolImportDXF, and horizon::ToolImportKiCadPackage.
|
inlinevirtual |
Reimplemented in horizon::ToolRouteTrackInteractive, horizon::ToolMove, horizon::ToolDrawLine, and horizon::ToolDrawLineNet.
|
inlinevirtual |
Reimplemented in horizon::ToolRouteTrackInteractive, horizon::ToolPaste, horizon::ToolEditSymbolPinNames, horizon::ToolAddVertex, horizon::ToolAssignPart, horizon::ToolChangeSymbol, horizon::ToolDragKeepSlope, horizon::ToolMove, horizon::ToolBendLineNet, horizon::ToolCopyPlacement, horizon::ToolCopyTracks, horizon::ToolDisconnect, horizon::ToolEditShape, horizon::ToolEditVia, horizon::ToolEnterDatum, horizon::ToolFix, horizon::ToolGenerateCourtyard, horizon::ToolLock, horizon::ToolSetNotConnected, horizon::ToolSetNotConnectedAll, horizon::ToolSmash, horizon::ToolDelete, horizon::ToolEditBoardHole, horizon::ToolEditLineRectangle, horizon::ToolEditPadParameterSet, horizon::ToolEditPlane, horizon::ToolLineLoopToPolygon, horizon::ToolMoveNetSegment, horizon::ToolPolygonToLineLoop, horizon::ToolRenumberPads, horizon::ToolRotateArbitrary, horizon::ToolSetDiffpair, horizon::ToolSetViaNet, horizon::ToolSmashSilkscreenGraphics, horizon::ToolSwapNets, horizon::ToolAddKeepout, and horizon::ToolSetGroup.