libwtk-sdl2
0.0.1
include
label.hpp
1
#ifndef LIBWTK_SDL2_LABEL_HPP
2
#define LIBWTK_SDL2_LABEL_HPP
3
4
// TODO tiny DSEL for markup and font size
5
// TODO sum-of-product type would be better suited for paragraph
6
7
#include "widget.hpp"
8
13
struct
paragraph
14
{
15
paragraph
(std::string text,
int
trailing_newlines,
int
font_idx);
16
paragraph
(std::string text,
int
trailing_newlines);
17
paragraph
(std::string text);
18
paragraph
() =
default
;
19
20
// TODO add font style, etc.
21
std::string text;
22
int
trailing_newlines;
23
int
font_idx;
24
};
25
29
struct
label
:
widget
30
{
31
label
(std::vector<paragraph> content = std::vector<paragraph>());
32
label
(std::string text);
33
~
label
()
override
;
34
35
void
on_draw
(
draw_context
& dc,
selection_context
const
& sc)
const override
;
36
37
size_hint
get_size_hint
(
int
width,
int
height)
const override
;
38
47
void
set_text
(std::string text);
48
49
std::string get_text()
const
;
50
54
void
set_content
(std::vector<paragraph> content);
55
56
std::vector<paragraph>
const
& get_content()
const
;
57
61
void
set_minimum_width
(
int
width);
62
void
set_maximum_width(
int
width);
63
68
void
set_wrap
(
bool
wrap);
69
72
private
:
73
74
std::vector<paragraph> _content;
75
76
int
_minimum_width;
77
int
_maximum_width;
78
bool
_wrap;
79
};
80
81
#endif
82
label
Definition:
label.hpp:29
label::set_text
void set_text(std::string text)
label::set_content
void set_content(std::vector< paragraph > content)
label::set_wrap
void set_wrap(bool wrap)
label::set_minimum_width
void set_minimum_width(int width)
draw_context
Definition:
draw_context.hpp:126
label::on_draw
void on_draw(draw_context &dc, selection_context const &sc) const override
label::get_size_hint
size_hint get_size_hint(int width, int height) const override
paragraph
Definition:
label.hpp:13
selection_context
Definition:
selection_context.hpp:18
widget
Definition:
widget.hpp:52
size_hint
Definition:
widget.hpp:35
Generated by
1.8.14