blob: f7205b59310008a012998e1cedc65950621c6b60 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
#pragma once
#include "../Base.h"
#include "DocumentElement.h"
#include "cru/common/Base.h"
#include "cru/common/Bitmask.h"
namespace cru::ui::document {
namespace details {
struct TextStyleTag {};
} // namespace details
using TextStyle = Bitmask<details::TextStyleTag>;
struct TextStyles {
static constexpr TextStyle Normal;
static constexpr TextStyle Bold{0x1};
static constexpr TextStyle Italic{0x2};
};
struct IDocumentLink : virtual Interface {
virtual void Open() = 0;
};
class CRU_UI_API TextDocumentElement : public DocumentElement {
public:
TextDocumentElement(String text, TextStyle style, IDocumentLink* link);
~TextDocumentElement() override;
String GetText() const { return text_; }
void SetText(String text);
TextStyle GetStyle() const { return style_; }
void SetStyle(TextStyle style);
IDocumentLink* GetLink() const { return link_; }
void SetLink(IDocumentLink link);
private:
String text_;
TextStyle style_;
IDocumentLink* link_;
};
} // namespace cru::ui::document
|