class EE::Graphics::LineWrap

#include <linewrap.hpp>

class LineWrap {
public:
    // methods

    static LineWrapMode toLineWrapMode(std::string mode);
    static std::string fromLineWrapMode(LineWrapMode mode);
    static LineWrapType toLineWrapType(std::string type);
    static std::string fromLineWrapType(LineWrapType type);

    static LineWrapInfo computeLineBreaks(
        const String::View& string,
        const FontStyleConfig& fontStyle,
        Float maxWidth,
        LineWrapMode mode,
        bool keepIndentation,
        Uint32 tabWidth = 4,
        Float whiteSpaceWidth = 0.f,
        Uint32 textHints = TextHints::None,
        bool tabStops = false,
        Float initialXOffset = 0.f
    );

    static LineWrapInfo computeLineBreaks(
        const String::View& string,
        Font* font,
        Uint32 characterSize,
        Float maxWidth,
        LineWrapMode mode,
        Uint32 fontStyle,
        Float outlineThickness,
        bool keepIndentation,
        Uint32 tabWidth = 4,
        Float whiteSpaceWidth = 0.f,
        Uint32 textHints = TextHints::None,
        bool tabStops = false,
        Float initialXOffset = 0.f
    );

    static LineWrapInfo computeLineBreaks(
        const String& string,
        const FontStyleConfig& fontStyle,
        Float maxWidth,
        LineWrapMode mode,
        bool keepIndentation,
        Uint32 tabWidth = 4,
        Float whiteSpaceWidth = 0.f,
        Uint32 textHints = TextHints::None,
        bool tabStops = false,
        Float initialXOffset = 0.f
    );

    static Float computeOffsets(
        const String::View& string,
        Font* font,
        Uint32 characterSize,
        Uint32 fontStyle,
        Float outlineThickness,
        Uint32 tabWidth = 0.f,
        Float maxWidth = 0.f,
        bool tabStops = false
    );

    static Float computeOffsets(const String::View& string, const FontStyleConfig& fontStyle, Uint32 tabWidth, Float maxWidth = 0.f, bool tabStops = false);
};