Index: branches/gui/src/lib/gui/gl/glgui_box.cc
===================================================================
--- branches/gui/src/lib/gui/gl/glgui_box.cc	(revision 8596)
+++ branches/gui/src/lib/gui/gl/glgui_box.cc	(revision 8598)
@@ -110,5 +110,5 @@
     if (orientation() == OrxGui::Vertical)
     {
-      float height = style().borderTop();
+      float height = 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(style().borderLeft(), height);
+        (*widget)->setRelCoor2D(borderLeft(), height);
         height += (*widget)->getSizeY2D();
         width = fmax(width, (*widget)->getSizeX2D());
       }
 
-      width += style().borderLeft() + style().borderRight();
-      height += style().borderBottom(); /* *2 done further up */
+      width += borderLeft() + borderRight();
+      height += borderBottom(); /* *2 done further up */
 
       printf("%f %f\n", width, height);
@@ -130,6 +130,6 @@
     else
     {
-      float height = style().borderTop();
-      float width = style().borderLeft();
+      float height = borderTop();
+      float width = borderLeft();
       std::vector<GLGuiWidget*>::iterator widget;
 
@@ -137,11 +137,11 @@
       for (widget = this->children.begin(); widget != this->children.end(); ++widget)
       {
-        (*widget)->setRelCoor2D(width, style().borderTop());
+        (*widget)->setRelCoor2D(width, borderTop());
         height = fmax(height, (*widget)->getSizeY2D());
         width += (*widget)->getSizeX2D();
       }
 
-      width += style().borderRight() ;
-      height += style().borderBottom(); /* *2 done further up */
+      width += borderRight() ;
+      height += 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 8596)
+++ branches/gui/src/lib/gui/gl/glgui_button.cc	(revision 8598)
@@ -55,5 +55,5 @@
 
     this->_label.setFont("fonts/final_frontier.ttf", 20);
-    this->_label.setColor(this->style().foregroundColor() );
+    this->_label.setColor(this->foregroundColor() );
 
     this->_label.setParent2D(this);
@@ -71,5 +71,5 @@
   void GLGuiButton::updateFrontColor()
   {
-    this->_label.setColor(this->style().foregroundColor());
+    this->_label.setColor(this->foregroundColor());
   }
 
Index: branches/gui/src/lib/gui/gl/glgui_checkbutton.cc
===================================================================
--- branches/gui/src/lib/gui/gl/glgui_checkbutton.cc	(revision 8596)
+++ branches/gui/src/lib/gui/gl/glgui_checkbutton.cc	(revision 8598)
@@ -66,10 +66,10 @@
   {
 
-    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());
+    this->labelText().setRelCoor2D( borderLeft() + 15.0, borderTop() + 5);
+    this->setSize2D(this->labelText().getSizeX2D() + 15.0 + borderLeft() + borderRight(), this->labelText().getSizeY2D() + 10 + borderTop()+borderBottom());
     GLGuiWidget::resize();
 
     this->_checkBox.setSize(10.0, 10.0);
-    this->_checkBox.setCenter( style().borderLeft() + _checkBox.height()/2.0, style().borderTop() + (this->getSizeY2D() - style().borderTop() - style().borderBottom()) / 2.0);
+    this->_checkBox.setCenter( borderLeft() + _checkBox.height()/2.0, borderTop() + (this->getSizeY2D() - borderTop() - borderBottom()) / 2.0);
 
 /*    this->frontRect().setTopLeft(borderLeft(), borderTop());
@@ -99,5 +99,5 @@
     if (this->bActive)
     {
-      glColor3fv( &this->style().foregroundColor()[0]);
+      glColor3fv( &this->foregroundColor()[0]);
       this->drawRect(this->_checkBox);
 
@@ -124,5 +124,5 @@
     else
     {
-      glColor3fv( &this->style().foregroundColor()[0]);
+      glColor3fv( &this->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 8596)
+++ branches/gui/src/lib/gui/gl/glgui_cursor.cc	(revision 8598)
@@ -57,7 +57,7 @@
     this->setClassID(CL_GLGUI_CURSOR, "GLGuiCursor");
 
-    this->style().background().setDiffuseColor(Color(1.0,0.0,0.0, 1.0));
-    this->style().background().setDiffuseMap("cursor.png");
-    this->style().background().setBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+    this->background().setDiffuseColor(Color(1.0,0.0,0.0, 1.0));
+    this->background().setDiffuseMap("cursor.png");
+    this->background().setBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
     this->setSize2D(50, 50);
     this->setAbsCoor2D(100, 100);
@@ -80,5 +80,5 @@
   bool GLGuiCursor::loadTextureSequence(const std::string& imageNameSubstitue, unsigned int from, unsigned int to)
   {
-    //this->style().background().setDiffuse(1.0, 1.0, 1.0);
+    //this->background().setDiffuse(1.0, 1.0, 1.0);
     return this->seq.loadImageSeries(imageNameSubstitue, from, to);
   }
@@ -98,5 +98,5 @@
         this->color -= 360.0;
       Vector color =  Color::HSVtoRGB(Vector(this->color, 1.0, 1.0));
-      this->style().background().setDiffuse(color.x, color.y, color.z);
+      this->background().setDiffuse(color.x, color.y, color.z);
     }
     //if (this->movement != Vector2D())
@@ -126,5 +126,5 @@
     this->beginDraw();
 
-    this->style().background().select();
+    this->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 8596)
+++ branches/gui/src/lib/gui/gl/glgui_image.cc	(revision 8598)
@@ -76,11 +76,11 @@
   void GLGuiImage::updateFrontColor()
   {
-    this->_imageMaterial.setDiffuseColor(style().foregroundColor());
+    this->_imageMaterial.setDiffuseColor(foregroundColor());
   }
 
   void GLGuiImage::resize()
   {
-    this->_imagePlane.setTopLeft(style().borderLeft(), style().borderTop());
-    this->_imagePlane.setSize(this->getSizeX2D() - (style().borderLeft() + style().borderRight()), this->getSizeY2D() - (style().borderTop() + style().borderBottom()) );
+    this->_imagePlane.setTopLeft(borderLeft(), borderTop());
+    this->_imagePlane.setSize(this->getSizeX2D() - (borderLeft() + borderRight()), this->getSizeY2D() - (borderTop() + borderBottom()) );
     GLGuiWidget::resize();
   }
Index: branches/gui/src/lib/gui/gl/glgui_inputline.cc
===================================================================
--- branches/gui/src/lib/gui/gl/glgui_inputline.cc	(revision 8596)
+++ branches/gui/src/lib/gui/gl/glgui_inputline.cc	(revision 8598)
@@ -54,5 +54,5 @@
     this->_text.setLineWidth(400);
     this->_text.setDotsPosition(LimitedWidthText::Begin);
-    this->_text.setColor(style().foregroundColor());
+    this->_text.setColor(foregroundColor());
     this->_text.setVisibility(false);
     this->resize();
@@ -203,6 +203,6 @@
   void GLGuiInputLine::resize()
   {
-    this->_text.setRelCoor2D(style().borderLeft(), style().borderTop());
-    this->setSize2D( this->_text.getSize2D() + Vector2D(style().borderLeft() + style().borderRight(), style().borderTop() + style().borderBottom()));
+    this->_text.setRelCoor2D(borderLeft(), borderTop());
+    this->setSize2D( this->_text.getSize2D() + Vector2D(borderLeft() + borderRight(), borderTop() + borderBottom()));
     GLGuiWidget::resize();
     /*    this->frontRect().setTopLeft(borderLeft(), borderTop());
@@ -212,5 +212,5 @@
   void GLGuiInputLine::updateFrontColor()
   {
-    this->_text.setColor(style().foregroundColor());
+    this->_text.setColor(foregroundColor());
   }
 
Index: branches/gui/src/lib/gui/gl/glgui_pushbutton.cc
===================================================================
--- branches/gui/src/lib/gui/gl/glgui_pushbutton.cc	(revision 8596)
+++ branches/gui/src/lib/gui/gl/glgui_pushbutton.cc	(revision 8598)
@@ -45,6 +45,6 @@
   void GLGuiPushButton::resize()
   {
-    this->labelText().setRelCoor2D(style().borderLeft(), style().borderTop());
-    this->setSize2D(this->labelText().getSizeX2D() + style().borderLeft() + style().borderRight(), this->labelText().getSizeY2D() + style().borderTop() + style().borderBottom() );
+    this->labelText().setRelCoor2D(borderLeft(), borderTop());
+    this->setSize2D(this->labelText().getSizeX2D() + borderLeft() + borderRight(), this->labelText().getSizeY2D() + borderTop() + borderBottom() );
 
     GLGuiWidget::resize();
Index: branches/gui/src/lib/gui/gl/glgui_slider.cc
===================================================================
--- branches/gui/src/lib/gui/gl/glgui_slider.cc	(revision 8596)
+++ branches/gui/src/lib/gui/gl/glgui_slider.cc	(revision 8598)
@@ -74,5 +74,5 @@
     else
       this->_value = value;
-    this->_handle.setCenter(this->sliderPosition(), style().borderTop() + (this->getSizeY2D() - style().borderTop() - style().borderBottom()) / 2.0);
+    this->_handle.setCenter(this->sliderPosition(), borderTop() + (this->getSizeY2D() - borderTop() - 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(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());
+    this->_slider.setTopLeft(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());
   }
 
@@ -211,6 +211,6 @@
   {
     return (this->_value - this->_minValue)/( this->_maxValue - this->_minValue) *
-        (this->getSizeX2D() - (style().borderLeft() + style().borderRight() + 2.0*_sliderWidth)) +
-        (style().borderLeft() +_sliderWidth);
+        (this->getSizeX2D() - (borderLeft() + borderRight() + 2.0*_sliderWidth)) +
+        (borderLeft() +_sliderWidth);
   }
 
@@ -221,5 +221,5 @@
   float GLGuiSlider::sliderValue(float position) const
   {
-    return (position - (style().borderLeft()+_sliderWidth)) / (this->getSizeX2D() - (style().borderLeft() + style().borderRight() + 2.0*_sliderWidth))
+    return (position - (borderLeft()+_sliderWidth)) / (this->getSizeX2D() - (borderLeft() + borderRight() + 2.0*_sliderWidth))
            *( this->_maxValue - this->_minValue) +
            this->_minValue ;
@@ -239,5 +239,5 @@
     GLGuiWidget::draw();
 
-    glColor4fv(&this->style().foregroundColor()[0]);
+    glColor4fv(&this->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 8596)
+++ branches/gui/src/lib/gui/gl/glgui_style.cc	(revision 8598)
@@ -22,512 +22,3 @@
 namespace OrxGui
 {
-
-
-  /**
-   * @brief standard constructor
-   * @param root the XML-Element to load settings from
-   */
-  GLGuiStyle::GLGuiStyle (const TiXmlElement* root)
-  {
-    this->_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();
-
-
-    if (root != NULL)
-      this->loadParams(root);
-
-  }
-
-
-  /**
-   * @brief standard deconstructor
-   */
-  GLGuiStyle::~GLGuiStyle ()
-  {
-    // delete what has to be deleted here
-  }
-
-  /**
-   * @brief resets the Style to the default Settings.
-   */
-  void GLGuiStyle::reset()
-  {
-    this->setBorderLeft(1.0);
-    this->setBorderRight(1.0);
-    this->setBorderTop(1.0);
-    this->setBorderBottom(1.0);
-
-    this->setTextSize(20.0);
-    this->setBackgroundColor(1.0);
-    this->setForegroundColor(1.0);
-
-    this->setFeaturePosition(FeatureLeft);
-    this->setFont(NULL);
-
-    this->setAnimated(true);
-    this->setAnimatedStateChanges(true);
-  }
-
-  /**
-   * @brief loads Parameters for a Style from XML
-   * @param root the XML-Element to load from.
-   */
-  void GLGuiStyle::loadParams(const TiXmlElement* root)
-  {
-    LoadParam(root, "border-left", this, GLGuiStyle, setBorderLeft);
-    LoadParam(root, "border-right", this, GLGuiStyle, setBorderRight);
-    LoadParam(root, "border-top", this, GLGuiStyle, setBorderTop);
-    LoadParam(root, "border-bottom", this, GLGuiStyle, setBorderBottom);
-
-    LoadParam(root, "text-size", this, GLGuiStyle, setTextSize);
-    LoadParam(root, "background-color", this, GLGuiStyle, setBackgroundColorS);
-    LoadParam(root, "foreground-color", this, GLGuiStyle, setForegroundColorS);
-
-//    LoadParamXML(root, "backmat", this, GLGuiStyle, loadBackgroundMaterial);
-//    LoadParamXML(root, "frontmat", this, GLGuiStyle, loadForegroundMaterial);
-
-    LoadParam(root, "feature-position", this, GLGuiStyle, setFeaturePositionS);
-    LoadParam(root, "Font", this, GLGuiStyle, setFont);
-
-    LoadParam(root, "animated", this, GLGuiStyle, setAnimated);
-    LoadParam(root, "animated-state-changes", this, GLGuiStyle, setAnimatedStateChanges);
-  }
-
-  /**
-   * @brief sets the Width of the left border for all States
-   * @param value the borderWidth
-   */
-  void GLGuiStyle::setBorderLeft(float value)
-  {
-    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
-      setBorderLeft(value, (OrxGui::State)i);
-  }
-
-  /**
-   * @brief sets the Width of the left border.
-   * @param value the borderWidth
-   * @param state the State to set the borderwidth to
-   */
-  void GLGuiStyle::setBorderLeft(float value, OrxGui::State state)
-  {
-    _style[state]._borderLeft = value;
-  }
-
-  /**
-   * @brief sets the Width of the left border.
-   * @param value the borderWidth
-   * @param stateName the State to set the borderwidth to
-   */
-  void GLGuiStyle::setBorderLeftS(float value, const std::string& stateName)
-  {
-    OrxGui::State state;
-    if (getState(stateName, &state))
-      this->setBorderLeft(value, state);
-    else
-      this->setBorderLeft(value);
-  }
-
-  /**
-   * @brief sets the Width of the right border for all states.
-   * @param value the borderWidth
-   */
-  void GLGuiStyle::setBorderRight(float value)
-  {
-    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
-      setBorderRight(value, (OrxGui::State)i);
-  }
-
-  /**
-   * @brief sets the Width of the right border.
-   * @param value the borderWidth
-   * @param state the State to setup.
-   */
-  void GLGuiStyle::setBorderRight(float value, OrxGui::State state)
-  {
-    _style[state]._borderRight = value;
-  }
-
-  /**
-   * @brief sets the Width of the right border.
-   * @param value the borderWidth
-   * @param stateName the State to setup.
-   */
-  void GLGuiStyle::setBorderRightS(float value, const std::string& stateName)
-  {
-    OrxGui::State state;
-    if (getState(stateName, &state))
-      this->setBorderRight(value, state);
-    else
-      this->setBorderRight(value);
-  }
-
-
-  /**
-   * @brief sets the Width of the top border for all states.
-   * @param value the borderWidth
-   */
-  void GLGuiStyle::setBorderTop(float value)
-  {
-    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
-      setBorderTop(value, (OrxGui::State)i);
-  }
-
-  /**
-   * @brief sets the Width of the top border.
-   * @param value the borderWidth
-   * @param state the State to setup.
-   */
-  void GLGuiStyle::setBorderTop(float value, OrxGui::State state)
-  {
-    _style[state]._borderTop = value;
-  }
-
-  /**
-   * @brief sets the Width of the top border.
-   * @param value the borderWidth
-   * @param stateName the State to setup.
-   */
-  void GLGuiStyle::setBorderTopS(float value, const std::string& stateName)
-  {
-    OrxGui::State state;
-    if (getState(stateName, &state))
-      this->setBorderTop(value, state);
-    else
-      this->setBorderTop(value);
-  }
-
-
-  /**
-   * @brief sets the Width of the bottom border for all states.
-   * @param value the borderWidth
-   */
-  void GLGuiStyle::setBorderBottom(float value)
-  {
-    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
-      setBorderBottom(value, (OrxGui::State)i);
-  }
-
-  /**
-   * @brief sets the Width of the bottom border.
-   * @param value the borderWidth
-   * @param state the State to setup.
-   */
-  void GLGuiStyle::setBorderBottom(float value, OrxGui::State state)
-  {
-    _style[state]._borderBottom = value;
-  }
-
-  /**
-   * @brief sets the Width of the bottom border for all states.
-   * @param value the borderWidth
-   * @param stateName the State to setup.
-   */
-  void GLGuiStyle::setBorderBottomS(float value, const std::string& stateName)
-  {
-    OrxGui::State state;
-    if (getState(stateName, &state))
-      this->setBorderBottom(value, state);
-    else
-      this->setBorderBottom(value);
-  }
-
-
-  /**
-   * @brief sets the TextSize for all states.
-   * @param value the TextSize
-   */
-  void GLGuiStyle::setTextSize(float value)
-  {
-    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
-      setTextSize(value, (OrxGui::State)i);
-  }
-
-  /**
-   * @brief sets the TextSize.
-   * @param value the TextSize.
-   * @param state: the State to setup
-   */
-  void GLGuiStyle::setTextSize(float value, OrxGui::State state)
-  {
-    _style[state]._textSize = value;
-  }
-
-  /**
-   * @brief sets the TextSize.
-   * @param value the TextSize.
-   * @param stateName: the State to setup
-   */
-  void GLGuiStyle::setTextSizeS(float value, const std::string& stateName)
-  {
-    OrxGui::State state;
-    if (getState(stateName, &state))
-      this->setTextSize(value, state);
-    else
-      this->setTextSize(value);
-  }
-
-
-  /**
-   * @brief sets the Background Color for all States.
-   * @param color the Color.
-   */
-  void GLGuiStyle::setBackgroundColor(const Color& color)
-  {
-    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
-      setBackgroundColor(color, (OrxGui::State)i);
-  }
-
-  /**
-   * @brief sets the Background Color.
-   * @param color the Color.
-   * @param state: the State to setup
-   */
-  void GLGuiStyle::setBackgroundColor(const Color& color, OrxGui::State state)
-  {
-    _style[state]._background.setDiffuseColor(color);
-  }
-
-  /**
-   * @brief sets the Background Color.
-   * @param r the Color's red part.
-   * @param g the Color's green part.
-   * @param b the Color's blue part.
-   * @param a the Color's alpha part.
-   * @param stateName: the State to setup
-   */
-  void GLGuiStyle::setBackgroundColorS(float r, float g, float b, float a, const std::string& stateName)
-  {
-    OrxGui::State state;
-    if (getState(stateName, &state))
-      this->setBackgroundColor(Color(r,g,b,a), state);
-    else
-      this->setBackgroundColor(Color(r,g,b,a));
-  }
-
-
-  /**
-   * @brief sets the Background Texture for all States.
-   * @param texture the Texture.
-   */
-  void GLGuiStyle::setBackgroundTexture(const Texture& texture)
-  {
-    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
-      setBackgroundTexture(texture, (OrxGui::State)i);
-  }
-
-    /**
-     * @brief sets the Background Texture to all States.
-     * @param textureName the Texture's fileName.
-     */
-  void GLGuiStyle::setBackgroundTexture(const std::string& textureName)
-  {
-    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
-      _style[i]._background.setDiffuseMap(textureName);
-  }
-
-  /**
-   * @brief sets the Background Texture.
-   * @param texture the Texture.
-   * @param state the State to setup.
-   */
-  void GLGuiStyle::setBackgroundTexture(const Texture& texture, OrxGui::State state)
-  {
-    _style[state]._background.setDiffuseMap(texture);
-  }
-
-
-
-  /**
-   * @brief sets the Background Texture.
-   * @param texture the Texture.
-   * @param stateName the State to setup.
-   */
-  void GLGuiStyle::setBackgroundTexture(const std::string& textureName, const std::string& stateName)
-  {
-    OrxGui::State state;
-    if (getState(stateName, &state))
-      ; /// FIXME this->setBackgroundTexture(textureName, state);
-    else
-      ; ///    this->setBackgroundTexture(textureName);
-  }
-
-
-  /**
-   * @brief sets the Foreground Color for all States.
-   * @param color the Color.
-   */
-  void GLGuiStyle::setForegroundColor(const Color& color)
-  {
-    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
-      setForegroundColor(color, (OrxGui::State)i);
-  }
-
-  /**
-   * @brief sets the Foreground Color.
-   * @param color the Color.
-   * @param state the State to setup
-   */
-  void GLGuiStyle::setForegroundColor(const Color& color, OrxGui::State state)
-  {
-    _style[state]._foreground.setDiffuseColor(color);
-  }
-
-  /**
-   * @brief sets the Foreground Color.
-   * @param r the Color's red part.
-   * @param g the Color's green part.
-   * @param b the Color's blue part.
-   * @param a the Color's alpha part.
-   * @param stateName: the State to setup
-   */
-  void GLGuiStyle::setForegroundColorS(float r, float g, float b, float a, const std::string& stateName)
-  {
-    OrxGui::State state;
-    if (getState(stateName, &state))
-      this->setForegroundColor(Color(r,g,b,a), state);
-    else
-      this->setForegroundColor(Color(r,g,b,a));
-  }
-
-
-  void GLGuiStyle::loadBackgroundMaterial(const Material& material)
-  {
-    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
-      this->loadForegroundMaterial(material, (OrxGui::State)i);
-  }
-
-  void GLGuiStyle::loadBackgroundMaterial(const Material& material, OrxGui::State state)
-  {
-    this->_style[state]._background = material;
-  }
-
-  void GLGuiStyle::loadBackgroundMaterial(const TiXmlElement* element)
-  {
-    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
-      this->_style[i]._background.loadParams(element);
-  }
-
-  void GLGuiStyle::loadBackgroundMaterial(const TiXmlElement* element, OrxGui::State state)
-  {
-    this->_style[state]._background.loadParams(element);
-  }
-  void GLGuiStyle::loadBackgroundMaterialS(const TiXmlElement* element, const std::string& stateName)
-  {
-    OrxGui::State state;
-    if (getState(stateName, &state))
-      this->loadBackgroundMaterial(element, state);
-    else
-      this->loadBackgroundMaterial(element);
-  }
-
-  void GLGuiStyle::loadForegroundMaterial(const Material& material)
-  {}
-  void GLGuiStyle::loadForegroundMaterial(const Material& material, OrxGui::State state)
-  {}
-  void GLGuiStyle::loadForegroundMaterial(const TiXmlElement* element, OrxGui::State state)
-  {}
-  void GLGuiStyle::loadForegroundMaterialS(const TiXmlElement* element, const std::string& stateName)
-  {}
-
-
-  /**
-   * @brief sets the Feature-Position.
-   * @param featurePosition the Feature-Position.
-   */
-  void GLGuiStyle::setFeaturePosition(FeaturePosition featurePosition)
-  {
-    this->_featurePosition = featurePosition;
-  }
-
-  /**
-   * @brief sets the Feature-Position by converting from a String.
-   * @param featurePosition the Feature-Position.
-   */
-  void GLGuiStyle::setFeaturePositionS(const std::string& featurePosition)
-  {
-    for (unsigned int i = 0; i < 4; ++i)
-    {
-      if (featurePosition == FeaturePositionString[i])
-      {
-        this->setFeaturePosition((FeaturePosition)i);
-      }
-    }
-  }
-
-  /**
-   * @brief sets the Font.
-   * @param font the Font.
-   */
-  void GLGuiStyle::setFont(Font* font)
-  {
-    this->_font = font;
-  }
-
-  /**
-   * @brief sets the font from a Font-Name.
-   * @param fontName the FileName of the Font.
-   */
-  void GLGuiStyle::setFont(const std::string& fontName)
-  {
-    //this->font = new Font(fontName);
-  }
-
-  /**
-   * @brief if Animation should be turned on.
-   * @param animated true if on, false otherwise.
-   */
-  void GLGuiStyle::setAnimated(bool animated)
-  {
-    this->_animated = animated;
-  }
-
-  /**
-   * @brief sets the AnimatedState.
-   * @param animated: it states-changes should animate true, otherwise false.
-   */
-  void GLGuiStyle::setAnimatedStateChanges(bool animated)
-  {
-    this->_animatedStateChanges = animated;
-  }
-
-
-  void GLGuiStyle::tick(float dt)
-  {
-
-  }
-
-  void GLGuiStyle::switchState(OrxGui::State state)
-  {
-    this->_currentStyle = this->_style[state];
-    this->_currentState = state;
-    printf("Switching to state %s\n", OrxGui::StateString[state].c_str());
-  }
-
-
-  /**
-   * @param stateName the Name of a State.
-   * @param state the found State is returned here if found.
-   * @returns true if String is found, false otherwise.
-   */
-  bool GLGuiStyle::getState(const std::string& stateName, OrxGui::State* state)
-  {
-    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
-      if (stateName == OrxGui::StateString[i])
-      {
-        *state = (OrxGui::State)i;
-        return true;
-      }
-    return false;
-  }
 }
Index: branches/gui/src/lib/gui/gl/glgui_widget.cc
===================================================================
--- branches/gui/src/lib/gui/gl/glgui_widget.cc	(revision 8596)
+++ branches/gui/src/lib/gui/gl/glgui_widget.cc	(revision 8598)
@@ -23,4 +23,6 @@
 
 #include "debug.h"
+
+#include "loading/load_param.h"
 
 namespace OrxGui
@@ -69,15 +71,22 @@
     this->_toFrontColor = NULL;
 
-    this->style().setBackgroundColor(Color(0, 0, 0, 1));
-
-    this->style().setForegroundColor(Color(1, 0, 0, 1), OrxGui::Normal);
-    this->style().setForegroundColor(Color(0, 1, 0, 1), OrxGui::Selected);
-    this->style().setForegroundColor(Color(0, 0, 1, 1), OrxGui::Focused);
-    this->style().setForegroundColor(Color(.1, .1, .1, 1), OrxGui::Insensitive);
+
+    this->_font = NULL;
+    this->_currentState = OrxGui::Normal;
+    this->_animationCycle = -1.0;
+    this->_animationDuration = 1.0;
+
+
+    this->setBackgroundColor(Color(0, 0, 0, 1));
+
+    this->setForegroundColor(Color(1, 0, 0, 1), OrxGui::Normal);
+    this->setForegroundColor(Color(0, 1, 0, 1), OrxGui::Selected);
+    this->setForegroundColor(Color(0, 0, 1, 1), OrxGui::Focused);
+    this->setForegroundColor(Color(.1, .1, .1, 1), OrxGui::Insensitive);
 
     this->setVisibility(GLGUI_WIDGET_DEFAULT_VISIBLE);
 
-    this->style().setBackgroundTexture("gui_element_background.png");
-    this->style().switchState(OrxGui::Normal);
+    this->setBackgroundTexture("gui_element_background.png");
+    this->switchState(OrxGui::Normal);
   }
 
@@ -128,5 +137,5 @@
     if (instantaniously)
     {
-      this->style().setForegroundColor(frontColor);
+      this->setForegroundColor(frontColor);
       if (this->_toFrontColor != NULL)
       {
@@ -172,20 +181,20 @@
   void GLGuiWidget::clicking(const Vector2D& pos)
   {
-    this->style().switchState(OrxGui::Selected);
+    this->switchState(OrxGui::Selected);
   }
 
   void GLGuiWidget::releasing(const Vector2D& pos)
   {
-    this->style().switchState(OrxGui::Normal);
+    this->switchState(OrxGui::Normal);
   }
 
   void GLGuiWidget::receivedFocus()
   {
-    this->style().switchState(OrxGui::Focused);
+    this->switchState(OrxGui::Focused);
   }
 
   void GLGuiWidget::removedFocus()
   {
-    this->style().switchState(OrxGui::Normal);
+    this->switchState(OrxGui::Normal);
 
   }
@@ -236,11 +245,481 @@
   }
 
+
+  /**
+   * @brief resets the Style to the default Settings.
+   */
+  void GLGuiWidget::resetStyle()
+  {
+    this->setBorderLeft(1.0);
+    this->setBorderRight(1.0);
+    this->setBorderTop(1.0);
+    this->setBorderBottom(1.0);
+
+    this->setTextSize(20.0);
+    this->setBackgroundColor(1.0);
+    this->setForegroundColor(1.0);
+
+    this->setFeaturePosition(FeatureLeft);
+    this->setFont(NULL);
+
+    this->setAnimated(true);
+    this->setAnimatedStateChanges(true);
+  }
+
+  /**
+   * @brief loads Parameters for a Style from XML
+   * @param root the XML-Element to load from.
+   */
+  void GLGuiWidget::loadParams(const TiXmlElement* root)
+  {
+    LoadParam(root, "border-left", this, GLGuiWidget, setBorderLeft);
+    LoadParam(root, "border-right", this, GLGuiWidget, setBorderRight);
+    LoadParam(root, "border-top", this, GLGuiWidget, setBorderTop);
+    LoadParam(root, "border-bottom", this, GLGuiWidget, setBorderBottom);
+
+    LoadParam(root, "text-size", this, GLGuiWidget, setTextSize);
+    LoadParam(root, "background-color", this, GLGuiWidget, setBackgroundColorS);
+    LoadParam(root, "foreground-color", this, GLGuiWidget, setForegroundColorS);
+
+//    LoadParamXML(root, "backmat", this, GLGuiWidget, loadBackgroundMaterial);
+//    LoadParamXML(root, "frontmat", this, GLGuiWidget, loadForegroundMaterial);
+
+    LoadParam(root, "feature-position", this, GLGuiWidget, setFeaturePositionS);
+    LoadParam(root, "Font", this, GLGuiWidget, setFont);
+
+    LoadParam(root, "animated", this, GLGuiWidget, setAnimated);
+    LoadParam(root, "animated-state-changes", this, GLGuiWidget, setAnimatedStateChanges);
+  }
+
+  /**
+   * @brief sets the Width of the left border for all States
+   * @param value the borderWidth
+   */
+  void GLGuiWidget::setBorderLeft(float value)
+  {
+    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
+      setBorderLeft(value, (OrxGui::State)i);
+  }
+
+  /**
+   * @brief sets the Width of the left border.
+   * @param value the borderWidth
+   * @param state the State to set the borderwidth to
+   */
+  void GLGuiWidget::setBorderLeft(float value, OrxGui::State state)
+  {
+    _style[state]._borderLeft = value;
+  }
+
+  /**
+   * @brief sets the Width of the left border.
+   * @param value the borderWidth
+   * @param stateName the State to set the borderwidth to
+   */
+  void GLGuiWidget::setBorderLeftS(float value, const std::string& stateName)
+  {
+    OrxGui::State state;
+    if (getState(stateName, &state))
+      this->setBorderLeft(value, state);
+    else
+      this->setBorderLeft(value);
+  }
+
+  /**
+   * @brief sets the Width of the right border for all states.
+   * @param value the borderWidth
+   */
+  void GLGuiWidget::setBorderRight(float value)
+  {
+    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
+      setBorderRight(value, (OrxGui::State)i);
+  }
+
+  /**
+   * @brief sets the Width of the right border.
+   * @param value the borderWidth
+   * @param state the State to setup.
+   */
+  void GLGuiWidget::setBorderRight(float value, OrxGui::State state)
+  {
+    _style[state]._borderRight = value;
+  }
+
+  /**
+   * @brief sets the Width of the right border.
+   * @param value the borderWidth
+   * @param stateName the State to setup.
+   */
+  void GLGuiWidget::setBorderRightS(float value, const std::string& stateName)
+  {
+    OrxGui::State state;
+    if (getState(stateName, &state))
+      this->setBorderRight(value, state);
+    else
+      this->setBorderRight(value);
+  }
+
+
+  /**
+   * @brief sets the Width of the top border for all states.
+   * @param value the borderWidth
+   */
+  void GLGuiWidget::setBorderTop(float value)
+  {
+    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
+      setBorderTop(value, (OrxGui::State)i);
+  }
+
+  /**
+   * @brief sets the Width of the top border.
+   * @param value the borderWidth
+   * @param state the State to setup.
+   */
+  void GLGuiWidget::setBorderTop(float value, OrxGui::State state)
+  {
+    _style[state]._borderTop = value;
+  }
+
+  /**
+   * @brief sets the Width of the top border.
+   * @param value the borderWidth
+   * @param stateName the State to setup.
+   */
+  void GLGuiWidget::setBorderTopS(float value, const std::string& stateName)
+  {
+    OrxGui::State state;
+    if (getState(stateName, &state))
+      this->setBorderTop(value, state);
+    else
+      this->setBorderTop(value);
+  }
+
+
+  /**
+   * @brief sets the Width of the bottom border for all states.
+   * @param value the borderWidth
+   */
+  void GLGuiWidget::setBorderBottom(float value)
+  {
+    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
+      setBorderBottom(value, (OrxGui::State)i);
+  }
+
+  /**
+   * @brief sets the Width of the bottom border.
+   * @param value the borderWidth
+   * @param state the State to setup.
+   */
+  void GLGuiWidget::setBorderBottom(float value, OrxGui::State state)
+  {
+    _style[state]._borderBottom = value;
+  }
+
+  /**
+   * @brief sets the Width of the bottom border for all states.
+   * @param value the borderWidth
+   * @param stateName the State to setup.
+   */
+  void GLGuiWidget::setBorderBottomS(float value, const std::string& stateName)
+  {
+    OrxGui::State state;
+    if (getState(stateName, &state))
+      this->setBorderBottom(value, state);
+    else
+      this->setBorderBottom(value);
+  }
+
+
+  /**
+   * @brief sets the TextSize for all states.
+   * @param value the TextSize
+   */
+  void GLGuiWidget::setTextSize(float value)
+  {
+    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
+      setTextSize(value, (OrxGui::State)i);
+  }
+
+  /**
+   * @brief sets the TextSize.
+   * @param value the TextSize.
+   * @param state: the State to setup
+   */
+  void GLGuiWidget::setTextSize(float value, OrxGui::State state)
+  {
+    _style[state]._textSize = value;
+  }
+
+  /**
+   * @brief sets the TextSize.
+   * @param value the TextSize.
+   * @param stateName: the State to setup
+   */
+  void GLGuiWidget::setTextSizeS(float value, const std::string& stateName)
+  {
+    OrxGui::State state;
+    if (getState(stateName, &state))
+      this->setTextSize(value, state);
+    else
+      this->setTextSize(value);
+  }
+
+
+  /**
+   * @brief sets the Background Color for all States.
+   * @param color the Color.
+   */
+  void GLGuiWidget::setBackgroundColor(const Color& color)
+  {
+    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
+      setBackgroundColor(color, (OrxGui::State)i);
+  }
+
+  /**
+   * @brief sets the Background Color.
+   * @param color the Color.
+   * @param state: the State to setup
+   */
+  void GLGuiWidget::setBackgroundColor(const Color& color, OrxGui::State state)
+  {
+    _style[state]._background.setDiffuseColor(color);
+  }
+
+  /**
+   * @brief sets the Background Color.
+   * @param r the Color's red part.
+   * @param g the Color's green part.
+   * @param b the Color's blue part.
+   * @param a the Color's alpha part.
+   * @param stateName: the State to setup
+   */
+  void GLGuiWidget::setBackgroundColorS(float r, float g, float b, float a, const std::string& stateName)
+  {
+    OrxGui::State state;
+    if (getState(stateName, &state))
+      this->setBackgroundColor(Color(r,g,b,a), state);
+    else
+      this->setBackgroundColor(Color(r,g,b,a));
+  }
+
+
+  /**
+   * @brief sets the Background Texture for all States.
+   * @param texture the Texture.
+   */
+  void GLGuiWidget::setBackgroundTexture(const Texture& texture)
+  {
+    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
+      setBackgroundTexture(texture, (OrxGui::State)i);
+  }
+
+    /**
+   * @brief sets the Background Texture to all States.
+   * @param textureName the Texture's fileName.
+     */
+  void GLGuiWidget::setBackgroundTexture(const std::string& textureName)
+  {
+    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
+      _style[i]._background.setDiffuseMap(textureName);
+  }
+
+  /**
+   * @brief sets the Background Texture.
+   * @param texture the Texture.
+   * @param state the State to setup.
+   */
+  void GLGuiWidget::setBackgroundTexture(const Texture& texture, OrxGui::State state)
+  {
+    _style[state]._background.setDiffuseMap(texture);
+  }
+
+
+
+  /**
+   * @brief sets the Background Texture.
+   * @param texture the Texture.
+   * @param stateName the State to setup.
+   */
+  void GLGuiWidget::setBackgroundTexture(const std::string& textureName, const std::string& stateName)
+  {
+    OrxGui::State state;
+    if (getState(stateName, &state))
+      ; /// FIXME this->setBackgroundTexture(textureName, state);
+    else
+      ; ///    this->setBackgroundTexture(textureName);
+  }
+
+
+  /**
+   * @brief sets the Foreground Color for all States.
+   * @param color the Color.
+   */
+  void GLGuiWidget::setForegroundColor(const Color& color)
+  {
+    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
+      setForegroundColor(color, (OrxGui::State)i);
+  }
+
+  /**
+   * @brief sets the Foreground Color.
+   * @param color the Color.
+   * @param state the State to setup
+   */
+  void GLGuiWidget::setForegroundColor(const Color& color, OrxGui::State state)
+  {
+    _style[state]._foreground.setDiffuseColor(color);
+  }
+
+  /**
+   * @brief sets the Foreground Color.
+   * @param r the Color's red part.
+   * @param g the Color's green part.
+   * @param b the Color's blue part.
+   * @param a the Color's alpha part.
+   * @param stateName: the State to setup
+   */
+  void GLGuiWidget::setForegroundColorS(float r, float g, float b, float a, const std::string& stateName)
+  {
+    OrxGui::State state;
+    if (getState(stateName, &state))
+      this->setForegroundColor(Color(r,g,b,a), state);
+    else
+      this->setForegroundColor(Color(r,g,b,a));
+  }
+
+
+  void GLGuiWidget::loadBackgroundMaterial(const Material& material)
+  {
+    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
+      this->loadForegroundMaterial(material, (OrxGui::State)i);
+  }
+
+  void GLGuiWidget::loadBackgroundMaterial(const Material& material, OrxGui::State state)
+  {
+    this->_style[state]._background = material;
+  }
+
+  void GLGuiWidget::loadBackgroundMaterial(const TiXmlElement* element)
+  {
+    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
+      this->_style[i]._background.loadParams(element);
+  }
+
+  void GLGuiWidget::loadBackgroundMaterial(const TiXmlElement* element, OrxGui::State state)
+  {
+    this->_style[state]._background.loadParams(element);
+  }
+  void GLGuiWidget::loadBackgroundMaterialS(const TiXmlElement* element, const std::string& stateName)
+  {
+    OrxGui::State state;
+    if (getState(stateName, &state))
+      this->loadBackgroundMaterial(element, state);
+    else
+      this->loadBackgroundMaterial(element);
+  }
+
+  void GLGuiWidget::loadForegroundMaterial(const Material& material)
+  {}
+  void GLGuiWidget::loadForegroundMaterial(const Material& material, OrxGui::State state)
+  {}
+  void GLGuiWidget::loadForegroundMaterial(const TiXmlElement* element, OrxGui::State state)
+  {}
+  void GLGuiWidget::loadForegroundMaterialS(const TiXmlElement* element, const std::string& stateName)
+  {}
+
+
+  /**
+   * @brief sets the Feature-Position.
+   * @param featurePosition the Feature-Position.
+   */
+  void GLGuiWidget::setFeaturePosition(FeaturePosition featurePosition)
+  {
+    this->_featurePosition = featurePosition;
+  }
+
+  /**
+   * @brief sets the Feature-Position by converting from a String.
+   * @param featurePosition the Feature-Position.
+   */
+  void GLGuiWidget::setFeaturePositionS(const std::string& featurePosition)
+  {
+    for (unsigned int i = 0; i < 4; ++i)
+    {
+      if (featurePosition == FeaturePositionString[i])
+      {
+        this->setFeaturePosition((FeaturePosition)i);
+      }
+    }
+  }
+
+  /**
+   * @brief sets the Font.
+   * @param font the Font.
+   */
+  void GLGuiWidget::setFont(Font* font)
+  {
+    this->_font = font;
+  }
+
+  /**
+   * @brief sets the font from a Font-Name.
+   * @param fontName the FileName of the Font.
+   */
+  void GLGuiWidget::setFont(const std::string& fontName)
+  {
+    //this->font = new Font(fontName);
+  }
+
+  /**
+   * @brief if Animation should be turned on.
+   * @param animated true if on, false otherwise.
+   */
+  void GLGuiWidget::setAnimated(bool animated)
+  {
+    this->_animated = animated;
+  }
+
+  /**
+   * @brief sets the AnimatedState.
+   * @param animated: it states-changes should animate true, otherwise false.
+   */
+  void GLGuiWidget::setAnimatedStateChanges(bool animated)
+  {
+    this->_animatedStateChanges = animated;
+  }
+
+
+  void GLGuiWidget::switchState(OrxGui::State state)
+  {
+    this->_currentStyle = this->_style[state];
+    this->_currentState = state;
+    printf("Switching to state %s\n", OrxGui::StateString[state].c_str());
+  }
+
+
+  /**
+   * @param stateName the Name of a State.
+   * @param state the found State is returned here if found.
+   * @returns true if String is found, false otherwise.
+   */
+  bool GLGuiWidget::getState(const std::string& stateName, OrxGui::State* state)
+  {
+    for (unsigned int i = 0; i < GLGUI_STATE_COUNT; ++i)
+      if (stateName == OrxGui::StateString[i])
+    {
+      *state = (OrxGui::State)i;
+      return true;
+    }
+    return false;
+  }
+
+
   void GLGuiWidget::tick(float dt)
   {
     if (this->_toFrontColor)
     {
-      this->_style.foregroundColor(_state).slerp(*_toFrontColor, dt*3.0);
+      this->foregroundColor(_state).slerp(*_toFrontColor, dt*3.0);
       this->updateFrontColor();
-      if (this->style().foregroundColor(_state).dist(*_toFrontColor) < .1)
+      if (this->foregroundColor(_state).dist(*_toFrontColor) < .1)
       {
         delete _toFrontColor;
@@ -256,7 +735,7 @@
   void GLGuiWidget::draw() const
   {
-    this->style().background().select();
+    this->background().select();
     this->drawRect(this->backRect());
-    this->style().background().unselect();
+    this->background().unselect();
   }
 
Index: branches/gui/src/lib/gui/gl/glgui_widget.h
===================================================================
--- branches/gui/src/lib/gui/gl/glgui_widget.h	(revision 8596)
+++ branches/gui/src/lib/gui/gl/glgui_widget.h	(revision 8598)
@@ -9,5 +9,6 @@
 #include "element_2d.h"
 
-#include "glgui_style.h"
+#include "glgui_defs.h"
+
 #include "material.h"
 #include "rect2D.h"
@@ -15,4 +16,6 @@
 #include "event.h"
 #include "signal_connector.h"
+
+class Font;
 
 namespace OrxGui
@@ -68,7 +71,4 @@
     OrxGui::State state() const { return this->_state; };
 
-    GLGuiStyle& style() { return this->_style; };
-    const GLGuiStyle style() const { return this->_style; };
-
     Rect2D& backRect() { return this->_backRect; };
     const Rect2D& backRect() const { return this->_backRect; };
@@ -78,4 +78,134 @@
     void setWidgetSize(const Vector2D& size);
     void setWidgetSize(float x, float y);
+
+
+
+    /// STYLE
+    ////////////////////////////////
+    /// 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; }
+
+
+    /** @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 */
+    inline FeaturePosition featurePosition() const { return _featurePosition; }
+    /** @returns the font */
+    inline const Font* const font() const { return _font; }
+    /** @returns true if the Element is Animated */
+    inline bool animated() const { return _animated; }
+    /** @returns true if State-Changes are animated */
+    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; }
+
+
+    /// SETUP
+    void resetStyle();
+    void loadParams(const TiXmlElement* root);
+
+    void setBorderLeft(float value);
+    void setBorderLeft(float value, OrxGui::State state);
+    void setBorderLeftS(float value, const std::string& stateName);
+
+    void setBorderRight(float value);
+    void setBorderRight(float value, OrxGui::State state);
+    void setBorderRightS(float value, const std::string& stateName);
+
+    void setBorderTop(float value);
+    void setBorderTop(float value, OrxGui::State state);
+    void setBorderTopS(float value, const std::string& stateName);
+
+    void setBorderBottom(float value);
+    void setBorderBottom(float value, OrxGui::State state);
+    void setBorderBottomS(float value, const std::string& stateName);
+
+    void setTextSize(float value);
+    void setTextSize(float value, OrxGui::State state);
+    void setTextSizeS(float value, const std::string& stateName);
+
+    void setBackgroundColor(const Color& color);
+    void setBackgroundColor(const Color& color, OrxGui::State state);
+    void setBackgroundColorS(float r, float g, float b, float a, const std::string& stateName);
+
+    void setBackgroundTexture(const Texture& texture);
+    void setBackgroundTexture(const std::string& textureName);
+    void setBackgroundTexture(const Texture& texture, OrxGui::State state);
+    void setBackgroundTexture(const std::string& textureName, const std::string& stateName);
+
+    void setForegroundColor(const Color& color);
+    void setForegroundColor(const Color& color, OrxGui::State state);
+    void setForegroundColorS(float r, float g, float b, float a, const std::string& stateName);
+
+    inline Color& foregroundColor(OrxGui::State state= GLGUI_DEFAULT_STYLE) { return _style[state]._foreground.diffuseColor(); }
+    inline Color& backgroundColor(OrxGui::State state= GLGUI_DEFAULT_STYLE) { return _style[state]._background.diffuseColor(); }
+    inline Material& background(OrxGui::State state = GLGUI_DEFAULT_STYLE) { return _style[state]._background; }
+    inline Material& foreground(OrxGui::State state = GLGUI_DEFAULT_STYLE) { return _style[state]._foreground; }
+
+    void loadBackgroundMaterial(const Material& material);
+    void loadBackgroundMaterial(const Material& material, OrxGui::State state);
+    void loadBackgroundMaterial(const TiXmlElement* element);
+    void loadBackgroundMaterial(const TiXmlElement* element, OrxGui::State state);
+    void loadBackgroundMaterialS(const TiXmlElement* element, const std::string& stateName);
+
+    void loadForegroundMaterial(const Material& material);
+    void loadForegroundMaterial(const Material& material, OrxGui::State state);
+    void loadForegroundMaterial(const TiXmlElement* element, OrxGui::State state);
+    void loadForegroundMaterialS(const TiXmlElement* element, const std::string& stateName);
+
+    void setFeaturePosition(FeaturePosition featurePosition);
+    void setFeaturePositionS(const std::string& featurePosition);
+
+    void setFont(Font* font);
+    void setFont(const std::string& fontName);
+
+    void setAnimated(bool animated);
+    void setAnimatedStateChanges(bool animated);
+    void switchState(OrxGui::State state);
+
 
 
@@ -98,4 +228,5 @@
     virtual bool processEvent(const Event& event) { return false; };
 
+    bool getState(const std::string& stateName, OrxGui::State* state);
 
   protected:
@@ -119,12 +250,18 @@
     virtual void destroyed();
 
+
   private:
     void init();
 
   private:
+    static GLGuiWidget*            _selected;         //!< The currently selected Widget.
+    static GLGuiWidget*            _focused;          //!< The currently Focused Widget.
+    static GLGuiWidget*            _inputGrabber;     //!< The Widget that grabs input.
+
+
+
     GLGuiWidget*                   _parent;           //!< The parent of this Widget.
 
     /// LOOKS
-    GLGuiStyle                     _style;
     Rect2D                         _backRect;
 
@@ -143,8 +280,37 @@
 
 
-    static GLGuiWidget*            _selected;         //!< The currently selected Widget.
-    static GLGuiWidget*            _focused;          //!< The currently Focused Widget.
-
-    static GLGuiWidget*            _inputGrabber;     //!< The Widget that grabs input.
+
+    /// STYLE - Variables.
+    typedef struct
+    {
+      float             _borderLeft;           //!< The Distance to the left Border of the widget, before any internal Element starts.
+      float             _borderRight;          //!< The Distance to the right Border of the widget, before any internal Element starts.
+      float             _borderTop;            //!< The Distance to the top Border of the widget, before any internal Element starts
+      float             _borderBottom;         //!< The Distance to the bottom Border of the widget, before any internal Element starts
+
+      float             _textSize;             //!< The TextSize of the Widget.
+
+      Material          _background;           //!< The Background Material of the Widget.
+
+      Material          _foreground;           //!< The foreground Material of the Widget.
+    }
+    StatedStyle;
+
+
+    StatedStyle         _style[GLGUI_STATE_COUNT]; //!< Styles configured for different States
+
+    FeaturePosition     _featurePosition;      //!< The Position a Feature will be layed at (checkbox(box), slider(text),...)
+    Font*               _font;                 //!< The Font used in the current Widget.
+
+
+    /// 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/specials/glgui_notifier.cc
===================================================================
--- branches/gui/src/lib/gui/gl/specials/glgui_notifier.cc	(revision 8596)
+++ branches/gui/src/lib/gui/gl/specials/glgui_notifier.cc	(revision 8598)
@@ -148,9 +148,9 @@
   void GLGuiNotifier::applyTextSettings(MultiLineText* text)
   {
-    text->setSize(this->style().textSize());
+    text->setSize(this->textSize());
     text->setLineWidth( 300 );
-    text->setFont("fonts/final_frontier.ttf", (int)this->style().textSize());
-
-    text->setColor(this->style().foregroundColor() );
+    text->setFont("fonts/final_frontier.ttf", (int)this->textSize());
+
+    text->setColor(this->foregroundColor() );
     if (text->getParent2D() != this)
       text->setParent2D(this);
@@ -200,5 +200,5 @@
     this->beginDraw();
 
-    this->style().background().select();
+    this->background().select();
     this->drawRect(this->backRect());
     this->endDraw();
@@ -216,5 +216,5 @@
   Vector2D GLGuiNotifier::calculateLinePosition(unsigned int lineNumber)
   {
-    return Vector2D(0.0f, (float)(style().textSize() + this->lineSpacing)*(float)((int)this->bufferDisplaySize - (int)lineNumber - (int)1));
+    return Vector2D(0.0f, (float)(textSize() + this->lineSpacing)*(float)((int)this->bufferDisplaySize - (int)lineNumber - (int)1));
   }
 
Index: branches/gui/src/util/hud.cc
===================================================================
--- branches/gui/src/util/hud.cc	(revision 8596)
+++ branches/gui/src/util/hud.cc	(revision 8598)
@@ -89,6 +89,6 @@
   {
     this->energyWidget->show();
-    this->energyWidget->style().background().setDiffuseMap("hud_energy_background.png");
-    this->energyWidget->style().background().setBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+    this->energyWidget->background().setDiffuseMap("hud_energy_background.png");
+    this->energyWidget->background().setBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
     /*    this->energyWidget->frontMaterial().setDiffuseMap("hud_energy_bar.png");
         this->energyWidget->frontMaterial().setBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);*/
@@ -143,6 +143,6 @@
       {
         weapon->getEnergyWidget()->show();
-        weapon->getEnergyWidget()->style().background().setDiffuse( .8,.2,.11);
-        weapon->getEnergyWidget()->style().background().setTransparency(.1);
+        weapon->getEnergyWidget()->background().setDiffuse( .8,.2,.11);
+        weapon->getEnergyWidget()->background().setTransparency(.1);
         weapon->getEnergyWidget()->setFrontColor(Color( .2,.5,.7,.6));
         //      weapon->getEnergyWidget()->frontMaterial().setTransparency(.6);
