ttx 0.1.0
Loading...
Searching...
No Matches
size_report.h
Go to the documentation of this file.
1#pragma once
2
3#include "di/reflect/prelude.h"
5#include "ttx/size.h"
6
7namespace ttx::terminal {
13 u32 xpixels { 0 };
14 u32 ypixels { 0 };
15
16 static auto from_csi(CSI const& csi) -> di::Optional<TextAreaPixelSizeReport>;
17 auto serialize() const -> di::String;
18
19 auto operator==(TextAreaPixelSizeReport const& other) const -> bool = default;
20
21 constexpr friend auto tag_invoke(di::Tag<di::reflect>, di::InPlaceType<TextAreaPixelSizeReport>) {
22 return di::make_fields<"TextAreaPixelSizeReport">(di::field<"xpixels", &TextAreaPixelSizeReport::xpixels>,
23 di::field<"ypixels", &TextAreaPixelSizeReport::ypixels>);
24 }
25};
26
32 u32 xpixels { 0 };
33 u32 ypixels { 0 };
34
35 static auto from_csi(CSI const& csi) -> di::Optional<CellPixelSizeReport>;
36 auto serialize() const -> di::String;
37
38 auto operator==(CellPixelSizeReport const& other) const -> bool = default;
39
40 constexpr friend auto tag_invoke(di::Tag<di::reflect>, di::InPlaceType<CellPixelSizeReport>) {
41 return di::make_fields<"CellPixelSizeReport">(di::field<"xpixels", &CellPixelSizeReport::xpixels>,
42 di::field<"ypixels", &CellPixelSizeReport::ypixels>);
43 }
44};
45
51 u32 cols { 0 };
52 u32 rows { 0 };
53
54 static auto from_csi(CSI const& csi) -> di::Optional<TextAreaSizeReport>;
55 auto serialize() const -> di::String;
56
57 auto operator==(TextAreaSizeReport const& other) const -> bool = default;
58
59 constexpr friend auto tag_invoke(di::Tag<di::reflect>, di::InPlaceType<TextAreaSizeReport>) {
60 return di::make_fields<"TextAreaSizeReport">(di::field<"cols", &TextAreaSizeReport::cols>,
61 di::field<"rows", &TextAreaSizeReport::rows>);
62 }
63};
64
71
72 static auto from_csi(CSI const& csi) -> di::Optional<InBandSizeReport>;
73 auto serialize() const -> di::String;
74
75 auto operator==(InBandSizeReport const& other) const -> bool = default;
76
77 constexpr friend auto tag_invoke(di::Tag<di::reflect>, di::InPlaceType<InBandSizeReport>) {
78 return di::make_fields<"InBandSizeReport">(di::field<"size", &InBandSizeReport::size>);
79 }
80};
81}
Definition absolute_position.h:6
Definition escape_sequence_parser.h:56
Definition size.h:7
Cell pixel size report.
Definition size_report.h:31
u32 xpixels
Definition size_report.h:32
auto serialize() const -> di::String
Definition size_report.cpp:50
static auto from_csi(CSI const &csi) -> di::Optional< CellPixelSizeReport >
Definition size_report.cpp:31
constexpr friend auto tag_invoke(di::Tag< di::reflect >, di::InPlaceType< CellPixelSizeReport >)
Definition size_report.h:40
u32 ypixels
Definition size_report.h:33
In-band size report.
Definition size_report.h:69
auto serialize() const -> di::String
Definition size_report.cpp:101
Size size
Definition size_report.h:70
static auto from_csi(CSI const &csi) -> di::Optional< InBandSizeReport >
Definition size_report.cpp:77
constexpr friend auto tag_invoke(di::Tag< di::reflect >, di::InPlaceType< InBandSizeReport >)
Definition size_report.h:77
Text area pixel size report.
Definition size_report.h:12
auto serialize() const -> di::String
Definition size_report.cpp:27
u32 xpixels
Definition size_report.h:13
constexpr friend auto tag_invoke(di::Tag< di::reflect >, di::InPlaceType< TextAreaPixelSizeReport >)
Definition size_report.h:21
static auto from_csi(CSI const &csi) -> di::Optional< TextAreaPixelSizeReport >
Definition size_report.cpp:8
u32 ypixels
Definition size_report.h:14
Text area size report.
Definition size_report.h:50
static auto from_csi(CSI const &csi) -> di::Optional< TextAreaSizeReport >
Definition size_report.cpp:54
u32 cols
Definition size_report.h:51
constexpr friend auto tag_invoke(di::Tag< di::reflect >, di::InPlaceType< TextAreaSizeReport >)
Definition size_report.h:59
auto serialize() const -> di::String
Definition size_report.cpp:73
u32 rows
Definition size_report.h:52