Index: /orxonox/trunk/gui/orxonox_gui.cc
===================================================================
--- /orxonox/trunk/gui/orxonox_gui.cc	(revision 2585)
+++ /orxonox/trunk/gui/orxonox_gui.cc	(revision 2586)
@@ -100,4 +100,9 @@
 /* WIDGET */
 
+void Widget::init()
+{
+  return;
+}
+
 void Widget::connectSignal (char* event, gint (*signal)(GtkWidget*, GdkEvent*, void *))
 {
@@ -133,4 +138,8 @@
 void Widget::walkThrough (void (*function)(Widget*))
 {
+  /**
+   * Moves Through all the Widgets downwards from this and executes the function on them.
+   * function must be of type void and takes a Widget* as an Input.
+   */
   function(this);
   switch (this->is_option)
@@ -152,5 +161,5 @@
 {
   /** 
-   * This is For listing all the Options witch are located beneath this Widget.
+   * This is for listing the option of "widget"
    */
   if (widget->is_option >= 1)
@@ -161,5 +170,5 @@
 {
   /** 
-   * This is For listing all the Options witch are located beneath this Widget.
+   * This is for setting the option of "widget"
    */
   if (widget->is_option >= 1)
@@ -168,9 +177,12 @@
 
 /* CONTAINERS*/
-
+void Container::init (void)
+{
+  return;
+}
 void Container::fill (Widget *lowerWidget)
 {
   /**
-   * fill any given Container with a lowerwidet
+   * fills any given Container with a lowerwidet
    */
   if (this->down == NULL)
@@ -192,4 +204,30 @@
    * Creating a Window
    */
+  this->init();
+}
+
+Window::Window (char* windowName)
+{
+  /**
+   * Creating a Window with passing a name
+   */
+  this->init();
+  this->setTitle (windowName);
+}
+
+Window::~Window ()
+{
+  /**
+   * Destoying a Window (very BAD implemented)
+   */
+  gtk_widget_hide (widget);
+  
+}
+
+void Window::init()
+{
+  /**
+  *initializes a new Window
+  */
   is_option = -1;
   next = NULL;
@@ -197,31 +235,8 @@
   widget = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_policy (GTK_WINDOW(widget), TRUE, TRUE, TRUE);
-  gtk_container_set_border_width (GTK_CONTAINER (widget), 3);
-}
-
-Window::Window (char* windowName)
-{
-  /**
-   * Creating a Window with passing a name
-   */
-  is_option = -1;
-  next = NULL;
-  down = NULL;
-  widget = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  gtk_window_set_policy (GTK_WINDOW (widget), TRUE, TRUE, TRUE);
-  gtk_container_set_border_width (GTK_CONTAINER (widget), 3);
 #if !defined(__WIN32__)
   gtk_window_set_decorated (GTK_WINDOW (widget), FALSE);
 #endif 
-  this->setTitle (windowName);
-}
-
-Window::~Window ()
-{
-  /**
-   * Destoying a Window (very BAD implemented)
-   */
-  gtk_widget_hide (widget);
-  
+  gtk_container_set_border_width (GTK_CONTAINER (widget), 3);
 }
 
@@ -263,4 +278,23 @@
    * Creates a new Frame without a name
    */
+  this->init();
+}
+Frame::Frame (char* title)
+{
+  /**
+   * Creates a new Frame with name title
+   */
+  this->init();
+  this->setTitle(title);
+}
+Frame::~Frame ()
+{
+  /**
+   * Destroys given Frame (not implemented yet)
+   */
+}
+
+void Frame::init()
+{
   is_option = -1;
   next = NULL;
@@ -269,21 +303,4 @@
   gtk_container_set_border_width (GTK_CONTAINER (widget), 3);
 }
-Frame::Frame (char* title)
-{
-  /**
-   * Creates a new Frame with name title
-   */
-  is_option = -1;
-  next = NULL;
-  down = NULL;
-  widget = gtk_frame_new (title);
-  gtk_container_set_border_width (GTK_CONTAINER (widget), 3);
-}
-Frame::~Frame ()
-{
-  /**
-   * Destroys given Frame (not implemented yet)
-   */
-}
 
 void Frame::setTitle (char* title)
@@ -297,4 +314,18 @@
 // EVENTBOX //
 EventBox::EventBox ()
+{
+  this->init();
+}
+
+EventBox::EventBox (char* title)
+{
+  /**
+   * Creates a new EventBox with name title
+   */
+  this->init();
+  this->setTitle(title);
+
+}
+void EventBox::init(void)
 {
   is_option = -1;
@@ -303,18 +334,8 @@
   widget = gtk_event_box_new ();
   gtk_container_set_border_width (GTK_CONTAINER (widget), 3);
-}
-
-EventBox::EventBox (char* title)
-{
-  /**
-   * Creates a new EventBox with name title
-   */
-  is_option = -1;
-  next = NULL;
-  down = NULL;
-  widget = gtk_event_box_new ();
-  gtk_container_set_border_width (GTK_CONTAINER (widget), 3);
-
-}
+ 
+}
+
+
 void EventBox::setTitle (char* title)
 {
@@ -336,8 +357,5 @@
    * Creates a new horizontal Box
    */
-  is_option = -2;
-  next = NULL;
-  down = NULL;
-  widget = gtk_hbox_new(FALSE, 0);
+  this->init('h');
 }
 Box::Box (char boxtype)
@@ -346,4 +364,15 @@
    * Creates a new Box if boxtype is 'v' it will be vertically, if 'h' it will be horizontally
    */
+  this->init(boxtype);
+}
+Box::~Box ()
+{
+  /**
+   * Destroys given Frame (not implemented yet)
+   */
+}
+
+void Box::init(char boxtype)
+{
   is_option = -2;
   next = NULL;
@@ -359,10 +388,4 @@
 }
 
-Box::~Box ()
-{
-  /**
-   * Destroys given Frame (not implemented yet)
-   */
-}
 
 void Box::fill (Widget *lowerWidget)
@@ -394,8 +417,15 @@
   widget = gtk_image_new_from_file (imagename);
 }
+void Image::init()
+{
+  
+}
 
 
 /* OPTION */
-
+void Option::init()
+{
+  return;
+}
 void Option::setFlagName (char* flagname, int defaultvalue)
 {
@@ -423,12 +453,24 @@
    * Creates a new Button with name buttonname
    */
+  this->init();
+  this->setTitle(buttonname);
+}
+
+void Button::init(void)
+{
   is_option = 0;
   value = 0;
   next = NULL;
-  option_name = buttonname;
+  option_name ="";
   flag_name = "";
   flag_name_short = "";
   default_value = 0;
-  widget = gtk_button_new_with_label (buttonname);
+  widget = gtk_button_new_with_label ("");
+}
+
+void Button::setTitle (char *title)
+{
+  option_name = title;
+  gtk_button_set_label (GTK_BUTTON(widget), title);
 }
 
@@ -443,14 +485,28 @@
    * Creates a new CheckButton with name buttonname
    */
+  this->init();
+  this->setTitle(buttonname);
+
+  this->connectSignal ("clicked", this->OptionChange);
+}
+CheckButton::~CheckButton()
+{
+}
+
+void CheckButton::init(void)
+{
   is_option = 1;
   value = 0;
   next = NULL;
-  option_name = buttonname;
+  option_name = "";
   flag_name = "";
   flag_name_short = "";
   default_value = 0;
-  widget = gtk_check_button_new_with_label (buttonname);
-
-  this->connectSignal ("clicked", this->OptionChange);
+  widget = gtk_check_button_new_with_label ("");
+}
+void CheckButton::setTitle(char* title)
+{
+  option_name = title;
+  gtk_button_set_label(GTK_BUTTON(widget), title);
 }
 
@@ -476,15 +532,32 @@
    * Creates a new Slider with name slidername a beginning value of start and an end value of end.
    */
+  this->init(start, end);
+  this->setValue(start);
+  this->setTitle(slidername);
+  this->connectSignal ("value_changed", this->OptionChange);
+}
+
+Slider::~Slider()
+{
+}
+
+void Slider::init(int start, int end)
+{
   is_option = 2;
   value = 0;
   next = NULL;
-  option_name = slidername;
+  option_name = "";
   flag_name = "";
   flag_name_short = "";
   default_value = 0;
   widget = gtk_hscale_new_with_range (start, end, 5);
-  value = start;
-
-  this->connectSignal ("value_changed", this->OptionChange);
+}
+void Slider::setTitle(char* title)
+{
+  option_name = title;
+}
+void Slider::setValue(int value)
+{
+  this->value = value;
 }
 
@@ -534,4 +607,8 @@
 }
 
+void Menu::init(void)
+{
+}
+
 gint Menu::OptionChange (GtkWidget *widget, Widget* menu)
 {
@@ -551,4 +628,20 @@
 Label:: Label ()
 {
+  this->init();
+}
+
+Label:: Label (char* text)
+{
+  is_option = 0;
+  next = NULL;
+  widget = gtk_label_new (text);
+  gtk_label_set_line_wrap (GTK_LABEL(widget), TRUE);
+}
+
+Label::~Label ()
+{}
+
+void Label::init(void)
+{
   is_option = 0;
   next = NULL;
@@ -557,15 +650,4 @@
   gtk_label_set_line_wrap (GTK_LABEL(widget), TRUE);
 }
-
-Label:: Label (char* text)
-{
-  is_option = 0;
-  next = NULL;
-  widget = gtk_label_new (text);
-  gtk_label_set_line_wrap (GTK_LABEL(widget), TRUE);
-}
-
-Label::~Label ()
-{}
   
 void Label::setText (char * text)
Index: /orxonox/trunk/gui/orxonox_gui.h
===================================================================
--- /orxonox/trunk/gui/orxonox_gui.h	(revision 2585)
+++ /orxonox/trunk/gui/orxonox_gui.h	(revision 2586)
@@ -29,11 +29,11 @@
 class Widget
 {
+ private:
  public:
   Widget* next;
   GtkWidget* widget;
+  virtual void init(void);
   int is_option;
 
-  //virtual void create ();
-  //  void addWidget ();
   void connectSignal (char* event, gint (*signal)(GtkWidget*, GdkEvent*, void *));
   void connectSignal (char* event, gint (*signal)(GtkWidget*, Widget *));
@@ -57,4 +57,5 @@
   
  public:
+  void init(void);
   Widget* down;
   void setBorderWidth (int borderwidth);
@@ -69,4 +70,5 @@
   Window (void);
   ~Window ();
+  void init ();
   
   void setTitle (char* title);
@@ -81,4 +83,5 @@
   Frame (void);
   ~Frame ();
+  void init(void);
   
   void setTitle (char* title);
@@ -91,5 +94,6 @@
   EventBox (void);
   ~EventBox ();
-
+  void init(void);
+  
   void setTitle (char* title);
 };
@@ -101,4 +105,5 @@
   Box (char boxtype);
   ~Box (void);
+  void init(char boxtype);
 
   Widget* down;
@@ -112,4 +117,5 @@
   Image (char* imgaename);
   ~Image ();
+  void init(void);
 };
 
@@ -118,5 +124,6 @@
  public:
   //virtual gint OptionChange (GtkWidget *widget, GdkEvent *event, gpointer data);
-  
+  void init(void);
+
   int value;
   char* option_name;
@@ -135,4 +142,7 @@
   Button (char* buttonname);
   ~Button (void);
+  void init(void);
+
+  void setTitle(char* title);
   
   void redraw();
@@ -145,4 +155,8 @@
   ~CheckButton (void);
   static gint OptionChange (GtkWidget* widget, Widget* checkbutton);
+  
+  void init(void);
+  void setTitle(char* title);
+
   void redraw ();
 };
@@ -153,4 +167,9 @@
   Slider (char* slidername,int start, int end);
   ~Slider ();
+  void init(int start, int end);
+
+  void setTitle(char* title);
+  void setValue(int value);
+
   static gint OptionChange (GtkWidget* widget, Widget* slider);
   void redraw();
@@ -162,4 +181,5 @@
   Menu (char* menuname, ...);
   ~Menu ();
+  void init(void);   /// HAS TO BE IMPLEMENTED!! most difficult :-)
 
   static gint OptionChange (GtkWidget* widget, Widget* menu);
@@ -173,4 +193,5 @@
   Label (char* text);
   ~Label ();
+  void init(void);
   
   void setText (char * text);
