class EE::UI::LineWrapping

#include <linewrapping.hpp>

class LineWrapping {
public:
    // structs

    struct Config;

    // construction

    LineWrapping(std::shared_ptr<TextDocument> doc, FontStyleConfig fontStyle, Config config);

    // methods

    static LineWrapInfo computeLineBreaks(const String& string, const FontStyleConfig& fontStyle, Float maxWidth, LineWrapMode mode, bool keepIndentation, Uint32 tabWidth = 4);

    static LineWrapInfo computeLineBreaks(
        const TextDocument& doc,
        size_t line,
        const FontStyleConfig& fontStyle,
        Float maxWidth,
        LineWrapMode mode,
        bool keepIndentation,
        Uint32 tabWidth = 4
    );

    size_t getTotalLines() const;
    const Config& config() const;
    void reconstructBreaks();
    void updateBreaks(Int64 fromLine, Int64 toLine, Int64 numLines);
    void setConfig(Config config);
    void setMaxWidth(Float maxWidth);
    void setFontStyle(FontStyleConfig fontStyle);
};