Index: trunk/src/lib/gui/gl/Makefile.am
===================================================================
--- trunk/src/lib/gui/gl/Makefile.am	(revision 8972)
+++ trunk/src/lib/gui/gl/Makefile.am	(revision 8973)
@@ -24,4 +24,5 @@
 		glgui_box.cc \
 		glgui_frame.cc \
+		glgui_text.cc \
 		glgui_inputline.cc \
 		glgui_textfield.cc \
@@ -51,4 +52,5 @@
 		glgui_box.h \
 		glgui_frame.h \
+		glgui_text.h \
 		glgui_inputline.h \
 		glgui_textfield.h \
Index: trunk/src/lib/gui/gl/glgui_text.cc
===================================================================
--- trunk/src/lib/gui/gl/glgui_text.cc	(revision 8972)
+++ trunk/src/lib/gui/gl/glgui_text.cc	(revision 8973)
@@ -36,6 +36,5 @@
   */
   GLGuiText::~GLGuiText()
-  {
-  }
+  {}
 
   /**
@@ -44,13 +43,117 @@
   void GLGuiText::init()
   {
-    this->setClassID(CL_GLGUI_, "GLGuiText");
+    this->setClassID(CL_GLGUI_TEXT, "GLGuiText");
 
+    this->_text.setParent2D(this);
+    this->_text.setRelCoor2D(4,4);
+    this->_text.setFont("fonts/final_frontier.ttf", 20);
+    this->_text.setColor(foregroundColor());
+    this->_text.setVisibility(false);
+    this->resize();
   }
+
+  /**
+  * @brief sets the Text of the Text
+  * @param text The new Text.
+   */
+  void GLGuiText::setText(const std::string& text)
+  {
+    this->_text.setText(text);
+    this->changedText();
+  }
+
+  /**
+   * @brief appends text to the Text
+   * @param appendText the Text to append
+   */
+  void GLGuiText::append(const std::string& appendText)
+  {
+    this->_text.append(appendText);
+    this->changedText();
+  }
+
+
+  /**
+   * @brief appends a Character to the Text
+   * @param character the Character to append.
+   */
+  void GLGuiText::appendCharacter(char character)
+  {
+    this->_text.appendCharacter(character);
+    this->changedText();
+  }
+
+
+  /**
+   * @brief Removes Characters from the Text
+   * @param chars The count of characters to remove
+   */
+  void GLGuiText::removeCharacters(unsigned int chars)
+  {
+    this->_text.removeCharacters(chars);
+    this->changedText();
+  }
+
+  void GLGuiText::clear()
+  {
+    this->_text.clear();
+    this->changedText();
+  }
+
+  /**
+  * @brief If the Text has been changed this function is called.
+  *
+  * This Function also emits the Signal textChanged.
+   */
+  void GLGuiText::changedText()
+  {
+    this->resize();
+    this->setFrontColor(Color(1,1,1,1), true);
+    emit(this->textChanged(this->_text.text()));
+  }
+
+
+
+  /**
+   * @brief Resizes the Widget to the new Size-constraints.
+   */
+  void GLGuiText::resize()
+  {
+    this->_text.setRelCoor2D(borderLeft(), borderTop());
+    this->setSize2D( this->_text.getSize2D() + Vector2D(borderLeft() + borderRight(), borderTop() + borderBottom()));
+    GLGuiWidget::resize();
+    /*    this->frontRect().setTopLeft(borderLeft(), borderTop());
+    this->frontRect().setSize(this->getSize2D() - Vector2D(borderLeft() + borderRight(), borderTop() + borderBottom()));*/
+  }
+
+  void GLGuiText::updateFrontColor()
+  {
+    this->_text.setColor(foregroundColor());
+  }
+
+  void GLGuiText::hiding()
+  {
+    this->_text.setVisibility(false);
+  }
+
+  void GLGuiText::showing()
+  {
+    this->_text.setVisibility(true);
+  }
+
+
 
   /**
    * draws the GLGuiText
    */
-  void GLGuiText::draw()
+  void GLGuiText::draw() const
   {
+    this->beginDraw();
+    GLGuiWidget::draw();
+
+    //     this->frontMaterial().select();
+    //     GLGuiWidget::drawRect(this->frontRect());
+
+    this->endDraw();
   }
 }
Index: trunk/src/lib/gui/gl/glgui_text.h
===================================================================
--- trunk/src/lib/gui/gl/glgui_text.h	(revision 8972)
+++ trunk/src/lib/gui/gl/glgui_text.h	(revision 8973)
@@ -25,14 +25,30 @@
     virtual ~GLGuiText();
 
-    void setText();
+    void setText(const std::string& text);
+    void append(const std::string& appendText);
+    void appendCharacter(char character);
+    void removeCharacters(unsigned int chars);
+    void clear();
 
-    virtual void draw();
+    const std::string& text() const { return _text.text(); };
+
+
+    virtual void draw() const;
+
+    DeclareSignal1(textChanged, const std::string&);
+
+  protected:
+    virtual void updateFrontColor();
+    virtual void hiding();
+    virtual void showing();
+    virtual void resize();
 
   private:
     void init();
+    void changedText();
 
 
   private:
-    Text              text;
+    Text              _text;
   };
 }
