Use textbox to draw textparagraph element

This commit is contained in:
Yousef Khadadeh 2026-04-07 22:21:06 +03:00
parent a181a4d51d
commit caaad67c42
6 changed files with 64 additions and 37 deletions

View file

@ -15,6 +15,8 @@ struct ParagraphStyleData {
textAlignment = static_cast<skia::textlayout::TextAlign>(alignRead);
textDirection = static_cast<skia::textlayout::TextDirection>(directionRead);
}
bool operator==(const ParagraphStyleData& o) const = default;
bool operator!=(const ParagraphStyleData& o) const = default;
skia::textlayout::ParagraphStyle get_paragraph_style() const;
};

View file

@ -27,6 +27,7 @@ struct TextPosition {
fTextByteIndex = t;
}
bool operator==(const TextPosition& o) const = default;
bool operator!=(const TextPosition& o) const = default;
bool operator<(const TextPosition& o) const;
bool operator>(const TextPosition& o) const;
bool operator>=(const TextPosition& o) const;
@ -36,6 +37,8 @@ struct TextPosition {
struct PositionedTextStyleMod {
TextPosition pos;
TextStyleModifier::ModifierMap mods;
bool operator==(const PositionedTextStyleMod& o) const = default;
bool operator!=(const PositionedTextStyleMod& o) const = default;
};
typedef std::vector<PositionedTextStyleMod> TextStyleModContainer;
@ -45,6 +48,8 @@ class TextData {
struct Paragraph {
std::string text;
ParagraphStyleData pStyleData;
bool operator==(const Paragraph& o) const = default;
bool operator!=(const Paragraph& o) const = default;
template<typename Archive> void save(Archive& a) const {
a(text, pStyleData);
}
@ -58,6 +63,8 @@ class TextData {
std::string get_plain_text() const;
void save(cereal::PortableBinaryOutputArchive& a) const;
void load(cereal::PortableBinaryInputArchive& a);
bool operator==(const TextData& o) const = default;
bool operator!=(const TextData& o) const = default;
TextStyleModContainer tStyleMods;
std::vector<Paragraph> paragraphs;
};