Loading...
Searching...
No Matches
String.hpp
Go to the documentation of this file.
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
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
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
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
#define SFML_API
Definition Config.hpp:114
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.
friend class RenderTarget
Definition Drawable.hpp:325
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).
Safe pointer to a T resource (inheriting from sf::Resource<T>), its pointer is automatically reseted ...
Definition Resource.hpp:117
const Unicode::Text & GetText() const
Get the text (the returned text can be converted implicitely to any kind of string).
const Font & GetFont() const
Get the font used by the string.
void SetFont(const Font &CharFont)
Set the font of the string.
void SetSize(float Size)
Set the size of the string The default size is 30.
String(const Unicode::Text &Text, const Font &CharFont=Font::GetDefaultFont(), float Size=30.f)
Construct the string from any kind of text.
virtual void Render(RenderTarget &Target) const
/see Drawable::Render
FloatRect GetRect() const
Get the string rectangle on screen.
void SetStyle(unsigned long TextStyle)
Set the style of the text The default style is Regular.
String()
Default constructor.
float GetSize() const
Get the size of the characters.
void SetText(const Unicode::Text &Text)
Set the text (from any kind of string).
sf::Vector2f GetCharacterPos(std::size_t Index) const
Return the visual position of the Index-th character of the string, in coordinates relative to the st...
unsigned long GetStyle() const
Get the style of the text.
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
Vector2< float > Vector2f
Definition Vector2.hpp:210
Rect< float > FloatRect
Definition Rect.hpp:122