Index: branches/gui/src/lib/gui/gl_gui/Makefile.am
===================================================================
--- branches/gui/src/lib/gui/gl_gui/Makefile.am	(revision 7900)
+++ branches/gui/src/lib/gui/gl_gui/Makefile.am	(revision 7901)
@@ -17,4 +17,5 @@
 		glgui_button.cc \
 		glgui_pushbutton.cc \
+		glgui_checkbutton.cc \
 		glgui_container.cc \
 		glgui_bar.cc \
@@ -36,4 +37,5 @@
 		glgui_button.h \
 		glgui_pushbutton.h \
+		glgui_checkbutton.h \
 		glgui_container.h \
 		glgui_bar.h \
Index: branches/gui/src/lib/gui/gl_gui/glgui.h
===================================================================
--- branches/gui/src/lib/gui/gl_gui/glgui.h	(revision 7900)
+++ branches/gui/src/lib/gui/gl_gui/glgui.h	(revision 7901)
@@ -15,5 +15,5 @@
 #include "glgui_button.h"
 #include "glgui_checkbutton.h"
-#include "glgui_colorselector.h"
+//#include "glgui_colorselector.h"
 #include "glgui_pushbutton.h"
 #include "glgui_cursor.h"
Index: branches/gui/src/lib/gui/gl_gui/glgui_button.cc
===================================================================
--- branches/gui/src/lib/gui/gl_gui/glgui_button.cc	(revision 7900)
+++ branches/gui/src/lib/gui/gl_gui/glgui_button.cc	(revision 7901)
@@ -30,5 +30,5 @@
     this->init();
 
-    this->setLabel(label);
+    this->label.setText( label );
   }
 
@@ -64,12 +64,9 @@
   {
     this->label.setText(label);
-    this->label.setRelCoor2D(5, 5);
-    this->setSize2D(this->label.getSizeX2D() + 10, this->label.getSizeY2D() + 10);
-
+    this->resize();
   }
 
-
   /**
-   * draws the GLGuiButton
+   * @brief draws the GLGuiButton
    */
   void GLGuiButton::draw() const
Index: branches/gui/src/lib/gui/gl_gui/glgui_button.h
===================================================================
--- branches/gui/src/lib/gui/gl_gui/glgui_button.h	(revision 7900)
+++ branches/gui/src/lib/gui/gl_gui/glgui_button.h	(revision 7901)
@@ -39,4 +39,6 @@
     void setLabel(const std::string& label);
 
+    virtual void resize() = 0;
+
     virtual void draw() const;
 
Index: branches/gui/src/lib/gui/gl_gui/glgui_checkbutton.cc
===================================================================
--- branches/gui/src/lib/gui/gl_gui/glgui_checkbutton.cc	(revision 7900)
+++ branches/gui/src/lib/gui/gl_gui/glgui_checkbutton.cc	(revision 7901)
@@ -27,8 +27,11 @@
    * standard constructor
   */
-  GLGuiCheckButton::GLGuiCheckButton ()
+  GLGuiCheckButton::GLGuiCheckButton (const std::string& label, bool active)
+  : GLGuiButton(label)
   {
     this->init();
+    this->bActive = active;
 
+    this->resize();
   }
 
@@ -44,15 +47,60 @@
    * initializes the GUI-element
    */
-  GLGuiCheckButton::init()
+  void GLGuiCheckButton::init()
   {
     this->setClassID(CL_GLGUI_CHECKBUTTON, "GLGuiCheckButton");
+  }
 
+
+  void GLGuiCheckButton::toggleActiveState()
+  {
+    this->bActive = !this->bActive;
+  }
+
+  void GLGuiCheckButton::resize()
+  {
+    this->label.setRelCoor2D(25, 5);
+    this->setSize2D(this->label.getSizeX2D() + 30, this->label.getSizeY2D() + 10);
+  }
+
+
+  void GLGuiCheckButton::released()
+  {
+    printf("%s released\n", this->getLabel().c_str());
+    GLGuiWidget::released();
+    this->toggleActiveState();
   }
 
   /**
-   * draws the GLGuiCheckButton
+   * @brief draws the GLGuiPushButton
    */
   void GLGuiCheckButton::draw() const
   {
+    this->startDraw();
+    GLGuiButton::draw();
+
+    this->frontMaterial().select();
+    glBegin(GL_QUADS);
+
+    glTexCoord2i(0,0); glVertex2d(1, 1);
+    glTexCoord2i(0,1); glVertex2d(1, this->getSizeY2D() - 1);
+    glTexCoord2i(1,1); glVertex2d(this->getSizeX2D() - 1, this->getSizeY2D() -1);
+    glTexCoord2i(1,0); glVertex2d(this->getSizeX2D() - 1, 1);
+
+    if (this->bActive)
+      glColor3f( 1, 1 ,1);
+    else
+      glColor3f(0, 0, 0);
+    glTexCoord2i(0,0); glVertex2d(8, 8);
+    glTexCoord2i(0,1); glVertex2d(8, this->getSizeY2D()-8);
+    glTexCoord2i(1,1); glVertex2d(this->getSizeY2D()-8, this->getSizeY2D()-8);
+    glTexCoord2i(1,0); glVertex2d(this->getSizeY2D()-8, 8);
+
+    glEnd();
+
+
+    this->endDraw();
+    //   this->label->draw();
+    //  printf("test");
   }
 }
Index: branches/gui/src/lib/gui/gl_gui/glgui_checkbutton.h
===================================================================
--- branches/gui/src/lib/gui/gl_gui/glgui_checkbutton.h	(revision 7900)
+++ branches/gui/src/lib/gui/gl_gui/glgui_checkbutton.h	(revision 7901)
@@ -6,5 +6,5 @@
 
 #ifndef _GLGUI_CHECKBUTTON_H
-#define _GLGUI__H
+#define _GLGUI_CHECKBUTTON_H
 
 #include "glgui_button.h"
@@ -23,14 +23,20 @@
 
   public:
-    GLGuiCheckButton();
+    GLGuiCheckButton(const std::string& label = "", bool active = false);
     virtual ~GLGuiCheckButton();
 
-    void init();
+    virtual void resize();
+    virtual void released();
 
     bool    isActive() { return this->bActive; };
     void    setActivity(bool bActive);
+    void    toggleActiveState();
 
     virtual void draw() const;
     virtual void update() {};
+
+  private:
+    void init();
+
 
   private:
Index: branches/gui/src/lib/gui/gl_gui/glgui_colorselector.h
===================================================================
--- branches/gui/src/lib/gui/gl_gui/glgui_colorselector.h	(revision 7900)
+++ branches/gui/src/lib/gui/gl_gui/glgui_colorselector.h	(revision 7901)
@@ -5,8 +5,8 @@
  */
 
-#ifndef _GLGUI__H
-#define _GLGUI__H
+#ifndef _GLGUI_COLORSELECTOR_H
+#define _GLGUI_COLORSELECTOR_H
 
-#include "base_object.h"
+#include "glgui_widget.h"
 
 namespace OrxGui
Index: branches/gui/src/lib/gui/gl_gui/glgui_pushbutton.cc
===================================================================
--- branches/gui/src/lib/gui/gl_gui/glgui_pushbutton.cc	(revision 7900)
+++ branches/gui/src/lib/gui/gl_gui/glgui_pushbutton.cc	(revision 7901)
@@ -28,7 +28,9 @@
    */
   GLGuiPushButton::GLGuiPushButton (const std::string& label)
-  :GLGuiButton(label)
+  : GLGuiButton(label)
   {
     this->init();
+
+    this->resize();
   }
 
@@ -39,4 +41,10 @@
   GLGuiPushButton::~GLGuiPushButton()
   {
+  }
+
+  void GLGuiPushButton::resize()
+  {
+    this->label.setRelCoor2D(5, 5);
+    this->setSize2D(this->label.getSizeX2D() + 10, this->label.getSizeY2D() + 10);
   }
 
@@ -78,5 +86,5 @@
 
   /**
-   * draws the GLGuiPushButton
+   * @brief draws the GLGuiPushButton
    */
   void GLGuiPushButton::draw() const
Index: branches/gui/src/lib/gui/gl_gui/glgui_pushbutton.h
===================================================================
--- branches/gui/src/lib/gui/gl_gui/glgui_pushbutton.h	(revision 7900)
+++ branches/gui/src/lib/gui/gl_gui/glgui_pushbutton.h	(revision 7901)
@@ -23,7 +23,9 @@
 
   public:
-    GLGuiPushButton(const std::string& label);
+    GLGuiPushButton(const std::string& label = "");
     virtual ~GLGuiPushButton();
 
+
+    virtual void resize();
 
     virtual void receivedFocus();
