Horizon
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
horizon::ToolBase Class Referenceabstract

Common interface for all Tools. More...

#include <core.hpp>

Inheritance diagram for horizon::ToolBase:
horizon::ToolAddKeepout horizon::ToolAddVertex horizon::ToolAssignPart horizon::ToolBackannotateConnectionLines horizon::ToolBendLineNet horizon::ToolChangeUnit horizon::ToolCopyPlacement horizon::ToolCopyTracks horizon::ToolDelete horizon::ToolDisconnect horizon::ToolDragKeepSlope horizon::ToolDrawConnectionLine horizon::ToolDrawDimension horizon::ToolDrawPolygon horizon::ToolDrawPolygonCircle horizon::ToolDrawPolygonRectangle horizon::ToolDrawTrack horizon::ToolEditBoardHole horizon::ToolEditLineRectangle horizon::ToolEditPadParameterSet horizon::ToolEditParameterProgram horizon::ToolEditPlane horizon::ToolEditShape horizon::ToolEditVia horizon::ToolEnterDatum horizon::ToolFix horizon::ToolGenerateCourtyard horizon::ToolHelperDrawNetSetting horizon::ToolHelperGetSymbol horizon::ToolHelperLineWidthSetting horizon::ToolHelperMapSymbol horizon::ToolHelperMerge horizon::ToolHelperMove horizon::ToolImportKiCadPackage horizon::ToolLineLoopToPolygon horizon::ToolLock horizon::ToolManageBuses horizon::ToolMapPin horizon::ToolMoveNetSegment horizon::ToolPlaceBoardHole horizon::ToolPlaceHole horizon::ToolPlaceJunction horizon::ToolPlacePad horizon::ToolPlaceRefdesAndValue horizon::ToolPlaceShape horizon::ToolPolygonToLineLoop horizon::ToolRenumberPads horizon::ToolRotateArbitrary horizon::ToolRouteTrack horizon::ToolRouteTrackInteractive horizon::ToolSetDiffpair horizon::ToolSetGroup horizon::ToolSetNotConnected horizon::ToolSetNotConnectedAll horizon::ToolSetViaNet horizon::ToolSmash horizon::ToolSmashSilkscreenGraphics horizon::ToolSwapNets horizon::ToolUpdateAllPlanes

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 ToolSettingsget_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 ToolSettingsget_settings ()
 

Protected Attributes

Cores core
 
class ImpInterfaceimp = nullptr
 
ToolID tool_id = ToolID::NONE
 
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::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.

◆ can_begin()

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

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.

◆ handles_esc()

virtual bool horizon::ToolBase::handles_esc ( )
inlinevirtual
Returns
true if this Tool can handle esc by itself

Reimplemented in horizon::ToolRouteTrackInteractive, horizon::ToolMove, horizon::ToolDrawLine, and horizon::ToolDrawLineNet.

◆ is_specific()

virtual bool horizon::ToolBase::is_specific ( )
inlinevirtual

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