44 constexpr auto x() const ->
u32 {
return m_x; }
45 constexpr auto y() const ->
u32 {
return m_y; }
62 if (
size.rows == 0 ||
size.cols == 0) {
74 : m_cells(cells), m_pixels(pixels) {}
80 if (m_pixels.has_value()) {
81 return m_pixels.value();
84 if (
size.rows == 0 ||
size.cols == 0) {
97 in_cells().x() + offset_in_cells.x(),
98 in_cells().y() + offset_in_cells.y(),
102 pixels.
x() +
size.pixel_width /
size.cols,
103 pixels.
y() +
size.pixel_height /
size.rows,
115 di::field<
"pixels", &MousePosition::m_pixels>);
#define DI_DEFINE_ENUM_BITWISE_OPERATIONS(Type)
Definition bitwise_enum.h:5
Definition optional_forward_declaration.h:5
constexpr friend auto tag_invoke(di::Tag< di::reflect >, di::InPlaceType< MouseCoordinate >)
Definition mouse.h:50
MouseCoordinate()=default
auto operator==(MouseCoordinate const &) const -> bool=default
constexpr auto y() const -> u32
Definition mouse.h:45
constexpr MouseCoordinate(u32 x, u32 y)
Definition mouse.h:42
constexpr auto x() const -> u32
Definition mouse.h:44
constexpr auto translate(MouseCoordinate offset_in_cells, dius::tty::WindowSize const &size) const -> MousePosition
Definition mouse.h:94
constexpr friend auto tag_invoke(di::Tag< di::reflect >, di::InPlaceType< MousePosition >)
Definition mouse.h:113
auto operator==(MousePosition const &) const -> bool=default
constexpr auto in_pixels() const -> di::Optional< MouseCoordinate >
Definition mouse.h:77
constexpr MousePosition(MouseCoordinate cells, di::Optional< MouseCoordinate > pixels={})
Definition mouse.h:73
static constexpr auto from_pixels(MouseCoordinate pixels, dius::tty::WindowSize const &size) -> MousePosition
Definition mouse.h:61
constexpr auto in_pixels_with_fallback(dius::tty::WindowSize const &size) const -> MouseCoordinate
Definition mouse.h:79
constexpr auto in_cells() const -> MouseCoordinate
Definition mouse.h:76
constexpr usize size
Definition gfx_test.cpp:24
__UINT32_TYPE__ u32
Definition integers.h:11
di::meta::Decay< decltype(T)> Tag
Definition tag_invoke.h:28
Definition zstring_parser.h:9
constexpr auto make_fields
Definition field.h:80
constexpr auto enumerator
Definition enumerator.h:36
constexpr auto field
Definition field.h:42
constexpr auto make_enumerators
Definition enumerator.h:74
Definition escape_sequence_parser.cpp:18
@ None
Definition graphics_rendition.h:64
MouseButton
Definition mouse.h:10
@ ScrollLeft
Definition mouse.h:17
@ HorizontalScrollButtons
Definition mouse.h:23
@ VerticalScrollButtons
Definition mouse.h:24
@ _11
Definition mouse.h:22
@ ScrollUp
Definition mouse.h:15
@ ScrollDown
Definition mouse.h:16
@ Middle
Definition mouse.h:13
@ ScrollButtons
Definition mouse.h:25
@ ScrollRight
Definition mouse.h:18
@ _10
Definition mouse.h:21
@ Right
Definition key.h:70
@ Left
Definition key.h:69
constexpr auto tag_invoke(di::Tag< di::reflect >, di::InPlaceType< CursorStyle >)
Definition cursor_style.h:16
Definition in_place_type.h:5