Enable Tools¶
Enable Tools
are Interator
subclasses that do not have to have any
visual representation, and which can be dynamically added and removed from
components by adding or removing them from the component’s tools
list.
This permits developers to quickly build up complex behaviours from simple,
reproducible parts without having complex inheritance hierarchies.
Basic Tools¶
Enable provides a number of basic tools for common interactions.
ButtonTool¶
The ButtonTool
provides basic push-button or checkbox
interactions, depending on how it is configured. The primary interface it
provides is a clicked
event which is fired when the user clicks in
the region of the underlying component, or when the click()
method is
called. The clicked
event is fired on mouse up.
To get checkbox-style behaviour, set togglable
to True
and
then every click will invert the checked
trait. The toggle state
can also be changed via the toggle()
method, which does not fire the
clicked
event when called. For buttons with multi-state toggles,
subclasses can override the toggle()
method to perform more complex
state changes.
By default, the tool responds to clicks that are within the associated
component, but subclasses can override this behaviour by replacing the
is_clickable()
method with something else.
It will commonly be the case that components or ButtonTool
subclasses which draw may wish to respond to user interactions by drawing
themselves in a highlighted or selected mode when the mouse is down inside
the button region. The down
trait provides this information
conveniently, so that users of the tool can change their drawing state and
request redraws when it changes.
DragTool¶
The DragTool
is an abstract base class that provides basic
interaction support for draging within Enable. Many other tools within
Enable and Chaco use it.
HoverTool¶
The HoverTool
is a simple tool that calls a callback when the
mouse has been held steadily over the component for a period of time.
MoveTool¶
A DragTool
subclass that allows a user to move a component around
its container by dragging.
ResizeTool¶
A DragTool
subclass that allows a user to resize a component by
dragging from the edges of the component.
ValueDragTool¶
A DragTool
subclass that allows a drag operation to set an
arbitrary value.