Index: /branches/gui/src/lib/gui/gl/Makefile.am
===================================================================
--- /branches/gui/src/lib/gui/gl/Makefile.am	(revision 8690)
+++ /branches/gui/src/lib/gui/gl/Makefile.am	(revision 8691)
@@ -31,6 +31,5 @@
 		glgui_cursor.cc \
 		\
-		specials/glgui_notifier.cc \
-		specials/glgui_imagebutton.cc
+		specials/glgui_notifier.cc
 
 
@@ -59,6 +58,5 @@
 		glgui_cursor.h \
 		\
-		specials/glgui_notifier.h \
-		specials/glgui_imagebutton.h
+		specials/glgui_notifier.h
 
 EXTRA_DIST =
Index: anches/gui/src/lib/gui/gl/specials/glgui_imagebutton.cc
===================================================================
--- /branches/gui/src/lib/gui/gl/specials/glgui_imagebutton.cc	(revision 8690)
+++ 	(revision )
@@ -1,50 +1,0 @@
-/*
-   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_SHELL
-
-#include "glgui_imagebutton.h"
-#include "multi_line_text.h"
-
-#include "debug.h"
-
-namespace OrxGui
-{
-
-  GLGuiImageButton::GLGuiImageButton(const std::string& label, unsigned int levelID, const std::string& imageName, GLGuiImage* image)
-  : GLGuiPushButton(label)
-  {
-    this->imageName = imageName;
-    this->levelID = levelID;
-    this->image = image;
-  }
-
-  GLGuiImageButton::~GLGuiImageButton()
-  {}
-
-  void GLGuiImageButton::releasing(const Vector2D& pos, bool focused)
-  {
-
-  }
-
-  void GLGuiImageButton::receivedFocus()
-  {}
-  void GLGuiImageButton::removedFocus()
-  {}
-
-
-
-
-}
Index: anches/gui/src/lib/gui/gl/specials/glgui_imagebutton.h
===================================================================
--- /branches/gui/src/lib/gui/gl/specials/glgui_imagebutton.h	(revision 8690)
+++ 	(revision )
@@ -1,47 +1,0 @@
-/*!
- * @file shell.h
- * Definition of a on-screen-shell
- *
- * @todo Buffer Display in different Colors for different debug mode.
- * @todo choose color of the Font and the background.
- */
-
-#ifndef _GLGUI_IMAGEBUTTON_H
-#define _GLGUI_IMAGEBUTTON_H
-
-#include "glgui_pushbutton.h"
-#include "event_listener.h"
-
-
-#include <stack>
-
-class GLGuiImage;
-
-//! Namespace of the GLGuiImageButton of ORXONOX.
-namespace OrxGui
-{
-  class GLGuiImageButton : public GLGuiPushButton
-  {
-  public:
-    GLGuiImageButton(const std::string& label, unsigned int levelID, const std::string& imageName, GLGuiImage* image);
-    virtual ~GLGuiImageButton();
-
-
-  protected:
-    virtual void releasing(const Vector2D& pos, bool focused);
-    virtual void receivedFocus();
-    virtual void removedFocus();
-
-
-  private:
-    unsigned int        levelID;
-    std::string         imageName;
-    GLGuiImage*         image;
-
-  private:
-
-  };
-
-}
-
-#endif /* _GLGUI_IMAGEBUTTON_H */
Index: /branches/gui/src/story_entities/Makefile.am
===================================================================
--- /branches/gui/src/story_entities/Makefile.am	(revision 8690)
+++ /branches/gui/src/story_entities/Makefile.am	(revision 8691)
@@ -14,5 +14,7 @@
 		story_entities/movie_loader.cc \
 		story_entities/game_menu.cc \
-		story_entities/simple_game_menu.cc
+		story_entities/simple_game_menu.cc \
+		\
+		story_entities/menu/glgui_imagebutton.cc
 
 StoryEntities_HEADERS_ = \
@@ -29,3 +31,6 @@
 		story_entities/movie_loader.h \
 		story_entities/game_menu.h \
-		story_entities/simple_game_menu.h
+		story_entities/simple_game_menu.h \
+		\
+		story_entities/menu/glgui_imagebutton.h
+
Index: /branches/gui/src/story_entities/game_menu.cc
===================================================================
--- /branches/gui/src/story_entities/game_menu.cc	(revision 8690)
+++ /branches/gui/src/story_entities/game_menu.cc	(revision 8691)
@@ -35,5 +35,5 @@
 
 #include "glgui.h"
-#include "gui/gl/specials/glgui_notifier.h"
+#include "menu/glgui_imagebutton.h"
 
 //! This creates a Factory to fabricate a GameMenu
@@ -179,5 +179,11 @@
         if( se->isContainedInMenu())
         {
-          OrxGui::GLGuiWidget* button = new OrxGui::GLGuiPushButton(se->getName());
+          OrxGui::GLGuiImage* image = new OrxGui::GLGuiImage();
+          image->show();
+          image->setWidgetSize( 100, 100);
+
+          printf("%s\n", se->getMenuScreenshoot().c_str());
+          OrxGui::GLGuiImageButton* button = new OrxGui::GLGuiImageButton(se->getName(), se->getStoryID(), se->getMenuScreenshoot(), image);
+          button->connect(SIGNAL(button, startLevel), this, SLOT(GameMenu, startLevel));
           levelsBox->pack(button);
 
@@ -250,5 +256,9 @@
 
 
-
+void GameMenu::startLevel(int levelID)
+{
+  this->setNextStoryID( levelID);
+  this->stop();
+}
 
 /**
Index: /branches/gui/src/story_entities/menu/glgui_imagebutton.cc
===================================================================
--- /branches/gui/src/story_entities/menu/glgui_imagebutton.cc	(revision 8691)
+++ /branches/gui/src/story_entities/menu/glgui_imagebutton.cc	(revision 8691)
@@ -0,0 +1,51 @@
+/*
+   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_SHELL
+
+#include "glgui_imagebutton.h"
+
+#include "debug.h"
+
+namespace OrxGui
+{
+
+  GLGuiImageButton::GLGuiImageButton(const std::string& label, unsigned int levelID, const std::string& imageName, GLGuiImage* image)
+  : GLGuiPushButton(label)
+  {
+    this->imageName = imageName;
+    this->levelID = levelID;
+    this->image = image;
+  }
+
+  GLGuiImageButton::~GLGuiImageButton()
+  {}
+
+  void GLGuiImageButton::releasing(const Vector2D& pos, bool focused)
+  {
+    this->emit(startLevel(this->levelID));
+  }
+
+  void GLGuiImageButton::receivedFocus()
+  {
+    this->image->loadImageFromFile(this->imageName);
+  }
+  void GLGuiImageButton::removedFocus()
+  {}
+
+
+
+
+}
Index: /branches/gui/src/story_entities/menu/glgui_imagebutton.h
===================================================================
--- /branches/gui/src/story_entities/menu/glgui_imagebutton.h	(revision 8691)
+++ /branches/gui/src/story_entities/menu/glgui_imagebutton.h	(revision 8691)
@@ -0,0 +1,46 @@
+/*!
+ * @file shell.h
+ * Definition of a on-screen-shell
+ *
+ * @todo Buffer Display in different Colors for different debug mode.
+ * @todo choose color of the Font and the background.
+ */
+
+#ifndef _GLGUI_IMAGEBUTTON_H
+#define _GLGUI_IMAGEBUTTON_H
+
+#include "glgui_pushbutton.h"
+#include "event_listener.h"
+
+#include "glgui_image.h"
+
+//! Namespace of the GLGuiImageButton of ORXONOX.
+namespace OrxGui
+{
+  class GLGuiImageButton : public GLGuiPushButton
+  {
+  public:
+    GLGuiImageButton(const std::string& label, unsigned int levelID, const std::string& imageName, GLGuiImage* image);
+    virtual ~GLGuiImageButton();
+
+
+    DeclareSignal1(startLevel, int);
+
+  protected:
+    virtual void releasing(const Vector2D& pos, bool focused);
+    virtual void receivedFocus();
+    virtual void removedFocus();
+
+
+  private:
+    unsigned int        levelID;
+    std::string         imageName;
+    GLGuiImage*         image;
+
+  private:
+
+  };
+
+}
+
+#endif /* _GLGUI_IMAGEBUTTON_H */
