Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/lib/graphics/text_engine/text.h @ 8926

Last change on this file since 8926 was 8764, checked in by bensch, 18 years ago

load-implementation of font in font-data

File size: 3.1 KB
RevLine 
[4838]1/*!
[5343]2 * @file text.h
3 * @brief Definition of a text Class, that is able to render text.
[7355]4 */
[1853]5
[5343]6#ifndef _TEXT_H
7#define _TEXT_H
[1853]8
[5343]9#include "element_2d.h"
[8448]10#include "color.h"
[8761]11#include "font.h"
[1853]12
[5343]13#define  TEXT_ALIGN_LEFT             E2D_ALIGN_LEFT
14#define  TEXT_ALIGN_RIGHT            E2D_ALIGN_RIGHT
15#define  TEXT_ALIGN_CENTER           E2D_ALIGN_CENTER
16#define  TEXT_ALIGN_SCREEN_CENTER    E2D_ALIGN_SCREEN_CENTER
[8448]17#define  TEXT_DEFAULT_COLOR          Color(1.0, 1.0, 1.0, 1.0f) //!< the default Color (white, fully visible)
[5343]18
[5421]19#define  TEXT_DEFAULT_ALIGNMENT      TEXT_ALIGN_LEFT            //!< default alignment
20#define  TEXT_DEFAULT_SIZE           20                         //!< default size of the Text
[5343]21
[4838]22// FORWARD DECLARATION
[5427]23struct SDL_Surface;
[3543]24
[5343]25//! Represents one textElement.
26class Text : public Element2D
27{
28  public:
[7221]29    Text(const std::string& fontFile = "", unsigned int fontSize = TEXT_DEFAULT_SIZE);
[7753]30    Text(const Text& text);
[6981]31    virtual ~Text();
[7753]32    bool operator==(const Text& text) const;
33    bool operator==(const std::string& text) const;
34    Text& operator=(const Text& text);
[3245]35
[7753]36    /// Final Interfacing.
37    void setText(const std::string& text);
38    void append(const std::string& appendText);
[7919]39    void appendCharacter(char character);
[7753]40    const std::string& operator<<(const std::string& appendText);
[7919]41    void removeCharacters(unsigned int chars);
[8518]42    void clear();
[7753]43
44    /// SETUP
[7221]45    void setFont(const std::string& fontFile, unsigned int renderSize);
[8764]46    void setFont(const Font& font);
[7450]47    /** @param blending the blending intensity to set (between 0.0 and 1.0) */
[8761]48    inline void setBlending(float blending) { this->_font.setTransparency(blending); };
[7450]49    /** @param r red @param g green @param b blue @brief sets the Color of the Text to render (values in [0-1]) */
[8761]50    void setColor(float r, float g, float b) { this->_font.setDiffuseColor(Color(r, g, b, this->blending())); };
51    void setColor(float r, float g, float b, float a) { this->_font.setDiffuseColor(Color(r, g, b, a)); };
52    void setColor(const Color& color) { this->_font.setDiffuseColor(color); };
[7453]53    void setSize(float size);
[5367]54
[7753]55
[7450]56    /// RETRIEVE
[7753]57    /** @returns the String this Text displays */
[8619]58    inline const std::string& text() const { return this->_text; };
[7753]59
[7450]60    /** @returns the pointer to the stored Font (not changeable) */
[8761]61    inline const Font& font() const { return this->_font; };
[7450]62    /** @returns the Blending Value [0 invisible 1.0 full visible */
[8761]63    inline float blending() const { return this->_font.diffuseColor().a(); };
[7450]64    /** @returns: a Vector(r,g,b) @brief: retrieve a Vector holding the Color of the Text */
[8761]65    inline const Color& color() const { return this->_font.diffuseColor(); };
[5369]66    /** @returns the Size of the Text */
[8619]67    inline float size() const { return this->_size; };
[5343]68
69    virtual void draw() const;
70
71    void debug() const;
72
[7450]73  protected:
74    virtual void setupTextWidth();
[7753]75  private:
76    void init();
[7453]77
[5343]78  private:
[8761]79    Font              _font;           //!< Font of this text
[5343]80
[8619]81    std::string       _text;           //!< The text to display
82    float             _size;           //!< The size of the Text.
[1853]83};
84
[5343]85#endif /* _TEXT_H */
Note: See TracBrowser for help on using the repository browser.