9#include "sml/math/rectangle.h" 
   15    Text::Text(
const Sml::Font& font, 
const char* 
string, Sml::Color color) : m_Text(font, string, color) {}
 
   16    Text::Text(
const char* 
string, Sml::Color color) : Text(*DefaultSkins::g_DefaultFont, string, color) {}
 
   18    void Text::render(
const Sml::Rectangle<int32_t>& targetRegion)
 
   20        m_Text.render(targetRegion.pos + m_LayoutBounds.pos);
 
   23    void Text::prerender()
 
   25        if (getStr() != 
nullptr)
 
   31    const Sml::Font& Text::getFont()
      const { 
return m_Text.getFont();      }
 
   32    Sml::Color       Text::getColor()
     const { 
return m_Text.getColor();     }
 
   33    const char*      Text::getStr()
       const { 
return m_Text.getStr();       }
 
   34    size_t           Text::getWidth()
     const { 
return m_Text.getWidth();     }
 
   35    size_t           Text::getHeight()
    const { 
return m_Text.getHeight();    }
 
   36    size_t           Text::getWrapWidth()
 const { 
return m_Text.getWrapWidth(); }
 
   38    void Text::setFont(
const Sml::Font& font) { m_Text.setFont(font);           }
 
   39    void Text::setColor(Sml::Color color)     { m_Text.setColor(color);         }
 
   40    void Text::setString(
const char* str)     { m_Text.setString(str);          }
 
   41    void Text::setWrapWidth(
size_t wrapWidth) { m_Text.setWrapWidth(wrapWidth); }
 
   43    int32_t Text::computePrefWidth(int32_t height)
 const 
   45        if (getStr() == 
nullptr) { 
return 0; }
 
   47        return m_Text.estimateTextDimensions(getStr()).x;
 
   50    int32_t Text::computePrefHeight(int32_t width)
 const 
   52        if (getStr() == 
nullptr) { 
return 0; }
 
   54        return m_Text.estimateTextDimensions(getStr()).y;