#ifndef SPECTRE_GRAPHICS_TEXT_H #define SPECTRE_GRAPHICS_TEXT_H #include #include #include #include #include class Text : public Renderable2D { public : /* TODO enum Properties { Regular = 0, Bold = 1 << 0, Italic = 1 << 1, Underline = 1 << 2, StrikeThrough = 1 << 3 }; enum Alignment { Left, Right, Center }; */ Text(); Text(const std::string text, const Font& font); void setString(const std::string& string); const std::string& getString() const; void setFont(const Font& font); const Font* getFont() const; void setColor(const Color& color); const Color& getColor() const; Vector2f getSize() const; virtual const std::vector& getVertices() const; virtual const std::vector& getIndices() const; virtual const RenderType getRenderType() const { return RenderType_UI; }; virtual const Texture* getTexture() const; private : void updateGeometry() const; private : // String containing the text. std::string m_string; const Font* m_font; Color m_color; std::vector m_indicies; mutable bool m_geometryNeedsUpdate; mutable std::vector m_vertices; }; #endif /* SPECTRE_GRAPHICS_TEXT_H */