aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/prompt-toolkit/py2/prompt_toolkit/mouse_events.py
diff options
context:
space:
mode:
authorDevtools Arcadia <arcadia-devtools@yandex-team.ru>2022-02-07 18:08:42 +0300
committerDevtools Arcadia <arcadia-devtools@mous.vla.yp-c.yandex.net>2022-02-07 18:08:42 +0300
commit1110808a9d39d4b808aef724c861a2e1a38d2a69 (patch)
treee26c9fed0de5d9873cce7e00bc214573dc2195b7 /contrib/python/prompt-toolkit/py2/prompt_toolkit/mouse_events.py
downloadydb-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.py48
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)