diff options
author | shadchin <shadchin@yandex-team.ru> | 2022-02-10 16:44:39 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:44:39 +0300 |
commit | e9656aae26e0358d5378e5b63dcac5c8dbe0e4d0 (patch) | |
tree | 64175d5cadab313b3e7039ebaa06c5bc3295e274 /contrib/python/prompt-toolkit/py3/prompt_toolkit/mouse_events.py | |
parent | 2598ef1d0aee359b4b6d5fdd1758916d5907d04f (diff) | |
download | ydb-e9656aae26e0358d5378e5b63dcac5c8dbe0e4d0.tar.gz |
Restoring authorship annotation for <shadchin@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'contrib/python/prompt-toolkit/py3/prompt_toolkit/mouse_events.py')
-rw-r--r-- | contrib/python/prompt-toolkit/py3/prompt_toolkit/mouse_events.py | 176 |
1 files changed, 88 insertions, 88 deletions
diff --git a/contrib/python/prompt-toolkit/py3/prompt_toolkit/mouse_events.py b/contrib/python/prompt-toolkit/py3/prompt_toolkit/mouse_events.py index 83dc9ad6ea..26f4312043 100644 --- a/contrib/python/prompt-toolkit/py3/prompt_toolkit/mouse_events.py +++ b/contrib/python/prompt-toolkit/py3/prompt_toolkit/mouse_events.py @@ -1,88 +1,88 @@ -""" -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 enum import Enum -from typing import FrozenSet - -from .data_structures import Point - -__all__ = ["MouseEventType", "MouseButton", "MouseModifier", "MouseEvent"] - - -class MouseEventType(Enum): - # Mouse up: This same event type is fired for all three events: left mouse - # up, right mouse up, or middle mouse up - MOUSE_UP = "MOUSE_UP" - - # Mouse down: This implicitly refers to the left mouse down (this event is - # not fired upon pressing the middle or right mouse buttons). - MOUSE_DOWN = "MOUSE_DOWN" - - SCROLL_UP = "SCROLL_UP" - SCROLL_DOWN = "SCROLL_DOWN" - - # Triggered when the left mouse button is held down, and the mouse moves - MOUSE_MOVE = "MOUSE_MOVE" - - -class MouseButton(Enum): - LEFT = "LEFT" - MIDDLE = "MIDDLE" - RIGHT = "RIGHT" - - # When we're scrolling, or just moving the mouse and not pressing a button. - NONE = "NONE" - - # This is for when we don't know which mouse button was pressed, but we do - # know that one has been pressed during this mouse event (as opposed to - # scrolling, for example) - UNKNOWN = "UNKNOWN" - - -class MouseModifier(Enum): - SHIFT = "SHIFT" - ALT = "ALT" - CONTROL = "CONTROL" - - -class MouseEvent: - """ - Mouse event, sent to `UIControl.mouse_handler`. - - :param position: `Point` instance. - :param event_type: `MouseEventType`. - """ - - def __init__( - self, - position: Point, - event_type: MouseEventType, - button: MouseButton, - modifiers: FrozenSet[MouseModifier], - ) -> None: - self.position = position - self.event_type = event_type - self.button = button - self.modifiers = modifiers - - def __repr__(self) -> str: - return "MouseEvent(%r,%r,%r,%r)" % ( - self.position, - self.event_type, - self.button, - self.modifiers, - ) +""" +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 enum import Enum +from typing import FrozenSet + +from .data_structures import Point + +__all__ = ["MouseEventType", "MouseButton", "MouseModifier", "MouseEvent"] + + +class MouseEventType(Enum): + # Mouse up: This same event type is fired for all three events: left mouse + # up, right mouse up, or middle mouse up + MOUSE_UP = "MOUSE_UP" + + # Mouse down: This implicitly refers to the left mouse down (this event is + # not fired upon pressing the middle or right mouse buttons). + MOUSE_DOWN = "MOUSE_DOWN" + + SCROLL_UP = "SCROLL_UP" + SCROLL_DOWN = "SCROLL_DOWN" + + # Triggered when the left mouse button is held down, and the mouse moves + MOUSE_MOVE = "MOUSE_MOVE" + + +class MouseButton(Enum): + LEFT = "LEFT" + MIDDLE = "MIDDLE" + RIGHT = "RIGHT" + + # When we're scrolling, or just moving the mouse and not pressing a button. + NONE = "NONE" + + # This is for when we don't know which mouse button was pressed, but we do + # know that one has been pressed during this mouse event (as opposed to + # scrolling, for example) + UNKNOWN = "UNKNOWN" + + +class MouseModifier(Enum): + SHIFT = "SHIFT" + ALT = "ALT" + CONTROL = "CONTROL" + + +class MouseEvent: + """ + Mouse event, sent to `UIControl.mouse_handler`. + + :param position: `Point` instance. + :param event_type: `MouseEventType`. + """ + + def __init__( + self, + position: Point, + event_type: MouseEventType, + button: MouseButton, + modifiers: FrozenSet[MouseModifier], + ) -> None: + self.position = position + self.event_type = event_type + self.button = button + self.modifiers = modifiers + + def __repr__(self) -> str: + return "MouseEvent(%r,%r,%r,%r)" % ( + self.position, + self.event_type, + self.button, + self.modifiers, + ) |