Index: trunk/Makefile.in
===================================================================
--- trunk/Makefile.in	(revision 5363)
+++ trunk/Makefile.in	(revision 5364)
@@ -39,5 +39,5 @@
 	$(srcdir)/doc/documentation.am $(top_srcdir)/configure AUTHORS \
 	COPYING ChangeLog INSTALL NEWS config.guess config.sub depcomp \
-	install-sh ltmain.sh missing mkinstalldirs
+	install-sh missing mkinstalldirs
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
Index: trunk/src/defs/class_id.h
===================================================================
--- trunk/src/defs/class_id.h	(revision 5363)
+++ trunk/src/defs/class_id.h	(revision 5364)
@@ -175,8 +175,11 @@
   CL_GLGUI_WIDGET               =    0x00501901,
   CL_GLGUI_BUTTON               =    0x00502902,
-  CL_GLGUI_PUSHBUTTON           =    0x00502903,
-  CL_GLGUI_CHECKBUTTON          =    0x00502904,
-  CL_GLGUI_RADIOBUTTON          =    0x00502905,
-
+  CL_GLGUI_PUSHBUTTON           =    0x00000903,
+  CL_GLGUI_CHECKBUTTON          =    0x00000904,
+  CL_GLGUI_RADIOBUTTON          =    0x00000905,
+  CL_GLGUI_CONTAINER            =    0x00504906,
+  CL_GLGUI_BOX                  =    0x00000907,
+  CL_GLGUI_FRAME                =    0x00000908,
+  CL_GLGUI_WINDOW               =    0x00000909,
   CL_GLMENU_IMAGE_SCREEN        =    0x00000920,
 
Index: trunk/src/lib/graphics/shader.cc
===================================================================
--- trunk/src/lib/graphics/shader.cc	(revision 5363)
+++ trunk/src/lib/graphics/shader.cc	(revision 5364)
@@ -227,6 +227,7 @@
 void Shader::deactivateShader()
 {
-  glUseProgramObjectARB(0);
-  Shader::storedShader = NULL;
+ if (storedShader != NULL)
+   glUseProgramObjectARB(0);
+ Shader::storedShader = NULL;
 }
 
Index: trunk/src/lib/gui/gl_gui/Makefile.am
===================================================================
--- trunk/src/lib/gui/gl_gui/Makefile.am	(revision 5363)
+++ trunk/src/lib/gui/gl_gui/Makefile.am	(revision 5364)
@@ -11,10 +11,22 @@
 libORXglgui_a_SOURCES = glmenu/glmenu_imagescreen.cc \
                         glgui_widget.cc \
-                        glgui_button.cc
+                        glgui_button.cc \
+                        glgui_pushbutton.cc \
+                        glgui_container.cc \
+                        glgui_box.cc \
+                        glgui_frame.cc \
+                        glgui_window.cc
+
 
 noinst_HEADERS= glmenu/glmenu_imagescreen.h \
 		glgui.h \
 		glgui_widget.h \
-		glgui_button.h
+		glgui_button.h \
+		glgui_pushbutton.h \
+		glgui_container.h \
+		glgui_box.h \
+		glgui_frame.h \
+		glgui_window.h
+
 
 
Index: trunk/src/lib/gui/gl_gui/Makefile.in
===================================================================
--- trunk/src/lib/gui/gl_gui/Makefile.in	(revision 5363)
+++ trunk/src/lib/gui/gl_gui/Makefile.in	(revision 5364)
@@ -56,11 +56,21 @@
 am_libORXglgui_a_OBJECTS = libORXglgui_a-glmenu_imagescreen.$(OBJEXT) \
 	libORXglgui_a-glgui_widget.$(OBJEXT) \
-	libORXglgui_a-glgui_button.$(OBJEXT)
+	libORXglgui_a-glgui_button.$(OBJEXT) \
+	libORXglgui_a-glgui_pushbutton.$(OBJEXT) \
+	libORXglgui_a-glgui_container.$(OBJEXT) \
+	libORXglgui_a-glgui_box.$(OBJEXT) \
+	libORXglgui_a-glgui_frame.$(OBJEXT) \
+	libORXglgui_a-glgui_window.$(OBJEXT)
 libORXglgui_a_OBJECTS = $(am_libORXglgui_a_OBJECTS)
 DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
-@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/libORXglgui_a-glgui_button.Po \
+@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/libORXglgui_a-glgui_box.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/libORXglgui_a-glgui_button.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/libORXglgui_a-glgui_container.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/libORXglgui_a-glgui_frame.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/libORXglgui_a-glgui_pushbutton.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/libORXglgui_a-glgui_widget.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/libORXglgui_a-glgui_window.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/libORXglgui_a-glmenu_imagescreen.Po
 CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
@@ -189,10 +199,20 @@
 libORXglgui_a_SOURCES = glmenu/glmenu_imagescreen.cc \
                         glgui_widget.cc \
-                        glgui_button.cc
+                        glgui_button.cc \
+                        glgui_pushbutton.cc \
+                        glgui_container.cc \
+                        glgui_box.cc \
+                        glgui_frame.cc \
+                        glgui_window.cc
 
 noinst_HEADERS = glmenu/glmenu_imagescreen.h \
 		glgui.h \
 		glgui_widget.h \
-		glgui_button.h
+		glgui_button.h \
+		glgui_pushbutton.h \
+		glgui_container.h \
+		glgui_box.h \
+		glgui_frame.h \
+		glgui_window.h
 
 EXTRA_DIST = 
@@ -244,6 +264,11 @@
 	-rm -f *.tab.c
 
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libORXglgui_a-glgui_box.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libORXglgui_a-glgui_button.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libORXglgui_a-glgui_container.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libORXglgui_a-glgui_frame.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libORXglgui_a-glgui_pushbutton.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libORXglgui_a-glgui_widget.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libORXglgui_a-glgui_window.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libORXglgui_a-glmenu_imagescreen.Po@am__quote@
 
@@ -311,4 +336,84 @@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXglgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXglgui_a-glgui_button.obj `if test -f 'glgui_button.cc'; then $(CYGPATH_W) 'glgui_button.cc'; else $(CYGPATH_W) '$(srcdir)/glgui_button.cc'; fi`
+
+libORXglgui_a-glgui_pushbutton.o: glgui_pushbutton.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXglgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXglgui_a-glgui_pushbutton.o -MD -MP -MF "$(DEPDIR)/libORXglgui_a-glgui_pushbutton.Tpo" -c -o libORXglgui_a-glgui_pushbutton.o `test -f 'glgui_pushbutton.cc' || echo '$(srcdir)/'`glgui_pushbutton.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXglgui_a-glgui_pushbutton.Tpo" "$(DEPDIR)/libORXglgui_a-glgui_pushbutton.Po"; else rm -f "$(DEPDIR)/libORXglgui_a-glgui_pushbutton.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='glgui_pushbutton.cc' object='libORXglgui_a-glgui_pushbutton.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXglgui_a-glgui_pushbutton.Po' tmpdepfile='$(DEPDIR)/libORXglgui_a-glgui_pushbutton.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXglgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXglgui_a-glgui_pushbutton.o `test -f 'glgui_pushbutton.cc' || echo '$(srcdir)/'`glgui_pushbutton.cc
+
+libORXglgui_a-glgui_pushbutton.obj: glgui_pushbutton.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXglgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXglgui_a-glgui_pushbutton.obj -MD -MP -MF "$(DEPDIR)/libORXglgui_a-glgui_pushbutton.Tpo" -c -o libORXglgui_a-glgui_pushbutton.obj `if test -f 'glgui_pushbutton.cc'; then $(CYGPATH_W) 'glgui_pushbutton.cc'; else $(CYGPATH_W) '$(srcdir)/glgui_pushbutton.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXglgui_a-glgui_pushbutton.Tpo" "$(DEPDIR)/libORXglgui_a-glgui_pushbutton.Po"; else rm -f "$(DEPDIR)/libORXglgui_a-glgui_pushbutton.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='glgui_pushbutton.cc' object='libORXglgui_a-glgui_pushbutton.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXglgui_a-glgui_pushbutton.Po' tmpdepfile='$(DEPDIR)/libORXglgui_a-glgui_pushbutton.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXglgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXglgui_a-glgui_pushbutton.obj `if test -f 'glgui_pushbutton.cc'; then $(CYGPATH_W) 'glgui_pushbutton.cc'; else $(CYGPATH_W) '$(srcdir)/glgui_pushbutton.cc'; fi`
+
+libORXglgui_a-glgui_container.o: glgui_container.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXglgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXglgui_a-glgui_container.o -MD -MP -MF "$(DEPDIR)/libORXglgui_a-glgui_container.Tpo" -c -o libORXglgui_a-glgui_container.o `test -f 'glgui_container.cc' || echo '$(srcdir)/'`glgui_container.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXglgui_a-glgui_container.Tpo" "$(DEPDIR)/libORXglgui_a-glgui_container.Po"; else rm -f "$(DEPDIR)/libORXglgui_a-glgui_container.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='glgui_container.cc' object='libORXglgui_a-glgui_container.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXglgui_a-glgui_container.Po' tmpdepfile='$(DEPDIR)/libORXglgui_a-glgui_container.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXglgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXglgui_a-glgui_container.o `test -f 'glgui_container.cc' || echo '$(srcdir)/'`glgui_container.cc
+
+libORXglgui_a-glgui_container.obj: glgui_container.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXglgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXglgui_a-glgui_container.obj -MD -MP -MF "$(DEPDIR)/libORXglgui_a-glgui_container.Tpo" -c -o libORXglgui_a-glgui_container.obj `if test -f 'glgui_container.cc'; then $(CYGPATH_W) 'glgui_container.cc'; else $(CYGPATH_W) '$(srcdir)/glgui_container.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXglgui_a-glgui_container.Tpo" "$(DEPDIR)/libORXglgui_a-glgui_container.Po"; else rm -f "$(DEPDIR)/libORXglgui_a-glgui_container.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='glgui_container.cc' object='libORXglgui_a-glgui_container.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXglgui_a-glgui_container.Po' tmpdepfile='$(DEPDIR)/libORXglgui_a-glgui_container.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXglgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXglgui_a-glgui_container.obj `if test -f 'glgui_container.cc'; then $(CYGPATH_W) 'glgui_container.cc'; else $(CYGPATH_W) '$(srcdir)/glgui_container.cc'; fi`
+
+libORXglgui_a-glgui_box.o: glgui_box.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXglgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXglgui_a-glgui_box.o -MD -MP -MF "$(DEPDIR)/libORXglgui_a-glgui_box.Tpo" -c -o libORXglgui_a-glgui_box.o `test -f 'glgui_box.cc' || echo '$(srcdir)/'`glgui_box.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXglgui_a-glgui_box.Tpo" "$(DEPDIR)/libORXglgui_a-glgui_box.Po"; else rm -f "$(DEPDIR)/libORXglgui_a-glgui_box.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='glgui_box.cc' object='libORXglgui_a-glgui_box.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXglgui_a-glgui_box.Po' tmpdepfile='$(DEPDIR)/libORXglgui_a-glgui_box.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXglgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXglgui_a-glgui_box.o `test -f 'glgui_box.cc' || echo '$(srcdir)/'`glgui_box.cc
+
+libORXglgui_a-glgui_box.obj: glgui_box.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXglgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXglgui_a-glgui_box.obj -MD -MP -MF "$(DEPDIR)/libORXglgui_a-glgui_box.Tpo" -c -o libORXglgui_a-glgui_box.obj `if test -f 'glgui_box.cc'; then $(CYGPATH_W) 'glgui_box.cc'; else $(CYGPATH_W) '$(srcdir)/glgui_box.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXglgui_a-glgui_box.Tpo" "$(DEPDIR)/libORXglgui_a-glgui_box.Po"; else rm -f "$(DEPDIR)/libORXglgui_a-glgui_box.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='glgui_box.cc' object='libORXglgui_a-glgui_box.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXglgui_a-glgui_box.Po' tmpdepfile='$(DEPDIR)/libORXglgui_a-glgui_box.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXglgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXglgui_a-glgui_box.obj `if test -f 'glgui_box.cc'; then $(CYGPATH_W) 'glgui_box.cc'; else $(CYGPATH_W) '$(srcdir)/glgui_box.cc'; fi`
+
+libORXglgui_a-glgui_frame.o: glgui_frame.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXglgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXglgui_a-glgui_frame.o -MD -MP -MF "$(DEPDIR)/libORXglgui_a-glgui_frame.Tpo" -c -o libORXglgui_a-glgui_frame.o `test -f 'glgui_frame.cc' || echo '$(srcdir)/'`glgui_frame.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXglgui_a-glgui_frame.Tpo" "$(DEPDIR)/libORXglgui_a-glgui_frame.Po"; else rm -f "$(DEPDIR)/libORXglgui_a-glgui_frame.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='glgui_frame.cc' object='libORXglgui_a-glgui_frame.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXglgui_a-glgui_frame.Po' tmpdepfile='$(DEPDIR)/libORXglgui_a-glgui_frame.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXglgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXglgui_a-glgui_frame.o `test -f 'glgui_frame.cc' || echo '$(srcdir)/'`glgui_frame.cc
+
+libORXglgui_a-glgui_frame.obj: glgui_frame.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXglgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXglgui_a-glgui_frame.obj -MD -MP -MF "$(DEPDIR)/libORXglgui_a-glgui_frame.Tpo" -c -o libORXglgui_a-glgui_frame.obj `if test -f 'glgui_frame.cc'; then $(CYGPATH_W) 'glgui_frame.cc'; else $(CYGPATH_W) '$(srcdir)/glgui_frame.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXglgui_a-glgui_frame.Tpo" "$(DEPDIR)/libORXglgui_a-glgui_frame.Po"; else rm -f "$(DEPDIR)/libORXglgui_a-glgui_frame.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='glgui_frame.cc' object='libORXglgui_a-glgui_frame.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXglgui_a-glgui_frame.Po' tmpdepfile='$(DEPDIR)/libORXglgui_a-glgui_frame.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXglgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXglgui_a-glgui_frame.obj `if test -f 'glgui_frame.cc'; then $(CYGPATH_W) 'glgui_frame.cc'; else $(CYGPATH_W) '$(srcdir)/glgui_frame.cc'; fi`
+
+libORXglgui_a-glgui_window.o: glgui_window.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXglgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXglgui_a-glgui_window.o -MD -MP -MF "$(DEPDIR)/libORXglgui_a-glgui_window.Tpo" -c -o libORXglgui_a-glgui_window.o `test -f 'glgui_window.cc' || echo '$(srcdir)/'`glgui_window.cc; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXglgui_a-glgui_window.Tpo" "$(DEPDIR)/libORXglgui_a-glgui_window.Po"; else rm -f "$(DEPDIR)/libORXglgui_a-glgui_window.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='glgui_window.cc' object='libORXglgui_a-glgui_window.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXglgui_a-glgui_window.Po' tmpdepfile='$(DEPDIR)/libORXglgui_a-glgui_window.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXglgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXglgui_a-glgui_window.o `test -f 'glgui_window.cc' || echo '$(srcdir)/'`glgui_window.cc
+
+libORXglgui_a-glgui_window.obj: glgui_window.cc
+@am__fastdepCXX_TRUE@	if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXglgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libORXglgui_a-glgui_window.obj -MD -MP -MF "$(DEPDIR)/libORXglgui_a-glgui_window.Tpo" -c -o libORXglgui_a-glgui_window.obj `if test -f 'glgui_window.cc'; then $(CYGPATH_W) 'glgui_window.cc'; else $(CYGPATH_W) '$(srcdir)/glgui_window.cc'; fi`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/libORXglgui_a-glgui_window.Tpo" "$(DEPDIR)/libORXglgui_a-glgui_window.Po"; else rm -f "$(DEPDIR)/libORXglgui_a-glgui_window.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='glgui_window.cc' object='libORXglgui_a-glgui_window.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/libORXglgui_a-glgui_window.Po' tmpdepfile='$(DEPDIR)/libORXglgui_a-glgui_window.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libORXglgui_a_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libORXglgui_a-glgui_window.obj `if test -f 'glgui_window.cc'; then $(CYGPATH_W) 'glgui_window.cc'; else $(CYGPATH_W) '$(srcdir)/glgui_window.cc'; fi`
 uninstall-info-am:
 
Index: trunk/src/lib/gui/gl_gui/glgui_box.cc
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_box.cc	(revision 5364)
+++ trunk/src/lib/gui/gl_gui/glgui_box.cc	(revision 5364)
@@ -0,0 +1,55 @@
+/*
+   orxonox - the future of 3D-vertical-scrollers
+
+   Copyright (C) 2004 orx
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   ### File Specific:
+   main-programmer: Benjamin Grauer
+   co-programmer: ...
+*/
+
+#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_GUI
+
+#include "glgui_box.h"
+
+using namespace std;
+
+/**
+ * standard constructor
+*/
+GLGuiBox::GLGuiBox ()
+{
+  this->init();
+
+}
+
+
+/**
+ * standard deconstructor
+*/
+GLGuiBox::~GLGuiBox()
+{
+
+}
+
+/**
+ * initializes the GUI-element
+ */
+void GLGuiBox::init()
+{
+  this->setClassID(CL_GLGUI_BOX, "GLGuiBox");
+
+}
+
+/**
+ * draws the GLGuiBox
+ */
+void GLGuiBox::draw()
+{
+
+}
Index: trunk/src/lib/gui/gl_gui/glgui_box.h
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_box.h	(revision 5364)
+++ trunk/src/lib/gui/gl_gui/glgui_box.h	(revision 5364)
@@ -0,0 +1,32 @@
+/*!
+ * @file glgui_.h
+ * The gl_box widget of th openglGUI
+ *
+ */
+
+#ifndef _GLGUI_BOX_H
+#define _GLGUI_BOX_H
+
+#include "glgui_container.h"
+
+// FORWARD DECLARATION
+
+//! This is BOX part of the openglGUI class
+/**
+ *
+ */
+class GLGuiBox : public GLGuiContainer {
+
+ public:
+  GLGuiBox();
+  virtual ~GLGuiBox();
+
+  void init();
+
+  virtual void draw();
+
+ private:
+
+};
+
+#endif /* _GLGUI__H */
Index: trunk/src/lib/gui/gl_gui/glgui_container.cc
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_container.cc	(revision 5363)
+++ trunk/src/lib/gui/gl_gui/glgui_container.cc	(revision 5364)
@@ -16,5 +16,8 @@
 #define DEBUG_SPECIAL_MODULE DEBUG_MODULE_GUI
 
-#include "glgui_.h"
+#include "glgui_container.h"
+
+#include "list.h"
+
 
 using namespace std;
@@ -23,8 +26,8 @@
  * standard constructor
 */
-GLGui::GLGui ()
+GLGuiContainer::GLGuiContainer ()
 {
   this->init();
-
+  this->children = new tList<GLGuiWidget>;
 }
 
@@ -33,7 +36,7 @@
  * standard deconstructor
 */
-GLGui::~GLGui()
+GLGuiContainer::~GLGuiContainer()
 {
-
+  delete this->children;
 }
 
@@ -41,15 +44,40 @@
  * initializes the GUI-element
  */
-GLGui::init()
+void GLGuiContainer::init()
 {
-  this->setClassID(CL_GLGUI_, "GLGui");
+  this->setClassID(CL_GLGUI_CONTAINER, "GLGuiContainer");
 
 }
 
-/**
- * draws the GLGui
- */
-void GLGui::draw()
+void GLGuiContainer::showAll()
+{
+
+  tIterator<GLGuiWidget>* itC = this->children->getIterator();
+  GLGuiWidget* enumC = itC->firstElement();
+  while (enumC != NULL)
+  {
+    if (enumC->isA(CL_GLGUI_CONTAINER))
+      static_cast<GLGuiContainer*>(enumC)->showAll();
+    else
+     enumC->show();
+    enumC = itC->nextElement();
+  }
+  delete itC;
+
+  this->show();
+
+}
+
+void GLGuiContainer::hideAll()
 {
 
 }
+
+
+/**
+ * draws the GLGuiContainer
+ */
+void GLGuiContainer::draw()
+{
+
+}
Index: trunk/src/lib/gui/gl_gui/glgui_container.h
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_container.h	(revision 5363)
+++ trunk/src/lib/gui/gl_gui/glgui_container.h	(revision 5364)
@@ -1,14 +1,15 @@
 /*!
- * @file glgui_.h
- * The gl_ widget of th openglGUI
+ * @file glgui_container.h
+ * The gl_container widget of th openglGUI
  *
  */
 
-#ifndef _GLGUI__H
-#define _GLGUI__H
+#ifndef _GLGUI_CONTAINER_H
+#define _GLGUI_CONTAINER_H
 
-#include "base_object.h"
+#include "glgui_widget.h"
 
 // FORWARD DECLARATION
+template<class T> class tList;
 
 //! This is part of the openglGUI class
@@ -16,15 +17,19 @@
  *
  */
-class GLGui : public GLGui {
+class GLGuiContainer : public GLGuiWidget {
 
  public:
-  GLGui();
-  virtual ~GLGui();
+  GLGuiContainer();
+  virtual ~GLGuiContainer();
 
   void init();
+
+  void hideAll();
+  void showAll();
 
   virtual void draw();
 
  private:
+  tList<GLGuiWidget>*           children;
 
 };
Index: trunk/src/lib/gui/gl_gui/glgui_frame.cc
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_frame.cc	(revision 5364)
+++ trunk/src/lib/gui/gl_gui/glgui_frame.cc	(revision 5364)
@@ -0,0 +1,55 @@
+/*
+   orxonox - the future of 3D-vertical-scrollers
+
+   Copyright (C) 2004 orx
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   ### File Specific:
+   main-programmer: Benjamin Grauer
+   co-programmer: ...
+*/
+
+#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_GUI
+
+#include "glgui_frame.h"
+
+using namespace std;
+
+/**
+ * standard constructor
+*/
+GLGuiFrame::GLGuiFrame ()
+{
+  this->init();
+
+}
+
+
+/**
+ * standard deconstructor
+*/
+GLGuiFrame::~GLGuiFrame()
+{
+
+}
+
+/**
+ * initializes the GUI-element
+ */
+void GLGuiFrame::init()
+{
+  this->setClassID(CL_GLGUI_FRAME, "GLGuiFrame");
+
+}
+
+/**
+ * draws the GLGuiFrame
+ */
+void GLGuiFrame::draw()
+{
+
+}
Index: trunk/src/lib/gui/gl_gui/glgui_frame.h
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_frame.h	(revision 5364)
+++ trunk/src/lib/gui/gl_gui/glgui_frame.h	(revision 5364)
@@ -0,0 +1,32 @@
+/*!
+ * @file glgui_frame.h
+ * The gl_frame widget of th openglGUI
+ *
+ */
+
+#ifndef _GLGUI_FRAME_H
+#define _GLGUI_FRAME_H
+
+#include "glgui_container.h"
+
+// FORWARD DECLARATION
+
+//! This is Frame part of the openglGUI class
+/**
+ *
+ */
+class GLGuiFrame : public GLGuiContainer {
+
+ public:
+  GLGuiFrame();
+  virtual ~GLGuiFrame();
+
+  void init();
+
+  virtual void draw();
+
+ private:
+
+};
+
+#endif /* _GLGUI__H */
Index: trunk/src/lib/gui/gl_gui/glgui_pushbutton.cc
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_pushbutton.cc	(revision 5363)
+++ trunk/src/lib/gui/gl_gui/glgui_pushbutton.cc	(revision 5364)
@@ -16,5 +16,5 @@
 #define DEBUG_SPECIAL_MODULE DEBUG_MODULE_GUI
 
-#include "glgui_.h"
+#include "glgui_pushbutton.h"
 
 using namespace std;
@@ -23,5 +23,5 @@
  * standard constructor
 */
-GLGui::GLGui ()
+GLGuiPushButton::GLGuiPushButton ()
 {
   this->init();
@@ -33,5 +33,5 @@
  * standard deconstructor
 */
-GLGui::~GLGui()
+GLGuiPushButton::~GLGuiPushButton()
 {
 
@@ -41,14 +41,14 @@
  * initializes the GUI-element
  */
-GLGui::init()
+void GLGuiPushButton::init()
 {
-  this->setClassID(CL_GLGUI_, "GLGui");
+  this->setClassID(CL_GLGUI_PUSHBUTTON, "GLGuiPushButton");
 
 }
 
 /**
- * draws the GLGui
+ * draws the GLGuiPushButton
  */
-void GLGui::draw()
+void GLGuiPushButton::draw()
 {
 
Index: trunk/src/lib/gui/gl_gui/glgui_pushbutton.h
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_pushbutton.h	(revision 5363)
+++ trunk/src/lib/gui/gl_gui/glgui_pushbutton.h	(revision 5364)
@@ -1,12 +1,12 @@
 /*!
- * @file glgui_.h
- * The gl_ widget of th openglGUI
+ * @file glgui_pushbutton.h
+ * The gl_pushbutton widget of th openglGUI
  *
  */
 
-#ifndef _GLGUI__H
-#define _GLGUI__H
+#ifndef _GLGUI_PUSHBUTTON_H
+#define _GLGUI_PUSHBUTTON_H
 
-#include "base_object.h"
+#include "glgui_button.h"
 
 // FORWARD DECLARATION
@@ -16,9 +16,9 @@
  *
  */
-class GLGui : public GLGui {
+class GLGuiPushButton : public GLGuiButton {
 
  public:
-  GLGui();
-  virtual ~GLGui();
+  GLGuiPushButton();
+  virtual ~GLGuiPushButton();
 
   void init();
@@ -30,3 +30,3 @@
 };
 
-#endif /* _GLGUI__H */
+#endif /* _GLGUI_PUSHBUTTON_H */
Index: trunk/src/lib/gui/gl_gui/glgui_widget.cc
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_widget.cc	(revision 5363)
+++ trunk/src/lib/gui/gl_gui/glgui_widget.cc	(revision 5364)
@@ -26,5 +26,5 @@
 {
   this->init();
-
+  this->setVisibility(true);
 }
 
Index: trunk/src/lib/gui/gl_gui/glgui_widget.h
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_widget.h	(revision 5363)
+++ trunk/src/lib/gui/gl_gui/glgui_widget.h	(revision 5364)
@@ -23,4 +23,8 @@
   void init();
 
+  void show();
+  void hide();
+
+
   virtual void draw() = 0;
   virtual void update() = 0;
Index: trunk/src/lib/gui/gl_gui/glgui_window.cc
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_window.cc	(revision 5364)
+++ trunk/src/lib/gui/gl_gui/glgui_window.cc	(revision 5364)
@@ -0,0 +1,55 @@
+/*
+   orxonox - the future of 3D-vertical-scrollers
+
+   Copyright (C) 2004 orx
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   ### File Specific:
+   main-programmer: Benjamin Grauer
+   co-programmer: ...
+*/
+
+#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_GUI
+
+#include "glgui_window.h"
+
+using namespace std;
+
+/**
+ * standard constructor
+*/
+GLGuiWindow::GLGuiWindow ()
+{
+  this->init();
+
+}
+
+
+/**
+ * standard deconstructor
+*/
+GLGuiWindow::~GLGuiWindow()
+{
+
+}
+
+/**
+ * initializes the GUI-element
+ */
+void GLGuiWindow::init()
+{
+  this->setClassID(CL_GLGUI_WINDOW, "GLGuiWindow");
+
+}
+
+/**
+ * draws the GLGuiWindow
+ */
+void GLGuiWindow::draw()
+{
+
+}
Index: trunk/src/lib/gui/gl_gui/glgui_window.h
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_window.h	(revision 5364)
+++ trunk/src/lib/gui/gl_gui/glgui_window.h	(revision 5364)
@@ -0,0 +1,32 @@
+/*!
+ * @file glgui_window.h
+ * The gl_WINDOW widget of th openglGUI
+ *
+ */
+
+#ifndef _GLGUI_WINDOW_H
+#define _GLGUI_WINDOW_H
+
+#include "glgui_container.h"
+
+// FORWARD DECLARATION
+
+//! This is window part of the openglGUI class
+/**
+ *
+ */
+class GLGuiWindow : public GLGuiContainer {
+
+ public:
+  GLGuiWindow();
+  virtual ~GLGuiWindow();
+
+  void init();
+
+  virtual void draw();
+
+ private:
+
+};
+
+#endif /* _GLGUI__H */
