Index: /branches/gui/src/lib/gui/gl/glgui_style.cc
===================================================================
--- /branches/gui/src/lib/gui/gl/glgui_style.cc	(revision 8508)
+++ /branches/gui/src/lib/gui/gl/glgui_style.cc	(revision 8509)
@@ -30,4 +30,5 @@
   {
     _font = NULL;
+    this->reset();
 
 
@@ -65,6 +66,5 @@
 
   void GLGuiStyle::loadParams(const TiXmlElement* root)
-  {
-  }
+  {}
 
   void GLGuiStyle::setBorderLeft(float value)
@@ -81,5 +81,4 @@
   void GLGuiStyle::setBorderLeftS(float value, const std::string& state)
   {
-
   }
 
@@ -107,118 +106,117 @@
 
   void GLGuiStyle::setBorderTop(float value, OrxGui::State state)
-{
-  _style[state]._borderTop = value;
+  {
+    _style[state]._borderTop = value;
+  }
+
+  void GLGuiStyle::setBorderTopS(float value, const std::string& state)
+  {}
+
+
+  void GLGuiStyle::setBorderBottom(float value)
+  {
+    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
+      setBorderBottom(value, (OrxGui::State)i);
+  }
+
+  void GLGuiStyle::setBorderBottom(float value, OrxGui::State state)
+  {
+    _style[state]._borderBottom = value;
+  }
+
+  void GLGuiStyle::setBorderBottomS(float value, const std::string& state)
+  {}
+
+
+  void GLGuiStyle::setTextSize(float value)
+  {
+    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
+      setTextSize(value, (OrxGui::State)i);
+  }
+
+  void GLGuiStyle::setTextSize(float value, OrxGui::State state)
+  {
+    _style[state]._textSize = value;
+  }
+
+  void GLGuiStyle::setTextSizeS(float value, const std::string& state)
+  {}
+
+
+  void GLGuiStyle::setBackgroundColor(const Color& color)
+  {
+    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
+      setBackgroundColor(color, (OrxGui::State)i);
+  }
+
+  void GLGuiStyle::setBackgroundColor(const Color& color, OrxGui::State state)
+  {
+    _style[state]._backgroundColor = color;
+  }
+
+  void GLGuiStyle::setBackgroundColorS(float r, float g, float b, float a, const std::string& state)
+  {}
+
+
+  void GLGuiStyle::setBackgroundTexture(const Texture& texture)
+  {
+    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
+      setBackgroundTexture(texture, (OrxGui::State)i);
+  }
+
+  void GLGuiStyle::setBackgroundTexture(const Texture& texture, OrxGui::State state)
+  {
+    _style[state]._backgroundTexture = texture;
+  }
+
+  void GLGuiStyle::setBackgroundTexture(const std::string& textureName, const std::string& state)
+  {}
+
+
+  void GLGuiStyle::setForegroundColor(const Color& color)
+  {
+    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
+      setForegroundColor(color, (OrxGui::State)i);
+  }
+
+  void GLGuiStyle::setForegroundColor(const Color& color, OrxGui::State state)
+  {
+    _style[state]._foregroundColor = color;
+  }
+
+  void GLGuiStyle::setForegroundColorS(float r, float g, float b, float a, const std::string& state)
+  {}
+
+
+
+  void GLGuiStyle::setFeaturePosition(FeaturePosition featurePosition)
+  {
+    this->_featurePosition = featurePosition;
+  }
+
+  void GLGuiStyle::setFeaturePosition(const std::string& featurePosition)
+  {}
+
+
+  void GLGuiStyle::setFont(Font* font)
+  {
+    this->_font = font;
+  }
+
+  void GLGuiStyle::setFont(const std::string& fontName)
+  {
+    //this->font = new Font(fontName);
+  }
+
+
+  void GLGuiStyle::setAnimated(bool animated)
+  {
+    this->_animated = animated;
+  }
+
+  void GLGuiStyle::setAnimatedStateChanges(bool animated)
+  {
+    this->_animatedStateChanges = animated;
+  }
+
 }
-
-  void GLGuiStyle::setBorderTopS(float value, const std::string& state)
-  {}
-
-
-  void GLGuiStyle::setBorderBottom(float value)
-  {
-    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
-      setBorderBottom(value, (OrxGui::State)i);
-  }
-
-  void GLGuiStyle::setBorderBottom(float value, OrxGui::State state)
-{
-  _style[state]._borderBottom = value;
-}
-
-  void GLGuiStyle::setBorderBottomS(float value, const std::string& state)
-  {}
-
-
-  void GLGuiStyle::setTextSize(float value)
-  {
-    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
-      setTextSize(value, (OrxGui::State)i);
-  }
-
-  void GLGuiStyle::setTextSize(float value, OrxGui::State state)
-{
-  _style[state]._textSize= value;
-}
-
-  void GLGuiStyle::setTextSizeS(float value, const std::string& state)
-  {}
-
-
-  void GLGuiStyle::setBackgroundColor(const Color& color)
-  {
-    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
-      setBackgroundColor(color, (OrxGui::State)i);
-  }
-
-  void GLGuiStyle::setBackgroundColor(const Color& color, OrxGui::State state)
-{
-  _style[state]._backgroundColor = color;
-}
-
-  void GLGuiStyle::setBackgroundColorS(float r, float g, float b, float a, const std::string& state)
-  {}
-
-
-  void GLGuiStyle::setBackgroundTexture(const Texture& texture)
-  {
-    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
-      setBackgroundTexture(texture, (OrxGui::State)i);
-  }
-
-  void GLGuiStyle::setBackgroundTexture(const Texture& texture, OrxGui::State state)
-{
-  _style[state]._backgroundTexture = texture;
-}
-
-  void GLGuiStyle::setBackgroundTexture(const std::string& textureName, const std::string& state)
-  {}
-
-
-  void GLGuiStyle::setForegroundColor(const Color& color)
-  {
-    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
-      setForegroundColor(color, (OrxGui::State)i);
-  }
-
-  void GLGuiStyle::setForegroundColor(const Color& color, OrxGui::State state)
-  {
-    _style[state]._foregroundColor = color;
-  }
-
-  void GLGuiStyle::setForegroundColorS(float r, float g, float b, float a, const std::string& state)
-  {}
-
-
-
-  void GLGuiStyle::setFeaturePosition(FeaturePosition featurePosition)
-  {
-    this->_featurePosition = featurePosition;
-  }
-
-  void GLGuiStyle::setFeaturePosition(const std::string& featurePosition)
-  {
-  }
-
-
-  void GLGuiStyle::setFont(Font* font)
-  {
-    this->_font = font;
-  }
-
-  void GLGuiStyle::setFont(const std::string& fontName)
-  {
-    //this->font = new Font(fontName);
-  }
-
-
-  void GLGuiStyle::setAnimated(bool animated)
-  {
-    this->_animated = animated;
-  }
-
-  void GLGuiStyle::setAnimatedStateChanges(bool animated)
-  {
-    this->_animatedStateChanges = animated;
-  }
-
-}
Index: /branches/gui/src/lib/gui/gl/glgui_widget.h
===================================================================
--- /branches/gui/src/lib/gui/gl/glgui_widget.h	(revision 8508)
+++ /branches/gui/src/lib/gui/gl/glgui_widget.h	(revision 8509)
@@ -66,4 +66,7 @@
     void disconnect(GLGuiWidget* sender, Signal& signal, BaseObject* receiver);
 
+
+    GLGuiStyle& style() { return this->_style; };
+    const GLGuiStyle style() const { return this->_style; };
 
     /// MATERIAL (looks)
Index: /branches/gui/src/lib/gui/gl/specials/glgui_notifier.cc
===================================================================
--- /branches/gui/src/lib/gui/gl/specials/glgui_notifier.cc	(revision 8508)
+++ /branches/gui/src/lib/gui/gl/specials/glgui_notifier.cc	(revision 8509)
@@ -33,6 +33,7 @@
     // Element2D and generals
     this->lineSpacing = 0;
+    this->linesProcessed = 0;
 
-    this->setBufferDisplaySize(10);
+    this->setDisplayLineCount(10);
   }
 
@@ -43,11 +44,51 @@
   {
     // delete the displayable Buffers
-    while (!this->bufferText.empty())
+    /*    while (!this->displayLines.empty())
+        {
+          delete this->displayLines.front().text;
+          this->displayLines.pop_front();
+        }
+
+        while (!this->hiddenText.empty())
+        {
+          delete this->hiddenText.top();
+          this->hiddenText.pop();
+        }*/
+  }
+
+  void GLGuiNotifier::pushNotifyMessage(const std::string& message)
+  {
+    if (!this->hiddenText.empty())
     {
-      delete this->bufferText.front();
-      this->bufferText.pop_front();
+      printf("%s\n", message.c_str());
+      DisplayLine dl;
+      dl.text = this->hiddenText.top();
+
+      dl.text->setText(message);
+      this->hiddenText.pop();
+      dl.age = 0.0f;
+      this->displayLines.push_back(dl);
+
+      this->repositionText();
+    }
+    else
+    {
+      printf("grumble... must be fixed\n");
     }
   }
 
+
+  void GLGuiNotifier::setDisplayLineCount(unsigned int count)
+  {
+    unsigned int currentCount = displayLines.size() + hiddenText.size();
+
+    for (unsigned int i = currentCount; i < count; ++i)
+    {
+      MultiLineText* text = new MultiLineText();
+      this->applyTextSettings(text);
+      this->hiddenText.push(text);
+    }
+    bufferDisplaySize = count;
+  }
 
 
@@ -58,9 +99,10 @@
   {
     int linePos = -1;
-    std::list<MultiLineText*>::iterator textIt;
-    for (textIt = this->bufferText.begin() ; textIt != this->bufferText.end(); ++textIt )
+    std::list<DisplayLine>::iterator textIt;
+    for (textIt = this->displayLines.begin() ; textIt != this->displayLines.end(); ++textIt )
     {
-      linePos += (*textIt)->getLineCount();
-      (*textIt)->setRelCoorSoft2D(this->calculateLinePosition(linePos), 8);
+      linePos += (*textIt).text->getLineCount();
+      (*textIt).text->setRelCoorSoft2D(this->calculateLinePosition(linePos), 8);
+      //      printf("%f %f\n", (*textIt).text->getAbsCoor2D().x, (*textIt).text->getAbsCoor2D().y);
     }
   }
@@ -71,13 +113,13 @@
    * @param text the Text to apply the settings to.
    */
-  void GLGuiNotifier::applyTextSettings(Text* text)
+  void GLGuiNotifier::applyTextSettings(MultiLineText* text)
   {
-/*    text->setSize(this->textSize);
-    text->setFont(this->fontFile, this->textSize);
-    text->setColor(this->textColor[0], this->textColor[1], this->textColor[2]);
-    text->setBlending(this->textColor[3]);
-    text->setLayer(this->getLayer());
+    text->setSize(this->style().textSize());
+    text->setLineWidth( 300 );
+    //text->setFont(this->fontFile, this->textSize);
+
+    //text->setColor( Color(1,1,1,1)/*this->style().foregroundColor() */);
     if (text->getParent2D() != this)
-      text->setParent2D(this);*/
+      text->setParent2D(this);
   }
 
@@ -113,9 +155,10 @@
   Vector2D GLGuiNotifier::calculateLinePosition(unsigned int lineNumber)
   {
-//    return Vector2D(5.0f, (float)(this->textSize + this->lineSpacing)*(float)((int)this->bufferDisplaySize - (int)lineNumber - (int)1));
-    return Vector2D();
+    return Vector2D(0.0f, (float)(this->style().textSize() + this->lineSpacing)*(float)((int)this->bufferDisplaySize - (int)lineNumber - (int)1));
   }
 
 
+  void GLGuiNotifier::resize()
+  {}
 
   /**
Index: /branches/gui/src/lib/gui/gl/specials/glgui_notifier.h
===================================================================
--- /branches/gui/src/lib/gui/gl/specials/glgui_notifier.h	(revision 8508)
+++ /branches/gui/src/lib/gui/gl/specials/glgui_notifier.h	(revision 8509)
@@ -13,4 +13,6 @@
 #include "event_listener.h"
 
+#include <stack>
+
 // FORWARD DECLARATION
 class MultiLineText;
@@ -22,5 +24,4 @@
   class GLGuiNotifier : public GLGuiWidget
   {
-
   public:
     GLGuiNotifier();
@@ -30,34 +31,47 @@
 
     // BUFFERS
-    void setBufferDisplaySize(unsigned int bufferDisplaySize);
-    void printToDisplayBuffer(const std::string& text);
+    void setDisplayLineCount(unsigned int count);
 
     void clear();
 
-    // EventListener
-    virtual void processEvents(const Event &event);
     // Element2D-functions
     virtual void tick(float dt);
     virtual void draw() const;
 
-
     void debug() const;
 
+  protected:
+    virtual void resize();
+
   private:
-    void updateResolution(unsigned int width);
     void repositionText();
-    void applyTextSettings(Text* text);
+    void applyTextSettings(MultiLineText* text);
     void applySettings();
     // helpers //
     Vector2D calculateLinePosition(unsigned int lineNumber);
 
+
+
   private:
+    typedef struct
+    {
+      float             age;
+      MultiLineText*    text;
+
+    }
+    DisplayLine;
+
     unsigned int                lineSpacing;            //!< The Spacing between lines.
 
     // BUFFER
     unsigned int                bufferDisplaySize;      //!< The Size of the Display-buffer, in lines (not in characters).
-    std::list<MultiLineText*>   bufferText;             //!< A list of stored bufferTexts for the display of the buffer.
+    std::list<DisplayLine>      displayLines;           //!< A list of stored bufferTexts for the display of the buffer.
 
-    unsigned long               linesProcessed;         //!< How many Lines have been processed.
+    std::stack<MultiLineText*>  hiddenText;             //!< Text that is not shown, and not used is thrown in here
+
+
+    unsigned long               linesProcessed;         //!< How many Lines have been processed so far.
+    std::list<std::string>      inputBuffer;            //!<
+
   };
 
Index: /branches/gui/src/story_entities/simple_game_menu.cc
===================================================================
--- /branches/gui/src/story_entities/simple_game_menu.cc	(revision 8508)
+++ /branches/gui/src/story_entities/simple_game_menu.cc	(revision 8509)
@@ -42,4 +42,5 @@
 
 #include "glgui.h"
+#include "gui/gl/specials/glgui_notifier.h"
 
 //! This creates a Factory to fabricate a SimpleGameMenu
@@ -88,4 +89,10 @@
 {
 
+  OrxGui::GLGuiNotifier* notifier = new OrxGui::GLGuiNotifier();
+  notifier->show();
+  notifier->setAbsCoor2D(300, 300);
+
+
+
   OrxGui::GLGuiBox* box = new OrxGui::GLGuiBox();
   {
@@ -107,5 +114,6 @@
     OrxGui::GLGuiInputLine* input = new OrxGui::GLGuiInputLine();
     input->setText("input some text here");
-    input->connect(SIGNAL(input, textChanged), this, SLOT(SimpleGameMenu, TEST));
+    input->connect(SIGNAL(input, textChanged), notifier, SLOT(OrxGui::GLGuiNotifier, pushNotifyMessage));
+
     box->pack(input);
 
