### Navigation

- index
- modules |
- next |
- previous |
- home|
- examples|
- tutorials|
- pyplot|
- docs »
- The Matplotlib API »
- backends »

# `matplotlib.backend_managers`

`ToolManager`
  Class that makes the bridge between user interaction (key press, toolbar clicks, ..) and the actions in response to the user inputs.

class `matplotlib.backend_managers.``ToolEvent`(name, sender, tool, data=None)

  Bases: `object`

  Event for tool manipulation (add/remove)

class `matplotlib.backend_managers.``ToolManager`(figure=None)

  Bases: `object`

  Helper class that groups all the user interactions for a FigureManager

  Attributes

  manager: `FigureManager` |
  keypresslock: `widgets.LockDraw` | `LockDraw` object to know if the `canvas` key_press_event is locked
  messagelock: `widgets.LockDraw` | `LockDraw` object to know if the message is available to write

  `active_toggle`

    Currently toggled tools

  `add_tool`(name, tool, *args, **kwargs)

    Add tool to `ToolManager`

    If successful adds a new event `tool_trigger_name` where name is the name of the tool, this event is fired everytime the tool is triggered.

    Parameters: | name : str Name of the tool, treated as the ID, has to be unique tool : class_like, i.e. str or type Reference to find the class of the Tool to added.

    See also

    `matplotlib.backend_tools.ToolBase`
      The base class for tools.

    Notes

    args and kwargs get passed directly to the tools constructor.

  `canvas`

    Canvas managed by FigureManager

  `figure`

    Figure that holds the canvas

  `get_tool`(name, warn=True)

    Return the tool object, also accepts the actual tool for convenience

    Parameters: | name : str, ToolBase Name of the tool, or the tool itself warn : bool, optional If this method should give warnings.

  `get_tool_keymap`(name)

    Get the keymap associated with the specified tool

    Parameters: | name : string Name of the Tool
    Returns: | list : list of keys associated with the Tool

  `message_event`(message, sender=None)

    Emit a `ToolManagerMessageEvent`

  `remove_tool`(name)

    Remove tool from `ToolManager`

    Parameters: | name : string Name of the Tool

  `set_figure`(figure, update_tools=True)

    Sets the figure to interact with the tools

    Parameters: | figure: `Figure` update_tools: bool Force tools to update figure

  `toolmanager_connect`(s, func)

    Connect event with string s to func.

    Parameters: | s : String Name of the event The following events are recognized ‘tool_message_event’ ‘tool_removed_event’ ‘tool_added_event’ For every tool added a new event is created ‘tool_trigger_TOOLNAME` Where TOOLNAME is the id of the tool. func : function Function to be called with signature def func(event)

  `toolmanager_disconnect`(cid)

    Disconnect callback id cid

    Example usage:

        cid = toolmanager.toolmanager_connect('tool_trigger_zoom',
                                              on_press)
        #...later
        toolmanager.toolmanager_disconnect(cid)

  `tools`

    Return the tools controlled by `ToolManager`

  `trigger_tool`(name, sender=None, canvasevent=None, data=None)

    Trigger a tool and emit the tool_trigger_[name] event

    Parameters: | name : string Name of the tool sender: object Object that wishes to trigger the tool canvasevent : Event Original Canvas event or None data : Object Extra data to pass to the tool when triggering

  `update_keymap`(name, *keys)

    Set the keymap to associate with the specified tool

    Parameters: | name : string Name of the Tool keys : keys to associate with the Tool

class `matplotlib.backend_managers.``ToolManagerMessageEvent`(name, sender, message)

  Bases: `object`

  Event carrying messages from toolmanager

  Messages usually get displayed to the user by the toolbar

class `matplotlib.backend_managers.``ToolTriggerEvent`(name, sender, tool, canvasevent=None, data=None)

  Bases: `matplotlib.backend_managers.ToolEvent`

  Event to inform that a tool has been triggered