String.hpp
1
2//
3// SFML - Simple and Fast Multimedia Library
4// Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@gmail.com)
5//
6// This software is provided 'as-is', without any express or implied warranty.
7// In no event will the authors be held liable for any damages arising from the use of this software.
8//
9// Permission is granted to anyone to use this software for any purpose,
10// including commercial applications, and to alter it and redistribute it freely,
11// subject to the following restrictions:
12//
13// 1. The origin of this software must not be misrepresented;
14// you must not claim that you wrote the original software.
15// If you use this software in a product, an acknowledgment
16// in the product documentation would be appreciated but is not required.
17//
18// 2. Altered source versions must be plainly marked as such,
19// and must not be misrepresented as being the original software.
20//
21// 3. This notice may not be removed or altered from any source distribution.
22//
24
25#ifndef SFML_STRING_HPP
26#define SFML_STRING_HPP
27
29// Headers
31#include <SFML/System/Resource.hpp>
32#include <SFML/System/Unicode.hpp>
33#include <SFML/Graphics/Drawable.hpp>
34#include <SFML/Graphics/Font.hpp>
35#include <SFML/Graphics/Rect.hpp>
36#include <string>
37
38
39namespace sf
40{
44class SFML_API String : public Drawable
45{
46public :
47
51 enum Style
52 {
53 Regular = 0,
54 Bold = 1 << 0,
55 Italic = 1 << 1,
56 Underlined = 1 << 2
57 };
58
63 String();
64
73 explicit String(const Unicode::Text& Text, const Font& CharFont = Font::GetDefaultFont(), float Size = 30.f);
74
81 void SetText(const Unicode::Text& Text);
82
89 void SetFont(const Font& CharFont);
90
98 void SetSize(float Size);
99
107 void SetStyle(unsigned long TextStyle);
108
115 const Unicode::Text& GetText() const;
116
123 const Font& GetFont() const;
124
131 float GetSize() const;
132
139 unsigned long GetStyle() const;
140
151 sf::Vector2f GetCharacterPos(std::size_t Index) const;
152
159 FloatRect GetRect() const;
160
161protected :
162
167 virtual void Render(RenderTarget& Target) const;
168
169private :
170
175 void RecomputeRect();
176
178 // Member data
180 Unicode::Text myText;
181 ResourcePtr<Font> myFont;
182 float mySize;
183 unsigned long myStyle;
184 FloatRect myBaseRect;
185 bool myNeedRectUpdate;
186};
187
188} // namespace sf
189
190
191#endif // SFML_STRING_HPP
Drawable(const Vector2f &Position=Vector2f(0, 0), const Vector2f &Scale=Vector2f(1, 1), float Rotation=0.f, const Color &Col=Color(255, 255, 255, 255))
Default constructor.
Definition Drawable.cpp:39
Font is the low-level class for loading and manipulating character fonts.
Definition Font.hpp:55
static const Font & GetDefaultFont()
Get the SFML default built-in font (Arial).
Definition Font.cpp:159
Base class for all render targets (window, image, ...).
Safe pointer to a T resource (inheriting from sf::Resource<T>), its pointer is automatically reseted ...
Definition Resource.hpp:117
String defines a graphical 2D text, that can be drawn on screen.
Definition String.hpp:45
String()
Default constructor.
Definition String.cpp:39
Style
Enumerate the string drawing styles.
Definition String.hpp:52
@ Regular
Regular characters, no style.
Definition String.hpp:53
@ Bold
Characters are bold.
Definition String.hpp:54
@ Underlined
Characters are underlined.
Definition String.hpp:56
@ Italic
Characters are in italic.
Definition String.hpp:55
This class is an abstract definition of a unicode text, it can be converted from and to any kind of s...
Definition Unicode.hpp:64