2023-08-19 19:56:36 +08:00
|
|
|
// Copyright 2020 Arthur Sonzogni. All rights reserved.
|
|
|
|
// Use of this source code is governed by the MIT license that can be found in
|
|
|
|
// the LICENSE file.
|
2021-05-02 02:40:35 +08:00
|
|
|
#ifndef FTXUI_COMPONENT_MOUSE_HPP
|
|
|
|
#define FTXUI_COMPONENT_MOUSE_HPP
|
2021-04-25 21:22:38 +08:00
|
|
|
namespace ftxui {
|
|
|
|
|
|
|
|
/// @brief A mouse event. It contains the coordinate of the mouse, the button
|
|
|
|
/// pressed and the modifier (shift, ctrl, meta).
|
|
|
|
/// @ingroup component
|
|
|
|
struct Mouse {
|
|
|
|
enum Button {
|
|
|
|
Left = 0,
|
|
|
|
Middle = 1,
|
|
|
|
Right = 2,
|
|
|
|
None = 3,
|
|
|
|
WheelUp = 4,
|
|
|
|
WheelDown = 5,
|
|
|
|
};
|
|
|
|
|
|
|
|
enum Motion {
|
|
|
|
Released = 0,
|
|
|
|
Pressed = 1,
|
2023-12-17 17:35:21 +08:00
|
|
|
Moved = 2,
|
2021-04-25 21:22:38 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
// Button
|
2023-03-27 02:20:02 +08:00
|
|
|
Button button = Button::None;
|
2021-04-25 21:22:38 +08:00
|
|
|
|
|
|
|
// Motion
|
2023-03-27 02:20:02 +08:00
|
|
|
Motion motion = Motion::Pressed;
|
2021-04-25 21:22:38 +08:00
|
|
|
|
|
|
|
// Modifiers:
|
2023-03-27 02:20:02 +08:00
|
|
|
bool shift = false;
|
|
|
|
bool meta = false;
|
|
|
|
bool control = false;
|
2021-04-25 21:22:38 +08:00
|
|
|
|
|
|
|
// Coordinates:
|
2023-03-27 02:20:02 +08:00
|
|
|
int x = 0;
|
|
|
|
int y = 0;
|
2021-04-25 21:22:38 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace ftxui
|
|
|
|
|
2021-05-02 02:40:35 +08:00
|
|
|
#endif /* end of include guard: FTXUI_COMPONENT_MOUSE_HPP */
|