mirror of
https://github.com/ArthurSonzogni/FTXUI.git
synced 2024-12-05 09:21:57 +08:00
d386df6f94
In order for applications to receive all keyboard inputs, including the Ctrl-C and Ctrl-Z, the raw input mode has been enabled. As result the SIGINT will no longer be used, instead the keyboard Ctrl-C event is used for exiting the framework, but only if no components has made use of it. Co-authored-by: Jørn Gustav Larsen <jgl@fasttracksoftware.com> Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com>
48 lines
1007 B
C++
48 lines
1007 B
C++
// 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.
|
|
#ifndef FTXUI_COMPONENT_MOUSE_HPP
|
|
#define FTXUI_COMPONENT_MOUSE_HPP
|
|
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,
|
|
WheelLeft = 6, /// Supported terminal only.
|
|
WheelRight = 7, /// Supported terminal only.
|
|
};
|
|
|
|
enum Motion {
|
|
Released = 0,
|
|
Pressed = 1,
|
|
Moved = 2,
|
|
};
|
|
|
|
// Button
|
|
Button button = Button::None;
|
|
|
|
// Motion
|
|
Motion motion = Motion::Pressed;
|
|
|
|
// Modifiers:
|
|
bool shift = false;
|
|
bool meta = false;
|
|
bool control = false;
|
|
|
|
// Coordinates:
|
|
int x = 0;
|
|
int y = 0;
|
|
};
|
|
|
|
} // namespace ftxui
|
|
|
|
#endif /* end of include guard: FTXUI_COMPONENT_MOUSE_HPP */
|