control-freak-ide/misc/pocs/GoJS/api/symbols/ToolManager.html
plastic-hub-dev-node-saturn 538369cff7 latest
2021-05-12 18:35:18 +02:00

2264 lines
101 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>GoJS&reg; ToolManager Class</title>
<script src="../../assets/js/jquery.min.js"></script>
<script src="../../assets/js/bootstrap.min.js"></script>
<script src="../../assets/js/highlight.js"></script>
<script src="../../assets/js/api.js"></script>
<link href="../../assets/css/bootstrap.min.css" rel="stylesheet" >
<!-- custom CSS after bootstrap -->
<link href="../../assets/css/main.css" rel="stylesheet" type="text/css"/>
<link href="../../assets/css/api.css" rel="stylesheet" type="text/css"/>
<!--<link rel="stylesheet" href="../../assets/css/api.css" type="text/css" media="all" />-->
<link rel="stylesheet" href="../../assets/css/highlight.css" type="text/css" media="all" />
</head>
<body>
<!-- non-fixed navbar -->
<nav id="non-fixed-nav" class="navbar navbar-inverse navbar-top">
<div class="container-fluid">
<div class="navbar-header">
<div class="navheader-container">
<div class="navheader-collapse" data-toggle="collapse" data-target="#navbar">
<a id="toplogo" class="navbar-brand" href="../../index.html">GoJS</a>
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
</div>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li><a href="../../index.html">Home</a></li>
<li><a href="../../learn/index.html">Learn</a></li>
<li><a href="../../samples/index.html">Samples</a></li>
<li><a href="../../intro/index.html">Intro</a></li>
<li><a href="../../api/index.html">API</a></li>
<li><a href="https://www.nwoods.com/components/evalform.htm">Register</a></li>
<li><a href="../../doc/download.html">Download</a></li>
<li><a href="https://forum.nwoods.com/c/gojs">Forum</a></li>
<li><a href="https://www.nwoods.com/contact.html" onclick="ga('send','event','Outbound Link','click','contact');">Contact</a></li>
<li class="buy"><a href="https://www.nwoods.com/sales/index.html" onclick="ga('send','event','Outbound Link','click','buy');">Buy</a></li>
<li class="activate"><a href="https://www.nwoods.com/app/activate.aspx?sku=gojs">Activate</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
<div class="container-fluid">
<!-- ============================== classes index ============================ -->
<div id="navindex" class="col-md-2">
<!-- begin publish.classesIndex -->
<!-- <div><a href="../index.html">GoJS Class Index</a></div> -->
<div class="sidebar-nav">
<div class="navbar navbar-default" role="navigation">
<div class="navbar-header">
<div class="navheader-container">
<div class="navheader-collapse" data-toggle="collapse" data-target="#DiagramNavbar">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#DiagramNavbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<span class="navbar-brand">Diagram Classes</span>
</div>
</div>
<div id="DiagramNavbar" class="navbar-collapse collapse sidebar-navbar-collapse">
<ul class="classList nav navbar-nav">
<li><a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a></li>
<li><a href="../symbols/AnimationManager.html" class="linkConstructor">AnimationManager</a></li>
<li><a href="../symbols/CommandHandler.html" class="linkConstructor">CommandHandler</a></li>
<li><a href="../symbols/Diagram.html" class="linkConstructor">Diagram</a></li>
<li><a href="../symbols/DiagramEvent.html" class="linkConstructor">DiagramEvent</a></li>
<li><a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a></li>
<li><a href="../symbols/Group.html" class="linkConstructor">Group</a></li>
<li><a href="../symbols/InputEvent.html" class="linkConstructor">InputEvent</a></li>
<li><a href="../symbols/Layer.html" class="linkConstructor">Layer</a></li>
<li><a href="../symbols/Link.html" class="linkConstructor">Link</a></li>
<li><a href="../symbols/Node.html" class="linkConstructor">Node</a></li>
<li><a href="../symbols/Overview.html" class="linkConstructor">Overview</a></li>
<li><a href="../symbols/Palette.html" class="linkConstructor">Palette</a></li>
<li><a href="../symbols/Panel.html" class="linkConstructor">Panel</a></li>
<li><a href="../symbols/Part.html" class="linkConstructor">Part</a></li>
<li><a href="../symbols/Picture.html" class="linkConstructor">Picture</a></li>
<li><a href="../symbols/Placeholder.html" class="linkConstructor">Placeholder</a></li>
<li><a href="../symbols/RowColumnDefinition.html" class="linkConstructor">RowColumnDefinition</a></li>
<li><a href="../symbols/Shape.html" class="linkConstructor">Shape</a></li>
<li><a href="../symbols/TextBlock.html" class="linkConstructor">TextBlock</a></li>
</ul>
</div>
</div>
<div class="navbar navbar-default" role="navigation">
<div class="navbar-header">
<div class="navheader-container">
<div class="navheader-collapse" data-toggle="collapse" data-target="#GeometryNavbar">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#GeometryNavbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<span class="navbar-brand">Geometry Classes</span>
</div>
</div>
<div id="GeometryNavbar" class="navbar-collapse collapse sidebar-navbar-collapse">
<ul class="classList nav navbar-nav">
<li><a href="../symbols/Brush.html" class="linkConstructor">Brush</a></li>
<li><a href="../symbols/Geometry.html" class="linkConstructor">Geometry</a></li>
<li><a href="../symbols/Margin.html" class="linkConstructor">Margin</a></li>
<li><a href="../symbols/PathFigure.html" class="linkConstructor">PathFigure</a></li>
<li><a href="../symbols/PathSegment.html" class="linkConstructor">PathSegment</a></li>
<li><a href="../symbols/Point.html" class="linkConstructor">Point</a></li>
<li><a href="../symbols/Rect.html" class="linkConstructor">Rect</a></li>
<li><a href="../symbols/Size.html" class="linkConstructor">Size</a></li>
<li><a href="../symbols/Spot.html" class="linkConstructor">Spot</a></li>
</ul>
</div>
</div>
<div class="navbar navbar-default" role="navigation">
<div class="navbar-header">
<div class="navheader-container">
<div class="navheader-collapse" data-toggle="collapse" data-target="#ModelNavbar">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#ModelNavbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<span class="navbar-brand">Model Classes</span>
</div>
</div>
<div id="ModelNavbar" class="navbar-collapse collapse sidebar-navbar-collapse">
<ul class="classList nav navbar-nav">
<li><a href="../symbols/Binding.html" class="linkConstructor">Binding</a></li>
<li><a href="../symbols/ChangedEvent.html" class="linkConstructor">ChangedEvent</a></li>
<li><a href="../symbols/GraphLinksModel.html" class="linkConstructor">GraphLinksModel</a></li>
<li><a href="../symbols/Model.html" class="linkConstructor">Model</a></li>
<li><a href="../symbols/Transaction.html" class="linkConstructor">Transaction</a></li>
<li><a href="../symbols/TreeModel.html" class="linkConstructor">TreeModel</a></li>
<li><a href="../symbols/UndoManager.html" class="linkConstructor">UndoManager</a></li>
</ul>
</div>
</div>
<div class="navbar navbar-default" role="navigation">
<div class="navbar-header">
<div class="navheader-container">
<div class="navheader-collapse" data-toggle="collapse" data-target="#LayoutNavbar">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#LayoutNavbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<span class="navbar-brand">Layout Classes</span>
</div>
</div>
<div id="LayoutNavbar" class="navbar-collapse collapse sidebar-navbar-collapse">
<ul class="classList nav navbar-nav">
<li><a href="../symbols/CircularLayout.html" class="linkConstructor">CircularLayout</a></li>
<li><a href="../symbols/ForceDirectedLayout.html" class="linkConstructor">ForceDirectedLayout</a></li>
<li><a href="../symbols/GridLayout.html" class="linkConstructor">GridLayout</a></li>
<li><a href="../symbols/LayeredDigraphLayout.html" class="linkConstructor">LayeredDigraphLayout</a></li>
<li><a href="../symbols/Layout.html" class="linkConstructor">Layout</a></li>
<li><a href="../symbols/LayoutNetwork.html" class="linkConstructor">LayoutNetwork</a></li>
<li><a href="../symbols/TreeLayout.html" class="linkConstructor">TreeLayout</a></li>
</ul>
</div>
</div>
<div class="navbar navbar-default" role="navigation">
<div class="navbar-header">
<div class="navheader-container">
<div class="navheader-collapse" data-toggle="collapse" data-target="#ToolNavbar">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#ToolNavbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<span class="navbar-brand">Tool Classes</span>
</div>
</div>
<div id="ToolNavbar" class="navbar-collapse collapse sidebar-navbar-collapse">
<ul class="classList nav navbar-nav">
<li><a href="../symbols/ActionTool.html" class="linkConstructor">ActionTool</a></li>
<li><a href="../symbols/ClickCreatingTool.html" class="linkConstructor">ClickCreatingTool</a></li>
<li><a href="../symbols/ClickSelectingTool.html" class="linkConstructor">ClickSelectingTool</a></li>
<li><a href="../symbols/ContextMenuTool.html" class="linkConstructor">ContextMenuTool</a></li>
<li><a href="../symbols/DraggingTool.html" class="linkConstructor">DraggingTool</a></li>
<li><a href="../symbols/DragSelectingTool.html" class="linkConstructor">DragSelectingTool</a></li>
<li><a href="../symbols/HTMLInfo.html" class="linkConstructor">HTMLInfo</a></li>
<li><a href="../symbols/LinkingBaseTool.html" class="linkConstructor">LinkingBaseTool</a></li>
<li><a href="../symbols/LinkingTool.html" class="linkConstructor">LinkingTool</a></li>
<li><a href="../symbols/LinkReshapingTool.html" class="linkConstructor">LinkReshapingTool</a></li>
<li><a href="../symbols/PanningTool.html" class="linkConstructor">PanningTool</a></li>
<li><a href="../symbols/RelinkingTool.html" class="linkConstructor">RelinkingTool</a></li>
<li><a href="../symbols/ResizingTool.html" class="linkConstructor">ResizingTool</a></li>
<li><a href="../symbols/RotatingTool.html" class="linkConstructor">RotatingTool</a></li>
<li><a href="../symbols/TextEditingTool.html" class="linkConstructor">TextEditingTool</a></li>
<li><a href="../symbols/Tool.html" class="linkConstructor">Tool</a></li>
<li><a href="../symbols/ToolManager.html" class="linkConstructor">ToolManager</a></li>
</ul>
</div>
</div>
<div class="navbar navbar-default" role="navigation">
<div class="navbar-header">
<div class="navheader-container">
<div class="navheader-collapse" data-toggle="collapse" data-target="#CollectionNavbar">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#CollectionNavbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<span class="navbar-brand">Collection Classes</span>
</div>
</div>
<div id="CollectionNavbar" class="navbar-collapse collapse sidebar-navbar-collapse">
<ul class="classList nav navbar-nav">
<li><a href="../symbols/Iterable.html" class="linkConstructor">Iterable</a></li>
<li><a href="../symbols/Iterator.html" class="linkConstructor">Iterator</a></li>
<li><a href="../symbols/List.html" class="linkConstructor">List</a></li>
<li><a href="../symbols/Map.html" class="linkConstructor">Map</a></li>
<li><a href="../symbols/Set.html" class="linkConstructor">Set</a></li>
</ul>
</div>
</div>
</div> <!-- /class="sidebar-nav -->
<!-- end publish.classesIndex -->
</div>
<div id="contentBody" class="col-md-10">
<!-- ============================== header ================================= -->
<div id="header" class="fineprint mt30">
<b>GoJS</b>&reg; Diagramming Components<br/>version 1.8.5 for JavaScript/HTML<br/>by <a href="https://www.nwoods.com/">Northwoods Software&reg;</a>
</div>
<!-- ============================== class title ============================ -->
<h2 class="classTitle mt30">
Class ToolManager
</h2>
<!-- ============================== class summary ========================== -->
<span class="hideshowall">
<span class="nodetails"><button id="buttonShow">Show Details</button></span>
<span class="details"><button id="buttonHide">Show Summaries</button></span>
</span>
<p class="classsummary">
<span class="extends"> Extends
<a href="../symbols/Tool.html" class="linkConstructor">Tool</a>.</span>
This special <a href="../symbols/Tool.html" class="linkConstructor">Tool</a> is responsible for managing all of the Diagram's
mode-less tools, which you can access as the <a href="../symbols/Diagram.html#toolManager" class="linkProperty">Diagram.toolManager</a>.
<p>
Mode-less tools are tools that are present in one of the following lists:
<a href="../symbols/ToolManager.html#mouseDownTools" class="linkProperty">mouseDownTools</a>, <a href="../symbols/ToolManager.html#mouseMoveTools" class="linkProperty">mouseMoveTools</a>, or <a href="../symbols/ToolManager.html#mouseUpTools" class="linkProperty">mouseUpTools</a>.
This ToolManager tool is normally the <a href="../symbols/Diagram.html#defaultTool" class="linkProperty">Diagram.defaultTool</a>,
so it is also usually the <a href="../symbols/Diagram.html#currentTool" class="linkProperty">Diagram.currentTool</a> when the user is doing "nothing".
<p>
When this tool is running as the current tool, it handles mouse-down,
mouse-move, and mouse-up events and the corresponding touch events.
For each event it iterates over each of the tools in the corresponding list,
calling the tool's <a href="../symbols/Tool.html#canStart" class="linkMethod">Tool.canStart</a> predicate.
If that predicate returns true, it starts that tool by making it the
diagram's current tool.
It then activates the tool and passes on the event to the tool by calling
the corresponding method (either <a href="../symbols/Tool.html#doMouseDown" class="linkMethod">Tool.doMouseDown</a>,
<a href="../symbols/Tool.html#doMouseMove" class="linkMethod">Tool.doMouseMove</a>, or <a href="../symbols/Tool.html#doMouseUp" class="linkMethod">Tool.doMouseUp</a>).
<p>
Because this tool is typically the one running as the diagram's current tool
when the user isn't "doing" anything, this tool can also handle other events,
such as mouse wheel events and keyboard commands.
<p>
Keyboard events are just passed on to the <a href="../symbols/Diagram.html#commandHandler" class="linkProperty">Diagram.commandHandler</a>'s
<a href="../symbols/CommandHandler.html#doKeyDown" class="linkMethod">CommandHandler.doKeyDown</a> or <a href="../symbols/CommandHandler.html#doKeyUp" class="linkMethod">CommandHandler.doKeyUp</a> method.
<p>
This tool also is responsible for showing tooltips.
Tooltip <a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a>s may be declared as any <a href="../symbols/GraphObject.html#toolTip" class="linkProperty">GraphObject.toolTip</a>,
or as the <a href="../symbols/Diagram.html#toolTip" class="linkProperty">Diagram.toolTip</a> if the mouse or finger remains motionless in the background of the diagram.
You can set <a href="../symbols/ToolManager.html#toolTipDuration" class="linkProperty">toolTipDuration</a> to control how long the tooltip remains visible after being motionless.
<p>
This tool does not utilize any tool handles.
This tool does not conduct any transactions.
But of course some of the tools that the ToolManager starts can show tool handles and/or
conduct their own transactions.
</p>
<!-- ============================== constructor summary ==================== -->
<h2 id="constructor" class="summaryCaption"> Constructor <span class="nodetails"> Summary</span><span class="details"> Details</span></h2>
<div class="table-responsive">
<table class="summaryTable table table-bordered table-condensed" summary="A summary of the constructor documented in the class ToolManager.">
<thead>
<tr>
<th scope="col" class="name">Name</th>
<th scope="col" class="description">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name" >
<div class="name">
ToolManager()
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>You do not normally need to create an instance of this tool
because one already exists as the <a href="../symbols/Diagram.html#toolManager" class="linkProperty">Diagram.toolManager</a>, which you can modify.<span class="nodetails" id="xconToolManager"><a class="morelink" onclick="hst('conToolManager')">More...</a></span> <span class="details" id="conToolManager">
</span><div class="details" id="dconToolManager"><p>
The <a href="../symbols/Tool.html#name" class="linkProperty">Tool.name</a> of this tool is "ToolManager".
<p>
The constructor produces a ToolManager that manages no tools.
Call <a href="../symbols/ToolManager.html#initializeStandardTools" class="linkMethod">initializeStandardTools</a> to create various tools,
initialize the tool properties such as <a href="../symbols/ToolManager.html#draggingTool" class="linkProperty">draggingTool</a>,
and initialize the three mouse tool lists with those newly created tools.</div>
</div>
</td>
</tr>
</tbody>
</table>
</div><!-- class="table-responsive">-->
<!-- ============================== properties summary ===================== -->
<h2 class="summaryCaption">Properties<span class="nodetails"> Summary</span><span class="details"> Details</span></h2>
<div class="table-responsive">
<table class="summaryTable table table-bordered table-condensed" summary="A summary of the properties documented in the class ToolManager.">
<thead>
<tr>
<th scope="col" class="name">Name, Value Type</th>
<th scope="col" class="description">Description</th>
</tr>
</thead>
<tbody>
<tr id="actionTool" >
<td class="name">
<div class="name">
actionTool
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/ActionTool.html" class="linkConstructor">ActionTool</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the mode-less <a href="../symbols/ActionTool.html" class="linkConstructor">ActionTool</a>, normally one of the <a href="../symbols/ToolManager.html#mouseDownTools" class="linkProperty">mouseDownTools</a>.<span class="nodetails" id="xpropactionTool"><a class="morelink" onclick="hst('propactionTool')">More...</a></span> <span class="details" id="propactionTool">
</span><div class="details" id="dpropactionTool"><p>
You can disable this tool by setting its <a href="../symbols/Tool.html#isEnabled" class="linkProperty">Tool.isEnabled</a> property to false.</div>
</div>
</td>
</tr>
<tr id="clickCreatingTool" >
<td class="name">
<div class="name">
clickCreatingTool
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/ClickCreatingTool.html" class="linkConstructor">ClickCreatingTool</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the mode-less <a href="../symbols/ClickCreatingTool.html" class="linkConstructor">ClickCreatingTool</a>, normally one of the <a href="../symbols/ToolManager.html#mouseUpTools" class="linkProperty">mouseUpTools</a>.<span class="nodetails" id="xpropclickCreatingTool"><a class="morelink" onclick="hst('propclickCreatingTool')">More...</a></span> <span class="details" id="propclickCreatingTool">
</span><div class="details" id="dpropclickCreatingTool"><p>
You can disable this tool by setting its <a href="../symbols/Tool.html#isEnabled" class="linkProperty">Tool.isEnabled</a> property to false.</div>
</div>
</td>
</tr>
<tr id="clickSelectingTool" >
<td class="name">
<div class="name">
clickSelectingTool
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/ClickSelectingTool.html" class="linkConstructor">ClickSelectingTool</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the mode-less <a href="../symbols/ClickSelectingTool.html" class="linkConstructor">ClickSelectingTool</a>, normally one of the <a href="../symbols/ToolManager.html#mouseUpTools" class="linkProperty">mouseUpTools</a>.<span class="nodetails" id="xpropclickSelectingTool"><a class="morelink" onclick="hst('propclickSelectingTool')">More...</a></span> <span class="details" id="propclickSelectingTool">
</span><div class="details" id="dpropclickSelectingTool"><p>
You can disable this tool by setting its <a href="../symbols/Tool.html#isEnabled" class="linkProperty">Tool.isEnabled</a> property to false.</div>
</div>
</td>
</tr>
<tr id="contextMenuTool" >
<td class="name">
<div class="name">
contextMenuTool
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/ContextMenuTool.html" class="linkConstructor">ContextMenuTool</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the mode-less <a href="../symbols/ContextMenuTool.html" class="linkConstructor">ContextMenuTool</a>, normally one of the <a href="../symbols/ToolManager.html#mouseUpTools" class="linkProperty">mouseUpTools</a>.<span class="nodetails" id="xpropcontextMenuTool"><a class="morelink" onclick="hst('propcontextMenuTool')">More...</a></span> <span class="details" id="propcontextMenuTool">
</span><div class="details" id="dpropcontextMenuTool"><p>
You can disable this tool by setting its <a href="../symbols/Tool.html#isEnabled" class="linkProperty">Tool.isEnabled</a> property to false.</div>
</div>
</td>
</tr>
<tr id="currentToolTip" >
<td class="name">
<div class="name">
currentToolTip
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a>|<a href="../symbols/HTMLInfo.html" class="linkConstructor">HTMLInfo</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>This read-only property returns the currently showing tooltip, or null if there is none.
</div>
</td>
</tr>
<tr id="draggingTool" >
<td class="name">
<div class="name">
draggingTool
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/DraggingTool.html" class="linkConstructor">DraggingTool</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the mode-less <a href="../symbols/DraggingTool.html" class="linkConstructor">DraggingTool</a>, normally one of the <a href="../symbols/ToolManager.html#mouseMoveTools" class="linkProperty">mouseMoveTools</a>.<span class="nodetails" id="xpropdraggingTool"><a class="morelink" onclick="hst('propdraggingTool')">More...</a></span> <span class="details" id="propdraggingTool">
</span><div class="details" id="dpropdraggingTool"><p>
You can disable this tool by setting its <a href="../symbols/Tool.html#isEnabled" class="linkProperty">Tool.isEnabled</a> property to false.</div>
</div>
</td>
</tr>
<tr id="dragSelectingTool" >
<td class="name">
<div class="name">
dragSelectingTool
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/DragSelectingTool.html" class="linkConstructor">DragSelectingTool</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the mode-less <a href="../symbols/DragSelectingTool.html" class="linkConstructor">DragSelectingTool</a>, normally one of the <a href="../symbols/ToolManager.html#mouseMoveTools" class="linkProperty">mouseMoveTools</a>.<span class="nodetails" id="xpropdragSelectingTool"><a class="morelink" onclick="hst('propdragSelectingTool')">More...</a></span> <span class="details" id="propdragSelectingTool">
</span><div class="details" id="dpropdragSelectingTool"><p>
You can disable this tool by setting its <a href="../symbols/Tool.html#isEnabled" class="linkProperty">Tool.isEnabled</a> property to false.</div>
</div>
</td>
</tr>
<tr id="dragSize" >
<td class="name">
<div class="name">
dragSize
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/Size.html" class="linkConstructor">Size</a>}</span>
<span class="since" title="since">1.2</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the distance in view coordinates within which a mouse down-and-up is considered a click and beyond which a mouse movement is considered a drag.<span class="nodetails" id="xpropdragSize"><a class="morelink" onclick="hst('propdragSize')">More...</a></span> <span class="details" id="propdragSize">
The default value is 2 pixels horizontally and vertically for mouse events, and increases by 6 pixels for touch events.
This value is used by <a href="../symbols/Tool.html#isBeyondDragSize" class="linkMethod">Tool.isBeyondDragSize</a>.</span>
</div>
</td>
</tr>
<tr id="gestureBehavior" >
<td class="name">
<div class="name">
gestureBehavior
</div>
<div class="attributes">
<span class="light">{EnumValue}</span>
<span class="since" title="since">1.5</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the ToolManager's default gestureBehavior behavior.<span class="nodetails" id="xpropgestureBehavior"><a class="morelink" onclick="hst('propgestureBehavior')">More...</a></span> <span class="details" id="propgestureBehavior"> Allowed values are <a href="../symbols/ToolManager.html#GestureZoom" class="linkConstant">ToolManager.GestureZoom</a> and
<a href="../symbols/ToolManager.html#GestureCancel" class="linkConstant">ToolManager.GestureCancel</a> and <a href="../symbols/ToolManager.html#GestureNone" class="linkConstant">ToolManager.GestureNone</a>.
</span><div class="details" id="dpropgestureBehavior"><p>
The default value is <a href="../symbols/ToolManager.html#GestureZoom" class="linkConstant">ToolManager.GestureZoom</a>.</div>
</div>
</td>
</tr>
<tr id="holdDelay" >
<td class="name">
<div class="name">
holdDelay
</div>
<div class="attributes">
<span class="light">{number}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the time between when the mouse stops moving and a hold event,
in milliseconds.<span class="nodetails" id="xpropholdDelay"><a class="morelink" onclick="hst('propholdDelay')">More...</a></span> <span class="details" id="propholdDelay">
The default value is 850 milliseconds.</span>
</div>
</td>
</tr>
<tr id="hoverDelay" >
<td class="name">
<div class="name">
hoverDelay
</div>
<div class="attributes">
<span class="light">{number}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the time between when the mouse stops moving and a hover event,
in milliseconds.<span class="nodetails" id="xprophoverDelay"><a class="morelink" onclick="hst('prophoverDelay')">More...</a></span> <span class="details" id="prophoverDelay"> This value affects the delay before <a href="../symbols/GraphObject.html#toolTip" class="linkProperty">GraphObject.toolTip</a>s are shown.
The default value is 850 milliseconds.</span>
</div>
</td>
</tr>
<tr id="linkingTool" >
<td class="name">
<div class="name">
linkingTool
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/LinkingTool.html" class="linkConstructor">LinkingTool</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the mode-less <a href="../symbols/LinkingTool.html" class="linkConstructor">LinkingTool</a>, normally one of the <a href="../symbols/ToolManager.html#mouseMoveTools" class="linkProperty">mouseMoveTools</a>.<span class="nodetails" id="xproplinkingTool"><a class="morelink" onclick="hst('proplinkingTool')">More...</a></span> <span class="details" id="proplinkingTool">
</span><div class="details" id="dproplinkingTool"><p>
You can disable this tool by setting its <a href="../symbols/Tool.html#isEnabled" class="linkProperty">Tool.isEnabled</a> property to false.</div>
</div>
</td>
</tr>
<tr id="linkReshapingTool" >
<td class="name">
<div class="name">
linkReshapingTool
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/LinkReshapingTool.html" class="linkConstructor">LinkReshapingTool</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the mode-less <a href="../symbols/LinkReshapingTool.html" class="linkConstructor">LinkReshapingTool</a>, normally one of the <a href="../symbols/ToolManager.html#mouseDownTools" class="linkProperty">mouseDownTools</a>.<span class="nodetails" id="xproplinkReshapingTool"><a class="morelink" onclick="hst('proplinkReshapingTool')">More...</a></span> <span class="details" id="proplinkReshapingTool">
</span><div class="details" id="dproplinkReshapingTool"><p>
You can disable this tool by setting its <a href="../symbols/Tool.html#isEnabled" class="linkProperty">Tool.isEnabled</a> property to false.</div>
</div>
</td>
</tr>
<tr id="mouseDownTools" >
<td class="name">
<div class="name">
mouseDownTools
</div>
<div class="attributes">
<span class="light">{List.<Tool>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>This read-only property returns the list of <a href="../symbols/Tool.html" class="linkConstructor">Tool</a>s that might be started upon a mouse or finger press event.<span class="nodetails" id="xpropmouseDownTools"><a class="morelink" onclick="hst('propmouseDownTools')">More...</a></span> <span class="details" id="propmouseDownTools">
When the ToolManager handles a mouse-down or touch-down event in <a href="../symbols/ToolManager.html#doMouseDown" class="linkMethod">doMouseDown</a>,
it searches this list in order, starting the first tool for which
<a href="../symbols/Tool.html#canStart" class="linkMethod">Tool.canStart</a> returns true.
</span><div class="details" id="dpropmouseDownTools"><p>
This list may be modified, but it must not be modified while any tool
is handling events.
<p>
<a href="../symbols/ToolManager.html#initializeStandardTools" class="linkMethod">initializeStandardTools</a> installs the following tools, in order:
<ul>
<li><a href="../symbols/ToolManager.html#actionTool" class="linkProperty">actionTool</a>, an <a href="../symbols/ActionTool.html" class="linkConstructor">ActionTool</a></li>
<li><a href="../symbols/ToolManager.html#relinkingTool" class="linkProperty">relinkingTool</a>, a <a href="../symbols/RelinkingTool.html" class="linkConstructor">RelinkingTool</a></li>
<li><a href="../symbols/ToolManager.html#linkReshapingTool" class="linkProperty">linkReshapingTool</a>, a <a href="../symbols/LinkReshapingTool.html" class="linkConstructor">LinkReshapingTool</a></li>
<li><a href="../symbols/ToolManager.html#resizingTool" class="linkProperty">resizingTool</a>, a <a href="../symbols/ResizingTool.html" class="linkConstructor">ResizingTool</a></li>
<li><a href="../symbols/ToolManager.html#rotatingTool" class="linkProperty">rotatingTool</a>, a <a href="../symbols/RotatingTool.html" class="linkConstructor">RotatingTool</a></li>
</ul></div>
</div>
</td>
</tr>
<tr id="mouseMoveTools" >
<td class="name">
<div class="name">
mouseMoveTools
</div>
<div class="attributes">
<span class="light">{List.<Tool>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>This read-only property returns the list of <a href="../symbols/Tool.html" class="linkConstructor">Tool</a>s that might be started upon a mouse or finger move event.<span class="nodetails" id="xpropmouseMoveTools"><a class="morelink" onclick="hst('propmouseMoveTools')">More...</a></span> <span class="details" id="propmouseMoveTools">
When the ToolManager handles a mouse-move or touch-move event in <a href="../symbols/ToolManager.html#doMouseMove" class="linkMethod">doMouseMove</a>,
it searches this list in order, starting the first tool for which
<a href="../symbols/Tool.html#canStart" class="linkMethod">Tool.canStart</a> returns true.
</span><div class="details" id="dpropmouseMoveTools"><p>
This list may be modified, but it must not be modified while any tool
is handling events.
<p>
<a href="../symbols/ToolManager.html#initializeStandardTools" class="linkMethod">initializeStandardTools</a> installs the following tools, in order:
<ul>
<li><a href="../symbols/ToolManager.html#linkingTool" class="linkProperty">linkingTool</a>, a <a href="../symbols/LinkingTool.html" class="linkConstructor">LinkingTool</a></li>
<li><a href="../symbols/ToolManager.html#draggingTool" class="linkProperty">draggingTool</a>, a <a href="../symbols/DraggingTool.html" class="linkConstructor">DraggingTool</a></li>
<li><a href="../symbols/ToolManager.html#dragSelectingTool" class="linkProperty">dragSelectingTool</a>, a <a href="../symbols/DragSelectingTool.html" class="linkConstructor">DragSelectingTool</a></li>
<li><a href="../symbols/ToolManager.html#panningTool" class="linkProperty">panningTool</a>, a <a href="../symbols/PanningTool.html" class="linkConstructor">PanningTool</a></li>
</ul></div>
</div>
</td>
</tr>
<tr id="mouseUpTools" >
<td class="name">
<div class="name">
mouseUpTools
</div>
<div class="attributes">
<span class="light">{List.<Tool>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>This read-only property returns the list of <a href="../symbols/Tool.html" class="linkConstructor">Tool</a>s that might be started upon a mouse or finger up event.<span class="nodetails" id="xpropmouseUpTools"><a class="morelink" onclick="hst('propmouseUpTools')">More...</a></span> <span class="details" id="propmouseUpTools">
When the ToolManager handles a mouse-up or touch-up event in <a href="../symbols/ToolManager.html#doMouseUp" class="linkMethod">doMouseUp</a>,
it searches this list in order, starting the first tool for which
<a href="../symbols/Tool.html#canStart" class="linkMethod">Tool.canStart</a> returns true.
</span><div class="details" id="dpropmouseUpTools"><p>
This list may be modified, but it must not be modified while any tool
is handling events.
<p>
<a href="../symbols/ToolManager.html#initializeStandardTools" class="linkMethod">initializeStandardTools</a> installs the following tools, in order:
<ul>
<li><a href="../symbols/ToolManager.html#contextMenuTool" class="linkProperty">contextMenuTool</a>, a <a href="../symbols/ContextMenuTool.html" class="linkConstructor">ContextMenuTool</a></li>
<li><a href="../symbols/ToolManager.html#textEditingTool" class="linkProperty">textEditingTool</a>, a <a href="../symbols/TextEditingTool.html" class="linkConstructor">TextEditingTool</a></li>
<li><a href="../symbols/ToolManager.html#clickCreatingTool" class="linkProperty">clickCreatingTool</a>, a <a href="../symbols/ClickCreatingTool.html" class="linkConstructor">ClickCreatingTool</a></li>
<li><a href="../symbols/ToolManager.html#clickSelectingTool" class="linkProperty">clickSelectingTool</a>, a <a href="../symbols/ClickSelectingTool.html" class="linkConstructor">ClickSelectingTool</a></li>
</ul></div>
</div>
</td>
</tr>
<tr id="mouseWheelBehavior" >
<td class="name">
<div class="name">
mouseWheelBehavior
</div>
<div class="attributes">
<span class="light">{EnumValue}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the ToolManager's mouse wheel behavior.<span class="nodetails" id="xpropmouseWheelBehavior"><a class="morelink" onclick="hst('propmouseWheelBehavior')">More...</a></span> <span class="details" id="propmouseWheelBehavior"> Allowed values are <a href="../symbols/ToolManager.html#WheelScroll" class="linkConstant">ToolManager.WheelScroll</a> and
<a href="../symbols/ToolManager.html#WheelZoom" class="linkConstant">ToolManager.WheelZoom</a> and <a href="../symbols/ToolManager.html#WheelNone" class="linkConstant">ToolManager.WheelNone</a>.
</span><div class="details" id="dpropmouseWheelBehavior"><p>
The default value is <a href="../symbols/ToolManager.html#WheelScroll" class="linkConstant">ToolManager.WheelScroll</a>.</div>
</div>
</td>
</tr>
<tr id="panningTool" >
<td class="name">
<div class="name">
panningTool
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/PanningTool.html" class="linkConstructor">PanningTool</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the mode-less <a href="../symbols/PanningTool.html" class="linkConstructor">PanningTool</a>, normally one of the <a href="../symbols/ToolManager.html#mouseMoveTools" class="linkProperty">mouseMoveTools</a>.<span class="nodetails" id="xproppanningTool"><a class="morelink" onclick="hst('proppanningTool')">More...</a></span> <span class="details" id="proppanningTool">
</span><div class="details" id="dproppanningTool"><p>
You can disable this tool by setting its <a href="../symbols/Tool.html#isEnabled" class="linkProperty">Tool.isEnabled</a> property to false.</div>
</div>
</td>
</tr>
<tr id="relinkingTool" >
<td class="name">
<div class="name">
relinkingTool
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/RelinkingTool.html" class="linkConstructor">RelinkingTool</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the mode-less <a href="../symbols/RelinkingTool.html" class="linkConstructor">RelinkingTool</a>, normally one of the <a href="../symbols/ToolManager.html#mouseDownTools" class="linkProperty">mouseDownTools</a>.<span class="nodetails" id="xproprelinkingTool"><a class="morelink" onclick="hst('proprelinkingTool')">More...</a></span> <span class="details" id="proprelinkingTool">
</span><div class="details" id="dproprelinkingTool"><p>
You can disable this tool by setting its <a href="../symbols/Tool.html#isEnabled" class="linkProperty">Tool.isEnabled</a> property to false.</div>
</div>
</td>
</tr>
<tr id="resizingTool" >
<td class="name">
<div class="name">
resizingTool
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/ResizingTool.html" class="linkConstructor">ResizingTool</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the mode-less <a href="../symbols/ResizingTool.html" class="linkConstructor">ResizingTool</a>, normally one of the <a href="../symbols/ToolManager.html#mouseDownTools" class="linkProperty">mouseDownTools</a>.<span class="nodetails" id="xpropresizingTool"><a class="morelink" onclick="hst('propresizingTool')">More...</a></span> <span class="details" id="propresizingTool">
</span><div class="details" id="dpropresizingTool"><p>
You can disable this tool by setting its <a href="../symbols/Tool.html#isEnabled" class="linkProperty">Tool.isEnabled</a> property to false.</div>
</div>
</td>
</tr>
<tr id="rotatingTool" >
<td class="name">
<div class="name">
rotatingTool
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/RotatingTool.html" class="linkConstructor">RotatingTool</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the mode-less <a href="../symbols/RotatingTool.html" class="linkConstructor">RotatingTool</a>, normally one of the <a href="../symbols/ToolManager.html#mouseDownTools" class="linkProperty">mouseDownTools</a>.<span class="nodetails" id="xproprotatingTool"><a class="morelink" onclick="hst('proprotatingTool')">More...</a></span> <span class="details" id="proprotatingTool">
</span><div class="details" id="dproprotatingTool"><p>
You can disable this tool by setting its <a href="../symbols/Tool.html#isEnabled" class="linkProperty">Tool.isEnabled</a> property to false.</div>
</div>
</td>
</tr>
<tr id="textEditingTool" >
<td class="name">
<div class="name">
textEditingTool
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/TextEditingTool.html" class="linkConstructor">TextEditingTool</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets the mode-less <a href="../symbols/TextEditingTool.html" class="linkConstructor">TextEditingTool</a>, normally one of the <a href="../symbols/ToolManager.html#mouseUpTools" class="linkProperty">mouseUpTools</a>.<span class="nodetails" id="xproptextEditingTool"><a class="morelink" onclick="hst('proptextEditingTool')">More...</a></span> <span class="details" id="proptextEditingTool">
</span><div class="details" id="dproptextEditingTool"><p>
You can disable this tool by setting its <a href="../symbols/Tool.html#isEnabled" class="linkProperty">Tool.isEnabled</a> property to false.</div>
</div>
</td>
</tr>
<tr id="toolTipDuration" >
<td class="name">
<div class="name">
toolTipDuration
</div>
<div class="attributes">
<span class="light">{number}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp <p> -->
<p>Gets or sets how long a tool tip is visible.<span class="nodetails" id="xproptoolTipDuration"><a class="morelink" onclick="hst('proptoolTipDuration')">More...</a></span> <span class="details" id="proptoolTipDuration">
The default value is 5000 milliseconds.
</span><div class="details" id="dproptoolTipDuration"><p>
This is used by <a href="../symbols/ToolManager.html#showToolTip" class="linkMethod">showToolTip</a> to determine how long to wait before calling <a href="../symbols/ToolManager.html#hideToolTip" class="linkMethod">hideToolTip</a>.</div>
</div>
</td>
</tr>
</tbody>
</table>
</div><!-- class="table-responsive">-->
<dl class="inheritsList">
<dt>Properties borrowed from class <a href="../symbols/Tool.html" class="linkConstructor">Tool</a>: </dt><dd><a href="../symbols/Tool.html#diagram" class="linkProperty">diagram</a>, <a href="../symbols/Tool.html#isActive" class="linkProperty">isActive</a>, <a href="../symbols/Tool.html#isEnabled" class="linkProperty">isEnabled</a>, <a href="../symbols/Tool.html#name" class="linkProperty">name</a>, <a href="../symbols/Tool.html#transactionResult" class="linkProperty">transactionResult</a></dd>
</dl>
<!-- ============================== methods summary ======================== -->
<h2 class="summaryCaption">Method <span class="nodetails"> Summary</span><span class="details"> Details</span></h2>
<div class="table-responsive">
<table class="summaryTable table table-bordered table-condensed" summary="A summary of the methods documented in the class ToolManager.">
<thead>
<tr>
<th scope="col" class="name">Name, Return Type</th>
<th scope="col" class="description">Description</th>
</tr>
</thead>
<tbody>
<tr id="doKeyDown">
<td class="name">
<div class="name">
doKeyDown()
</div>
<div class="attributes">
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This just calls <a href="../symbols/CommandHandler.html#doKeyDown" class="linkMethod">CommandHandler.doKeyDown</a> on the diagram's <a href="../symbols/Diagram.html#commandHandler" class="linkProperty">Diagram.commandHandler</a>.<span class="nodetails" id="xmethdoKeyDown"><a class="morelink" onclick="hst('methdoKeyDown')">More...</a></span> <span class="details" id="methdoKeyDown">
</span><div class="details" id="dmethdoKeyDown"><p>
This method may be overridden, but you should consider calling this base method in order to get all of its functionality.</div>
</div>
</td>
</tr>
<tr id="doKeyUp">
<td class="name">
<div class="name">
doKeyUp()
</div>
<div class="attributes">
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This just calls <a href="../symbols/CommandHandler.html#doKeyUp" class="linkMethod">CommandHandler.doKeyUp</a> on the diagram's <a href="../symbols/Diagram.html#commandHandler" class="linkProperty">Diagram.commandHandler</a>.<span class="nodetails" id="xmethdoKeyUp"><a class="morelink" onclick="hst('methdoKeyUp')">More...</a></span> <span class="details" id="methdoKeyUp">
</span><div class="details" id="dmethdoKeyUp"><p>
This method may be overridden, but you should consider calling this base method in order to get all of its functionality.</div>
</div>
</td>
</tr>
<tr id="doMouseDown">
<td class="name">
<div class="name">
doMouseDown()
</div>
<div class="attributes">
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Iterate over the <a href="../symbols/ToolManager.html#mouseDownTools" class="linkProperty">mouseDownTools</a> list and start the first tool
for which its <a href="../symbols/Tool.html#canStart" class="linkMethod">Tool.canStart</a> predicate returns true.<span class="nodetails" id="xmethdoMouseDown"><a class="morelink" onclick="hst('methdoMouseDown')">More...</a></span> <span class="details" id="methdoMouseDown">
</span><div class="details" id="dmethdoMouseDown"><p>
Starting a tool replaces the <a href="../symbols/Diagram.html#currentTool" class="linkProperty">Diagram.currentTool</a> with the new tool.
Successfully doing so also activates the new tool by calling <a href="../symbols/Tool.html#doActivate" class="linkMethod">Tool.doActivate</a>
and passes on the mouse-down event to it by calling <a href="../symbols/Tool.html#doMouseDown" class="linkMethod">Tool.doMouseDown</a>.
<p>
Not finding any startable tools causes this tool manager to activate,
thereby enabling the mouse-move and mouse-up behaviors and starts
detection of a mouse-hold event after <a href="../symbols/ToolManager.html#holdDelay" class="linkProperty">holdDelay</a> milliseconds.
<p>
This method may be overridden, but you should consider calling this base method in order to get all of its functionality.
Please read the Introduction page on <a href="../../intro/extensions.html">Extensions</a> for how to override methods and how to call this base method.</div>
</div>
</td>
</tr>
<tr id="doMouseHover">
<td class="name">
<div class="name">
doMouseHover()
</div>
<div class="attributes">
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Implement the standard behavior for mouse hover and mouse hold events,
called by <a href="../symbols/ToolManager.html#doWaitAfter" class="linkMethod">doWaitAfter</a> when the mouse has not moved for a period of time.<span class="nodetails" id="xmethdoMouseHover"><a class="morelink" onclick="hst('methdoMouseHover')">More...</a></span> <span class="details" id="methdoMouseHover">
</span><div class="details" id="dmethdoMouseHover"><p>
If there has been no mouse down, the timer is set for <a href="../symbols/ToolManager.html#hoverDelay" class="linkProperty">hoverDelay</a> milliseconds.
If it executes, it calls any <a href="../symbols/GraphObject.html#mouseHover" class="linkProperty">GraphObject.mouseHover</a> function on the object
at the mouse or on any of its containing panels,
or it calls any <a href="../symbols/Diagram.html#mouseHover" class="linkProperty">Diagram.mouseHover</a> function for a background mouse-hover event.
<p>
If there had been a mouse down, the timer is set for <a href="../symbols/ToolManager.html#holdDelay" class="linkProperty">holdDelay</a> milliseconds.
If it executes, it calls any <a href="../symbols/GraphObject.html#mouseHold" class="linkProperty">GraphObject.mouseHold</a> function on the object
at the mouse or on any of its containing panels,
or it calls any <a href="../symbols/Diagram.html#mouseHold" class="linkProperty">Diagram.mouseHold</a> function for a background mouse-held-down event.
<p>
This method may be overridden, but you should consider calling this base method in order to get all of its functionality.
Please read the Introduction page on <a href="../../intro/extensions.html">Extensions</a> for how to override methods and how to call this base method.</div>
</div>
</td>
</tr>
<tr id="doMouseMove">
<td class="name">
<div class="name">
doMouseMove()
</div>
<div class="attributes">
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Iterate over the <a href="../symbols/ToolManager.html#mouseMoveTools" class="linkProperty">mouseMoveTools</a> list and start the first tool
for which its <a href="../symbols/Tool.html#canStart" class="linkMethod">Tool.canStart</a> predicate returns true.<span class="nodetails" id="xmethdoMouseMove"><a class="morelink" onclick="hst('methdoMouseMove')">More...</a></span> <span class="details" id="methdoMouseMove">
</span><div class="details" id="dmethdoMouseMove"><p>
Starting a tool replaces the <a href="../symbols/Diagram.html#currentTool" class="linkProperty">Diagram.currentTool</a> with the new tool.
Successfully doing so also activates the new tool by calling <a href="../symbols/Tool.html#doActivate" class="linkMethod">Tool.doActivate</a>
and passes on the mouse-move event to it by calling <a href="../symbols/Tool.html#doMouseMove" class="linkMethod">Tool.doMouseMove</a>.
<p>
If no tool is found and activated, this:
<ul>
<li> Calls <a href="../symbols/Tool.html#standardMouseOver" class="linkMethod">Tool.standardMouseOver</a> to invoke any mouse-enter, mouse-over, or mouse-leave functions.
<li> if the mouse has moved sufficiently, such that <a href="../symbols/Tool.html#isBeyondDragSize" class="linkMethod">Tool.isBeyondDragSize</a> is true,
this also calls <a href="../symbols/Tool.html#standardWaitAfter" class="linkMethod">Tool.standardWaitAfter</a> for a possible call to
<a href="../symbols/ToolManager.html#doWaitAfter" class="linkMethod">doWaitAfter</a> after <a href="../symbols/ToolManager.html#hoverDelay" class="linkProperty">hoverDelay</a> milliseconds.
<li> Sets the <a href="../symbols/Diagram.html#lastInput" class="linkProperty">Diagram.lastInput</a> to bubble.
</ul>
<p>
This method may be overridden, but you should consider calling this base method in order to get all of its functionality.</div>
</div>
</td>
</tr>
<tr id="doMouseUp">
<td class="name">
<div class="name">
doMouseUp()
</div>
<div class="attributes">
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Iterate over the <a href="../symbols/ToolManager.html#mouseUpTools" class="linkProperty">mouseUpTools</a> list and start the first tool
for which its <a href="../symbols/Tool.html#canStart" class="linkMethod">Tool.canStart</a> predicate returns true.<span class="nodetails" id="xmethdoMouseUp"><a class="morelink" onclick="hst('methdoMouseUp')">More...</a></span> <span class="details" id="methdoMouseUp">
</span><div class="details" id="dmethdoMouseUp"><p>
Starting a tool replaces the <a href="../symbols/Diagram.html#currentTool" class="linkProperty">Diagram.currentTool</a> with the new tool.
Successfully doing so also activates the new tool by calling <a href="../symbols/Tool.html#doActivate" class="linkMethod">Tool.doActivate</a>
and passes on the mouse-up event to it by calling <a href="../symbols/Tool.html#doMouseUp" class="linkMethod">Tool.doMouseUp</a>.
<p>
If no startable tool is found it deactivates this tool manager,
to get ready for a mouse-down and ignore mouse-move and mouse-up events.
<p>
This method may be overridden, but you should consider calling this base method in order to get all of its functionality.</div>
</div>
</td>
</tr>
<tr id="doMouseWheel">
<td class="name">
<div class="name">
doMouseWheel()
</div>
<div class="attributes">
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>The diagram will call this method as the mouse wheel is rotated.<span class="nodetails" id="xmethdoMouseWheel"><a class="morelink" onclick="hst('methdoMouseWheel')">More...</a></span> <span class="details" id="methdoMouseWheel">
</span><div class="details" id="dmethdoMouseWheel"><p>
By default this just calls <a href="../symbols/Tool.html#standardMouseWheel" class="linkMethod">Tool.standardMouseWheel</a>.
This method may be overridden, but you should consider calling this base method in order to get all of its functionality.</div>
</div>
</td>
</tr>
<tr id="doToolTip">
<td class="name">
<div class="name">
doToolTip()
</div>
<div class="attributes">
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Implement the standard behavior for tooltips,
called by <a href="../symbols/ToolManager.html#doWaitAfter" class="linkMethod">doWaitAfter</a> when the mouse has not moved for a period of time.<span class="nodetails" id="xmethdoToolTip"><a class="morelink" onclick="hst('methdoToolTip')">More...</a></span> <span class="details" id="methdoToolTip">
</span><div class="details" id="dmethdoToolTip"><p>
This looks for a <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a> at the latest mouse point.
If it finds an object, it checks for a <a href="../symbols/GraphObject.html#toolTip" class="linkProperty">GraphObject.toolTip</a>.
If it has none, this method searches up the visual tree for a containing
<a href="../symbols/Panel.html" class="linkConstructor">Panel</a> that does have a tooltip.
<p>
If it didn't find any object, this looks for a <a href="../symbols/Diagram.html#toolTip" class="linkProperty">Diagram.toolTip</a>.
<p>
If it eventually finds a tooltip, this calls <a href="../symbols/ToolManager.html#showToolTip" class="linkMethod">showToolTip</a>.
Otherwise this calls <a href="../symbols/ToolManager.html#hideToolTip" class="linkMethod">hideToolTip</a>.
<p>
This method may be overridden, but you should consider calling this base method in order to get all of its functionality.
Please read the Introduction page on <a href="../../intro/extensions.html">Extensions</a> for how to override methods and how to call this base method.</div>
</div>
</td>
</tr>
<tr id="doWaitAfter">
<td class="name">
<div class="name">
doWaitAfter(event)
</div>
<div class="attributes">
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Implement the standard behavior for when the mouse has not moved for a period of time.<span class="nodetails" id="xmethdoWaitAfter"><a class="morelink" onclick="hst('methdoWaitAfter')">More...</a></span> <span class="details" id="methdoWaitAfter">
This is due to an expired timer started by calling <a href="../symbols/Tool.html#standardWaitAfter" class="linkMethod">Tool.standardWaitAfter</a>.
</span><div class="details" id="dmethdoWaitAfter"><p>
This calls <a href="../symbols/ToolManager.html#doMouseHover" class="linkMethod">doMouseHover</a> and, if not mouse-down, <a href="../symbols/ToolManager.html#doToolTip" class="linkMethod">doToolTip</a>.
Afterwards, if the event that called <a href="../symbols/Tool.html#standardWaitAfter" class="linkMethod">Tool.standardWaitAfter</a> was a touch event,
this simulates a right click, enabling context menu functionality and other actions on touch devices.
<p>
This method may be overridden, but you should consider calling this base method in order to get all of its functionality.</div>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{<a href="../symbols/InputEvent.html" class="linkConstructor">InputEvent</a>=}</span> <b>event</b>
</dt>
<dd>The event that caused <a href="../symbols/Tool.html#standardWaitAfter" class="linkMethod">standardWaitAfter</a>. In this override,
if it is a touch event and the <a href="../symbols/Diagram.html#lastInput" class="linkProperty">Diagram.lastInput</a> event is not handled (<a href="../symbols/InputEvent.html#handled" class="linkProperty">InputEvent.handled</a> set to false),
then this method will simulate a right click.</dd>
</dl>
</div>
</td>
</tr>
<tr id="findTool">
<td class="name">
<div class="name">
findTool(name)
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/Tool.html" class="linkConstructor">Tool</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Find a mouse tool of a given name.<span class="nodetails" id="xmethfindTool"><a class="morelink" onclick="hst('methfindTool')">More...</a></span> <span class="details" id="methfindTool">
This searches the <a href="../symbols/ToolManager.html#mouseDownTools" class="linkProperty">mouseDownTools</a>, <a href="../symbols/ToolManager.html#mouseMoveTools" class="linkProperty">mouseMoveTools</a>, and <a href="../symbols/ToolManager.html#mouseUpTools" class="linkProperty">mouseUpTools</a> lists.
Please read the Introduction page on <a href="../../intro/extensions.html">Extensions</a> for how to override methods and how to call this base method.</span>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{string}</span> <b>name</b>
</dt>
<dd>the type of tool, such as "Dragging" or "ClickSelecting".</dd>
</dl>
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{<a href="../symbols/Tool.html" class="linkConstructor">Tool</a>}</span> a <a href="../symbols/Tool.html" class="linkConstructor">Tool</a> whose <a href="../symbols/Tool.html#name" class="linkProperty">Tool.name</a> exactly matches the given name,
or null if no such tool is found in any of the three lists.</dt>
</dl>
</div>
</td>
</tr>
<tr id="hideToolTip">
<td class="name">
<div class="name">
hideToolTip()
</div>
<div class="attributes">
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Hide any tooltip.<span class="nodetails" id="xmethhideToolTip"><a class="morelink" onclick="hst('methhideToolTip')">More...</a></span> <span class="details" id="methhideToolTip">
</span><div class="details" id="dmethhideToolTip"><p>
This method may be overridden, but you should consider calling this base method in order to get all of its functionality.
Please read the Introduction page on <a href="../../intro/extensions.html">Extensions</a> for how to override methods and how to call this base method.</div>
</div>
</td>
</tr>
<tr id="initializeStandardTools">
<td class="name">
<div class="name">
initializeStandardTools()
</div>
<div class="attributes">
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Initialize the three mouse tool lists with instances of the standard tools.<span class="nodetails" id="xmethinitializeStandardTools"><a class="morelink" onclick="hst('methinitializeStandardTools')">More...</a></span> <span class="details" id="methinitializeStandardTools">
This adds new instances of tools to the following three mouse tool lists:
<a href="../symbols/ToolManager.html#mouseDownTools" class="linkProperty">mouseDownTools</a>, <a href="../symbols/ToolManager.html#mouseMoveTools" class="linkProperty">mouseMoveTools</a>, or <a href="../symbols/ToolManager.html#mouseUpTools" class="linkProperty">mouseUpTools</a>.
This also sets the various tool properties of this ToolManager
to those newly created tools.
Please read the Introduction page on <a href="../../intro/extensions.html">Extensions</a> for how to override methods and how to call this base method.</span>
</div>
</td>
</tr>
<tr id="positionToolTip">
<td class="name">
<div class="name">
positionToolTip(tooltip, obj)
</div>
<div class="attributes">
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This is called by <a href="../symbols/ToolManager.html#showToolTip" class="linkMethod">showToolTip</a> to position the part within the viewport.<span class="nodetails" id="xmethpositionToolTip"><a class="morelink" onclick="hst('methpositionToolTip')">More...</a></span> <span class="details" id="methpositionToolTip">
It normally goes just below the cursor.
But if the mouse is too close to the right edge or the bottom edge of the viewport,
it is positioned left and/or above the cursor.
</span><div class="details" id="dmethpositionToolTip"><p>
This method only operates if the tooltip, an <a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a>, does not have a <a href="../symbols/Adornment.html#placeholder" class="linkProperty">Adornment.placeholder</a>.
When there is a <a href="../symbols/Placeholder.html" class="linkConstructor">Placeholder</a> in the tooltip, that Adornment is automatically positioned
so that the Placeholder is positioned at the adorned object, the second argument to this method.
<p>
This method may be overridden.
Please read the Introduction page on <a href="../../intro/extensions.html">Extensions</a> for how to override methods and how to call this base method.
<p>
If you override this method to position the tooltip,
the tooltip has already been measured but not arranged,
so you can use its <a href="../symbols/GraphObject.html#measuredBounds" class="linkProperty">GraphObject.measuredBounds</a> width and height
but not its <a href="../symbols/GraphObject.html#actualBounds" class="linkProperty">GraphObject.actualBounds</a>.</div>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{<a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a>}</span> <b>tooltip</b>
</dt>
<dd></dd>
<dt>
<span class="light fixedFont">{<a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>}</span> <b>obj</b>
</dt>
<dd>The <a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a> getting the tooltip,
or null if the tooltip is for the diagram background.</dd>
</dl>
</div>
</td>
</tr>
<tr id="replaceTool">
<td class="name">
<div class="name">
replaceTool(name, newtool)
</div>
<div class="attributes">
<span class="light">{<a href="../symbols/Tool.html" class="linkConstructor">Tool</a>}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Replace a mouse tool of a given name with a new tool, or remove an existing tool (if the <i>newtool</i> is null).<span class="nodetails" id="xmethreplaceTool"><a class="morelink" onclick="hst('methreplaceTool')">More...</a></span> <span class="details" id="methreplaceTool">
This searches the <a href="../symbols/ToolManager.html#mouseDownTools" class="linkProperty">mouseDownTools</a>, <a href="../symbols/ToolManager.html#mouseMoveTools" class="linkProperty">mouseMoveTools</a>,
and <a href="../symbols/ToolManager.html#mouseUpTools" class="linkProperty">mouseUpTools</a> lists.
The new tool is inserted into the same list in which the same-named tool is found,
at the same position as the old tool.
However, if no existing tool with the given name is present, this does <b>not</b> add the new tool to any list, since it cannot know where it should be added.
Please read the Introduction page on <a href="../../intro/extensions.html">Extensions</a> for how to override methods and how to call this base method.</span>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{string}</span> <b>name</b>
</dt>
<dd>the type of tool, such as "Dragging" or "ClickSelecting".</dd>
<dt>
<span class="light fixedFont">{<a href="../symbols/Tool.html" class="linkConstructor">Tool</a>}</span> <b>newtool</b>
</dt>
<dd>If null, any tool that the search finds will just be removed
from the list in which it was found.</dd>
</dl>
<dl class="detailList">
<dt class="heading">Returns:</dt>
<dt><span class="light fixedFont">{<a href="../symbols/Tool.html" class="linkConstructor">Tool</a>}</span> the old tool that was replaced by the new one; this is null if none was found and the new tool was not added to any mouse tool list</dt>
</dl>
</div>
</td>
</tr>
<tr id="showToolTip">
<td class="name">
<div class="name">
showToolTip(tooltip, obj)
</div>
<div class="attributes">
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>Show a tooltip Adornment or HTMLInfo.<span class="nodetails" id="xmethshowToolTip"><a class="morelink" onclick="hst('methshowToolTip')">More...</a></span> <span class="details" id="methshowToolTip">
This is called by <a href="../symbols/ToolManager.html#doToolTip" class="linkMethod">doToolTip</a> once that method has found a tooltip to display.
</span><div class="details" id="dmethshowToolTip"><p>
This calls <a href="../symbols/ToolManager.html#positionToolTip" class="linkMethod">positionToolTip</a> to make it easier to customize how the tooltip
is positioned relative to the object with the tooltip.
<p>
This method may be overridden, but you should consider calling this base method in order to get all of its functionality.
Please read the Introduction page on <a href="../../intro/extensions.html">Extensions</a> for how to override methods and how to call this base method.</div>
<dl class="detailList">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{<a href="../symbols/Adornment.html" class="linkConstructor">Adornment</a>|<a href="../symbols/HTMLInfo.html" class="linkConstructor">HTMLInfo</a>}</span> <b>tooltip</b>
</dt>
<dd></dd>
<dt>
<span class="light fixedFont">{<a href="../symbols/GraphObject.html" class="linkConstructor">GraphObject</a>}</span> <b>obj</b>
</dt>
<dd>The GraphObject getting the tooltip; this is null if the tooltip is being shown for the diagram background.</dd>
</dl>
</div>
</td>
</tr>
</tbody>
</table>
</div><!-- class="table-responsive">-->
<dl class="inheritsList">
<dt>Methods borrowed from class <a href="../symbols/Tool.html" class="linkConstructor">Tool</a>: </dt><dd><a href="../symbols/Tool.html#cancelWaitAfter" class="linkMethod">cancelWaitAfter</a>, <a href="../symbols/Tool.html#canStart" class="linkMethod">canStart</a>, <a href="../symbols/Tool.html#canStartMultiTouch" class="linkMethod">canStartMultiTouch</a>, <a href="../symbols/Tool.html#doActivate" class="linkMethod">doActivate</a>, <a href="../symbols/Tool.html#doCancel" class="linkMethod">doCancel</a>, <a href="../symbols/Tool.html#doDeactivate" class="linkMethod">doDeactivate</a>, <a href="../symbols/Tool.html#doStart" class="linkMethod">doStart</a>, <a href="../symbols/Tool.html#doStop" class="linkMethod">doStop</a>, <a href="../symbols/Tool.html#findToolHandleAt" class="linkMethod">findToolHandleAt</a>, <a href="../symbols/Tool.html#isBeyondDragSize" class="linkMethod">isBeyondDragSize</a>, <a href="../symbols/Tool.html#standardMouseClick" class="linkMethod">standardMouseClick</a>, <a href="../symbols/Tool.html#standardMouseOver" class="linkMethod">standardMouseOver</a>, <a href="../symbols/Tool.html#standardMouseSelect" class="linkMethod">standardMouseSelect</a>, <a href="../symbols/Tool.html#standardMouseWheel" class="linkMethod">standardMouseWheel</a>, <a href="../symbols/Tool.html#standardPinchZoomMove" class="linkMethod">standardPinchZoomMove</a>, <a href="../symbols/Tool.html#standardPinchZoomStart" class="linkMethod">standardPinchZoomStart</a>, <a href="../symbols/Tool.html#standardWaitAfter" class="linkMethod">standardWaitAfter</a>, <a href="../symbols/Tool.html#startTransaction" class="linkMethod">startTransaction</a>, <a href="../symbols/Tool.html#stopTool" class="linkMethod">stopTool</a>, <a href="../symbols/Tool.html#stopTransaction" class="linkMethod">stopTransaction</a>, <a href="../symbols/Tool.html#updateAdornments" class="linkMethod">updateAdornments</a></dd>
</dl>
<!-- ============================== events summary ======================== -->
<!-- ============================== fields summary ===================== -->
<h2 class="summaryCaption">Constants<span class="nodetails"> Summary</span><span class="details"> Details</span></h2>
<div class="table-responsive">
<table class="summaryTable table table-bordered table-condensed" summary="A summary of the properties documented in the class ToolManager.">
<thead>
<tr>
<th scope="col" class="name">Name</th>
<th scope="col" class="description">Description</th>
</tr>
</thead>
<tbody>
<tr id="GestureCancel">
<td class="name">
<div class="name">
GestureCancel
<span class="since" title="since">1.5</span>
<span class="light">{EnumValue}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This value for <a href="../symbols/ToolManager.html#gestureBehavior" class="linkProperty">gestureBehavior</a> indicates that the pointer/touch pinch gestures
on the canvas intend to have no effect on the Diagram, but also no effect on the page.
</div>
</td>
</tr>
<tr id="GestureNone">
<td class="name">
<div class="name">
GestureNone
<span class="since" title="since">1.5</span>
<span class="light">{EnumValue}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This value for <a href="../symbols/ToolManager.html#gestureBehavior" class="linkProperty">gestureBehavior</a> indicates that the pointer/touch pinch gestures
on the canvas intend to have no effect on the Diagram, but will not be prevented,
and may bubble up the page to have other effects (such as zooming the page).
</div>
</td>
</tr>
<tr id="GestureZoom">
<td class="name">
<div class="name">
GestureZoom
<span class="since" title="since">1.5</span>
<span class="light">{EnumValue}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This value for <a href="../symbols/ToolManager.html#gestureBehavior" class="linkProperty">gestureBehavior</a> indicates that the pointer/touch pinch gestures
on the canvas intend to zoom the Diagram.
</div>
</td>
</tr>
<tr id="WheelNone">
<td class="name">
<div class="name">
WheelNone
<span class="since" title="since">1.2</span>
<span class="light">{EnumValue}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This value for <a href="../symbols/ToolManager.html#mouseWheelBehavior" class="linkProperty">mouseWheelBehavior</a> indicates that the mouse wheel events are ignored,
although scrolling or zooming by other means may still be allowed.
</div>
</td>
</tr>
<tr id="WheelScroll">
<td class="name">
<div class="name">
WheelScroll
<span class="light">{EnumValue}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This default value for <a href="../symbols/ToolManager.html#mouseWheelBehavior" class="linkProperty">mouseWheelBehavior</a> indicates that mouse wheel events scroll the diagram.
</div>
</td>
</tr>
<tr id="WheelZoom">
<td class="name">
<div class="name">
WheelZoom
<span class="light">{EnumValue}</span>
</div>
</td>
<td class="description">
<div class="description">
<!--newp--><p><p>This value for <a href="../symbols/ToolManager.html#mouseWheelBehavior" class="linkProperty">mouseWheelBehavior</a> indicates that the mouse wheel events change the scale of the diagram.
</div>
</td>
</tr>
</tbody>
</table>
</div><!-- class="table-responsive">-->
<!-- ============================== constructor details ==================== -->
</div> <!-- end contentBody -->
</div> <!-- end container-fluid -->
<!-- ============================== footer ================================= -->
<div id="footer" class="fineprint" style="clear:both">
Copyright &copy; 1998-2017 by <a href="https://www.nwoods.com/">Northwoods Software Corporation.</a>
</div>
</body>
</html>