Index: code/branches/presentation2/data/gui/scripts/DecisionPopup.lua
===================================================================
--- code/branches/presentation2/data/gui/scripts/DecisionPopup.lua	(revision 6262)
+++ code/branches/presentation2/data/gui/scripts/DecisionPopup.lua	(revision 6266)
@@ -28,5 +28,5 @@
         P.functionPtr(true)
     end
-    orxonox.CommandExecutor:execute("hideGUI DecisionPopup")
+    hideGUI("DecisionPopup")
 end
 
@@ -35,5 +35,5 @@
         P.functionPtr(false)
     end
-    orxonox.CommandExecutor:execute("hideGUI DecisionPopup")
+    hideGUI("DecisionPopup")
 end
 
Index: code/branches/presentation2/data/gui/scripts/GUITools.lua
===================================================================
--- code/branches/presentation2/data/gui/scripts/GUITools.lua	(revision 6262)
+++ code/branches/presentation2/data/gui/scripts/GUITools.lua	(revision 6266)
@@ -1,6 +1,11 @@
 function openDecisionPopup( text, callbackPtr )
-    orxonox.CommandExecutor:execute("showGUI DecisionPopup false true")
---     showGUI("DecisionPopup", false, true)
-    DecisionPopup.setCallback(InGameMenu.callback)
+    showGUI("DecisionPopup", false, true)
+    DecisionPopup.setCallback(callbackPtr)
     DecisionPopup.setText(text)
 end
+
+function openInfoPopup( text, functionPtr )
+    showGUI("InfoPopup", false, true)
+    InfoPopup.setDo(functionPtr)
+    InfoPopup.setText(text)
+end
Index: code/branches/presentation2/data/gui/scripts/InfoPopup.lua
===================================================================
--- code/branches/presentation2/data/gui/scripts/InfoPopup.lua	(revision 6266)
+++ code/branches/presentation2/data/gui/scripts/InfoPopup.lua	(revision 6266)
@@ -0,0 +1,34 @@
+-- InfoPopup.lua
+
+BasicGUI = require("BasicGUI")
+local P = BasicGUI:new() --inherit everything from the gui package
+if _REQUIREDNAME == nil then
+    InfoPopup = P
+else
+    _G[_REQUIREDNAME] = P
+end
+
+P.filename = "InfoPopup"
+P.layoutString = "InfoPopup.layout"
+
+function P:init()
+end
+
+function P.setDo(functionPtr)
+    P.functionPtr = functionPtr
+    if P.functionPtr ~= nil then
+        P.functionPtr()
+    end
+end
+
+function P.setText( text )
+    winMgr:getWindow("orxonox/InfoPopup_text"):setText( text )
+end
+
+-- events for ingamemenu
+function P.close(e)
+    hideGUI("InfoPopup")
+end
+
+return P
+
Index: code/branches/presentation2/data/gui/scripts/InitialiseGUI.lua
===================================================================
--- code/branches/presentation2/data/gui/scripts/InitialiseGUI.lua	(revision 6262)
+++ code/branches/presentation2/data/gui/scripts/InitialiseGUI.lua	(revision 6266)
@@ -222,2 +222,6 @@
     return nil
 end
+
+function test(e)
+    debug(0, "Blubb")
+end
Index: code/branches/presentation2/data/gui/scripts/KeyBindMenu.lua
===================================================================
--- code/branches/presentation2/data/gui/scripts/KeyBindMenu.lua	(revision 6262)
+++ code/branches/presentation2/data/gui/scripts/KeyBindMenu.lua	(revision 6266)
@@ -1,17 +1,65 @@
--- NewMouseControlsMenu.lua
+-- KeyBindMenu.lua
 
 BasicGUI = require("BasicGUI")
 local P = BasicGUI:new() --inherit everything from the gui package
 if _REQUIREDNAME == nil then
-    NewMouseControlsMenu = P
+    KeyBindMenu = P
 else
     _G[_REQUIREDNAME] = P
 end
 
-P.filename = "NewMouseControlsMenu"
-P.layoutString = "NewMouseControlsMenu.layout"
+P.filename = "KeyBindMenu"
+P.layoutString = "KeyBindMenu.layout"
+
+function P:init()
+    commandList = {}
+    table.insert(commandList, "fire 0")
+    table.insert(commandList, "fire 1")
+    table.insert(commandList, "fire 2")
+
+    local lineHeight = 30
+    
+    local window = winMgr:getWindow("orxonox/KeyBindPane")
+
+    for k,v in pairs(commandList) do
+        local button = winMgr:createWindow("TaharezLook/Button", "orxonox/KeyBindPane/Binding" .. k .. "/Button")
+        local command = winMgr:createWindow("TaharezLook/StaticText", "orxonox/KeyBindPane/Binding" .. k .. "/Command")
+        local line = winMgr:createWindow("DefaultWindow", "orxonox/KeyBindPane/Binding" .. k)
+        
+        line:setSize(CEGUI.UVector2(CEGUI.UDim(1,-13),CEGUI.UDim(0, lineHeight)))
+        button:setSize(CEGUI.UVector2(CEGUI.UDim(0.4, 0), CEGUI.UDim(1, 0)))
+        command:setSize(CEGUI.UVector2(CEGUI.UDim(0.6, 0), CEGUI.UDim(1, 0)))
+        
+        button:setPosition(CEGUI.UVector2(CEGUI.UDim(0.6, 0),CEGUI.UDim(0, 0)))
+        command:setPosition(CEGUI.UVector2(CEGUI.UDim(0, 0),CEGUI.UDim(0, 0)))
+        line:setPosition(CEGUI.UVector2(CEGUI.UDim(0, 0),CEGUI.UDim(0, lineHeight*(k-1))))
+        
+        button:setText(orxonox.KeyBinderManager:getInstance():getCurrent():getBinding(v))
+        command:setText(v)
+        
+        orxonox.KeyBinderManager:getInstance():subscribeEventHelper(button, "Clicked", P.filename .. ".KeyBindButton_clicked")
+        --button:subscribeScriptedEvent("EventClicked", P.filename .. ".KeyBindButton_clicked")
+        
+        line:addChildWindow(command)
+        line:addChildWindow(button)
+        window:addChildWindow(line)
+    end
+end
+
+function P.KeyBindButton_clicked(e)
+    local we = CEGUI.toWindowEventArgs(e)
+    local name = we.window:getName()
+    commandNr = tonumber(string.match(name, "%d+"))
+    
+    openInfoPopup("Press any button/key or move a mouse/joystick axis.", KeyBindMenu.keybind)
+
+end
+
+function P.keybind()
+    orxonox.KeyBinderManager:getInstance():keybind(commandList[commandNr])
+end
 
 function P.KeyBindBackButton_clicked(e)
-    hideGUI("NewMouseControlsMenu")
+    hideGUI("KeyBindMenu")
     debug("event: back")
 end
