class_docstr: List all the tools controlled by the `ToolManager`.
code: def trigger(self, *args, **kwargs):
      print("_" * 80)
      fmt_tool = "{:12} {:45} {}".format
      print(fmt_tool("Name (id)", "Tool description", "Keymap"))
      print("-" * 80)
      tools = self.toolmanager.tools
      for name in sorted(tools):
          if not tools[name].description:
              continue
          keys = ", ".join(
              sorted(self.toolmanager.get_tool_keymap(name))
          )
          print(fmt_tool(name, tools[name].description, keys))
      print("_" * 80)
      fmt_active_toggle = "{!s:12} {!s:45}".format
      print("Active Toggle tools")
      print(fmt_active_toggle("Group", "Active"))
      print("-" * 80)
      for group, active in self.toolmanager.active_toggle.items():
          print(fmt_active_toggle(group, active))
  
file_path: matplotlib/galleries/examples/user_interfaces/toolmanager_sgskip.py
imports: import matplotlib.pyplot
  from matplotlib.backend_tools import ToolBase, ToolToggleBase
label_desc: Use image node_id 1 for calling the ListTools obj's underlying member method code with example usage: obj.trigger() without return types