FTXUI  5.0.0
C++ functional terminal UI.
mouse.hpp
Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
2// Use of this source code is governed by the MIT license that can be found in
3// the LICENSE file.
4#ifndef FTXUI_COMPONENT_MOUSE_HPP
5#define FTXUI_COMPONENT_MOUSE_HPP
6namespace ftxui {
7
8/// @brief A mouse event. It contains the coordinate of the mouse, the button
9/// pressed and the modifier (shift, ctrl, meta).
10/// @ingroup component
11struct Mouse {
12 enum Button {
13 Left = 0,
14 Middle = 1,
15 Right = 2,
16 None = 3,
19 };
20
21 enum Motion {
24 };
25
26 // Utility function to check the variations of the mouse state.
27 bool IsPressed(Button btn = Left) const; // Released => Pressed.
28 bool IsHeld(Button btn = Left) const; // Pressed => Pressed.
29 bool IsReleased(Button btn = Left) const; // Pressed => Released.
30
31 // Button
32 Button button = Button::None;
33
34 // Motion
35 Motion motion = Motion::Pressed;
36
37 // Modifiers:
38 bool shift = false;
39 bool meta = false;
40 bool control = false;
41
42 // Coordinates:
43 int x = 0;
44 int y = 0;
45
46 // Previous mouse event, if any.
47 Mouse* previous = nullptr;
48};
49
50} // namespace ftxui
51
52#endif /* end of include guard: FTXUI_COMPONENT_MOUSE_HPP */
A mouse event. It contains the coordinate of the mouse, the button pressed and the modifier (shift,...
Definition: mouse.hpp:11
bool meta
Definition: mouse.hpp:39
bool IsHeld(Button btn=Left) const
Definition: mouse.cpp:25
Mouse * previous
Definition: mouse.hpp:47
Button button
Definition: mouse.hpp:32
bool IsPressed(Button btn=Left) const
Definition: mouse.cpp:18
bool shift
Definition: mouse.hpp:38
bool control
Definition: mouse.hpp:40
bool IsReleased(Button btn=Left) const
Definition: mouse.cpp:32
Motion motion
Definition: mouse.hpp:35