Changeset 2087 for code/trunk/src/orxonox/overlays/OverlayText.cc
- Timestamp:
- Nov 1, 2008, 7:04:09 PM (16 years ago)
- Location:
- code/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
code/trunk
- Property svn:mergeinfo changed
-
code/trunk/src/orxonox/overlays/OverlayText.cc
r1784 r2087 31 31 32 32 #include <OgreOverlayManager.h> 33 #include <OgreTextAreaOverlayElement.h>34 33 #include <OgrePanelOverlayElement.h> 35 34 … … 42 41 CreateFactory(OverlayText); 43 42 44 OverlayText::OverlayText( )45 : text_(0)43 OverlayText::OverlayText(BaseObject* creator) 44 : OrxonoxOverlay(creator) 46 45 { 47 46 RegisterObject(OverlayText); 47 48 this->text_ = static_cast<Ogre::TextAreaOverlayElement*>(Ogre::OverlayManager::getSingleton() 49 .createOverlayElement("TextArea", "OverlayText_text_" + getUniqueNumberString())); 50 this->text_->setCharHeight(1.0); 51 52 setFont("Monofur"); 53 setColour(ColourValue(1.0, 1.0, 1.0, 1.0)); 54 setCaption(""); 55 setTextSize(1.0f); 56 setAlignmentString("left"); 57 58 this->background_->addChild(this->text_); 48 59 } 49 60 50 61 OverlayText::~OverlayText() 51 62 { 52 if (this-> text_)63 if (this->isInitialized()) 53 64 Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->text_); 54 65 } … … 58 69 SUPER(OverlayText, XMLPort, xmlElement, mode); 59 70 60 if (mode == XMLPort::LoadObject) 61 { 62 this->text_ = static_cast<Ogre::TextAreaOverlayElement*>(Ogre::OverlayManager::getSingleton() 63 .createOverlayElement("TextArea", "OverlayText_text_" + getUniqueNumberStr())); 64 this->text_->setCharHeight(1.0); 65 66 this->background_->addChild(this->text_); 67 } 68 69 XMLPortParam(OverlayText, "font", setFont, getFont, xmlElement, mode).defaultValues("Monofur"); 70 XMLPortParam(OverlayText, "caption", setCaption, getCaption, xmlElement, mode).defaultValues(""); 71 XMLPortParam(OverlayText, "textSize", setTextSize, getTextSize, xmlElement, mode).defaultValues(1.0f); 71 XMLPortParam(OverlayText, "font", setFont, getFont, xmlElement, mode); 72 XMLPortParam(OverlayText, "colour", setColour, getColour, xmlElement, mode); 73 XMLPortParam(OverlayText, "caption", setCaption, getCaption, xmlElement, mode); 74 XMLPortParam(OverlayText, "textSize", setTextSize, getTextSize, xmlElement, mode); 75 XMLPortParam(OverlayText, "align", setAlignmentString, getAlignmentString, xmlElement, mode); 72 76 } 73 77 74 78 void OverlayText::setFont(const std::string& font) 75 79 { 76 if ( this->text_ &&font != "")80 if (font != "") 77 81 this->text_->setFontName(font); 78 82 } 79 83 80 const std::string& OverlayText::getFont() const84 void OverlayText::setAlignmentString(const std::string& alignment) 81 85 { 82 if (this->text_) 83 return this->text_->getFontName(); 84 else 85 return blankString; 86 if (alignment == "right") 87 this->setAlignment(Ogre::TextAreaOverlayElement::Right); 88 else if (alignment == "center") 89 this->setAlignment(Ogre::TextAreaOverlayElement::Center); 90 else // "left" and default 91 this->setAlignment(Ogre::TextAreaOverlayElement::Left); 92 } 93 94 std::string OverlayText::getAlignmentString() const 95 { 96 Ogre::TextAreaOverlayElement::Alignment alignment = this->text_->getAlignment(); 97 98 switch (alignment) 99 { 100 case Ogre::TextAreaOverlayElement::Right: 101 return "right"; 102 case Ogre::TextAreaOverlayElement::Center: 103 return "center"; 104 case Ogre::TextAreaOverlayElement::Left: 105 return "left"; 106 default: 107 assert(false); return ""; 108 } 86 109 } 87 110 88 111 void OverlayText::sizeChanged() 89 112 { 90 if (!this->overlay_)91 return;92 93 113 if (this->rotState_ == Horizontal) 94 114 this->overlay_->setScale(size_.y * sizeCorrection_.y, size_.y * sizeCorrection_.y);
Note: See TracChangeset
for help on using the changeset viewer.