class axl::gui::HyperText

#include <axl_gui_HyperText.h>

class HyperText
{
public:
    // structs

    struct HyperlinkXMapEntry;

    // construction

    HyperText();
    HyperText(const sl::StringRef& source);

    HyperText(
        const gui::TextAttr& baseAttr,
        const sl::StringRef& source
        );

    // methods

    const sl::String&
    getSource() const;

    const sl::String_utf32&
    getText() const;

    const TextAttrAnchorArray*
    getAttrArray() const;

    void
    clear();

    size_t
    setHyperText(
        const TextAttr& baseAttr,
        const sl::StringRef& text
        );

    size_t
    setHyperText(const sl::StringRef& text);

    size_t
    setPlainText(const sl::StringRef& text);

    size_t
    setText(
        bool isHyperText,
        const sl::StringRef& text
        );

    size_t
    setChar(
        utf32_t c,
        size_t count = 1
        );

    size_t
    appendHyperText(
        const TextAttr& baseAttr,
        const sl::StringRef& text
        );

    size_t
    appendHyperText(const sl::StringRef& text);

    size_t
    appendPlainText(const sl::StringRef& text);

    size_t
    appendText(
        bool isHyperText,
        const sl::StringRef& text
        );

    size_t
    appendChar(
        utf32_t c,
        size_t count = 1
        );

    size_t
    backspace(size_t backLength);

    Size
    calcTextSize(Widget* widget) const;

    void
    calcHyperlinkXMap(Widget* widget);

    const HyperlinkAnchor*
    findHyperlinkByX(int x) const;

    const HyperlinkAnchor*
    findHyperlinkByOffset(size_t offset) const;
};