Index: /trunk/src/lib/gui/gl/glgui_bar.h
===================================================================
--- /trunk/src/lib/gui/gl/glgui_bar.h	(revision 8985)
+++ /trunk/src/lib/gui/gl/glgui_bar.h	(revision 8986)
@@ -31,7 +31,7 @@
     void setRange(float minimum, float maximum);
 
-    float getValue() const { return this->_value; };
-    float getMinimum() const { return this->_minimum; };
-    float getMaximum() const { return this->_maximum; };
+    float value() const { return this->_value; };
+    float minimum() const { return this->_minimum; };
+    float maximum() const { return this->_maximum; };
 
     virtual void update() { };
Index: /trunk/src/lib/util/color.cc
===================================================================
--- /trunk/src/lib/util/color.cc	(revision 8985)
+++ /trunk/src/lib/util/color.cc	(revision 8986)
@@ -20,4 +20,44 @@
 
 
+//! Red Color
+const Color Color::red(1,0,0, 1);
+//! Green Color
+const Color Color::green(0,1,0, 1) ;
+//! blue Color
+const Color Color::blue(0,0,1, 1);
+//! White Color
+const Color Color::white(1,1,1, 1);
+//! Black Color
+const Color Color::black(0,0,0,1);
+//! Orx Color
+const Color Color::orx(.2, .5, .7, .8);  //!< TODO Define the ORX-color :)
+
+
+void Color::slerpHSV(const Color& c, float v)
+{
+  this->a() += (c.a() - this->a()) * v;
+  Vector from(r(), g(), b());
+  Vector to(c.r(), c.g(), c.b());
+
+  from = RGBtoHSV(from);
+  to = RGBtoHSV(to);
+
+  from += (to - from) * v;
+
+  to = HSVtoRGB(from);
+
+  this->r() = to.x;
+  this->g() = to.y;
+  this->b() = to.z;
+}
+
+Color Color::slerpHSVColor(const Color& from, const Color& to, float v)
+{
+  Color fromColor(from);
+  fromColor.slerpHSV(to, v);
+  return fromColor;
+}
+
+
 void Color::debug() const
 {
@@ -65,5 +105,6 @@
   if( s == 0 )
     h = undefined;
-  else {
+  else
+  {
     r_dist = (max_v - r)/diff;
     g_dist = (max_v - g)/diff;
@@ -74,9 +115,9 @@
       if( g == max_v )
         h = 2 + r_dist - b_dist;
-    else
-      if( b == max_v )
-        h = 4 + g_dist - r_dist;
-    else
-      printf("rgb2hsv::How did I get here?\n");
+      else
+        if( b == max_v )
+          h = 4 + g_dist - r_dist;
+        else
+          printf("rgb2hsv::How did I get here?\n");
     h *= 60.;
     if( h < 0)
@@ -112,12 +153,14 @@
   int i;
 
-  if( s == 0 ) {
+  if( s == 0 )
+  {
     r = v;
     g = v;
     b = v;
   }
-  else {
-   if(h >= 360.)
-     h = h - (float)((int)(ceilf(h) / 360.0));
+  else
+  {
+    if(h >= 360.)
+      h = h - (float)((int)(ceilf(h) / 360.0));
     h /= 60.;
     i = (int) h;
@@ -126,5 +169,6 @@
     q = v*(1-(s*f));
     t = v*(1-s*(1-f));
-    switch(i) {
+    switch(i)
+    {
       case 0:
         r = v;
@@ -161,6 +205,6 @@
         g = 1.0;
         b = 1.0;
-      //printf("hsv2rgb::How did I get here?\n");
-      // printf("h: %f, s: %f, v: %f; i:  %d\n",hin,s,v,i);
+        //printf("hsv2rgb::How did I get here?\n");
+        // printf("h: %f, s: %f, v: %f; i:  %d\n",hin,s,v,i);
         break;
     }
Index: /trunk/src/lib/util/color.h
===================================================================
--- /trunk/src/lib/util/color.h	(revision 8985)
+++ /trunk/src/lib/util/color.h	(revision 8986)
@@ -2,4 +2,6 @@
  * @file color.h
  * @brief Definition of color-calculations
+ *
+ * TODO CONVERT THE VECTORS to COLORS!!
  *
  * code borrowed from:
@@ -49,4 +51,7 @@
 
   void slerp(const Color& c, float v) { *this += (c - *this) * v; };
+  void slerpHSV(const Color& c, float v);
+
+  static Color slerpHSVColor(const Color& from, const Color& to, float v);
 
   void debug() const;
@@ -63,4 +68,12 @@
   static float maxrgb(float r, float g, float b);
 
+public:
+  static const Color red;
+  static const Color green;
+  static const Color blue;
+  static const Color white;
+  static const Color black;
+  static const Color orx;
+
 private:
   float       _rgba[4]; //!< Color Values
Index: /trunk/src/util/hud.cc
===================================================================
--- /trunk/src/util/hud.cc	(revision 8985)
+++ /trunk/src/util/hud.cc	(revision 8986)
@@ -168,5 +168,5 @@
   if (this->energyWidget != NULL)
   {
-    this->energyWidget->setAbsCoor2D(0.0 * this->resX, 0.9 * this->resY);
+    this->energyWidget->setAbsCoor2D(0.0 * this->resX, 0.85 * this->resY);
     this->energyWidget->setWidgetSize(.25 * this->resX, 0.1 * this->resY);
   }
@@ -177,5 +177,5 @@
   for (weaponWidget = this->weaponsWidgets.begin(); weaponWidget != this->weaponsWidgets.end(); weaponWidget++, pos+=.3)
   {
-    (*weaponWidget)->setAbsCoor2D(pos*this->resX, .9*this->resY);
+    (*weaponWidget)->setAbsCoor2D(pos*this->resX, .85*this->resY);
     (*weaponWidget)->setWidgetSize(.02*this->resX, .1 *this->resY);
     (*weaponWidget)->show();
Index: /trunk/src/world_entities/elements/glgui_energywidget.cc
===================================================================
--- /trunk/src/world_entities/elements/glgui_energywidget.cc	(revision 8985)
+++ /trunk/src/world_entities/elements/glgui_energywidget.cc	(revision 8986)
@@ -40,5 +40,4 @@
     this->_bar.setBackgroundColor(Color(0,0,0,0));
     this->_bar.setForegroundColor(Color(.5, .5, .5, 1));
-    this->_bar.font().setBlendFunc(GL_SRC_ALPHA, GL_DST_ALPHA);
   }
 
@@ -70,5 +69,5 @@
 
     this->_bar.setValue(value);
-    this->_bar.setForegroundColor(Color(1 - (value / this->_bar.getMaximum()), value / this->_bar.getMaximum(),0,1));
+    this->_bar.setForegroundColor(Color::slerpHSVColor(Color::red, Color::green, value/this->_bar.maximum()));
     this->_bar.setFrontColor(Color(1,1,1,1), true);
     this->_valueText.setText(val.getString());
