diff options
author | Devtools Arcadia <arcadia-devtools@yandex-team.ru> | 2022-02-07 18:08:42 +0300 |
---|---|---|
committer | Devtools Arcadia <arcadia-devtools@mous.vla.yp-c.yandex.net> | 2022-02-07 18:08:42 +0300 |
commit | 1110808a9d39d4b808aef724c861a2e1a38d2a69 (patch) | |
tree | e26c9fed0de5d9873cce7e00bc214573dc2195b7 /contrib/python/prompt-toolkit/py2/prompt_toolkit/mouse_events.py | |
download | ydb-1110808a9d39d4b808aef724c861a2e1a38d2a69.tar.gz |
intermediate changes
ref:cde9a383711a11544ce7e107a78147fb96cc4029
Diffstat (limited to 'contrib/python/prompt-toolkit/py2/prompt_toolkit/mouse_events.py')
-rw-r--r-- | contrib/python/prompt-toolkit/py2/prompt_toolkit/mouse_events.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/contrib/python/prompt-toolkit/py2/prompt_toolkit/mouse_events.py b/contrib/python/prompt-toolkit/py2/prompt_toolkit/mouse_events.py new file mode 100644 index 0000000000..f42276ce9f --- /dev/null +++ b/contrib/python/prompt-toolkit/py2/prompt_toolkit/mouse_events.py @@ -0,0 +1,48 @@ +""" +Mouse events. + + +How it works +------------ + +The renderer has a 2 dimensional grid of mouse event handlers. +(`prompt_toolkit.layout.MouseHandlers`.) When the layout is rendered, the +`Window` class will make sure that this grid will also be filled with +callbacks. For vt100 terminals, mouse events are received through stdin, just +like any other key press. There is a handler among the key bindings that +catches these events and forwards them to such a mouse event handler. It passes +through the `Window` class where the coordinates are translated from absolute +coordinates to coordinates relative to the user control, and there +`UIControl.mouse_handler` is called. +""" +from __future__ import unicode_literals + +__all__ = ( + 'MouseEventType', + 'MouseEvent' +) + + +class MouseEventType: + MOUSE_UP = 'MOUSE_UP' + MOUSE_DOWN = 'MOUSE_DOWN' + SCROLL_UP = 'SCROLL_UP' + SCROLL_DOWN = 'SCROLL_DOWN' + + +MouseEventTypes = MouseEventType # Deprecated: plural for backwards compatibility. + + +class MouseEvent(object): + """ + Mouse event, sent to `UIControl.mouse_handler`. + + :param position: `Point` instance. + :param event_type: `MouseEventType`. + """ + def __init__(self, position, event_type): + self.position = position + self.event_type = event_type + + def __repr__(self): + return 'MouseEvent(%r, %r)' % (self.position, self.event_type) |