Horizon
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
horizon::ToolBase Class Referenceabstract

Common interface for all Tools. More...

#include <tool_pub.hpp>

Inheritance diagram for horizon::ToolBase:
horizon::ToolAddBlockInstance horizon::ToolAddKeepout horizon::ToolAddVertex horizon::ToolAlignAndDistribute horizon::ToolAssignPart horizon::ToolBackannotateConnectionLines horizon::ToolBendLineNet horizon::ToolChangeUnit horizon::ToolClearPart horizon::ToolDelete horizon::ToolDisconnect horizon::ToolDragKeepSlope horizon::ToolDragPolygonEdge horizon::ToolDrawConnectionLine horizon::ToolDrawDimension horizon::ToolDrawNetTie horizon::ToolDrawPolygon horizon::ToolDrawPolygonCircle horizon::ToolDrawPolygonRectangle horizon::ToolDrawTrack horizon::ToolEditBoardHole horizon::ToolEditLineRectangle horizon::ToolEditPadParameterSet horizon::ToolEditPlane horizon::ToolEditShape horizon::ToolEditText horizon::ToolEditVia horizon::ToolEnterDatum horizon::ToolExchangeGates horizon::ToolFix horizon::ToolFlipNetTie horizon::ToolGenerateCourtyard horizon::ToolGenerateSilkscreen horizon::ToolHelperCollectNets horizon::ToolHelperDrawNetSetting horizon::ToolHelperEditPlane horizon::ToolHelperGetSymbol horizon::ToolHelperLineWidthSetting horizon::ToolHelperMapSymbol horizon::ToolHelperMerge horizon::ToolHelperMove horizon::ToolHelperPickPad horizon::ToolHelperPlane horizon::ToolHelperSavePlacements horizon::ToolImportKiCadPackage horizon::ToolLineLoopToPolygon horizon::ToolLinesToTracks horizon::ToolLock horizon::ToolManageBuses horizon::ToolManagePowerNets horizon::ToolMapPin horizon::ToolMapPort horizon::ToolMeasure horizon::ToolMergeDuplicateJunctions horizon::ToolMoveNetSegment horizon::ToolMoveTrackCenter horizon::ToolMoveTrackConnection horizon::ToolNoPopulate 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::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 horizon::ToolUpdateAllPlanes

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< SelectableRefselection
 

Protected Member Functions

virtual ToolSettingsget_settings ()
 

Protected Attributes

Documents doc
 
class ImpInterfaceimp = nullptr
 
const ToolID tool_id
 
bool is_transient = false
 

Detailed Description

Common interface for all Tools.

Member Function Documentation

◆ begin()

virtual ToolResponse horizon::ToolBase::begin ( const ToolArgs args)
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.

◆ can_begin()

virtual bool horizon::ToolBase::can_begin ( )
inlinevirtual
Returns
true if this Tool can begin in sensible way

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.

◆ is_specific()

virtual bool horizon::ToolBase::is_specific ( )
inlinevirtual
Returns
true if this Tool is specific to the selection

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.

◆ update()

virtual ToolResponse horizon::ToolBase::update ( const ToolArgs args)
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.


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