diff options
author | Jonathan Slenders <jonathan@slenders.be> | 2015-09-20 19:46:31 +0200 |
---|---|---|
committer | Jonathan Slenders <jonathan@slenders.be> | 2015-09-20 19:57:53 +0200 |
commit | 794ae0c6fffbfaea4a88104beb709a0b6b09c425 (patch) | |
tree | 2a56475d962edd494c7ced26ee00225e324db841 /prompt_toolkit/mouse_events.py | |
parent | 107cfe8480369389dd548273487977dffc623ecd (diff) |
Small refactoring of mouse events + implementation of buffer text selection.
Diffstat (limited to 'prompt_toolkit/mouse_events.py')
-rw-r--r-- | prompt_toolkit/mouse_events.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/prompt_toolkit/mouse_events.py b/prompt_toolkit/mouse_events.py new file mode 100644 index 00000000..08d9a897 --- /dev/null +++ b/prompt_toolkit/mouse_events.py @@ -0,0 +1,42 @@ +""" +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__ = ( + 'MouseEventTypes', + 'MouseEvent' +) + + +class MouseEventTypes: + MOUSE_UP = 'MOUSE_UP' + MOUSE_DOWN = 'MOUSE_DOWN' + SCROLL_UP = 'SCROLL_UP' + SCROLL_DOWN = 'SCROLL_DOWN' + + +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 |