Index: trunk/src/lib/graphics/text_engine/text.h
===================================================================
--- trunk/src/lib/graphics/text_engine/text.h	(revision 5394)
+++ trunk/src/lib/graphics/text_engine/text.h	(revision 5395)
@@ -54,5 +54,5 @@
 {
   public:
-    Text(const char* fontFile, unsigned int fontSize = TEXT_DEFAULT_SIZE, TEXT_RENDER_TYPE type = TEXT_RENDER_DYNAMIC);
+    Text(const char* fontFile = NULL, unsigned int fontSize = TEXT_DEFAULT_SIZE, TEXT_RENDER_TYPE type = TEXT_RENDER_DYNAMIC);
     ~Text();
     void init();
Index: trunk/src/lib/gui/gl_gui/glgui_button.cc
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_button.cc	(revision 5394)
+++ trunk/src/lib/gui/gl_gui/glgui_button.cc	(revision 5395)
@@ -18,4 +18,6 @@
 #include "glgui_button.h"
 
+#include "text.h"
+
 using namespace std;
 
@@ -35,5 +37,8 @@
 GLGuiButton::~GLGuiButton()
 {
-
+  /* this does not have to be done, since the Label is a child,
+   * and will be deleted by Element2D's deletion Process
+   * delete this->label;
+  */
 }
 
@@ -45,5 +50,13 @@
   this->setClassID(CL_GLGUI_BUTTON, "GLGuiButton");
 
+  this->label = new Text();
+  this->label->setParent2D(this);
 }
+
+void GLGuiButton::setLabel(const char* label)
+{
+  this->label->setText(label);
+}
+
 
 /**
Index: trunk/src/lib/gui/gl_gui/glgui_button.h
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_button.h	(revision 5394)
+++ trunk/src/lib/gui/gl_gui/glgui_button.h	(revision 5395)
@@ -31,16 +31,18 @@
 
  public:
-  GLGuiButton();
-  virtual ~GLGuiButton();
+   GLGuiButton();
+   virtual ~GLGuiButton();
 
-  void init();
+   void init();
+   void setLabel(const char* label);
 
-  virtual void draw();
+   virtual void draw();
 
- private:
+  protected:
+    Text*                label;
 
-  char*                text;
-  GLGui_ButtonState    state;
+  private:
 
+    GLGui_ButtonState    state;
 };
 
Index: trunk/src/lib/gui/gl_gui/glgui_checkbutton.cc
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_checkbutton.cc	(revision 5394)
+++ trunk/src/lib/gui/gl_gui/glgui_checkbutton.cc	(revision 5395)
@@ -17,4 +17,6 @@
 
 #include "glgui_checkbutton.h"
+
+#include "text.h"
 
 using namespace std;
Index: trunk/src/lib/gui/gl_gui/glgui_checkbutton.h
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_checkbutton.h	(revision 5394)
+++ trunk/src/lib/gui/gl_gui/glgui_checkbutton.h	(revision 5395)
@@ -27,5 +27,6 @@
   void    setActivity(bool bActive);
 
-  virtual void draw();
+  virtual void draw() const {};
+  virtual void update() {};
 
  private:
Index: trunk/src/lib/gui/gl_gui/glgui_pushbutton.cc
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_pushbutton.cc	(revision 5394)
+++ trunk/src/lib/gui/gl_gui/glgui_pushbutton.cc	(revision 5395)
@@ -17,4 +17,6 @@
 
 #include "glgui_pushbutton.h"
+
+#include "text.h"
 
 using namespace std;
@@ -50,5 +52,14 @@
  * draws the GLGuiPushButton
  */
-void GLGuiPushButton::draw()
+void GLGuiPushButton::draw() const
+{
+  this->label->draw();
+
+}
+
+/**
+ * updates the GLGuiPushButton
+ */
+void GLGuiPushButton::update()
 {
 
Index: trunk/src/lib/gui/gl_gui/glgui_pushbutton.h
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_pushbutton.h	(revision 5394)
+++ trunk/src/lib/gui/gl_gui/glgui_pushbutton.h	(revision 5395)
@@ -24,6 +24,6 @@
   void init();
 
-  virtual void draw();
-
+  virtual void draw() const;
+  virtual void update();
  private:
 
Index: trunk/src/lib/gui/gl_gui/glgui_widget.cc
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_widget.cc	(revision 5394)
+++ trunk/src/lib/gui/gl_gui/glgui_widget.cc	(revision 5395)
@@ -34,5 +34,5 @@
 /**
  * standard deconstructor
-*/
+ */
 GLGuiWidget::~GLGuiWidget()
 {
@@ -98,2 +98,7 @@
 }
 
+
+void GLGuiWidget::show()
+{
+  this->setVisibility(true);
+}
Index: trunk/src/lib/gui/gl_gui/glgui_widget.h
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_widget.h	(revision 5394)
+++ trunk/src/lib/gui/gl_gui/glgui_widget.h	(revision 5395)
@@ -61,4 +61,5 @@
 
     virtual void update() = 0;
+    virtual void draw() const = 0;
 
   protected:
@@ -69,7 +70,7 @@
     GLuint                frontModel;
 
+  private:
     Signal*               widgetSignals[GLGuiSignalCount];
 
-  private:
     bool                  focusable;        //!< If this widget can receive focus.
     bool                  clickable;        //!< if this widget can be clicked upon.
