Index: orxonox/trunk/article.txt
===================================================================
--- orxonox/trunk/article.txt	(revision 1908)
+++ orxonox/trunk/article.txt	(revision 1909)
@@ -4,4 +4,5 @@
 Ihr wisst alle, was Open Source Software ist. Das sagt euch nichts? Lasst es mich kurz erklren: Open Source beinhaltet die Freiheit, Software gratis benutzen, verbessern und weiterentwickeln zu drfen. 
 In der Praxis heisst das, ihr erhaltet den Source Code, ihr macht daraus was ihr wollt und stellt es der Welt wieder zur Verfgung. Durch diese Freiheiten knnen mehrere Programmierer ihre Strken ausspielen, damit das Endprodukt optimal wird. Nun, das war noch nicht die ganze Wahrheit. Open Source ist nicht nur eine bestimmte Art Software zu entwickeln, es ist bei verschiedenen Programmierern schon zu einer Art Religion geworden. Open Source Programmierer werden beflgelt von der Idee, dass ein Programmiercode, der von tausenden von Menschen auf der Erde angesehen und verbessert wurde, eine Reife erhlt, die nicht von Einzelpersonen oder Teams erbracht werden knnte. Dazu kommt der Gedanke, dass viele Menschen, oft verstreut ber den ganzen Globus, an einem Problem arbeiten, was das globale Verstndnis frdert.
+Alles Klar? Dann naechsten Abschnitt ueberspringen, bevor es langweilig wird :)
 
 Dass eine Zusammenarbeit, ohne dass man sich sehen kann, etwas Kompliziertes ist, leuchtet euch wohl allen ein. Was sind die Voraussetzungen, damit man Millionen von Lichtjahren Distanzen zum Trotz, miteinander arbeiten kann? Kommunikation und Teilen des erzeugten Codes. Im Verlaufe der Jahre haben sich mehrere Mglichkeiten durchgesetzt, um diese Voraussetzungen zu erfllen. Fr die Kommunikation sind dies: Email, Mailing-Lists und IRC oder aber ein neuartigeres Chatprogramm (ICQ, AIM, MSN, Yahoo,...).
@@ -20,14 +21,14 @@
 Team: Unter "wir" verstehen wir momentan Patrick Bnzli, Benjamin Grauer, Johannes Bader, Simon Hofmann, Adrian Buerli und David Grtter.
 
-Seit etwa einem Monat arbeiten wir pausenlos an einem Framework fr dieses Game. Und wir nun haben wir es vollbracht: man kann einen Wrfel steuern, der seinerseits kleine Wrfel abschiessen kann, whrend am Boden ein paar schwer erahnbare Berge vorbeisausen. Die Grafik ist in OpenGL implementiert und zeichnet unsere Welt in 3D, momentan noch in Wireframe (alles Striche, noch keine Oberflchen). Ihr werden jetzt vielleicht sagen: Also was soll denn das fr ein Game werden?
+Seit etwa einem Monat arbeiten wir pausenlos an einem Framework fr dieses Game. Und nun haben wir es vollbracht: man kann einen Wrfel steuern, der seinerseits kleine Wrfel abschiessen kann, whrend am Boden ein paar schwer erahnbare Berge vorbeisausen. Die Grafik ist in OpenGL implementiert und zeichnet unsere Welt in 3D, momentan noch in Wireframe (alles Striche, noch keine Oberflchen). Ihr werden jetzt vielleicht sagen: Also was soll denn das fr ein Game werden?
 1. Das sind die Grundlagen, am besten macht man alles schn Schritt fr Schritt...
-2. Orxonox soll nicht das mega-ultra-krasse Arcade Game werden, dass uns alle berhmt machen soll. Es macht Spass daran zu arbeiten. Es macht Spass naechtelang an kleinen Algorithmen sich die Zaehne auszubeissen und dann am schluss stolz 2fps mehr aufweisen zu duerfen.
+2. Orxonox soll nicht das mega-ultra-krasse Arcade Game werden, dass uns alle berhmt werden laesst. Es macht Spass daran zu arbeiten. Insbesondere macht es Spass, naechtelang an kleinen Algorithmen sich die Zaehne auszubeissen und dann am Schluss einen Code zu haben, der stolz 2fps schneller laeuft...
 
-And now, I'll make you an offer, you can't refuse :) Wir suchen Programmierinnen und Modler, Soundarchitekten und Grafiker mit Geek-Level 4.3, die Lust htten bei uns mitzumachen. Wenn du dich angesprochen fhlst, oder einfach nur Lust hast, dann bist du sehr willkommen.
+And now, I'll make you an offer, you can't refuse :) Wir suchen Programmierinnen und Modler, Soundarchitekten und Grafikinnen mit Geek-Level 4.3, die Lust htten bei uns mitzumachen. Wenn du dich angesprochen fhlst, oder einfach nur Lust hast, dann bist du sehr willkommen.
 Du willst nichts mit dem Computer machen und trotzdem helfen? Hmm... Wir freuen uns natrlich immer ber kleinere nicht-finanzielle Gaben wie Bier, Wein, Kaffee, Teddybren, Grill-Artikel, nette Mails, bse Mails, Bugreports, Opfergaben, etc.
-Fuer alle zukuenftigen Orxonox-developer uns kennenzulernen: Orxonox Convention am Mittwoch, 09.Juni, ab 1400Uhr im StuZ Foyer. Unsere Themen sind:  Linux/Windows einrichten, damit Orxonox drauf laeuft und man programmieren kann. Einfuehrung in den Source Codes und ein paar Vortraege zu: C++ OOP, OpenGL Introduction und vieles mehr. Und dann coden mit Bier und Sound, so wie man's gern hat...
-Falls ihr an der Convention vorbeischauen wollt, schreibt mir doch eine Mail: boenzlip@ee.ethz.ch oder tragt euch grad in der mailinsliste ein. Nur so, damit wir wissen, wieviel Bier wir einkaufen muessen...
+Fuer alle zukuenftigen Orxonox-developer die Moeglichkeit uns kennenzulernen: Orxonox Convention am Mittwoch, 09.Juni, ab 1400Uhr im StuZ Foyer. Unsere Themen sind:  Linux/Windows einrichten, damit Orxonox drauf laeuft und man programmieren kann. Einfuehrung in den Source Code und ein paar Vortraege zu: C++ OOP, OpenGL Introduction, Subversion und vieles mehr. Und dann coden mit Bier und Sound, so wie man's gern hat...
+Falls ihr an der Convention vorbeischauen wollt, schreibt mir doch eine Mail: boenzlip@ee.ethz.ch oder tragt euch grad in der Mailinsliste ein. Nur so, damit wir wissen, wieviel Bier eingekauft werden muss...
 
-Homepage fuer mehr Infos: www.orxonox.ethz.ch
+Homepage: www.orxonox.ethz.ch
 Mailinglisten: 
 https://mail.datacore.ch/mailman/listinfo/orxonox-announce
Index: orxonox/trunk/console/Makefile
===================================================================
--- orxonox/trunk/console/Makefile	(revision 1909)
+++ orxonox/trunk/console/Makefile	(revision 1909)
@@ -0,0 +1,87 @@
+
+CC = gcc
+CXX = g++
+APP_LIB_DEPS = `pkg-config --libs  gtk+-2.0`
+GL_LIB = libGL.so
+GLU_LIB = libGLU.so
+GLUT_LIB = libglut.so
+GLW_LIB = libGLw.so
+OSMESA_LIB = libOSMesa.so
+
+CFLAGS = `pkg-config --cflags gtk+-2.0`
+CXXFLAGS = -fPIC -O3
+GLUT_CFLAGS = -fexceptions
+
+TOP = ../..
+INCDIR = /usr/Mesa-6.0.1/include
+LIBDIR = /usr/Mesa-6.0.1/lib
+
+LIBS = -L$(LIBDIR) $(APP_LIB_DEPS)
+
+OSMESA_LIBS = -L$(LIBDIR) -lglut -lOSMesa -lGLU -lGL $(APP_LIB_DEPS)
+
+LIB_DEP = $(LIBDIR)/$(GL_LIB) $(LIBDIR)/$(GLU_LIB) $(LIBDIR)/$(GLUT_LIB)
+
+PROGS = \
+	orxonox_console \
+
+HEADERS = \
+	orxonox_console.h \
+	orxonox_console_entry.h \
+	orxonox_console_log.h 
+
+SOURCES = \
+	orxonox_console.cc \
+	orxonox_console_entry.cc \
+	orxonox_console_log.cc
+
+OBJECTS = \
+	orxonox_console.o \
+	orxonox_console_entry.o \
+	orxonox_console_log.o 
+
+
+TARGET = orxonox_console
+
+.SUFFIXES:
+.SUFFIXES: .cc .o
+
+#.cc: $(LIB_DEP)
+#	$(CXX) -I$(INCDIR) $(CFLAGS) $< $(LIBS) -o $@
+
+.cc.o:
+	@ echo "$@ is being compiled..."
+	@ $(CXX) -c $(CFLAGS) -I$(INCDIR) -o $@ $<
+
+
+#### build
+
+all: $(TARGET)
+
+$(TARGET): $(OBJECTS)
+	@ echo "orxonox_console is being linked..."
+	@ $(CXX) $(LIBS) -o $(TARGET) $(OBJECTS)
+
+
+help:
+	@echo "Cleaning targets:"
+	@echo "  clean		- remove most generated files"
+	@echo ""
+	@echo "Generic targets:"
+	@echo "  all		- Build all targets"
+	@echo ""
+	@echo "For further info see the README file"
+
+clean:
+	rm -rf *.o *~
+	rm $(TARGET)
+
+####compile
+
+#orxonox.o: orxonox.cc \
+#		orxonox.h
+
+#data_tank.o: data_tank.cc \
+#		data_tank.h	
+
+#EOF
Index: orxonox/trunk/console/orxonox_console.cc
===================================================================
--- orxonox/trunk/console/orxonox_console.cc	(revision 1909)
+++ orxonox/trunk/console/orxonox_console.cc	(revision 1909)
@@ -0,0 +1,68 @@
+/* 
+   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
+   co-programmer:
+*/
+
+
+#include "orxonox_console.h"
+
+using namespace std;
+
+void OrxonoxConsole::createWindow ()
+{
+  
+  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  gtk_window_set_policy(GTK_WINDOW(window), TRUE, TRUE, FALSE);
+  gtk_window_set_title ( GTK_WINDOW (window), "orxonox console");
+  g_signal_connect (G_OBJECT (window), "delete_event", G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (gtk_main_quit), NULL);
+  gtk_container_set_border_width (GTK_CONTAINER (window), 5);
+
+  vbox_main = gtk_vbox_new(FALSE, 5);
+    {
+      gtk_box_pack_start(GTK_BOX(vbox_main), entry.createEntry(), FALSE, FALSE, 0);
+      gtk_box_pack_start(GTK_BOX(vbox_main), log.createLog(), TRUE, TRUE, 0);
+      entry.setLog(&log);
+    }
+  gtk_container_add(GTK_CONTAINER(window), vbox_main);
+  
+  gtk_widget_show_all(window);
+
+}
+
+
+
+
+int main( int argc, char *argv[] )
+{  
+  verbose = 0;
+
+  OrxonoxConsole console;
+  
+  gtk_init (&argc, &argv);
+
+  console.createWindow();
+
+  gtk_main ();
+  return (0);
+}
Index: orxonox/trunk/console/orxonox_console.h
===================================================================
--- orxonox/trunk/console/orxonox_console.h	(revision 1909)
+++ orxonox/trunk/console/orxonox_console.h	(revision 1909)
@@ -0,0 +1,33 @@
+#ifndef ORXONOX_CONSOLE_H
+#define ORXONOX_CONSOLE_H
+
+/* standard headers */
+#include <stdio.h>
+
+/* GTK headers */
+#include <gtk/gtk.h> 
+
+/* other headers */
+#include "orxonox_console_entry.h"
+#include "orxonox_console_log.h"
+
+int verbose;
+  
+class OrxonoxConsole {
+  
+ private:
+  GtkWidget *window;
+  GtkWidget *vbox_main;
+  OrxonoxConsoleLog log;
+  OrxonoxConsoleEntry entry;
+
+
+ public:
+  void createWindow(void);
+
+    
+
+};
+
+#endif
+
Index: orxonox/trunk/console/orxonox_console_entry.cc
===================================================================
--- orxonox/trunk/console/orxonox_console_entry.cc	(revision 1909)
+++ orxonox/trunk/console/orxonox_console_entry.cc	(revision 1909)
@@ -0,0 +1,82 @@
+/* 
+   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
+   co-programmer:
+*/
+
+
+#include "orxonox_console_entry.h"
+
+
+
+OrxonoxConsoleEntry::OrxonoxConsoleEntry()
+{}
+
+OrxonoxConsoleEntry::OrxonoxConsoleEntry(OrxonoxConsoleLog* log)
+{
+  consoleLog = log; 
+}
+
+
+GtkWidget* OrxonoxConsoleEntry::createEntry()
+{
+  frame = gtk_frame_new ("Console Entry:");
+
+
+  gtk_container_set_border_width (GTK_CONTAINER(frame), 5);
+  {
+    entrybox = gtk_hbox_new (FALSE, 5);
+    {
+      entry = gtk_entry_new();
+      g_signal_connect(GTK_ENTRY(entry), "activate", G_CALLBACK(submit), this);
+      gtk_box_pack_start(GTK_BOX(entrybox), entry, TRUE, TRUE, 5);
+      
+      
+      button = gtk_button_new_with_label("Submit");
+      g_signal_connect(GTK_BUTTON(button), "clicked", G_CALLBACK(submit), this);
+      gtk_box_pack_start(GTK_BOX(entrybox), button, FALSE, FALSE, 5);
+    }
+    gtk_container_add(GTK_CONTAINER(frame), entrybox);
+  }
+  return (frame);
+}
+
+void OrxonoxConsoleEntry::setLog(OrxonoxConsoleLog* log)
+{
+  consoleLog = log;
+}
+
+
+void OrxonoxConsoleEntry::submit(GtkWidget *widget,  OrxonoxConsoleEntry* entry)
+{
+  char* entryText = (char*)gtk_entry_get_text(GTK_ENTRY(entry->entry));
+  entry->sendtoLog(entryText);
+  gtk_entry_set_text(GTK_ENTRY(entry->entry),"");
+  return;
+}
+
+
+void OrxonoxConsoleEntry::sendtoLog(char* submitText)
+{
+  consoleLog->appendText(submitText);
+  return;
+}
Index: orxonox/trunk/console/orxonox_console_entry.h
===================================================================
--- orxonox/trunk/console/orxonox_console_entry.h	(revision 1909)
+++ orxonox/trunk/console/orxonox_console_entry.h	(revision 1909)
@@ -0,0 +1,39 @@
+#ifndef ORXONOX_CONSOLE_ENTRY_H
+#define ORXONOX_CONSOLE_ENTRY_H
+
+/* standard headers */
+#include <stdio.h>
+
+/* GTK headers */
+#include <gtk/gtk.h> 
+
+#include "orxonox_console_log.h"
+
+extern int verbose;
+
+class OrxonoxConsoleEntry {
+  
+ private:
+  GtkWidget *frame;
+  GtkWidget *entrybox;
+  GtkWidget *label;
+  GtkWidget *button;
+  GtkWidget *entry;
+  OrxonoxConsoleLog* consoleLog;
+
+
+
+ public:
+  OrxonoxConsoleEntry(void);
+  OrxonoxConsoleEntry(OrxonoxConsoleLog* log);
+  
+  GtkWidget* createEntry(void);
+  void setLog(OrxonoxConsoleLog* log);
+  static void submit(GtkWidget *widget,  OrxonoxConsoleEntry* entry);
+  void sendtoLog(char* submitText);
+
+};
+  
+
+#endif
+
Index: orxonox/trunk/console/orxonox_console_log.cc
===================================================================
--- orxonox/trunk/console/orxonox_console_log.cc	(revision 1909)
+++ orxonox/trunk/console/orxonox_console_log.cc	(revision 1909)
@@ -0,0 +1,71 @@
+/* 
+   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
+   co-programmer:
+*/
+
+
+#include "orxonox_console_log.h"
+
+GtkWidget* OrxonoxConsoleLog::createLog()
+{
+  frame = gtk_frame_new ("Console Log:");
+  {
+    scrollframe = gtk_scrolled_window_new (NULL, NULL);
+    logtext = new char;
+    
+    gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrollframe),
+				    GTK_POLICY_AUTOMATIC,
+				    GTK_POLICY_AUTOMATIC);
+    
+    gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrollframe),
+					 GTK_SHADOW_IN);
+    gtk_container_set_border_width (GTK_CONTAINER(scrollframe), 5);
+    
+    logView = gtk_text_view_new();
+    gtk_text_view_set_editable(GTK_TEXT_VIEW(logView), FALSE);
+    log = gtk_text_view_get_buffer (GTK_TEXT_VIEW (logView));
+    gtk_container_add(GTK_CONTAINER(scrollframe), logView);
+    gtk_container_add(GTK_CONTAINER(frame),scrollframe);
+    gtk_text_buffer_set_text (log, "Orxonox Console started.\n", -1);
+
+  }
+  return (frame);
+}
+
+void OrxonoxConsoleLog::appendText(char* append)
+{
+  GtkTextIter iter;
+  if (verbose>=1)
+    printf ("appending: %s\n", append);
+  strcat (append,"\n");
+  gtk_text_buffer_get_start_iter (log, &iter);
+  gtk_text_buffer_place_cursor (log, &iter);
+  gtk_text_buffer_insert_at_cursor (log, append, -1);
+  return;
+}
+
+void OrxonoxConsoleLog::clear()
+{
+  sprintf(logtext, "");
+  return;
+}
Index: orxonox/trunk/console/orxonox_console_log.h
===================================================================
--- orxonox/trunk/console/orxonox_console_log.h	(revision 1909)
+++ orxonox/trunk/console/orxonox_console_log.h	(revision 1909)
@@ -0,0 +1,38 @@
+#ifndef ORXONOX_CONSOLE_LOG_H
+#define ORXONOX_CONSOLE_LOG_H
+
+/* standard headers */
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* GTK headers */
+#include <gtk/gtk.h>
+
+extern int verbose;
+
+class OrxonoxConsoleLog {
+  
+ private:
+  GtkWidget *frame;
+  GtkWidget *scrollframe;
+  GtkWidget *logbox;
+  GtkWidget *logView;
+  GtkTextBuffer *log;
+  GtkWidget *label;
+
+  char *logtext;
+  
+  
+
+
+ public:
+  
+  GtkWidget* createLog(void);
+
+  void OrxonoxConsoleLog::appendText(char* append);  
+  void OrxonoxConsoleLog::clear();
+};
+
+#endif
+
