![]() |
Kukatz 3D
0.1
Török Attila szakdolgozata
|
00001 /* 00002 * string.hpp - Kukatz 3D 00003 * Copyright (c) 2011 - TÖRÖK Attila (torokati44@gmail.com) 00004 * 00005 * This software is provided 'as-is', without any express or implied 00006 * warranty. In no event will the authors be held liable for any damages 00007 * arising from the use of this software. 00008 * 00009 * Permission is granted to anyone to use this software for any purpose, 00010 * including commercial applications, and to alter it and redistribute it 00011 * freely, subject to the following restrictions: 00012 * 00013 * 1. The origin of this software must not be misrepresented; you must not 00014 * claim that you wrote the original software. If you use this software 00015 * in a product, an acknowledgment in the product documentation would be 00016 * appreciated but is not required. 00017 * 00018 * 2. Altered source versions must be plainly marked as such, and must not be 00019 * misrepresented as being the original software. 00020 * 00021 * 3. This notice may not be removed or altered from any source 00022 * distribution. 00023 */ 00024 00025 #ifndef STRING_HPP_INCLUDED 00026 #define STRING_HPP_INCLUDED 00027 00028 #include <string> 00029 00030 #include <SFML/System/Unicode.hpp> 00031 #include <SFML/System/Vector2.hpp> 00032 #include <SFML/Graphics/Color.hpp> 00033 00034 #include "renderable.hpp" 00035 #include "font.hpp" 00036 00037 class String: public Renderable 00038 { 00039 private: 00040 const std::string font_id; 00041 00042 sf::Unicode::UTF32String text; 00043 bool contains_color_reset; 00044 sf::Color color; 00045 00046 GLint displaylist; 00047 00048 void make_list(); 00049 00050 protected: 00051 Font* font_ptr; 00052 sf::Vector2i bottom_left; 00053 sf::Vector2i top_right; 00054 00055 public: 00056 String(const sf::Unicode::Text&, const std::string&, float); 00057 String(const sf::Unicode::Text&, const std::string&); 00058 00059 virtual void set_text(const sf::Unicode::Text&); 00060 sf::Unicode::Text get_text(); 00061 00062 void set_color(const sf::Color&); 00063 void set_color(sf::Uint8, sf::Uint8, sf::Uint8, sf::Uint8 = 255); 00064 00065 float get_width(); 00066 float get_height(); 00067 unsigned int num_lines(); 00068 00069 virtual void render(); 00070 00071 bool billboard; 00072 float size; 00073 00074 virtual ~String(); 00075 }; 00076 00077 #endif // STRING_HPP_INCLUDED