blob: d827470be275f83df454c12a40b5074357cfc6d8 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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)
|