Changeset 8539 in orxonox.OLD for branches/gui
- Timestamp:
- Jun 16, 2006, 4:52:35 PM (19 years ago)
- Location:
- branches/gui/src/lib
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/gui/src/lib/graphics/text_engine/limited_width_text.cc
r8538 r8539 62 62 // drawing this Text. 63 63 // setting the Blending effects 64 glColor4fv(&this-> getColor()[0]);64 glColor4fv(&this->color()[0]); 65 65 66 66 … … 72 72 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, GL_MODULATE ); 73 73 74 glBindTexture(GL_TEXTURE_2D, this-> getFont()->getTexture());74 glBindTexture(GL_TEXTURE_2D, this->font()->getTexture()); 75 75 glTranslatef(getAbsCoor2D().x, getAbsCoor2D().y, 0); 76 76 glRotatef(this->getAbsDir2D(), 0, 0, 1); … … 81 81 for (unsigned int i = 0; i < this->_dotedText.size(); i++) 82 82 { 83 if(likely((tmpGlyph = this-> getFont()->getGlyphArray()[this->_dotedText[i]]) != NULL))83 if(likely((tmpGlyph = this->font()->getGlyphArray()[this->_dotedText[i]]) != NULL)) 84 84 { 85 85 glTexCoord2f(tmpGlyph->texCoord[1], tmpGlyph->texCoord[2]); 86 glVertex2d(posX+tmpGlyph->maxX*this-> getSize(), 0);86 glVertex2d(posX+tmpGlyph->maxX*this->size(), 0); 87 87 88 88 glTexCoord2f(tmpGlyph->texCoord[1], tmpGlyph->texCoord[3]); 89 glVertex2d(posX+tmpGlyph->maxX*this-> getSize(), this->getSize());89 glVertex2d(posX+tmpGlyph->maxX*this->size(), this->size()); 90 90 91 91 glTexCoord2f(tmpGlyph->texCoord[0], tmpGlyph->texCoord[3]); 92 glVertex2d(posX+tmpGlyph->minX*this-> getSize(), this->getSize());92 glVertex2d(posX+tmpGlyph->minX*this->size(), this->size()); 93 93 94 94 glTexCoord2f(tmpGlyph->texCoord[0], tmpGlyph->texCoord[2]); 95 glVertex2d(posX+tmpGlyph->minX*this-> getSize(), 0);95 glVertex2d(posX+tmpGlyph->minX*this->size(), 0); 96 96 97 posX += tmpGlyph->advance * this-> getSize();97 posX += tmpGlyph->advance * this->size(); 98 98 } 99 99 } … … 109 109 void LimitedWidthText::setupTextWidth() 110 110 { 111 float dotsSize = this-> getFont()->getGlyphArray()[46]->advance * 3.0;111 float dotsSize = this->font()->getGlyphArray()[46]->advance * 3.0; 112 112 113 113 float width = 0.0f; 114 float maxWidth = this->_lineWidth / this-> getSize();114 float maxWidth = this->_lineWidth / this->size(); 115 115 116 116 switch (this->_dotsPosition) 117 117 { 118 118 case End: 119 for (unsigned int i = 0; i < this-> getText().size(); i++)119 for (unsigned int i = 0; i < this->text().size(); i++) 120 120 { 121 121 if (width + dotsSize > maxWidth ) 122 122 { 123 this->_dotedText = this-> getText().substr(0, i) + "...";123 this->_dotedText = this->text().substr(0, i) + "..."; 124 124 width += dotsSize; 125 125 break; 126 126 } 127 127 // Advance the Text. 128 if(this-> getFont()->getGlyphArray()[this->getText()[i]] != NULL)129 width += this-> getFont()->getGlyphArray()[this->getText()[i]]->advance;128 if(this->font()->getGlyphArray()[this->text()[i]] != NULL) 129 width += this->font()->getGlyphArray()[this->text()[i]]->advance; 130 130 } 131 131 this->setSizeX2D(width); 132 132 break; 133 133 case Begin: 134 for (unsigned int i = this-> getText().size() - 1; i < 0; i--)134 for (unsigned int i = this->text().size() - 1; i < 0; i--) 135 135 { 136 136 if (width + dotsSize > maxWidth ) 137 137 { 138 this->_dotedText = std::string("...") + this-> getText().substr(i);138 this->_dotedText = std::string("...") + this->text().substr(i); 139 139 width += dotsSize; 140 140 break; 141 141 } 142 142 // Advance the Text. 143 if(this-> getFont()->getGlyphArray()[this->getText()[i]] != NULL)144 width += this-> getFont()->getGlyphArray()[this->getText()[i]]->advance;143 if(this->font()->getGlyphArray()[this->text()[i]] != NULL) 144 width += this->font()->getGlyphArray()[this->text()[i]]->advance; 145 145 } 146 146 this->setSizeX2D(width); -
branches/gui/src/lib/graphics/text_engine/multi_line_text.cc
r8448 r8539 61 61 void MultiLineText::draw() const 62 62 { 63 if (unlikely(this-> getText().empty()))63 if (unlikely(this->text().empty())) 64 64 return; 65 65 glPushMatrix(); … … 76 76 glActiveTexture(GL_TEXTURE0); 77 77 78 glColor4fv(&this-> getColor()[0]);78 glColor4fv(&this->color()[0]); 79 79 glEnable(GL_BLEND); 80 80 glEnable(GL_TEXTURE_2D); … … 82 82 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, GL_MODULATE ); 83 83 84 glBindTexture(GL_TEXTURE_2D, this-> getFont()->getTexture());84 glBindTexture(GL_TEXTURE_2D, this->font()->getTexture()); 85 85 glTranslatef(this->getAbsCoor2D().x, this->getAbsCoor2D().y, 0); 86 86 glRotatef(this->getAbsDir2D(), 0, 0, 1); … … 92 92 93 93 glBegin(GL_QUADS); 94 for (unsigned int i = 0; i < this-> getText().size(); ++i)94 for (unsigned int i = 0; i < this->text().size(); ++i) 95 95 { 96 96 if (unlikely(this->lineEnds.size() > lineNumber && i == this->lineEnds[lineNumber])) … … 99 99 ++lineNumber; 100 100 posX = 0.0f; 101 posY += this->lineSpacing + this-> getSize(); //this->getFont()->getMaxHeight();101 posY += this->lineSpacing + this->size(); //this->font()->getMaxHeight(); 102 102 } 103 103 104 if(likely((tmpGlyph = this-> getFont()->getGlyphArray()[this->getText()[i]]) != NULL))104 if(likely((tmpGlyph = this->font()->getGlyphArray()[this->text()[i]]) != NULL)) 105 105 { 106 106 glTexCoord2f(tmpGlyph->texCoord[1], tmpGlyph->texCoord[2]); 107 glVertex2d(posX+tmpGlyph->maxX*this-> getSize(), posY);107 glVertex2d(posX+tmpGlyph->maxX*this->size(), posY); 108 108 109 109 glTexCoord2f(tmpGlyph->texCoord[1], tmpGlyph->texCoord[3]); 110 glVertex2d(posX+tmpGlyph->maxX*this-> getSize(), posY + this->getSize());110 glVertex2d(posX+tmpGlyph->maxX*this->size(), posY + this->size()); 111 111 112 112 glTexCoord2f(tmpGlyph->texCoord[0], tmpGlyph->texCoord[3]); 113 glVertex2d(posX+tmpGlyph->minX*this-> getSize(), posY+ this->getSize());113 glVertex2d(posX+tmpGlyph->minX*this->size(), posY+ this->size()); 114 114 115 115 glTexCoord2f(tmpGlyph->texCoord[0], tmpGlyph->texCoord[2]); 116 glVertex2d(posX+tmpGlyph->minX*this-> getSize(), posY);116 glVertex2d(posX+tmpGlyph->minX*this->size(), posY); 117 117 118 posX += tmpGlyph->advance * this-> getSize();118 posX += tmpGlyph->advance * this->size(); 119 119 } 120 120 } … … 132 132 this->lineEnds.clear(); 133 133 float width = 0.0f; 134 float maxWidth = this->lineWidth / this-> getSize();134 float maxWidth = this->lineWidth / this->size(); 135 135 136 for (unsigned int i = 0; i < this-> getText().size(); i++)136 for (unsigned int i = 0; i < this->text().size(); i++) 137 137 { 138 if (width > maxWidth || this-> getText()[i] == '\n')138 if (width > maxWidth || this->text()[i] == '\n') 139 139 { 140 140 if (likely(i > 0)) 141 141 { 142 142 this->lineEnds.push_back( i -1 ); 143 width = this-> getFont()->getGlyphArray()[this->getText()[i-1]]->advance;143 width = this->font()->getGlyphArray()[this->text()[i-1]]->advance; 144 144 } 145 145 else … … 148 148 149 149 // Advance the Text. 150 if(this-> getFont()->getGlyphArray()[this->getText()[i]] != NULL)151 width += this-> getFont()->getGlyphArray()[this->getText()[i]]->advance;150 if(this->font()->getGlyphArray()[this->text()[i]] != NULL) 151 width += this->font()->getGlyphArray()[this->text()[i]]->advance; 152 152 } 153 153 this->lineCount = lineEnds.size() + 1; 154 this->setSizeY2D((this->lineEnds.size()+1) * (this->lineSpacing + this-> getFont()->getMaxHeight()));154 this->setSizeY2D((this->lineEnds.size()+1) * (this->lineSpacing + this->font()->getMaxHeight())); 155 155 } 156 156 … … 162 162 printf("Debug %s::%s: %d lines\n", this->getClassName(), this->getName(), this->getLineCount()); 163 163 164 std::string tmpText = this-> getText();164 std::string tmpText = this->text(); 165 165 std::vector<unsigned int> ends = this->lineEnds; 166 166 ends.push_back(tmpText.size()); -
branches/gui/src/lib/graphics/text_engine/text.cc
r8518 r8539 34 34 35 35 // initialize this Text 36 this-> font = NULL;37 this-> size = textSize;38 this->setSizeY2D( size);39 this-> color = TEXT_DEFAULT_COLOR;36 this->_font = NULL; 37 this->_size = textSize; 38 this->setSizeY2D(textSize); 39 this->_color = TEXT_DEFAULT_COLOR; 40 40 41 41 this->setAlignment(TEXT_DEFAULT_ALIGNMENT); … … 47 47 { 48 48 this->setClassID(CL_TEXT, "Text"); 49 this-> font = NULL;49 this->_font = NULL; 50 50 51 51 *this = text; … … 58 58 Text::~Text() 59 59 { 60 if (this-> font != NULL && this->font != Font::getDefaultFont())61 ResourceManager::getInstance()->unload(this-> font);60 if (this->_font != NULL && this->_font != Font::getDefaultFont()) 61 ResourceManager::getInstance()->unload(this->_font); 62 62 } 63 63 … … 69 69 bool Text::operator==(const Text& text) const 70 70 { 71 return (this-> text == text.text &&72 this-> size == text.size &&73 this-> font == text.font &&74 this-> color == text.color);71 return (this->_text == text._text && 72 this->_size == text._size && 73 this->_font == text._font && 74 this->_color == text._color); 75 75 } 76 76 … … 82 82 bool Text::operator==(const std::string& text) const 83 83 { 84 return (this-> text == text);84 return (this->_text == text); 85 85 } 86 86 … … 92 92 Text& Text::operator=(const Text& text) 93 93 { 94 this-> size = text.size;95 this-> color = text.color;94 this->_size = text._size; 95 this->_color = text._color; 96 96 this->setAlignment(text.getAlignment()); 97 if (this-> font != NULL)98 ResourceManager::getInstance()->unload(this-> font);99 100 this-> font = (Font*)ResourceManager::getInstance()->copy( text.font ); //!< HACK101 102 this-> text = text.text;97 if (this->_font != NULL) 98 ResourceManager::getInstance()->unload(this->_font); 99 100 this->_font = (Font*)ResourceManager::getInstance()->copy( text._font ); //!< HACK 101 102 this->_text = text._text; 103 103 return *this; 104 104 } … … 110 110 void Text::setText(const std::string& text) 111 111 { 112 this-> text = text;112 this->_text = text; 113 113 this->setupTextWidth(); 114 114 } … … 120 120 void Text::append(const std::string& appendText) 121 121 { 122 this-> text += appendText;122 this->_text += appendText; 123 123 this->setupTextWidth(); 124 124 } … … 129 129 void Text::appendCharacter(char character) 130 130 { 131 this-> text += character;131 this->_text += character; 132 132 this->setupTextWidth(); 133 133 } … … 141 141 { 142 142 this->append(appendText); 143 return this-> text;143 return this->_text; 144 144 } 145 145 … … 152 152 void Text::removeCharacters(unsigned int chars) 153 153 { 154 if (t ext.size() > chars)155 this-> text.resize(this->text.size()-chars);156 else if (!t ext.empty())157 t ext.clear();154 if (this->_text.size() > chars) 155 this->_text.resize(this->_text.size()-chars); 156 else if (!this->_text.empty()) 157 this->_text.clear(); 158 158 this->setupTextWidth(); 159 159 } … … 165 165 void Text::clear() 166 166 { 167 t ext.clear();167 this->_text.clear(); 168 168 this->setupTextWidth(); 169 169 } … … 177 177 { 178 178 Font* newFont = NULL; 179 Font* oldFont = this-> font;179 Font* oldFont = this->_font; 180 180 181 181 // load a new Font … … 194 194 195 195 // unloading the Font if we alrady have one loaded. 196 this-> font = newFont;196 this->_font = newFont; 197 197 if (oldFont != NULL && oldFont != Font::getDefaultFont()) 198 198 ResourceManager::getInstance()->unload(oldFont); … … 207 207 void Text::setSize(float size) 208 208 { 209 this-> size = size;209 this->_size = size; 210 210 this->setSizeY2D(size); 211 211 this->setupTextWidth(); … … 218 218 void Text::draw() const 219 219 { 220 if (unlikely(this-> text.empty()))220 if (unlikely(this->_text.empty())) 221 221 return; 222 222 glPushMatrix(); … … 230 230 // drawing this Text. 231 231 // setting the Blending effects 232 glColor4fv(&this-> color[0]);232 glColor4fv(&this->_color[0]); 233 233 234 234 … … 240 240 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, GL_MODULATE ); 241 241 242 glBindTexture(GL_TEXTURE_2D, font->getTexture());242 glBindTexture(GL_TEXTURE_2D, this->_font->getTexture()); 243 243 glTranslatef(getAbsCoor2D().x, getAbsCoor2D().y, 0); 244 244 glRotatef(this->getAbsDir2D(), 0, 0, 1); … … 247 247 float posX = 0.0f; 248 248 glBegin(GL_QUADS); 249 for (unsigned int i = 0; i < this-> text.size(); i++)249 for (unsigned int i = 0; i < this->_text.size(); i++) 250 250 { 251 if(likely((tmpGlyph = this-> getFont()->getGlyphArray()[this->text[i]]) != NULL))251 if(likely((tmpGlyph = this->font()->getGlyphArray()[this->_text[i]]) != NULL)) 252 252 { 253 253 glTexCoord2f(tmpGlyph->texCoord[1], tmpGlyph->texCoord[2]); 254 glVertex2d(posX+tmpGlyph->maxX*this-> getSize(), 0);254 glVertex2d(posX+tmpGlyph->maxX*this->size(), 0); 255 255 256 256 glTexCoord2f(tmpGlyph->texCoord[1], tmpGlyph->texCoord[3]); 257 glVertex2d(posX+tmpGlyph->maxX*this-> getSize(), this->getSize());257 glVertex2d(posX+tmpGlyph->maxX*this->size(), this->size()); 258 258 259 259 glTexCoord2f(tmpGlyph->texCoord[0], tmpGlyph->texCoord[3]); 260 glVertex2d(posX+tmpGlyph->minX*this-> getSize(), this->getSize());260 glVertex2d(posX+tmpGlyph->minX*this->size(), this->size()); 261 261 262 262 glTexCoord2f(tmpGlyph->texCoord[0], tmpGlyph->texCoord[2]); 263 glVertex2d(posX+tmpGlyph->minX*this-> getSize(), 0);264 265 posX += tmpGlyph->advance * this-> getSize();263 glVertex2d(posX+tmpGlyph->minX*this->size(), 0); 264 265 posX += tmpGlyph->advance * this->size(); 266 266 } 267 267 } … … 278 278 { 279 279 float width = 0; 280 for (unsigned int i = 0; i < this-> text.size(); i++)281 if(this-> font->getGlyphArray()[this->text[i]] != NULL)282 width += this-> font->getGlyphArray()[this->text[i]]->advance;283 this->setSizeX2D(width * this-> getSize());280 for (unsigned int i = 0; i < this->_text.size(); i++) 281 if(this->_font->getGlyphArray()[this->_text[i]] != NULL) 282 width += this->_font->getGlyphArray()[this->_text[i]]->advance; 283 this->setSizeX2D(width * this->size()); 284 284 } 285 285 … … 290 290 void Text::debug() const 291 291 { 292 PRINT(0)("=== TEXT: %s (with Font:'%s') displaying %s ===\n", this->getName(), this-> font->getName(), this->text.c_str());293 PRINT(0)("Color: r=%0.2f g=%0.2f b=%0.2f a=%0.2f\n", this-> color.r(), this->color.g(), this->color.b(), this->color.a());294 } 295 292 PRINT(0)("=== TEXT: %s (with Font:'%s') displaying %s ===\n", this->getName(), this->_font->getName(), this->_text.c_str()); 293 PRINT(0)("Color: r=%0.2f g=%0.2f b=%0.2f a=%0.2f\n", this->_color.r(), this->_color.g(), this->_color.b(), this->_color.a()); 294 } 295 -
branches/gui/src/lib/graphics/text_engine/text.h
r8518 r8539 45 45 void setFont(const std::string& fontFile, unsigned int renderSize); 46 46 /** @param blending the blending intensity to set (between 0.0 and 1.0) */ 47 inline void setBlending(float blending) { this-> color.a() = blending; };47 inline void setBlending(float blending) { this->_color.a() = blending; }; 48 48 /** @param r red @param g green @param b blue @brief sets the Color of the Text to render (values in [0-1]) */ 49 void setColor(float r, float g, float b) { this-> color = Color(r, g, b, this->color.a()); };50 void setColor(float r, float g, float b, float a) { this-> color = Color(r, g, b, a); };51 void setColor(const Color& color) { this-> color = color; };49 void setColor(float r, float g, float b) { this->_color = Color(r, g, b, this->_color.a()); }; 50 void setColor(float r, float g, float b, float a) { this->_color = Color(r, g, b, a); }; 51 void setColor(const Color& color) { this->_color = color; }; 52 52 void setSize(float size); 53 53 … … 55 55 /// RETRIEVE 56 56 /** @returns the String this Text displays */ 57 inline const std::string& getText() const { return this->text; };57 inline const std::string& text() const { return this->_text; }; 58 58 59 59 /** @returns the pointer to the stored Font (not changeable) */ 60 inline const Font* const getFont() const { return this->font; };60 inline const Font* const font() const { return this->_font; }; 61 61 /** @returns the Blending Value [0 invisible 1.0 full visible */ 62 inline float getBlending() const { return this->color.a(); };62 inline float blending() const { return this->_color.a(); }; 63 63 /** @returns: a Vector(r,g,b) @brief: retrieve a Vector holding the Color of the Text */ 64 inline const Color& getColor() const { return this->color; };64 inline const Color& color() const { return this->_color; }; 65 65 /** @returns the Size of the Text */ 66 inline float getSize() const { return this->size; };66 inline float size() const { return this->_size; }; 67 67 68 68 virtual void draw() const; … … 76 76 77 77 private: 78 Font* font; //!< Font of this text78 Font* _font; //!< Font of this text 79 79 80 std::string text; //!< The text to display81 Color color; //!< The color of the font.82 float size; //!< The size of the Text.80 std::string _text; //!< The text to display 81 Color _color; //!< The color of the font. 82 float _size; //!< The size of the Text. 83 83 }; 84 84 -
branches/gui/src/lib/gui/gl/glgui_button.h
r8448 r8539 36 36 virtual ~GLGuiButton(); 37 37 38 const std::string& label() const { return this->_label. getText(); };38 const std::string& label() const { return this->_label.text(); }; 39 39 void setLabel(const std::string& label); 40 40 -
branches/gui/src/lib/gui/gl/glgui_inputline.cc
r8529 r8539 121 121 this->setFrontColor(Color(1,1,1,1), true); 122 122 this->setFrontColor(Color(0,1,0,1)); 123 emit(this->textChanged(this->_text. getText()));123 emit(this->textChanged(this->_text.text())); 124 124 } 125 125 … … 143 143 void GLGuiInputLine::pushEnter() 144 144 { 145 emit(this->enterPushed(this->_text. getText()));145 emit(this->enterPushed(this->_text.text())); 146 146 if (this->_clearOnEnter) 147 147 this->clear(); -
branches/gui/src/lib/gui/gl/glgui_inputline.h
r8518 r8539 32 32 33 33 /** @returns the text of the inputLine */ 34 const std::string& _getText() const { return this->_text. getText(); };34 const std::string& _getText() const { return this->_text.text(); }; 35 35 36 36 void setText(const std::string& text);
Note: See TracChangeset
for help on using the changeset viewer.