Index: /branches/gui/src/lib/gui/gl/glgui_box.cc
===================================================================
--- /branches/gui/src/lib/gui/gl/glgui_box.cc	(revision 8583)
+++ /branches/gui/src/lib/gui/gl/glgui_box.cc	(revision 8584)
@@ -110,5 +110,5 @@
     if (orientation() == OrxGui::Vertical)
     {
-      float height = this->borderTop();
+      float height = style().borderTop();
       float width = 0.0f;
       std::vector<GLGuiWidget*>::iterator widget;
@@ -117,11 +117,11 @@
       for (widget = this->children.begin(); widget != this->children.end(); ++widget)
       {
-        (*widget)->setRelCoor2D(this->borderLeft(), height);
+        (*widget)->setRelCoor2D(style().borderLeft(), height);
         height += (*widget)->getSizeY2D();
         width = fmax(width, (*widget)->getSizeX2D());
       }
 
-      width += this->borderLeft() + this->borderRight();
-      height += this->borderBottom(); /* *2 done further up */
+      width += style().borderLeft() + style().borderRight();
+      height += style().borderBottom(); /* *2 done further up */
 
       printf("%f %f\n", width, height);
@@ -130,6 +130,6 @@
     else
     {
-      float height = this->borderTop();
-      float width = this->borderLeft();
+      float height = style().borderTop();
+      float width = style().borderLeft();
       std::vector<GLGuiWidget*>::iterator widget;
 
@@ -137,11 +137,11 @@
       for (widget = this->children.begin(); widget != this->children.end(); ++widget)
       {
-        (*widget)->setRelCoor2D(width, this->borderTop());
+        (*widget)->setRelCoor2D(width, style().borderTop());
         height = fmax(height, (*widget)->getSizeY2D());
         width += (*widget)->getSizeX2D();
       }
 
-      width += this->borderRight() ;
-      height += this->borderBottom(); /* *2 done further up */
+      width += style().borderRight() ;
+      height += style().borderBottom(); /* *2 done further up */
 
       printf("%f %f\n", width, height);
Index: /branches/gui/src/lib/gui/gl/glgui_button.cc
===================================================================
--- /branches/gui/src/lib/gui/gl/glgui_button.cc	(revision 8583)
+++ /branches/gui/src/lib/gui/gl/glgui_button.cc	(revision 8584)
@@ -55,5 +55,5 @@
 
     this->_label.setFont("fonts/final_frontier.ttf", 20);
-    this->_label.setColor(this->foregroundColor() );
+    this->_label.setColor(this->style().foregroundColor() );
 
     this->_label.setParent2D(this);
@@ -71,5 +71,5 @@
   void GLGuiButton::updateFrontColor()
   {
-    this->_label.setColor(this->foregroundColor());
+    this->_label.setColor(this->style().foregroundColor());
   }
 
Index: /branches/gui/src/lib/gui/gl/glgui_checkbutton.cc
===================================================================
--- /branches/gui/src/lib/gui/gl/glgui_checkbutton.cc	(revision 8583)
+++ /branches/gui/src/lib/gui/gl/glgui_checkbutton.cc	(revision 8584)
@@ -66,10 +66,10 @@
   {
 
-    this->labelText().setRelCoor2D( borderLeft() + 15.0, borderTop() + 5);
-    this->setSize2D(this->labelText().getSizeX2D() + 15.0 + borderLeft() + borderRight(), this->labelText().getSizeY2D() + 10 + borderTop()+borderBottom());
+    this->labelText().setRelCoor2D( style().borderLeft() + 15.0, style().borderTop() + 5);
+    this->setSize2D(this->labelText().getSizeX2D() + 15.0 + style().borderLeft() + style().borderRight(), this->labelText().getSizeY2D() + 10 + style().borderTop()+style().borderBottom());
     GLGuiWidget::resize();
 
     this->_checkBox.setSize(10.0, 10.0);
-    this->_checkBox.setCenter( borderLeft() + _checkBox.height()/2.0, borderTop() + (this->getSizeY2D() - borderTop() - borderBottom()) / 2.0);
+    this->_checkBox.setCenter( style().borderLeft() + _checkBox.height()/2.0, style().borderTop() + (this->getSizeY2D() - style().borderTop() - style().borderBottom()) / 2.0);
 
 /*    this->frontRect().setTopLeft(borderLeft(), borderTop());
@@ -99,5 +99,5 @@
     if (this->bActive)
     {
-      glColor3fv( &this->foregroundColor()[0]);
+      glColor3fv( &this->style().foregroundColor()[0]);
       this->drawRect(this->_checkBox);
 
@@ -124,5 +124,5 @@
     else
     {
-      glColor3fv( &this->foregroundColor()[0]);
+      glColor3fv( &this->style().foregroundColor()[0]);
       this->drawRect(this->_checkBox);
     }
Index: /branches/gui/src/lib/gui/gl/glgui_cursor.cc
===================================================================
--- /branches/gui/src/lib/gui/gl/glgui_cursor.cc	(revision 8583)
+++ /branches/gui/src/lib/gui/gl/glgui_cursor.cc	(revision 8584)
@@ -126,5 +126,5 @@
     this->beginDraw();
 
-    this->background().select();
+    this->style().background().select();
     if (!this->seq.empty())
       glBindTexture(GL_TEXTURE_2D, this->seq.getFrameTexture((int)frameNumber));
Index: /branches/gui/src/lib/gui/gl/glgui_image.cc
===================================================================
--- /branches/gui/src/lib/gui/gl/glgui_image.cc	(revision 8583)
+++ /branches/gui/src/lib/gui/gl/glgui_image.cc	(revision 8584)
@@ -76,11 +76,11 @@
   void GLGuiImage::updateFrontColor()
   {
-    this->_imageMaterial.setDiffuseColor(this->foregroundColor());
+    this->_imageMaterial.setDiffuseColor(style().foregroundColor());
   }
 
   void GLGuiImage::resize()
   {
-    this->_imagePlane.setTopLeft(this->borderLeft(), this->borderTop());
-    this->_imagePlane.setSize(this->getSizeX2D() - (borderLeft() + borderRight()), this->getSizeY2D() - (borderTop() + borderBottom()) );
+    this->_imagePlane.setTopLeft(style().borderLeft(), style().borderTop());
+    this->_imagePlane.setSize(this->getSizeX2D() - (style().borderLeft() + style().borderRight()), this->getSizeY2D() - (style().borderTop() + style().borderBottom()) );
     GLGuiWidget::resize();
   }
Index: /branches/gui/src/lib/gui/gl/glgui_inputline.cc
===================================================================
--- /branches/gui/src/lib/gui/gl/glgui_inputline.cc	(revision 8583)
+++ /branches/gui/src/lib/gui/gl/glgui_inputline.cc	(revision 8584)
@@ -54,5 +54,5 @@
     this->_text.setLineWidth(400);
     this->_text.setDotsPosition(LimitedWidthText::Begin);
-    this->_text.setColor(this->foregroundColor());
+    this->_text.setColor(style().foregroundColor());
     this->_text.setVisibility(false);
     this->resize();
@@ -203,6 +203,6 @@
   void GLGuiInputLine::resize()
   {
-    this->_text.setRelCoor2D(this->borderLeft(), this->borderTop());
-    this->setSize2D( this->_text.getSize2D() + Vector2D(borderLeft() + borderRight(), borderTop() + borderBottom()));
+    this->_text.setRelCoor2D(style().borderLeft(), style().borderTop());
+    this->setSize2D( this->_text.getSize2D() + Vector2D(style().borderLeft() + style().borderRight(), style().borderTop() + style().borderBottom()));
     GLGuiWidget::resize();
     /*    this->frontRect().setTopLeft(borderLeft(), borderTop());
@@ -212,5 +212,5 @@
   void GLGuiInputLine::updateFrontColor()
   {
-    this->_text.setColor(this->foregroundColor());
+    this->_text.setColor(style().foregroundColor());
   }
 
Index: /branches/gui/src/lib/gui/gl/glgui_pushbutton.cc
===================================================================
--- /branches/gui/src/lib/gui/gl/glgui_pushbutton.cc	(revision 8583)
+++ /branches/gui/src/lib/gui/gl/glgui_pushbutton.cc	(revision 8584)
@@ -45,6 +45,6 @@
   void GLGuiPushButton::resize()
   {
-    this->labelText().setRelCoor2D(borderLeft(), borderTop());
-    this->setSize2D(this->labelText().getSizeX2D() + borderLeft() + borderRight(), this->labelText().getSizeY2D() + borderTop() + borderBottom() );
+    this->labelText().setRelCoor2D(style().borderLeft(), style().borderTop());
+    this->setSize2D(this->labelText().getSizeX2D() + style().borderLeft() + style().borderRight(), this->labelText().getSizeY2D() + style().borderTop() + style().borderBottom() );
 
     GLGuiWidget::resize();
Index: /branches/gui/src/lib/gui/gl/glgui_slider.cc
===================================================================
--- /branches/gui/src/lib/gui/gl/glgui_slider.cc	(revision 8583)
+++ /branches/gui/src/lib/gui/gl/glgui_slider.cc	(revision 8584)
@@ -74,5 +74,5 @@
     else
       this->_value = value;
-    this->_handle.setCenter(this->sliderPosition(), this->borderTop() + (this->getSizeY2D() - this->borderTop() - borderBottom()) / 2.0);
+    this->_handle.setCenter(this->sliderPosition(), style().borderTop() + (this->getSizeY2D() - style().borderTop() - style().borderBottom()) / 2.0);
 
     emit(valueChanged(this->_value));
@@ -165,7 +165,7 @@
 //    this->frontRect().setTopLeft(this->borderLeft(), this->getSizeY2D()/2.0 - 2.0);
 //    this->frontRect().setSize(this->getSizeX2D() - borderLeft() - borderRight(), 4.0);
-    this->_slider.setTopLeft(this->borderLeft(), this->getSizeY2D() / 2.0 -2.0);
-    this->_slider.setSize(this->getSizeX2D() - borderLeft() - borderRight(), 4.0);
-    this->_handle.setSize(this->_sliderWidth, this->getSizeY2D() - borderTop() - borderBottom());
+    this->_slider.setTopLeft(style().borderLeft(), this->getSizeY2D() / 2.0 -2.0);
+    this->_slider.setSize(this->getSizeX2D() - style().borderLeft() - style().borderRight(), 4.0);
+    this->_handle.setSize(this->_sliderWidth, this->getSizeY2D() - style().borderTop() - style().borderBottom());
   }
 
@@ -211,6 +211,6 @@
   {
     return (this->_value - this->_minValue)/( this->_maxValue - this->_minValue) *
-           (this->getSizeX2D() - (borderLeft() + borderRight() + 2.0*_sliderWidth)) +
-           (borderLeft() +_sliderWidth);
+        (this->getSizeX2D() - (style().borderLeft() + style().borderRight() + 2.0*_sliderWidth)) +
+        (style().borderLeft() +_sliderWidth);
   }
 
@@ -221,5 +221,5 @@
   float GLGuiSlider::sliderValue(float position) const
   {
-    return (position - (borderLeft()+_sliderWidth)) / (this->getSizeX2D() - (borderLeft() + borderRight() + 2.0*_sliderWidth))
+    return (position - (style().borderLeft()+_sliderWidth)) / (this->getSizeX2D() - (style().borderLeft() + style().borderRight() + 2.0*_sliderWidth))
            *( this->_maxValue - this->_minValue) +
            this->_minValue ;
@@ -239,5 +239,5 @@
     GLGuiWidget::draw();
 
-    glColor4fv(&this->foregroundColor()[0]);
+    glColor4fv(&this->style().foregroundColor()[0]);
     this->drawRect(this->_slider);
     this->drawRect(this->_handle);
Index: /branches/gui/src/lib/gui/gl/glgui_style.cc
===================================================================
--- /branches/gui/src/lib/gui/gl/glgui_style.cc	(revision 8583)
+++ /branches/gui/src/lib/gui/gl/glgui_style.cc	(revision 8584)
@@ -31,4 +31,15 @@
   {
     _font = NULL;
+    this->_currentState = OrxGui::Normal;
+    this->_animationCycle = -1.0;
+    this->_animationDuration = 1.0;
+
+    /// current-style
+    this->_currentStyle._borderLeft = 1.0;
+    this->_currentStyle._borderRight = 1.0;
+    this->_currentStyle._borderTop = 1.0;
+    this->_currentStyle._borderBottom = 1.0;
+    this->_currentStyle._textSize = 20.0;
+
     this->reset();
 
Index: /branches/gui/src/lib/gui/gl/glgui_style.h
===================================================================
--- /branches/gui/src/lib/gui/gl/glgui_style.h	(revision 8583)
+++ /branches/gui/src/lib/gui/gl/glgui_style.h	(revision 8584)
@@ -25,27 +25,30 @@
     virtual ~GLGuiStyle();
 
+    ////////////////////////////////
+    /// Retrieve Current Values. ///
+    ////////////////////////////////
+    /** @returns current left borderWidth */
+    inline float borderLeft() const { return _currentStyle._borderLeft; }
+    /** @returns current right borderWidth */
+    inline float borderRight() const { return _currentStyle._borderRight; }
+    /** @returns current top borderWidth */
+    inline float borderTop() const { return _currentStyle._borderTop; }
+    /** @returns burrent bottom borderWidth */
+    inline float borderBottom() const { return _currentStyle._borderBottom; }
 
-    /// Retrieve (ALL THESE FUNCTIONS ARE AGAIN IN THE GLGUI-WIDGET FOR EASY RETRIEVAL)
-    /** @returns left borderWidth @param state the State to retrieve from */
-    inline float borderLeft(OrxGui::State state = GLGUI_DEFAULT_STYLE) const { return _style[state]._borderLeft; }
-    /** @returns right borderWidth @param state the State to retrieve from */
-    inline float borderRight(OrxGui::State state = GLGUI_DEFAULT_STYLE) const { return _style[state]._borderRight; }
-    /** @returns top borderWidth @param state the State to retrieve from */
-    inline float borderTop(OrxGui::State state = GLGUI_DEFAULT_STYLE) const { return _style[state]._borderTop; }
-    /** @returns bottom borderWidth @param state the State to retrieve from */
-    inline float borderBottom(OrxGui::State state = GLGUI_DEFAULT_STYLE) const { return _style[state]._borderBottom; }
 
-    /** @returns textSize @param state the State to retrieve from */
-    inline float textSize(OrxGui::State state = GLGUI_DEFAULT_STYLE) const { return _style[state]._textSize; }
-    /** @returns the Background Color @param state the State to retrieve from */
-    inline const Color& backgroundColor(OrxGui::State state= GLGUI_DEFAULT_STYLE) const { return _style[state]._background.diffuseColor(); }
-    /** @returns the Background Material. @param state the state to retrieve from */
-    inline const Material& background(OrxGui::State state = GLGUI_DEFAULT_STYLE) const { return _style[state]._background; }
-    /** @returns background Texture. @param state the State to retrieve from */
-    inline const Texture& backgroundTexture(OrxGui::State state= GLGUI_DEFAULT_STYLE) const { return _style[state]._background.diffuseTexture(); }
-    /** @returns the foreground Color @param state the State to retrieve from */
-    inline const Color& foregroundColor(OrxGui::State state= GLGUI_DEFAULT_STYLE) const { return _style[state]._foreground.diffuseColor(); }
-    /** @returns the ForeGroung Material. @param state the state to retrieve from */
-    inline const Material& foreground(OrxGui::State state = GLGUI_DEFAULT_STYLE) const { return _style[state]._foreground; }
+    /** @returns current textSize */
+    inline float textSize() const { return _currentStyle._textSize; }
+    /** @returns the Background Color */
+    inline const Color& backgroundColor() const { return _currentStyle._background.diffuseColor(); }
+    /** @returns the current Background Material. */
+    inline const Material& background() const { return _currentStyle._background; }
+    /** @returns the current background Texture. */
+    inline const Texture& backgroundTexture() const { return _currentStyle._background.diffuseTexture(); }
+    /** @returns the current foreground Color */
+    inline const Color& foregroundColor() const { return _currentStyle._foreground.diffuseColor(); }
+    /** @returns the current ForeGroung Material. */
+    inline const Material& foreground() const { return _currentStyle._foreground; }
+
 
     /** @returns FeaturePosition */
@@ -58,4 +61,29 @@
     inline bool animatedStateChanges() const { return _animatedStateChanges; }
 
+
+    ///////////////////////////////////////////////////////////////
+    /// Retrieve Values for the Saved Values inside the States. ///
+    ///////////////////////////////////////////////////////////////
+    /** @returns left borderWidth @param state the State to retrieve from */
+    inline float borderLeft(OrxGui::State state) const { return _style[state]._borderLeft; }
+    /** @returns right borderWidth @param state the State to retrieve from */
+    inline float borderRight(OrxGui::State state) const { return _style[state]._borderRight; }
+    /** @returns top borderWidth @param state the State to retrieve from */
+    inline float borderTop(OrxGui::State state) const { return _style[state]._borderTop; }
+    /** @returns bottom borderWidth @param state the State to retrieve from */
+    inline float borderBottom(OrxGui::State state) const { return _style[state]._borderBottom; }
+
+    /** @returns textSize @param state the State to retrieve from */
+    inline float textSize(OrxGui::State state) const { return _style[state]._textSize; }
+    /** @returns the Background Color @param state the State to retrieve from */
+    inline const Color& backgroundColor(OrxGui::State state) const { return _style[state]._background.diffuseColor(); }
+    /** @returns the Background Material. @param state the state to retrieve from */
+    inline const Material& background(OrxGui::State state) const { return _style[state]._background; }
+    /** @returns background Texture. @param state the State to retrieve from */
+    inline const Texture& backgroundTexture(OrxGui::State state) const { return _style[state]._background.diffuseTexture(); }
+    /** @returns the foreground Color @param state the State to retrieve from */
+    inline const Color& foregroundColor(OrxGui::State state) const { return _style[state]._foreground.diffuseColor(); }
+    /** @returns the ForeGroung Material. @param state the state to retrieve from */
+    inline const Material& foreground(OrxGui::State state) const { return _style[state]._foreground; }
 
 
@@ -121,4 +149,9 @@
     void setAnimatedStateChanges(bool animated);
 
+
+    void tick(float dt);
+    void switchState(OrxGui::State state);
+
+
   private:
     bool getState(const std::string& stateName, OrxGui::State* state);
@@ -147,6 +180,12 @@
 
 
+    /// ANIMATION STUFF:
     bool                _animated;             //!< If the Widget is animated (Texture might be an AnimatedTexture.)
     bool                _animatedStateChanges; //!< If the Transitions between States are Animated automatically.
+
+    float               _animationCycle;
+    float               _animationDuration;
+    StatedStyle         _currentStyle;
+    OrxGui::State       _currentState;
   };
 }
Index: /branches/gui/src/lib/gui/gl/glgui_widget.cc
===================================================================
--- /branches/gui/src/lib/gui/gl/glgui_widget.cc	(revision 8583)
+++ /branches/gui/src/lib/gui/gl/glgui_widget.cc	(revision 8584)
@@ -250,7 +250,7 @@
   void GLGuiWidget::draw() const
   {
-    this->background().select();
+    this->style().background().select();
     this->drawRect(this->backRect());
-    this->background().unselect();
+    this->style().background().unselect();
   }
 
Index: /branches/gui/src/lib/gui/gl/glgui_widget.h
===================================================================
--- /branches/gui/src/lib/gui/gl/glgui_widget.h	(revision 8583)
+++ /branches/gui/src/lib/gui/gl/glgui_widget.h	(revision 8584)
@@ -70,39 +70,4 @@
     GLGuiStyle& style() { return this->_style; };
     const GLGuiStyle style() const { return this->_style; };
-
-
-    /// STYLE-CONNECTION
-    /** @returns left borderWidth */
-    inline float borderLeft() const { return _style.borderLeft(_state); }
-    /** @returns right borderWidth */
-    inline float borderRight() const { return _style.borderRight(_state); }
-    /** @returns top borderWidth */
-    inline float borderTop() const { return _style.borderTop(_state); }
-    /** @returns bottom borderWidth */
-    inline float borderBottom() const { return _style.borderBottom(_state); }
-
-    /** @returns textSize */
-    inline float textSize() const { return _style.textSize(_state); }
-    /** @returns the Background Color */
-    inline const Color& backgroundColor() const { return _style.backgroundColor(_state); }
-    /** @returns background Texture. */
-    inline const Texture& backgroundTexture() const { return _style.backgroundTexture(_state); };
-    /** @returns the Background Material. */
-    inline const Material& background() const { return _style.background(_state); }
-    /** @returns the foreground Color */
-    inline const Color& foregroundColor() const { return _style.foregroundColor(_state); }
-    /** @returns the ForeGroung Material. */
-    inline const Material& foreground() const { return _style.foreground(_state); }
-
-    /** @returns FeaturePosition */
-    inline FeaturePosition featurePosition() const { return _style.featurePosition(); }
-    /** @returns the font */
-    inline const Font* const font() const { return _style.font(); }
-    /** @returns true if the Element is Animated */
-    inline bool animated() const { return _style.animated(); }
-    /** @returns true if State-Changes are animated */
-    inline bool animatedStateChanges() const { return _style.animatedStateChanges(); }
-
-
 
     Rect2D& backRect() { return this->_backRect; };
Index: /branches/gui/src/lib/gui/gl/specials/glgui_notifier.cc
===================================================================
--- /branches/gui/src/lib/gui/gl/specials/glgui_notifier.cc	(revision 8583)
+++ /branches/gui/src/lib/gui/gl/specials/glgui_notifier.cc	(revision 8584)
@@ -200,5 +200,5 @@
     this->beginDraw();
 
-    this->background().select();
+    this->style().background().select();
     this->drawRect(this->backRect());
     this->endDraw();
@@ -216,5 +216,5 @@
   Vector2D GLGuiNotifier::calculateLinePosition(unsigned int lineNumber)
   {
-    return Vector2D(0.0f, (float)(this->style().textSize() + this->lineSpacing)*(float)((int)this->bufferDisplaySize - (int)lineNumber - (int)1));
+    return Vector2D(0.0f, (float)(style().textSize() + this->lineSpacing)*(float)((int)this->bufferDisplaySize - (int)lineNumber - (int)1));
   }
 
