Sha256: a6accc7e1d62497d8ae82e1f796d6a41e68b6c801f17313aea72766852403093

Contents?: true

Size: 1.27 KB

Versions: 4

Compression:

Stored size: 1.27 KB

Contents

#pragma once

#include "GraphicsImpl.hpp"
#include <Gosu/Color.hpp>
#include <Gosu/GraphicsBase.hpp>
#include <vector>

namespace Gosu
{
    class FormattedString
    {
        struct FormattedChar
        {
            wchar_t wc;
            Color color;
            unsigned flags;
            std::string entity;
            
            bool same_style_as(const FormattedChar& other) const;
        };
        
        // If characters.empty(), use these for the whole string.
        std::wstring simple_string;
        unsigned simple_flags;
        // If not characters.empty(), ignore above fields and use this.
        std::vector<FormattedChar> characters;
        
    public:
        FormattedString();
        FormattedString(const wchar_t* html, unsigned base_flags);
        
        std::wstring unformat() const;
        
        const char* entity_at(unsigned index) const;
        wchar_t char_at(unsigned index) const;
        unsigned flags_at(unsigned index) const;
        Color color_at(unsigned index) const;
        
        std::size_t length() const;
        
        FormattedString range(std::size_t begin, std::size_t end) const;
        
        std::vector<FormattedString> split_lines() const;
        std::vector<FormattedString> split_parts() const;
    };
}

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
gosu-0.13.3 src/FormattedString.hpp
gosu-0.13.2 src/FormattedString.hpp
gosu-0.13.1 src/FormattedString.hpp
gosu-0.13.0 src/FormattedString.hpp