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_STRING_HPP
00026 #define SFML_STRING_HPP
00027
00029
00031 #include <SFML/Graphics/Drawable.hpp>
00032 #include <SFML/Graphics/Font.hpp>
00033 #include <SFML/Graphics/Rect.hpp>
00034 #include <string>
00035
00036
00037 namespace sf
00038 {
00042 class SFML_API String : public Drawable
00043 {
00044 public :
00045
00049 enum Style
00050 {
00051 Regular = 0,
00052 Bold = 1 << 0,
00053 Italic = 1 << 1,
00054 Underlined = 1 << 2
00055 };
00056
00065 String(const std::string& Text, const Font& CharFont = Font::GetDefaultFont(), float Size = 30.f);
00066
00075 String(const std::wstring& Text = L"", const Font& CharFont = Font::GetDefaultFont(), float Size = 30.f);
00076
00083 void SetText(const std::string& Text);
00084
00091 void SetText(const std::wstring& Text);
00092
00099 void SetFont(const Font& CharFont);
00100
00108 void SetSize(float Size);
00109
00117 void SetStyle(unsigned long TextStyle);
00118
00125 const std::wstring& GetUnicodeText() const;
00126
00133 std::string GetText() const;
00134
00141 const Font& GetFont() const;
00142
00149 float GetSize() const;
00150
00157 unsigned long GetStyle() const;
00158
00165 FloatRect GetRect() const;
00166
00167 protected :
00168
00173 virtual void Render(const RenderWindow& Window) const;
00174
00175 private :
00176
00181 void RecomputeRect();
00182
00184
00186 std::wstring myText;
00187 const Font* myFont;
00188 float mySize;
00189 unsigned long myStyle;
00190 FloatRect myBaseRect;
00191 bool myNeedRectUpdate;
00192 };
00193
00194 }
00195
00196
00197 #endif // SFML_STRING_HPP