Index: branches/gui/src/defs/class_id.h
===================================================================
--- branches/gui/src/defs/class_id.h	(revision 7872)
+++ branches/gui/src/defs/class_id.h	(revision 7873)
@@ -331,4 +331,5 @@
   CL_GLMENU_IMAGE_SCREEN        =    0x00000b20,
   CL_GLGUI_BAR                  =    0x00000b30,
+  CL_GLGUI_CURSOR               =    0x00000b50,
 
   // QT_GUI
Index: branches/gui/src/lib/graphics/text_engine/text.cc
===================================================================
--- branches/gui/src/lib/graphics/text_engine/text.cc	(revision 7872)
+++ branches/gui/src/lib/graphics/text_engine/text.cc	(revision 7873)
@@ -36,4 +36,5 @@
   this->font = NULL;
   this->size = textSize;
+  this->setSizeY2D(size);
   this->blending = TEXT_DEFAULT_BLENDING;
   this->color = TEXT_DEFAULT_COLOR;
Index: branches/gui/src/lib/gui/gl_gui/Makefile.am
===================================================================
--- branches/gui/src/lib/gui/gl_gui/Makefile.am	(revision 7872)
+++ branches/gui/src/lib/gui/gl_gui/Makefile.am	(revision 7873)
@@ -9,19 +9,22 @@
 
 
-libORXglgui_a_SOURCES = glmenu/glmenu_imagescreen.cc \
-                        glgui_handler.cc \
-                        signal_connector.cc \
-                        glgui_mainwidget.cc \
-                        glgui_widget.cc \
-                        glgui_button.cc \
-                        glgui_pushbutton.cc \
-                        glgui_container.cc \
-                        glgui_bar.cc \
-                        glgui_box.cc \
-                        glgui_frame.cc \
-                        glgui_window.cc
+libORXglgui_a_SOURCES = \
+		glmenu/glmenu_imagescreen.cc \
+		glgui_handler.cc \
+		signal_connector.cc \
+		glgui_mainwidget.cc \
+		glgui_widget.cc \
+		glgui_button.cc \
+		glgui_pushbutton.cc \
+		glgui_container.cc \
+		glgui_bar.cc \
+		glgui_box.cc \
+		glgui_frame.cc \
+		glgui_window.cc \
+		glgui_cursor.cc
 
 
-noinst_HEADERS= glmenu/glmenu_imagescreen.h \
+noinst_HEADERS= \
+		glmenu/glmenu_imagescreen.h \
 		signal_connector.h \
 		glgui.h \
@@ -35,5 +38,6 @@
 		glgui_box.h \
 		glgui_frame.h \
-		glgui_window.h
+		glgui_window.h \
+		glgui_cursor.h
 
 
Index: branches/gui/src/lib/gui/gl_gui/glgui.h
===================================================================
--- branches/gui/src/lib/gui/gl_gui/glgui.h	(revision 7872)
+++ branches/gui/src/lib/gui/gl_gui/glgui.h	(revision 7873)
@@ -13,4 +13,5 @@
 #include "glgui_checkbutton.h"
 #include "glgui_colorselector.h"
+#include "glgui_pushbutton.h"
 
 namespace OrxGui
@@ -24,3 +25,3 @@
 
 
-#endif _GLGUI_H
+#endif /* _GLGUI_H */
Index: branches/gui/src/lib/gui/gl_gui/glgui_button.cc
===================================================================
--- branches/gui/src/lib/gui/gl_gui/glgui_button.cc	(revision 7872)
+++ branches/gui/src/lib/gui/gl_gui/glgui_button.cc	(revision 7873)
@@ -26,8 +26,10 @@
    * standard constructor
   */
-  GLGuiButton::GLGuiButton ()
+  GLGuiButton::GLGuiButton (const std::string& label)
   {
     this->init();
+    this->setLabel(label);
 
+    this->label.setText("TEST");
   }
 
@@ -45,5 +47,5 @@
 
   /**
-   * initializes the GUI-element
+   * @brief initializes the GUI-element
    */
   void GLGuiButton::init()
@@ -51,13 +53,12 @@
     this->setClassID(CL_GLGUI_BUTTON, "GLGuiButton");
 
-    this->label = new Text();
-    this->label->setParent2D(this);
+    this->label.setParent2D(this);
   }
 
   void GLGuiButton::setLabel(const std::string& label)
   {
-    this->label->setText(label);
-    this->label->setRelCoor2D(5, 5);
-    this->setSize2D(this->label->getSizeX2D()+10, this->label->getSizeY2D()+10);
+    this->label.setText(label);
+    this->label.setRelCoor2D(5, 5);
+    this->setSize2D(this->label.getSizeX2D(), this->label.getSizeY2D()+10);
   }
 
Index: branches/gui/src/lib/gui/gl_gui/glgui_button.h
===================================================================
--- branches/gui/src/lib/gui/gl_gui/glgui_button.h	(revision 7872)
+++ branches/gui/src/lib/gui/gl_gui/glgui_button.h	(revision 7873)
@@ -10,5 +10,5 @@
 #include "glgui_widget.h"
 
-class Text;
+#include "text.h"
 
 namespace OrxGui
@@ -33,14 +33,18 @@
 
   public:
-    GLGuiButton();
+    GLGuiButton(const std::string& label);
     virtual ~GLGuiButton();
 
-    void init();
     void setLabel(const std::string& label);
 
     virtual void draw() const;
 
+    private:
+      void init();
+
+
   protected:
-    Text*                label;
+
+    Text                 label;
 
   private:
Index: branches/gui/src/lib/gui/gl_gui/glgui_cursor.cc
===================================================================
--- branches/gui/src/lib/gui/gl_gui/glgui_cursor.cc	(revision 7872)
+++ branches/gui/src/lib/gui/gl_gui/glgui_cursor.cc	(revision 7873)
@@ -16,5 +16,5 @@
 #define DEBUG_SPECIAL_MODULE DEBUG_MODULE_GUI
 
-#include "glgui_.h"
+#include "glgui_cursor.h"
 
 namespace OrxGui
@@ -24,5 +24,5 @@
    * standard constructor
   */
-  GLGui::GLGui ()
+  GLGuiCursor::GLGuiCursor ()
   {
     this->init();
@@ -34,5 +34,5 @@
    * standard deconstructor
   */
-  GLGui::~GLGui()
+  GLGuiCursor::~GLGuiCursor()
   {
   }
@@ -41,14 +41,14 @@
    * initializes the GUI-element
    */
-  GLGui::init()
+  void GLGuiCursor::init()
   {
-    this->setClassID(CL_GLGUI_, "GLGui");
+    this->setClassID(CL_GLGUI_CURSOR, "GLGuiCursor");
 
   }
 
   /**
-   * draws the GLGui
+   * draws the GLGuiCursor
    */
-  void GLGui::draw()
+  void GLGuiCursor::draw()
   {
   }
Index: branches/gui/src/lib/gui/gl_gui/glgui_cursor.h
===================================================================
--- branches/gui/src/lib/gui/gl_gui/glgui_cursor.h	(revision 7872)
+++ branches/gui/src/lib/gui/gl_gui/glgui_cursor.h	(revision 7873)
@@ -1,12 +1,13 @@
 /*!
- * @file glgui_.h
- * The gl_ widget of th openglGUI
+ * @file glgui_cursor.h
+ * The gl_cursor widget of th openglGUI
  *
  */
 
-#ifndef _GLGUI__H
-#define _GLGUI__H
+#ifndef _GLGUI_CURSOR_H
+#define _GLGUI_CURSOR_H
 
-#include "base_object.h"
+#include "glgui_widget.h"
+#include "event_listener.h"
 
 namespace OrxGui
@@ -18,10 +19,10 @@
    *
    */
-  class GLGui : public GLGui
+  class GLGuiCursor : public GLGuiWidget, public EventListener
   {
 
   public:
-    GLGui();
-    virtual ~GLGui();
+    GLGuiCursor();
+    virtual ~GLGuiCursor();
 
     void init();
@@ -33,3 +34,3 @@
   };
 }
-#endif /* _GLGUI__H */
+#endif /* _GLGUI_CURSOR_H */
Index: branches/gui/src/lib/gui/gl_gui/glgui_pushbutton.cc
===================================================================
--- branches/gui/src/lib/gui/gl_gui/glgui_pushbutton.cc	(revision 7872)
+++ branches/gui/src/lib/gui/gl_gui/glgui_pushbutton.cc	(revision 7873)
@@ -25,7 +25,8 @@
 
   /**
-   * standard constructor
-  */
-  GLGuiPushButton::GLGuiPushButton ()
+   * @brief standard constructor
+   */
+  GLGuiPushButton::GLGuiPushButton (const std::string& label)
+  :GLGuiButton(label)
   {
     this->init();
@@ -34,5 +35,5 @@
 
   /**
-   * standard deconstructor
+   * @brief standard deconstructor
   */
   GLGuiPushButton::~GLGuiPushButton()
@@ -47,5 +48,4 @@
     this->setClassID(CL_GLGUI_PUSHBUTTON, "GLGuiPushButton");
     this->frontMat.setDiffuse(1,0,0);
-    //  this->label->setRelCoor2D(10, 10);
   }
 
@@ -56,14 +56,13 @@
   {
     this->startDraw();
-
-    //  GLGuiButton::draw();
+    GLGuiButton::draw();
 
     this->frontMat.select();
     glBegin(GL_QUADS);
 
-    glVertex2d(0,0);
-    glVertex2d(0, this->getSizeY2D());
-    glVertex2d(this->getSizeX2D(), this->getSizeY2D());
-    glVertex2d(this->getSizeX2D(),0);
+    glVertex2d(1, 1);
+    glVertex2d(1, this->getSizeY2D() -1);
+    glVertex2d(this->getSizeX2D() -1, this->getSizeY2D()-1);
+    glVertex2d(this->getSizeX2D()-1,1);
 
     glEnd();
Index: branches/gui/src/lib/gui/gl_gui/glgui_pushbutton.h
===================================================================
--- branches/gui/src/lib/gui/gl_gui/glgui_pushbutton.h	(revision 7872)
+++ branches/gui/src/lib/gui/gl_gui/glgui_pushbutton.h	(revision 7873)
@@ -23,12 +23,12 @@
 
   public:
-    GLGuiPushButton();
+    GLGuiPushButton(const std::string& label);
     virtual ~GLGuiPushButton();
 
-    void init();
 
     virtual void draw() const;
     virtual void update();
   private:
+    void init();
 
   };
Index: branches/gui/src/story_entities/simple_game_menu.cc
===================================================================
--- branches/gui/src/story_entities/simple_game_menu.cc	(revision 7872)
+++ branches/gui/src/story_entities/simple_game_menu.cc	(revision 7873)
@@ -28,5 +28,4 @@
 #include "util/loading/factory.h"
 
-#include "p_node.h"
 #include "world_entity.h"
 #include "elements/image_entity.h"
@@ -41,7 +40,5 @@
 #include "cd_engine.h"
 
-
-using namespace std;
-
+#include "glgui.h"
 
 //! This creates a Factory to fabricate a SimpleGameMenu
@@ -65,4 +62,8 @@
   this->menuSelectedIndex = 0;
   this->selectorSource = NULL;
+
+  OrxGui::GLGuiPushButton* pb = new OrxGui::GLGuiPushButton("PUSH ME");
+  pb->show();
+  pb->setAbsCoor2D(50, 50);
 
   if (root != NULL)
