Trigger a tool and emit the ``tool_trigger_{name}`` event. Parameters ---------- name : str Name of the tool. sender : object Object that wishes to trigger the tool. canvasevent : Event Original Canvas event or Non
(self, name, sender=None, canvasevent=None, data=None)
| 313 | self._toggled[radio_group] = toggled |
| 314 | |
| 315 | def trigger_tool(self, name, sender=None, canvasevent=None, data=None): |
| 316 | """ |
| 317 | Trigger a tool and emit the ``tool_trigger_{name}`` event. |
| 318 | |
| 319 | Parameters |
| 320 | ---------- |
| 321 | name : str |
| 322 | Name of the tool. |
| 323 | sender : object |
| 324 | Object that wishes to trigger the tool. |
| 325 | canvasevent : Event |
| 326 | Original Canvas event or None. |
| 327 | data : object |
| 328 | Extra data to pass to the tool when triggering. |
| 329 | """ |
| 330 | tool = self.get_tool(name) |
| 331 | if tool is None: |
| 332 | return |
| 333 | |
| 334 | if sender is None: |
| 335 | sender = self |
| 336 | |
| 337 | if isinstance(tool, backend_tools.ToolToggleBase): |
| 338 | self._handle_toggle(tool, canvasevent, data) |
| 339 | |
| 340 | tool.trigger(sender, canvasevent, data) # Actually trigger Tool. |
| 341 | |
| 342 | s = 'tool_trigger_%s' % name |
| 343 | event = ToolTriggerEvent(s, sender, tool, canvasevent, data) |
| 344 | self._callbacks.process(s, event) |
| 345 | |
| 346 | def _key_press(self, event): |
| 347 | if event.key is None or self.keypresslock.locked(): |