00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00024
00025 #ifndef SFML_TEXT_HPP
00026 #define SFML_TEXT_HPP
00027
00029
00031 #include <SFML/System/Resource.hpp>
00032 #include <SFML/System/String.hpp>
00033 #include <SFML/Graphics/Drawable.hpp>
00034 #include <SFML/Graphics/Font.hpp>
00035 #include <SFML/Graphics/Rect.hpp>
00036 #include <string>
00037
00038
00039 namespace sf
00040 {
00045 class SFML_API Text : public Drawable
00046 {
00047 public :
00048
00053 enum Style
00054 {
00055 Regular = 0,
00056 Bold = 1 << 0,
00057 Italic = 1 << 1,
00058 Underlined = 1 << 2
00059 };
00060
00067 Text();
00068
00077 explicit Text(const String& string, const Font& font = Font::GetDefaultFont(), unsigned int characterSize = 30);
00078
00098 void SetString(const String& string);
00099
00111 void SetFont(const Font& font);
00112
00123 void SetCharacterSize(unsigned int size);
00124
00137 void SetStyle(unsigned long style);
00138
00156 const String& GetString() const;
00157
00169 const Font& GetFont() const;
00170
00179 unsigned int GetCharacterSize() const;
00180
00189 unsigned long GetStyle() const;
00190
00207 Vector2f GetCharacterPos(std::size_t index) const;
00208
00217 FloatRect GetRect() const;
00218
00219 protected :
00220
00228 virtual void Render(RenderTarget& target, Renderer& renderer) const;
00229
00230 private :
00231
00236 void UpdateRect() const;
00237
00239
00241 String myString;
00242 ResourcePtr<Font> myFont;
00243 unsigned int myCharacterSize;
00244 unsigned long myStyle;
00245 mutable FloatRect myBaseRect;
00246 mutable bool myRectUpdated;
00247 };
00248
00249 }
00250
00251
00252 #endif // SFML_TEXT_HPP
00253
00254