// Copyright (C) 2023 Jérôme "Lynix" Leclercq (lynix680@gmail.com) // This file is part of the "Nazara Engine - Utility module" // For conditions of distribution and use, see copyright notice in Config.hpp #include namespace Nz { template RichTextBuilder::RichTextBuilder(T& richText) : m_richText(richText) { } template RichTextBuilder::RichTextBuilder(T* richText) : m_richText(*richText) { } template RichTextBuilder& RichTextBuilder::AppendText(std::string_view text) { m_richText.AppendText(text); return *this; } template RichTextBuilder& RichTextBuilder::SetCharacterSize(unsigned int characterSize) { m_richText.SetCharacterSize(characterSize); return *this; } template RichTextBuilder& RichTextBuilder::SetCharacterSpacingOffset(float offset) { m_richText.SetCharacterSpacingOffset(offset); return *this; } template RichTextBuilder& RichTextBuilder::SetLineSpacingOffset(float offset) { m_richText.SetLineSpacingOffset(offset); return *this; } template RichTextBuilder& RichTextBuilder::SetTextColor(const Color& color) { m_richText.SetTextColor(color); return *this; } template RichTextBuilder& RichTextBuilder::SetTextFont(const std::shared_ptr& font) { m_richText.SetTextFont(font); return *this; } template RichTextBuilder& RichTextBuilder::SetTextOutlineColor(const Color& color) { m_richText.SetTextOutlineColor(color); return *this; } template RichTextBuilder& RichTextBuilder::SetTextOutlineThickness(float thickness) { m_richText.SetTextOutlineThickness(thickness); return *this; } template RichTextBuilder& RichTextBuilder::SetTextStyle(TextStyleFlags style) { m_richText.SetTextStyle(style); return *this; } template RichTextBuilder& RichTextBuilder::operator<<(const Color& textColor) { return SetTextColor(textColor); } template RichTextBuilder& RichTextBuilder::operator<<(const std::shared_ptr& font) { return SetTextFont(font); } template RichTextBuilder& RichTextBuilder::operator<<(std::string_view str) { return AppendText(str); } template RichTextBuilder& RichTextBuilder::operator<<(CharacterSizeWrapper characterSize) { return SetCharacterSize(characterSize.characterSize); } template RichTextBuilder& RichTextBuilder::operator<<(CharacterSpacingOffsetWrapper characterSpacingOffset) { return SetCharacterSpacingOffset(characterSpacingOffset.spacingOffset); } template RichTextBuilder& RichTextBuilder::operator<<(LineSpacingOffsetWrapper lineSpacing) { return SetLineSpacingOffset(lineSpacing.spacingOffset); } template RichTextBuilder& RichTextBuilder::operator<<(OutlineColorWrapper outlineColor) { return SetTextOutlineColor(outlineColor.color); } template RichTextBuilder& RichTextBuilder::operator<<(OutlineThicknessWrapper outlineThickness) { return SetTextOutlineThickness(outlineThickness.thickness); } template RichTextBuilder& RichTextBuilder::operator<<(TextStyleFlags textStyle) { return SetTextStyle(textStyle); } template auto RichTextBuilder::CharacterSize(unsigned int characterSize) -> CharacterSizeWrapper { return { characterSize }; } template auto RichTextBuilder::CharacterSpacingOffset(unsigned int spacingOffset) -> CharacterSpacingOffsetWrapper { return { spacingOffset }; } template auto RichTextBuilder::LineSpacingOffset(float spacingOffset) -> LineSpacingOffsetWrapper { return { spacingOffset }; } template auto RichTextBuilder::OutlineColor(const Color& color) -> OutlineColorWrapper { return { color }; } template auto RichTextBuilder::OutlineThickness(float thickness) -> OutlineThicknessWrapper { return { thickness }; } } #include