Index: branches/new_class_id/src/lib/gui/gl/glgui_bar.cc
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_bar.cc	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_bar.cc	(revision 9689)
@@ -23,4 +23,5 @@
 {
 
+  NewObjectListDefinition(GLGuiBar);
   /**
    * @brief standard constructor
@@ -44,5 +45,5 @@
   void GLGuiBar::init()
   {
-    this->setClassID(CL_GLGUI_BAR, "GLGuiBar");
+    this->registerObject(this, GLGuiBar::_objectList);
 
     this->setFrontColor(_changedValueColor, true);
Index: branches/new_class_id/src/lib/gui/gl/glgui_bar.h
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_bar.h	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_bar.h	(revision 9689)
@@ -21,5 +21,5 @@
   class GLGuiBar : public GLGuiWidget
   {
-
+    NewObjectListDeclaration(GLGuiBar);
   public:
     GLGuiBar();
Index: branches/new_class_id/src/lib/gui/gl/glgui_box.cc
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_box.cc	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_box.cc	(revision 9689)
@@ -22,4 +22,5 @@
 namespace OrxGui
 {
+  NewObjectListDefinition(GLGuiBox);
   /**
    * standard constructor
@@ -52,5 +53,5 @@
   void GLGuiBox::init()
   {
-    this->setClassID(CL_GLGUI_BOX, "GLGuiBox");
+    this->registerObject(this, GLGuiBox::_objectList);
   }
 
@@ -149,5 +150,5 @@
     while (itC != this->_children.end())
     {
-      if ((*itC)->isA(CL_GLGUI_CONTAINER))
+      if ((*itC)->isA(GLGuiContainer::classID()))
         static_cast<GLGuiContainer*>(*itC)->showAll();
       else
@@ -164,5 +165,5 @@
     while (itC != this->_children.end())
     {
-      if ((*itC)->isA(CL_GLGUI_CONTAINER))
+      if ((*itC)->isA(GLGuiContainer::classID()))
         static_cast<GLGuiContainer*>(*itC)->hideAll();
       else
Index: branches/new_class_id/src/lib/gui/gl/glgui_box.h
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_box.h	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_box.h	(revision 9689)
@@ -19,5 +19,5 @@
   class GLGuiBox : public GLGuiContainer
   {
-
+    NewObjectListDeclaration(GLGuiBox);
   public:
     GLGuiBox(OrxGui::Orientation orientation = OrxGui::Vertical);
Index: branches/new_class_id/src/lib/gui/gl/glgui_button.cc
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_button.cc	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_button.cc	(revision 9689)
@@ -23,4 +23,5 @@
 namespace OrxGui
 {
+  NewObjectListDefinition(GLGuiButton);
   /**
    * standard constructor
@@ -50,5 +51,5 @@
   void GLGuiButton::init()
   {
-    this->setClassID(CL_GLGUI_BUTTON, "GLGuiButton");
+    this->registerObject(this, GLGuiButton::_objectList);
 
     this->setSelectable(true);
Index: branches/new_class_id/src/lib/gui/gl/glgui_button.h
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_button.h	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_button.h	(revision 9689)
@@ -31,5 +31,5 @@
   class GLGuiButton : public GLGuiWidget
   {
-
+    NewObjectListDeclaration(GLGuiButton);
     public:
       GLGuiButton(const std::string& label);
Index: branches/new_class_id/src/lib/gui/gl/glgui_checkbutton.cc
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_checkbutton.cc	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_checkbutton.cc	(revision 9689)
@@ -22,5 +22,5 @@
 namespace OrxGui
 {
-
+  NewObjectListDefinition(GLGuiCheckButton);
 
   /**
@@ -49,5 +49,5 @@
   void GLGuiCheckButton::init()
   {
-    this->setClassID(CL_GLGUI_CHECKBUTTON, "GLGuiCheckButton");
+    this->registerObject(this, GLGuiCheckButton::_objectList);
   }
 
Index: branches/new_class_id/src/lib/gui/gl/glgui_checkbutton.h
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_checkbutton.h	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_checkbutton.h	(revision 9689)
@@ -21,5 +21,5 @@
   class GLGuiCheckButton : public GLGuiButton
   {
-
+    NewObjectListDeclaration(GLGuiCheckButton);
   public:
     GLGuiCheckButton(const std::string& label = "", bool active = false);
Index: branches/new_class_id/src/lib/gui/gl/glgui_colorselector.h
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_colorselector.h	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_colorselector.h	(revision 9689)
@@ -21,5 +21,5 @@
   class GLGui : public GLGui
   {
-
+    NewObjectListDeclaration(GLGuiColorSelector);
   public:
     GLGui();
Index: branches/new_class_id/src/lib/gui/gl/glgui_container.cc
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_container.cc	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_container.cc	(revision 9689)
@@ -20,5 +20,5 @@
 namespace OrxGui
 {
-
+  NewObjectListDefinition(GLGuiContainer);
   /**
    * standard constructor
@@ -41,5 +41,5 @@
   void GLGuiContainer::init()
   {
-    this->setClassID(CL_GLGUI_CONTAINER, "GLGuiContainer");
+    this->registerObject(this, GLGuiContainer::_objectList);
 
     this->setBackgroundTexture("gui_container_background.png");
Index: branches/new_class_id/src/lib/gui/gl/glgui_container.h
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_container.h	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_container.h	(revision 9689)
@@ -20,5 +20,5 @@
   class GLGuiContainer : public GLGuiWidget
   {
-
+    NewObjectListDeclaration(GLGuiContainer);
   public:
     GLGuiContainer();
Index: branches/new_class_id/src/lib/gui/gl/glgui_cursor.cc
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_cursor.cc	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_cursor.cc	(revision 9689)
@@ -23,5 +23,5 @@
 namespace OrxGui
 {
-
+  NewObjectListDefinition(GLGuiCursor);
   /**
    * standard constructor
@@ -55,5 +55,5 @@
   void GLGuiCursor::init()
   {
-    this->setClassID(CL_GLGUI_CURSOR, "GLGuiCursor");
+    this->registerObject(this, GLGuiCursor::_objectList);
 
     this->setBackgroundColor(Color(1.0, 1.0, 1.0, 1.0));
Index: branches/new_class_id/src/lib/gui/gl/glgui_cursor.h
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_cursor.h	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_cursor.h	(revision 9689)
@@ -26,5 +26,5 @@
   class GLGuiCursor : public GLGuiWidget, public EventListener
   {
-
+    NewObjectListDeclaration(GLGuiCursor);
   public:
     GLGuiCursor();
Index: branches/new_class_id/src/lib/gui/gl/glgui_fixedposition_box.cc
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_fixedposition_box.cc	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_fixedposition_box.cc	(revision 9689)
@@ -23,4 +23,5 @@
 namespace OrxGui
 {
+  NewObjectListDefinition(GLGuiFixedpositionBox);
   /**
    * standard constructor
@@ -29,4 +30,6 @@
       : GLGuiBox(orientation)
   {
+    this->registerObject(this, GLGuiFixedpositionBox::_objectList);
+
     this->subscribeEvent(ES_ALL, EV_VIDEO_RESIZE);
     this->setPosition(position);
Index: branches/new_class_id/src/lib/gui/gl/glgui_fixedposition_box.h
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_fixedposition_box.h	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_fixedposition_box.h	(revision 9689)
@@ -21,5 +21,5 @@
   class GLGuiFixedpositionBox : public OrxGui::GLGuiBox, EventListener
   {
-
+    NewObjectListDeclaration(GLGuiFixedpositionBox);
     public:
       GLGuiFixedpositionBox(OrxGui::Position position = OrxGui::Center, OrxGui::Orientation orientation = OrxGui::Vertical);
Index: branches/new_class_id/src/lib/gui/gl/glgui_frame.cc
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_frame.cc	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_frame.cc	(revision 9689)
@@ -21,5 +21,5 @@
 namespace OrxGui
 {
-
+  NewObjectListDefinition(GLGuiFrame);
   /**
    * standard constructor
@@ -44,5 +44,5 @@
   void GLGuiFrame::init()
   {
-    this->setClassID(CL_GLGUI_FRAME, "GLGuiFrame");
+    this->registerObject(this, GLGuiFrame::_objectList);
     this->child = NULL;
   }
@@ -71,5 +71,5 @@
     if (this->child != NULL)
     {
-      if (this->child->isA(CL_GLGUI_CONTAINER))
+      if (this->child->isA(GLGuiContainer::classID()))
         static_cast<GLGuiContainer*>(this->child)->showAll();
       else
@@ -83,5 +83,5 @@
     if (this->child != NULL)
     {
-      if (this->child->isA(CL_GLGUI_CONTAINER))
+      if (this->child->isA(GLGuiContainer::classID()))
         static_cast<GLGuiContainer*>(this->child)->hideAll();
       else
Index: branches/new_class_id/src/lib/gui/gl/glgui_frame.h
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_frame.h	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_frame.h	(revision 9689)
@@ -20,5 +20,5 @@
   class GLGuiFrame : public GLGuiContainer
   {
-
+    NewObjectListDeclaration(GLGuiFrame);
   public:
     GLGuiFrame();
Index: branches/new_class_id/src/lib/gui/gl/glgui_handler.cc
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_handler.cc	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_handler.cc	(revision 9689)
@@ -23,5 +23,4 @@
 #include "glgui_cursor.h"
 
-#include "class_list.h"
 #include <cassert>
 
@@ -35,5 +34,5 @@
 namespace OrxGui
 {
-
+  NewObjectListDefinition(GLGuiHandler);
   /**
    * standard constructor
@@ -41,5 +40,5 @@
   GLGuiHandler::GLGuiHandler ()
   {
-    this->setClassID(CL_GLGUI_HANDLER, "GLGuiHandler");
+    this->registerObject(this, GLGuiHandler::_objectList);
     this->setName("GLGuiHandler");
 
@@ -117,63 +116,49 @@
   {
     // retrieve Objects.
-    const std::list<BaseObject*>* objects = ClassList::getList(CL_GLGUI_WIDGET);
-
-    if (objects)
-    {
-      std::list<BaseObject*>::const_iterator it ;
-      std::list<BaseObject*>::const_iterator currentIt = objects->end();
+    NewObjectList<GLGuiWidget>::const_iterator it, currentIt;
+    currentIt = GLGuiWidget::objectList().end();
+
+    if (GLGuiWidget::selected() != NULL)
+    {
+      it = std::find(GLGuiWidget::objectList().begin(), GLGuiWidget::objectList().end(), GLGuiWidget::selected());
+      if (it != GLGuiWidget::objectList().end())
+      {
+        currentIt = it;
+        it++;
+      }
+    }
+    else
+    {
+      it = GLGuiWidget::objectList().begin();
+    }
+
+    bool cycledOnce = false;
+
+    for (; it != currentIt; ++it)
+    {
+      if (it == GLGuiWidget::objectList().end() && !cycledOnce)
+      {
+        it = GLGuiWidget::objectList().begin();
+        cycledOnce = true;
+      }
+
+      if ((*it)->selectable() && (*it)->isVisible())
+      {
+        (*it)->select();
+        return;
+      }
+    }
+
+  }
+
+  void GLGuiHandler::selectPrevious()
+  {
+    NewObjectList<GLGuiWidget>::const_iterator it, currentIt;
+    currentIt = GLGuiWidget::objectList().begin();
 
       if (GLGuiWidget::selected() != NULL)
       {
-        it = std::find(objects->begin(), objects->end(), GLGuiWidget::selected());
-        if (it != objects->end())
-        {
-          currentIt = it;
-          it++;
-        }
-      }
-      else
-      {
-        it = objects->begin();
-      }
-
-      bool cycledOnce = false;
-
-      for (; it != currentIt; ++it)
-      {
-        if (it == objects->end() && !cycledOnce)
-        {
-          it = objects->begin();
-          cycledOnce = true;
-        }
-
-        if (dynamic_cast<GLGuiWidget*>(*it)->selectable() && dynamic_cast<GLGuiWidget*>(*it)->isVisible())
-        {
-          dynamic_cast<GLGuiWidget*>(*it)->select();
-          return;
-        }
-      }
-
-    }
-    else
-    {
-      PRINTF(0)("NO GUI-ELEMENTS EXISTING\n");
-    }
-  }
-
-  void GLGuiHandler::selectPrevious()
-  {
-    // retrieve Objects.
-    const std::list<BaseObject*>* objects = ClassList::getList(CL_GLGUI_WIDGET);
-
-    if (objects)
-    {
-      std::list<BaseObject*>::const_iterator it ;
-      std::list<BaseObject*>::const_iterator currentIt = objects->begin();
-
-      if (GLGuiWidget::selected() != NULL)
-      {
-        it = std::find(objects->begin(), objects->end(), GLGuiWidget::selected());
-        if (it != objects->end())
+	it = std::find(GLGuiWidget::objectList().begin(), GLGuiWidget::objectList().end(), GLGuiWidget::selected());
+	if (it != GLGuiWidget::objectList().end())
         {
           currentIt = it;
@@ -183,5 +168,5 @@
       else
       {
-        it = objects->end();
+	it = GLGuiWidget::objectList().end();
       }
 
@@ -190,5 +175,5 @@
       for (; it != currentIt; --it)
       {
-        if (it == objects->end() && !cycledOnce)
+	if (it == GLGuiWidget::objectList().end() && !cycledOnce)
         {
           --it ;
@@ -196,16 +181,11 @@
         }
 
-        if (dynamic_cast<GLGuiWidget*>(*it)->selectable() && dynamic_cast<GLGuiWidget*>(*it)->isVisible())
-        {
-          dynamic_cast<GLGuiWidget*>(*it)->select();
+        if ((*it)->selectable() && (*it)->isVisible())
+        {
+          (*it)->select();
           return;
         }
       }
 
-    }
-    else
-    {
-      PRINTF(0)("NO GUI-ELEMENTS EXISTING\n");
-    }
   }
 
@@ -217,51 +197,51 @@
     {
       case EV_MOUSE_MOTION:
-        this->checkFocus();
-        break;
+      this->checkFocus();
+      break;
 
       case  EV_MOUSE_BUTTON_LEFT:
-        if (GLGuiWidget::mouseFocused() != NULL && event.bPressed)
-        {
-          // if clickable select the Widget.
-          if (GLGuiWidget::mouseFocused()->clickable())
-          {
-            Vector2D cursorPos = (this->_cursor != NULL) ? this->_cursor->getAbsCoor2D() : Vector2D(event.x, event.y);
-            GLGuiWidget::mouseFocused()->select();
-            GLGuiWidget::mouseFocused()->click(cursorPos - GLGuiWidget::mouseFocused()->getAbsCoor2D());
-          }
-        }
-        else if (GLGuiWidget::selected() != NULL && !event.bPressed)
-        {
-          if (GLGuiWidget::selected()->clickable())
-          {
-            Vector2D cursorPos = (this->_cursor != NULL) ? this->_cursor->getAbsCoor2D() : Vector2D(event.x, event.y);
-            GLGuiWidget::selected()->release(cursorPos - GLGuiWidget::selected()->getAbsCoor2D());
-          }
-        }
-
-        break;
+      if (GLGuiWidget::mouseFocused() != NULL && event.bPressed)
+      {
+        // if clickable select the Widget.
+        if (GLGuiWidget::mouseFocused()->clickable())
+        {
+          Vector2D cursorPos = (this->_cursor != NULL) ? this->_cursor->getAbsCoor2D() : Vector2D(event.x, event.y);
+          GLGuiWidget::mouseFocused()->select();
+          GLGuiWidget::mouseFocused()->click(cursorPos - GLGuiWidget::mouseFocused()->getAbsCoor2D());
+        }
+      }
+      else if (GLGuiWidget::selected() != NULL && !event.bPressed)
+      {
+        if (GLGuiWidget::selected()->clickable())
+        {
+          Vector2D cursorPos = (this->_cursor != NULL) ? this->_cursor->getAbsCoor2D() : Vector2D(event.x, event.y);
+          GLGuiWidget::selected()->release(cursorPos - GLGuiWidget::selected()->getAbsCoor2D());
+        }
+      }
+
+      break;
       case EV_LEAVE_STATE:
-        if (GLGuiWidget::selected() != NULL)
-          GLGuiWidget::selected()->unselect();
-
-        if (GLGuiWidget::mouseFocused() != NULL)
-          GLGuiWidget::mouseFocused()->breakMouseFocus();
-        break;
+      if (GLGuiWidget::selected() != NULL)
+        GLGuiWidget::selected()->unselect();
+
+      if (GLGuiWidget::mouseFocused() != NULL)
+        GLGuiWidget::mouseFocused()->breakMouseFocus();
+      break;
 
       case EV_VIDEO_RESIZE:
-        if (this->_cursor != NULL)
-          this->_cursor->setMaxBorders(Vector2D(event.resize.w, event.resize.h));
-        this->_resolution = Vector2D(event.resize.w, event.resize.h);
-        break;
+      if (this->_cursor != NULL)
+        this->_cursor->setMaxBorders(Vector2D(event.resize.w, event.resize.h));
+      this->_resolution = Vector2D(event.resize.w, event.resize.h);
+      break;
 
       case SDLK_TAB:
-        if (event.bPressed)
-        {
-          if (EventHandler::getInstance()->isPressed(SDLK_LSHIFT) || EventHandler::getInstance()->isPressed(SDLK_RSHIFT))
-            this->selectPrevious();
-          else
-            this->selectNext();
-        }
-        break;
+      if (event.bPressed)
+      {
+        if (EventHandler::getInstance()->isPressed(SDLK_LSHIFT) || EventHandler::getInstance()->isPressed(SDLK_RSHIFT))
+          this->selectPrevious();
+        else
+          this->selectNext();
+      }
+      break;
     }
 
@@ -304,11 +284,11 @@
   {
     // CHECK THE COLLISIONS.
-    const std::list<BaseObject*>* objects = ClassList::getList(CL_GLGUI_WIDGET);
-
-    if (objects != NULL && this->_cursor != NULL)
-    {
-      for (std::list<BaseObject*>::const_iterator it = objects->begin(); it != objects->end(); it++)
-      {
-        GLGuiWidget* widget = dynamic_cast<GLGuiWidget*>(*it);
+    if (this->_cursor != NULL)
+    {
+      for (NewObjectList<GLGuiWidget>::const_iterator it = GLGuiWidget::objectList().begin();
+	   it != GLGuiWidget::objectList().end();
+	   it++)
+      {
+        GLGuiWidget* widget = (*it);
 
         if (widget->isVisible() &&
Index: branches/new_class_id/src/lib/gui/gl/glgui_handler.h
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_handler.h	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_handler.h	(revision 9689)
@@ -19,5 +19,5 @@
   class GLGuiHandler : public EventListener
   {
-
+    NewObjectListDeclaration(GLGuiHandler);
   public:
     /** @returns a Pointer to the only object of this Class */
Index: branches/new_class_id/src/lib/gui/gl/glgui_image.cc
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_image.cc	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_image.cc	(revision 9689)
@@ -22,5 +22,5 @@
 namespace OrxGui
 {
-
+  NewObjectListDefinition(GLGuiImage);
   /**
    * standard constructor
@@ -45,5 +45,5 @@
   void GLGuiImage::init()
   {
-    this->setClassID(CL_GLGUI_IMAGE, "GLGuiImage");
+    this->registerObject(this, GLGuiImage::_objectList);
 
     this->setForegroundColor(Color(1,1,1,1));
Index: branches/new_class_id/src/lib/gui/gl/glgui_image.h
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_image.h	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_image.h	(revision 9689)
@@ -21,5 +21,5 @@
   class GLGuiImage : public GLGuiWidget
   {
-
+    NewObjectListDeclaration(GLGuiImage);
   public:
     GLGuiImage();
Index: branches/new_class_id/src/lib/gui/gl/glgui_inputline.cc
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_inputline.cc	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_inputline.cc	(revision 9689)
@@ -20,4 +20,5 @@
 namespace OrxGui
 {
+  NewObjectListDefinition(GLGuiInputLine);
   /**
    * @brief standard constructor
@@ -44,5 +45,5 @@
   void GLGuiInputLine::init()
   {
-    this->setClassID(CL_GLGUI_INPUTLINE, "GLGuiInputLine");
+    this->registerObject(this, GLGuiInputLine::_objectList);
 
     this->setFocusable(true);
Index: branches/new_class_id/src/lib/gui/gl/glgui_inputline.h
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_inputline.h	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_inputline.h	(revision 9689)
@@ -25,5 +25,5 @@
   class GLGuiInputLine : public OrxGui::GLGuiWidget
   {
-
+    NewObjectListDeclaration(GLGuiInputLine);
   public:
     GLGuiInputLine();
Index: branches/new_class_id/src/lib/gui/gl/glgui_mainwidget.cc
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_mainwidget.cc	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_mainwidget.cc	(revision 9689)
@@ -20,5 +20,5 @@
 namespace OrxGui
 {
-
+  NewObjectListDefinition(GLGuiMainWidget);
 
   /**
@@ -27,5 +27,5 @@
   GLGuiMainWidget::GLGuiMainWidget()
   {
-    this->setClassID(CL_GLGUI_MAIN_WIDGET, "GLGuiMainWidget");
+    this->registerObject(this, GLGuiMainWidget::_objectList);
     this->setName("GLGuiMainWidget");
   }
Index: branches/new_class_id/src/lib/gui/gl/glgui_mainwidget.h
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_mainwidget.h	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_mainwidget.h	(revision 9689)
@@ -15,5 +15,5 @@
   class GLGuiMainWidget : public GLGuiWidget
   {
-
+    NewObjectListDeclaration(GLGuiMainWidget);
   public:
     virtual ~GLGuiMainWidget(void);
Index: branches/new_class_id/src/lib/gui/gl/glgui_menu.cc
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_menu.cc	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_menu.cc	(revision 9689)
@@ -20,5 +20,5 @@
 namespace OrxGui
 {
-
+  NewObjectListDefinition(GLGuiMenu);
   /**
    * standard constructor
Index: branches/new_class_id/src/lib/gui/gl/glgui_menu.h
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_menu.h	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_menu.h	(revision 9689)
@@ -19,5 +19,5 @@
   class GLGuiMenu : public GLGuiMenu
   {
-
+    NewObjectListDeclaration(GLGuiMenu);
   public:
     GLGuiMenu();
Index: branches/new_class_id/src/lib/gui/gl/glgui_pushbutton.cc
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_pushbutton.cc	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_pushbutton.cc	(revision 9689)
@@ -23,5 +23,5 @@
 namespace OrxGui
 {
-
+  NewObjectListDefinition(GLGuiPushButton);
   /**
    * @brief standard constructor
@@ -58,5 +58,5 @@
   void GLGuiPushButton::init()
   {
-    this->setClassID(CL_GLGUI_PUSHBUTTON, "GLGuiPushButton");
+    this->registerObject(this, GLGuiPushButton::_objectList);
   }
 
Index: branches/new_class_id/src/lib/gui/gl/glgui_pushbutton.h
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_pushbutton.h	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_pushbutton.h	(revision 9689)
@@ -21,5 +21,5 @@
   class GLGuiPushButton : public GLGuiButton
   {
-
+    NewObjectListDeclaration(GLGuiPushButton);
   public:
     GLGuiPushButton(const std::string& label = "");
Index: branches/new_class_id/src/lib/gui/gl/glgui_slider.cc
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_slider.cc	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_slider.cc	(revision 9689)
@@ -23,5 +23,5 @@
 namespace OrxGui
 {
-
+  NewObjectListDefinition(GLGuiSlider);
   /**
    * @brief standard constructor
@@ -46,5 +46,5 @@
   {
 
-    this->setClassID(CL_GLGUI_SLIDER, "GLGuiSlider");
+    this->registerObject(this, GLGuiSlider::_objectList);
 
     this->setClickable(true);
Index: branches/new_class_id/src/lib/gui/gl/glgui_slider.h
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_slider.h	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_slider.h	(revision 9689)
@@ -21,5 +21,5 @@
   class GLGuiSlider : public GLGuiWidget
   {
-
+    NewObjectListDeclaration(GLGuiSlider);
   public:
     GLGuiSlider();
Index: branches/new_class_id/src/lib/gui/gl/glgui_table.cc
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_table.cc	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_table.cc	(revision 9689)
@@ -23,4 +23,5 @@
 namespace OrxGui
 {
+  NewObjectListDefinition(GLGuiTable);
   /**
    * @brief standard constructor
@@ -47,5 +48,5 @@
   void GLGuiTable::init()
   {
-    this->setClassID(CL_GLGUI_TABLE, "GLGuiTable");
+    this->registerObject(this, GLGuiTable::_objectList);
 
     this->setBorderTop(10);
Index: branches/new_class_id/src/lib/gui/gl/glgui_table.h
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_table.h	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_table.h	(revision 9689)
@@ -25,5 +25,5 @@
   class GLGuiTable : public OrxGui::GLGuiWidget
   {
-
+    NewObjectListDeclaration(GLGuiTable);
   public:
     GLGuiTable(unsigned int rows, unsigned int columns);
Index: branches/new_class_id/src/lib/gui/gl/glgui_text.cc
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_text.cc	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_text.cc	(revision 9689)
@@ -22,4 +22,5 @@
 namespace OrxGui
 {
+  NewObjectListDefinition(GLGuiText);
   /**
    * standard constructor
@@ -43,5 +44,5 @@
   void GLGuiText::init()
   {
-    this->setClassID(CL_GLGUI_TEXT, "GLGuiText");
+    this->registerObject(this, GLGuiText::_objectList);
 
     this->_text.setParent2D(this);
Index: branches/new_class_id/src/lib/gui/gl/glgui_text.h
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_text.h	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_text.h	(revision 9689)
@@ -20,5 +20,5 @@
   class GLGuiText : public GLGuiWidget
   {
-
+    NewObjectListDeclaration(GLGuiText);
   public:
     GLGuiText();
Index: branches/new_class_id/src/lib/gui/gl/glgui_textfield.cc
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_textfield.cc	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_textfield.cc	(revision 9689)
@@ -22,4 +22,5 @@
 namespace OrxGui
 {
+  NewObjectListDefinition(GLGuiTextfield);
   /**
    * standard constructor
@@ -43,5 +44,5 @@
   void GLGuiTextfield::init()
   {
-    this->setClassID(CL_GLGUI_TEXTFIELD, "GLGuiTextfield");
+    this->registerObject(this, GLGuiTextfield::_objectList);
 
     this->_text.setParent2D(this);
Index: branches/new_class_id/src/lib/gui/gl/glgui_textfield.h
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_textfield.h	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_textfield.h	(revision 9689)
@@ -20,5 +20,5 @@
   class GLGuiTextfield : public GLGuiWidget
   {
-
+    NewObjectListDeclaration(GLGuiTextfield);
   public:
     GLGuiTextfield();
Index: branches/new_class_id/src/lib/gui/gl/glgui_widget.cc
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_widget.cc	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_widget.cc	(revision 9689)
@@ -31,5 +31,5 @@
 namespace OrxGui
 {
-
+  NewObjectListDefinition(GLGuiWidget);
   /**
    * @brief standard constructor
@@ -95,5 +95,5 @@
   void GLGuiWidget::init()
   {
-    this->setClassID(CL_GLGUI_WIDGET, "GLGuiWidget");
+    this->registerObject(this, GLGuiWidget::_objectList);
 
     this->_focusable = false;
Index: branches/new_class_id/src/lib/gui/gl/glgui_widget.h
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_widget.h	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_widget.h	(revision 9689)
@@ -21,5 +21,4 @@
 namespace OrxGui
 {
-
   class GLGuiCursor;
 
@@ -31,4 +30,5 @@
   class GLGuiWidget : public Element2D
   {
+    NewObjectListDeclaration(GLGuiWidget);
   public:
     GLGuiWidget(GLGuiWidget* parent = NULL);
Index: branches/new_class_id/src/lib/gui/gl/glgui_window.cc
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_window.cc	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_window.cc	(revision 9689)
@@ -20,5 +20,5 @@
 namespace OrxGui
 {
-
+  NewObjectListDefinition(GLGuiWindow);
   /**
    * standard constructor
@@ -43,5 +43,5 @@
   void GLGuiWindow::init()
   {
-    this->setClassID(CL_GLGUI_WINDOW, "GLGuiWindow");
+    this->registerObject(this, GLGuiWindow::_objectList);
 
   }
Index: branches/new_class_id/src/lib/gui/gl/glgui_window.h
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glgui_window.h	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glgui_window.h	(revision 9689)
@@ -20,5 +20,5 @@
   class GLGuiWindow : public GLGuiContainer
   {
-
+    NewObjectListDeclaration(GLGuiWindow);
   public:
     GLGuiWindow();
Index: branches/new_class_id/src/lib/gui/gl/glmenu/glmenu_imagescreen.cc
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glmenu/glmenu_imagescreen.cc	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glmenu/glmenu_imagescreen.cc	(revision 9689)
@@ -25,6 +25,7 @@
 #include "util/loading/load_param.h"
 
+#include "class_id.h"
 CREATE_FACTORY(GLMenuImageScreen, CL_GLMENU_IMAGE_SCREEN);
-
+NewObjectListDefinitionID(GLMenuImageScreen, CL_GLMENU_IMAGE_SCREEN);
 
 /**
@@ -33,5 +34,5 @@
 GLMenuImageScreen::GLMenuImageScreen(const TiXmlElement* root)
 {
-  this->setClassID(CL_GLMENU_IMAGE_SCREEN, "GLMenuImageScreen");
+  this->registerObject(this, GLMenuImageScreen::_objectList);
   this->setName("GLMenuLoadScreen");
   // Select Our VU Meter Background Texture
@@ -58,17 +59,17 @@
 {
   LoadParam(root, "BackgroundImage", this, GLMenuImageScreen, setBackgroundImage)
-    .describe("sets the image to load onto the loadscreen");
+  .describe("sets the image to load onto the loadscreen");
 
   LoadParam(root, "BackgroundPS", this, GLMenuImageScreen, setPosScale)
-    .describe("The Position and Scale of the Background Image in %(0-1.0). PosX, PosY, SizeX, SizeY");
+  .describe("The Position and Scale of the Background Image in %(0-1.0). PosX, PosY, SizeX, SizeY");
 
   LoadParam(root, "BarImage", this, GLMenuImageScreen, setBarImage)
-    .describe("sets the image of the LoadingBar");
+  .describe("sets the image of the LoadingBar");
 
   LoadParam(root, "BarPS", this, GLMenuImageScreen, setBarPosScale)
-    .describe("The Position and Scale of the Loading Bar in %(0-1.0). PosX, PosY, SizeX, SizeY");
+  .describe("The Position and Scale of the Loading Bar in %(0-1.0). PosX, PosY, SizeX, SizeY");
 
   LoadParam(root, "ElementCount", this, GLMenuImageScreen, setMaximum)
-    .describe("The Count of elements to load into the bar (this is only a maximum value)");
+  .describe("The Count of elements to load into the bar (this is only a maximum value)");
 }
 
Index: branches/new_class_id/src/lib/gui/gl/glmenu/glmenu_imagescreen.h
===================================================================
--- branches/new_class_id/src/lib/gui/gl/glmenu/glmenu_imagescreen.h	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/glmenu/glmenu_imagescreen.h	(revision 9689)
@@ -15,5 +15,5 @@
 class GLMenuImageScreen : public BaseObject
 {
-
+  NewObjectListDeclaration(GLMenuImageScreen);
 public:
   GLMenuImageScreen (const TiXmlElement* root = NULL);
Index: branches/new_class_id/src/lib/gui/gl/specials/glgui_notifier.cc
===================================================================
--- branches/new_class_id/src/lib/gui/gl/specials/glgui_notifier.cc	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/specials/glgui_notifier.cc	(revision 9689)
@@ -23,5 +23,5 @@
 namespace OrxGui
 {
-
+  NewObjectListDefinition(GLGuiNotifier);
   /**
    * @brief standard constructor
@@ -29,5 +29,5 @@
   GLGuiNotifier::GLGuiNotifier ()
   {
-    this->setClassID(CL_GLGUI_NOTIFIER, "GLGuiNotifier");
+    this->registerObject(this, GLGuiNotifier::_objectList);
 
     // Element2D and generals
Index: branches/new_class_id/src/lib/gui/gl/specials/glgui_notifier.h
===================================================================
--- branches/new_class_id/src/lib/gui/gl/specials/glgui_notifier.h	(revision 9683)
+++ branches/new_class_id/src/lib/gui/gl/specials/glgui_notifier.h	(revision 9689)
@@ -24,4 +24,5 @@
   class GLGuiNotifier : public GLGuiWidget
   {
+    NewObjectListDeclaration(GLGuiNotifier);
   public:
     GLGuiNotifier();
@@ -67,5 +68,6 @@
       MultiLineText*    text;
 
-    } DisplayLine;
+    }
+    DisplayLine;
 
 
