Index: trunk/src/lib/gui/gl_gui/glgui_box.cc
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_box.cc	(revision 5388)
+++ trunk/src/lib/gui/gl_gui/glgui_box.cc	(revision 5391)
@@ -23,8 +23,9 @@
  * standard constructor
 */
-GLGuiBox::GLGuiBox ()
+GLGuiBox::GLGuiBox (GLGuiBoxType type)
 {
   this->init();
 
+  this->setType (type);
 }
 
Index: trunk/src/lib/gui/gl_gui/glgui_box.h
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_box.h	(revision 5388)
+++ trunk/src/lib/gui/gl_gui/glgui_box.h	(revision 5391)
@@ -12,4 +12,10 @@
 // FORWARD DECLARATION
 
+typedef enum
+{
+  GLGuiBox_H,
+  GLGuiBox_V,
+} GLGuiBoxType;
+
 //! This is BOX part of the openglGUI class
 /**
@@ -19,12 +25,14 @@
 
  public:
-  GLGuiBox();
+  GLGuiBox(GLGuiBoxType type = GLGuiBox_H);
   virtual ~GLGuiBox();
 
   void init();
+  void setType(GLGuiBoxType type) { this->type = type; };
 
   virtual void draw();
 
  private:
+   GLGuiBoxType         type;
 
 };
Index: trunk/src/lib/gui/gl_gui/glgui_checkbutton.h
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_checkbutton.h	(revision 5388)
+++ trunk/src/lib/gui/gl_gui/glgui_checkbutton.h	(revision 5391)
@@ -24,7 +24,11 @@
   void init();
 
+  bool    isActive() { return this->bActive; };
+  void    setActivity(bool bActive);
+
   virtual void draw();
 
  private:
+   bool             bActive;
 
 };
Index: trunk/src/lib/gui/gl_gui/glgui_container.h
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_container.h	(revision 5388)
+++ trunk/src/lib/gui/gl_gui/glgui_container.h	(revision 5391)
@@ -25,6 +25,11 @@
   void init();
 
+  void add(GLGuiWidget* widget);
+
+  void setBorderWidth(float borderwidth);
+
   void hideAll();
   void showAll();
+
 
   virtual void draw();
Index: trunk/src/lib/gui/gl_gui/glgui_handler.cc
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_handler.cc	(revision 5388)
+++ trunk/src/lib/gui/gl_gui/glgui_handler.cc	(revision 5391)
@@ -46,5 +46,5 @@
 void GLGuiHandler::activate()
 {
-//  EventHandler::getInstance()->setState(ES_MENU);
+  EventHandler::getInstance()->pushState(ES_MENU);
 
 }
@@ -52,4 +52,5 @@
 void GLGuiHandler::deactivate()
 {
+  EventHandler::getInstance()->popState();
 
 }
Index: trunk/src/lib/gui/gl_gui/glgui_menu.h
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_menu.h	(revision 5388)
+++ trunk/src/lib/gui/gl_gui/glgui_menu.h	(revision 5391)
@@ -11,5 +11,5 @@
 
 // FORWARD DECLARATION
-
+template<class T>  class tList;
 //! This is Menu part of the openglGUI class
 /**
@@ -24,7 +24,14 @@
   void init();
 
+  void addItem(const char* itemName);
+  void removeItem(const char* itemName);
+  void removeItem(unsigned int itemNumber);
+  void selectItem(const char* itemName);
+  void selectItem(unsigned int itemNumber);
+
   virtual void draw();
 
  private:
+   tList<char>*           itemList;
 
 };
Index: trunk/src/lib/gui/gl_gui/glgui_widget.cc
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_widget.cc	(revision 5388)
+++ trunk/src/lib/gui/gl_gui/glgui_widget.cc	(revision 5391)
@@ -39,4 +39,14 @@
 
 
+bool GLGuiWidget::focusOverWidget(float x, float y)
+{
+  if (this->getAbsCoor2D().x < x && this->getAbsCoor2D().x+ this->getSizeX2D() > x &&
+      this->getAbsCoor2D().y < y && this->getAbsCoor2D().y+ this->getSizeX2D() > y)
+    return true;
+  else
+    return false;
+}
+
+
 /**
  * initializes the GUI-element
Index: trunk/src/lib/gui/gl_gui/glgui_widget.h
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_widget.h	(revision 5388)
+++ trunk/src/lib/gui/gl_gui/glgui_widget.h	(revision 5391)
@@ -1,6 +1,6 @@
 /*!
-* @file glgui_widget.h
-* The gl_widget of the openglGUI
-*/
+ * @file glgui_widget.h
+ * The gl_widget of the openglGUI
+ */
 
 #ifndef _GLGUI_WIDGET_H
@@ -9,7 +9,22 @@
 #include "element_2d.h"
 #include "glincl.h"
+#include "event.h"
 
 // FORWARD DECLARATION
 class Material;
+class Signal; //!< @todo create this!!
+
+typedef enum
+{
+  GLGuiSignal_click     = 0,
+  GLGuiSignal_release   = 1,
+  GLGuiSignal_rollOn    = 2,
+  GLGuiSignal_rollOff   = 3,
+  GLGuiSignal_open      = 4,
+  GLGuiSignal_close     = 5,
+  GLGuiSignal_destroy   = 6,
+
+  GLGuiSignalCount      = 7,
+} GLGuiSignalType;
 
 //! if the Element should be visible by default.
@@ -30,4 +45,14 @@
     void hide();
 
+    void connectSignal(GLGuiSignalType signalType, Signal* signal);
+    void disconnectSignal(GLGuiSignalType);
+    bool focusOverWidget(float x, float y);
+
+    // if something was clickt on the GUI-widget.
+    virtual void click(const Event& event) {};
+    virtual void release(const Event& event) {};
+
+    virtual void receiveFocus() {};
+    virtual void removeFocus() {};
 
     virtual void update() = 0;
@@ -40,4 +65,6 @@
     GLuint                frontModel;
 
+    Signal*               widgetSignals[GLGuiSignalCount];
+
   private:
     bool                  focusable;        //!< If this widget can receive focus.
