Index: /orxonox/trunk/gui/orxonox_gui.cc
===================================================================
--- /orxonox/trunk/gui/orxonox_gui.cc	(revision 3146)
+++ /orxonox/trunk/gui/orxonox_gui.cc	(revision 3147)
@@ -22,7 +22,17 @@
    main-programmer: Benjamin Grauer
 
+   ToDO: 
+   way to start gui without GTK (textmode)
+   curl interface to Download cool stuff
+
+   make Windows grab Focus if it is open and release it when closed (only child-windows)
+   chain all the windows when starting the GUI (DANGER: performance!!)
+
+   widgets save themselve
+   good way to step through all the Widgets
+   ... many more ...
 */
 
-#include <iostream.h>
+#include <gtk/gtkmain.h>
 
 #include "orxonox_gui.h"
@@ -56,4 +66,5 @@
 OrxonoxGui::OrxonoxGui (int argc, char *argv[])
 {
+  
   gtk_init (&argc, &argv);
   gtk_rc_parse( "rc" );
Index: /orxonox/trunk/gui/orxonox_gui.h
===================================================================
--- /orxonox/trunk/gui/orxonox_gui.h	(revision 3146)
+++ /orxonox/trunk/gui/orxonox_gui.h	(revision 3147)
@@ -11,21 +11,10 @@
 #endif
 
+#include <iostream>
+using namespace std;
+
 #include "orxonox_gui_gtk.h"
 
 #include <stdlib.h>
-#include <gtk/gtkmain.h>
-#include <gtk/gtkwindow.h>
-#include <gtk/gtkframe.h>
-#include <gtk/gtkhbox.h>
-#include <gtk/gtkvbox.h>
-#include <gtk/gtkbutton.h>
-#include <gtk/gtkcheckbutton.h>
-#include <gtk/gtkhscale.h>
-#include <gtk/gtkoptionmenu.h>
-#include <gtk/gtkmenu.h>
-#include <gtk/gtkmenuitem.h>
-#include <gtk/gtklabel.h>
-#include <gtk/gtkimage.h>
-#include <gtk/gtkeventbox.h>
 
 //! Class that creates the OrxonoxGui
Index: /orxonox/trunk/gui/orxonox_gui_banner.cc
===================================================================
--- /orxonox/trunk/gui/orxonox_gui_banner.cc	(revision 3146)
+++ /orxonox/trunk/gui/orxonox_gui_banner.cc	(revision 3147)
@@ -25,5 +25,4 @@
 
 #include "orxonox_gui_banner.h"
-#include <iostream.h>
 
 /**
Index: /orxonox/trunk/gui/orxonox_gui_exec.cc
===================================================================
--- /orxonox/trunk/gui/orxonox_gui_exec.cc	(revision 3146)
+++ /orxonox/trunk/gui/orxonox_gui_exec.cc	(revision 3147)
@@ -125,7 +125,7 @@
 {
   int counter = 0;
-  while (counter < depth && ((widget->is_option>0
+  while (counter < depth && ((widget->isOption>0
 			      && (static_cast<Option*>(widget)->saveable) )
-			     || (widget->is_option<0
+			     || (widget->isOption<0
 				 && strcmp (static_cast<Packer*>(widget)->getGroupName(), ""))))
     {
@@ -135,5 +135,5 @@
   
   // check if it is a Packer, and if it is, check if it has a name and if there is something in it.
-  if (widget->is_option <0)
+  if (widget->isOption <0)
     {
       if (strcmp (static_cast<Packer*>(widget)->getGroupName(), ""))
@@ -148,7 +148,7 @@
 	}
     } 
-  //  if (widget->is_option == 0)
+  //  if (widget->isOption == 0)
   //    printf ("%s\n",widget->label);
-  if (widget->is_option >= 1)
+  if (widget->isOption >= 1)
     if  (static_cast<Option*>(widget)->saveable)
       {
@@ -219,9 +219,9 @@
 void OrxonoxGuiExec::readFileText (Widget* widget, char* variableName, int variableValue, int depth)
 {
-  if (widget->is_option >= 1)
+  if (widget->isOption >= 1)
     if (!strcmp (static_cast<Option*>(widget)->label, variableName))
 	static_cast<Option*>(widget)->value = variableValue;
 
-  if (widget->is_option < 0)
+  if (widget->isOption < 0)
     {
       readFileText (static_cast<Packer*>(widget)->down, variableName, variableValue, depth+1);
@@ -246,5 +246,5 @@
     }
 
-  if (widget->is_option < 0)
+  if (widget->isOption < 0)
     {
       if (!strcmp(groupName, static_cast<Packer*>(widget)->getGroupName()))
Index: /orxonox/trunk/gui/orxonox_gui_flags.cc
===================================================================
--- /orxonox/trunk/gui/orxonox_gui_flags.cc	(revision 3146)
+++ /orxonox/trunk/gui/orxonox_gui_flags.cc	(revision 3147)
@@ -25,5 +25,4 @@
 
 #include "orxonox_gui_flags.h"
-#include <iostream.h>
 
 /**
@@ -74,5 +73,5 @@
 void OrxonoxGuiFlags::FlagsText(Widget* widget)
 {
-  if (widget->is_option >= 1)
+  if (widget->isOption >= 1)
     if  (static_cast<Option*>(widget)->value != static_cast<Option*>(widget)->default_value && (strcmp (static_cast<Option*>(widget)->flag_name, "") || strcmp (static_cast<Option*>(widget)->flag_name_short, "")))
       {
@@ -87,10 +86,10 @@
 	    strcat (flagText, static_cast<Option*>(widget)->flag_name);
 	  }
-	if (static_cast<Option*>(widget)->is_option == 2)
+	if (static_cast<Option*>(widget)->isOption == 2)
 	  {
 	    sprintf (flagText, "%s=%i", flagText, static_cast<Option*>(widget)->value);
 	  }
       }
-  switch (widget->is_option)
+  switch (widget->isOption)
     {
     case -1:
Index: /orxonox/trunk/gui/orxonox_gui_gtk.cc
===================================================================
--- /orxonox/trunk/gui/orxonox_gui_gtk.cc	(revision 3146)
+++ /orxonox/trunk/gui/orxonox_gui_gtk.cc	(revision 3147)
@@ -1,6 +1,35 @@
+/* 
+   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.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
+
+
+   ### File Specific:
+   main-programmer: Benjamin Grauer
+
+*/
+
+
 #include <iostream>
 
 #include "orxonox_gui_gtk.h"
+
+
 using namespace std;
+
 // temporarily.
 #include "orxonox_gui_flags.h"
@@ -21,5 +50,5 @@
   this->hide();
   //  cout << "check if Packer: "<<this->label <<"\n";
-  if (this->is_option < 0)
+  if (this->isOption < 0)
     {
       //  cout << "get Down "<<this->label <<"\n";
@@ -109,5 +138,5 @@
 {
   function(this);
-  if (this->is_option < 0)
+  if (this->isOption < 0)
     {
       static_cast<Packer*>(this)->down->walkThrough (function);
@@ -124,5 +153,5 @@
 void Widget::listOptions (Widget* widget)
 {
-  if (widget->is_option >= 1)
+  if (widget->isOption >= 1)
     cout << static_cast<Option*>(widget)->label <<" is : " << static_cast<Option*>(widget)->value <<endl;
 }
@@ -134,5 +163,5 @@
 void Widget::setOptions (Widget* widget)
 {
-  if (widget->is_option >= 1)
+  if (widget->isOption >= 1)
     static_cast<Option*>(widget)->redraw();// <<" is : " << static_cast<Option*>(this)->value <<endl;
 }
@@ -183,5 +212,5 @@
 void Container::init (void)
 {
-  is_option = -1;
+  isOption = -1;
 
   static_cast<Packer*>(this)->init();
@@ -282,4 +311,22 @@
   label=title;
   gtk_window_set_title (GTK_WINDOW (widget), title);
+}
+
+/**
+   \brief opens up a Window and fixes the Focus to it
+*/
+void Window::open()
+{
+  isOpen = true;
+  gtk_grab_add(widget);
+}
+
+/**
+   \brief closes up a Window and removes the Focus from it
+*/
+void Window::close()
+{
+  isOpen = false;
+  gtk_grab_remove(widget);
 }
 
@@ -365,5 +412,5 @@
 void EventBox::init(void)
 {
-  is_option = -1;
+  isOption = -1;
 
   static_cast<Container*>(this)->init();
@@ -408,5 +455,5 @@
 void Box::init(char boxtype)
 {
-  is_option = -2;
+  isOption = -2;
 
   static_cast<Packer*>(this)->init();
@@ -461,5 +508,5 @@
 void Image::init()
 {
-  is_option = 0;
+  isOption = 0;
 
   static_cast<Widget*>(this)->init();
@@ -531,5 +578,5 @@
 void Button::init(void)
 {
-  is_option = 0;
+  isOption = 0;
 
   static_cast<Option*>(this)->init();
@@ -575,5 +622,5 @@
 void CheckButton::init(void)
 {
-  is_option = 1;
+  isOption = 1;
 
   static_cast<Option*>(this)->init();
@@ -640,5 +687,5 @@
 void Slider::init(int start, int end)
 {
-  is_option = 2;
+  isOption = 2;
 
   static_cast<Option*>(this)->init();
@@ -717,5 +764,5 @@
 void Menu::init(void)
 {
-  is_option = 2;
+  isOption = 2;
 
   static_cast<Option*>(this)->init();
@@ -790,5 +837,5 @@
 void Label::init(void)
 {
-  is_option = 0;
+  isOption = 0;
 
   static_cast<Widget*>(this)->init();
Index: /orxonox/trunk/gui/orxonox_gui_gtk.h
===================================================================
--- /orxonox/trunk/gui/orxonox_gui_gtk.h	(revision 3146)
+++ /orxonox/trunk/gui/orxonox_gui_gtk.h	(revision 3147)
@@ -2,4 +2,5 @@
 #ifndef _ORXONOX_GUI_GTK_H
 #define _ORXONOX_GUI_GTK_H
+
 #include <gtk/gtkmain.h>
 #include <gtk/gtkwindow.h>
@@ -17,5 +18,4 @@
 #include <gtk/gtkeventbox.h>
 
-
 //! This is the topmost object that can be displayed all others are derived from it.
 class Widget
@@ -28,7 +28,7 @@
   GtkWidget* widget; //!< widget is the gtk_widget that the specific Object Contains.
   void init(void);
-  int is_option; //!< with this Paramenter one can set the option-type: -2:Container, -1: Box, 0: not an Option, 1: Bool-option, 2: int-option, 3:float option, 4:char option, 5: char* option
+  int isOption; //!< with this Paramenter one can set the option-type: -2:Container, -1: Box, 0: not an Option, 1: Bool-option, 2: int-option, 3:float option, 4:char option, 5: char* option
   /**
-     \briefdefines is_option states
+     \briefdefines isOption states
   */
   enum option { containerType = -2, boxType = -1, nothingType = 0, boolType = 1, intType = 2}; 
@@ -96,4 +96,6 @@
   void setTitle (char* title);
   void showall (); 
+  void open();
+  void close();
   static gint orxonox_gui_quit (GtkWidget *widget, GdkEvent *event, gpointer data);
 };
Index: /orxonox/trunk/gui/orxonox_gui_keys.cc
===================================================================
--- /orxonox/trunk/gui/orxonox_gui_keys.cc	(revision 3146)
+++ /orxonox/trunk/gui/orxonox_gui_keys.cc	(revision 3147)
@@ -25,5 +25,4 @@
 
 #include "orxonox_gui_keys.h"
-#include <iostream.h>
 
 /**
