Index: code/branches/presentation2/data/gui/scripts/DecisionPopup.lua
===================================================================
--- code/branches/presentation2/data/gui/scripts/DecisionPopup.lua	(revision 6150)
+++ code/branches/presentation2/data/gui/scripts/DecisionPopup.lua	(revision 6150)
@@ -0,0 +1,41 @@
+-- DecisionPopup.lua
+
+BasicGUI = require("BasicGUI")
+local P = BasicGUI:new() --inherit everything from the gui package
+if _REQUIREDNAME == nil then
+    DecisionPopup = P
+else
+    _G[_REQUIREDNAME] = P
+end
+
+P.filename = "DecisionPopup"
+P.layoutString = "DecisionPopup.layout"
+
+function P:init()
+end
+
+function P.setCallback(functionPtr)
+    P.functionPtr = functionPtr
+end
+
+function P.setText( text )
+    winMgr:getWindow("orxonox/DecisionPopup_text"):setText( text )
+end
+
+-- events for ingamemenu
+function P.button_yes(e)
+    if P.functionPtr ~= nil then
+        P.functionPtr(true)
+    end
+    orxonox.CommandExecutor:execute("hideGUI DecisionPopup")
+end
+
+function P.button_no(e)
+    if P.functionPtr ~= nil then
+        P.functionPtr(false)
+    end
+    orxonox.CommandExecutor:execute("hideGUI DecisionPopup")
+end
+
+return P
+
Index: code/branches/presentation2/data/gui/scripts/GUITools.lua
===================================================================
--- code/branches/presentation2/data/gui/scripts/GUITools.lua	(revision 6150)
+++ code/branches/presentation2/data/gui/scripts/GUITools.lua	(revision 6150)
@@ -0,0 +1,6 @@
+function openDecisionPopup( text, callbackPtr )
+    orxonox.CommandExecutor:execute("showGUI DecisionPopup false true")
+--     showGUI("DecisionPopup", false, true)
+    DecisionPopup.setCallback(InGameMenu.callback)
+    DecisionPopup.setText(text)
+end
Index: code/branches/presentation2/data/gui/scripts/InGameMenu.lua
===================================================================
--- code/branches/presentation2/data/gui/scripts/InGameMenu.lua	(revision 6150)
+++ code/branches/presentation2/data/gui/scripts/InGameMenu.lua	(revision 6150)
@@ -0,0 +1,42 @@
+-- InGameMenu.lua
+
+BasicGUI = require("BasicGUI")
+local P = BasicGUI:new() --inherit everything from the gui package
+if _REQUIREDNAME == nil then
+    InGameMenu = P
+else
+    _G[_REQUIREDNAME] = P
+end
+
+P.filename = "InGameMenu"
+P.layoutString = "InGameMenu.layout"
+
+function P:init()
+end
+
+
+-- events for ingamemenu
+function P.button_quit_clicked(e)
+    openDecisionPopup( "Do you really want to quit the game?", InGameMenu.callback )
+end
+
+function P.button_mainmenu_clicked(e)
+    orxonox.Game:getInstance():popState()
+    orxonox.Game:getInstance():popState()
+    orxonox.Game:getInstance():requestState("mainmenu")
+    orxonox.CommandExecutor:execute("hideGUI InGameMenu")
+end
+
+function P.button_return_clicked(e)
+    orxonox.CommandExecutor:execute("hideGUI InGameMenu")
+end
+
+function P.callback(doExit)
+    if doExit then
+        orxonox.CommandExecutor:execute("hideGUI InGameMenu")
+        orxonox.CommandExecutor:execute("exit")
+    end
+end
+
+return P
+
Index: code/branches/presentation2/data/gui/scripts/InitialiseGUI.lua
===================================================================
--- code/branches/presentation2/data/gui/scripts/InitialiseGUI.lua	(revision 6106)
+++ code/branches/presentation2/data/gui/scripts/InitialiseGUI.lua	(revision 6150)
@@ -14,4 +14,13 @@
 
 loadedGUIs = {}
+cursorVisibility = {}
+activeSheets = {}
+nrOfActiveSheets = 0
+root = nil
+bShowsCursor = false
+bHidePrevious = {}
+
+-- Require all tools
+require("GUITools")
 
 -- loads the GUI with the specified filename
@@ -22,4 +31,7 @@
     if loadedGui == nil then
         loadedGuiNS = require(filename)
+        if loadedGuiNS == nil then
+            return
+        end
         loadedGui = loadedGuiNS:load()
         loadedGUIs[filename] = loadedGui
@@ -27,5 +39,4 @@
         if table.getn(loadedGUIs) == 1 then
             current = loadedGUIs[1]
-            showing = false
         end
         -- hide new GUI as we do not want to show it accidentially
@@ -35,6 +46,6 @@
 end
 
-function showGUI(filename, ptr)
-    gui = showGUI(filename)
+function showGUI(filename, hidePrevious, bCursorVisible, ptr)
+    gui = showGUI(filename, hidePrevious, bCursorVisible)
     gui.overlay = ptr
 end
@@ -42,43 +53,158 @@
 -- shows the specified and loads it if not loaded already
 -- be sure to set the global variable "filename" before calling this function
-function showGUI(filename)
-    if current == nil or current.filename ~= filename then
-        current = loadedGUIs[filename]
-        if current == nil then
-            current = loadGUI(filename)
-        end
-        system:setGUISheet(current.window)
-    end
-    current:show()
-    showing = true
-    return current
-end
-
-function toggleGUI()
-    if showing == true then
-        current:hide()
+function showGUI(filename, hidePrevious, bCursorVisible)
+    if bCursorVisible == nil then
+        bCursorVisible = true
+    end
+
+    if root == nil then
+        setBackground("")
+    end
+
+    local currentGUI = loadedGUIs[filename]
+    if(currentGUI == nil) then
+        currentGUI = loadGUI(filename)
+    end
+
+    if(root:isChild(currentGUI.window)) then
+        root:removeChildWindow(currentGUI.window)
+    end
+    root:addChildWindow(currentGUI.window)
+
+    if bCursorVisible then
+        showCursor()
+    else
+        hideCursor()
+    end
+    
+    if find( activeSheets, filename ) ~= nil then
+        table.remove( activeSheets, find( activeSheets, filename ) )
+        nrOfActiveSheets = nrOfActiveSheets - 1
+    else
+        if nrOfActiveSheets == 0 then
+            orxonox.InputManager:getInstance():enterState("guiMouseOnly")
+        end
+    end
+    nrOfActiveSheets = nrOfActiveSheets + 1
+    table.insert(activeSheets, filename)
+    activeSheets[nrOfActiveSheets] = filename
+    bHidePrevious[filename]=hidePrevious
+    cursorVisibility[filename] = bCursorVisible
+    
+    if hidePrevious == true then
+        for i=1,nrOfActiveSheets-1 do
+            loadedGUIs[ activeSheets[i] ]:hide()
+        end
+    end
+    currentGUI:show()
+    return currentGUI
+end
+
+function hideCursor()
+    if bShowsCursor==true then
+        bShowsCursor=false
         cursor:hide()
-        showing = false
-    else
-        current:show()
+    end
+end
+
+function showCursor()
+    if bShowsCursor==false then
+        bShowsCursor=true
         cursor:show()
-        showing = true
-    end
-    return showing
-end
-
-function hideCursor()
-    cursor:hide()
-end
-
-function showCursor()
-    cursor:show()
+    end
 end
 
 function hideGUI(filename)
-    current = loadedGUIs[filename]
-    if current ~= nil then
-        current:hide()
-        showing = false
-    end
-end
+    local currentGUI = loadedGUIs[filename]
+    if currentGUI == nil then
+        return
+    end
+    currentGUI:hide()
+    if bHidePrevious[filename] == true then
+        local i = nrOfActiveSheets-1
+        while i>0 do
+            loadedGUIs[ activeSheets[i] ]:show()
+            if bHidePrevious[filename]==true then
+                break
+            else
+                i=i-1
+            end
+        end
+    end
+    root:removeChildWindow(currentGUI.window)
+    local i=1
+    while activeSheets[i] do
+        if activeSheets[i+1] == nil then
+            if activeSheets[i-1] ~= nil then
+                if cursorVisibility[ activeSheets[i-1] ] == true then
+                    showCursor()
+                else
+                    hideCursor()
+                end
+            else
+                hideCursor()
+            end
+        end
+        if activeSheets[i] == filename then
+            table.remove( activeSheets, i )
+            nrOfActiveSheets = nrOfActiveSheets-1
+        else
+            i = i+1
+        end
+    end
+    cursorVisibility[filename] = nil -- remove the cursor visibility of the current gui from the table
+    bHidePrevious[filename] = nil
+    if nrOfActiveSheets == 0 then
+        orxonox.InputManager:getInstance():leaveState("guiMouseOnly")
+        hideCursor()
+    end
+end
+
+function keyESC()
+    if nrOfActiveSheets > 0 then
+        orxonox.CommandExecutor:execute("hideGUI "..activeSheets[nrOfActiveSheets])
+    else
+        showGUI("InGameMenu")
+    end
+end
+
+function setBackground(filename)
+    local newroot
+    if root ~= nil then
+        root:rename("oldRootWindow")
+    end
+    if filename ~= "" then
+        newroot = winMgr:loadWindowLayout(filename .. ".layout")
+        newroot:rename("AbsoluteRootWindow")
+        system:setGUISheet(newroot)
+    else
+        newroot = winMgr:createWindow("DefaultWindow", "AbsoluteRootWindow")
+        newroot:setProperty("Alpha", "0.0")
+        newroot:setSize(CEGUI.UVector2(CEGUI.UDim(1.0,0),CEGUI.UDim(1.0,0)))
+        system:setGUISheet(newroot)
+    end
+    if root ~= nil then
+        local child
+        while root:getChildCount()~=0 do
+            debug(root:getChildCount())
+            child = root:getChildAtIdx(0)
+            root:removeChildWindow(child)
+            newroot:addChildWindow(child)
+        end
+        winMgr:destroyWindow(root)
+    end
+    newroot:show()
+    root = newroot
+end
+
+function find(table, value)
+    local i=0
+    while table[i] ~= nil do
+        if table[i]==value then
+            return i
+        else
+            i=i+1
+        end
+    end
+    return nil
+end
Index: code/branches/presentation2/data/gui/scripts/MainMenu.lua
===================================================================
--- code/branches/presentation2/data/gui/scripts/MainMenu.lua	(revision 6106)
+++ code/branches/presentation2/data/gui/scripts/MainMenu.lua	(revision 6150)
@@ -50,5 +50,5 @@
         orxonox.LevelManager:getInstance():setDefaultLevel(choice:getText() .. ".oxw")
         orxonox.CommandExecutor:execute("startGame")
-        toggleGUI()
+        hideGUI(P.filename)
     end
 end
@@ -59,5 +59,5 @@
         orxonox.LevelManager:getInstance():setDefaultLevel(choice:getText() .. ".oxw")
         orxonox.CommandExecutor:execute("startServer")
-        toggleGUI()
+        hideGUI(P.filename)
     end
 end
@@ -68,5 +68,5 @@
         orxonox.LevelManager:getInstance():setDefaultLevel(choice:getText() .. ".oxw")
         orxonox.CommandExecutor:execute("startDedicated")
-        toggleGUI()
+        hideGUI(P.filename)
     end
 end
@@ -77,5 +77,6 @@
         orxonox.LevelManager:getInstance():setDefaultLevel(choice:getText() .. ".oxw")
         orxonox.CommandExecutor:execute("startClient")
-        toggleGUI()
+        hideGUI(P.filename)
+
     end
 end
Index: code/branches/presentation2/data/gui/scripts/NewAudioMenu.lua
===================================================================
--- code/branches/presentation2/data/gui/scripts/NewAudioMenu.lua	(revision 6150)
+++ code/branches/presentation2/data/gui/scripts/NewAudioMenu.lua	(revision 6150)
@@ -0,0 +1,40 @@
+-- NewAudioMenu.lua
+
+BasicGUI = require("BasicGUI")
+local P = BasicGUI:new() --inherit everything from the gui package
+if _REQUIREDNAME == nil then
+    NewAudioMenu = P
+else
+    _G[_REQUIREDNAME] = P
+end
+
+P.filename = "NewAudioMenu"
+P.layoutString = "NewAudioMenu.layout"
+
+function P.AudioMusicScrollbar_clicked(e)
+    -- music volume
+    debug("event: music volume")
+end
+
+function P.AudioSoundScrollbar_clicked(e)
+    -- sound volume
+    debug("event: sound volume")
+end
+
+function P.AudioMuteMusicCheckbox_clicked(e)
+    -- mute music
+    debug("event: mute music")
+end
+
+function P.AudioMuteSoundCheckbox_clicked(e)
+    -- mute sound
+    debug("event: mute sound")
+end
+
+function P.AudioBackButton_clicked(e)
+    hideGUI("NewAudioMenu")
+    debug("event: back")
+end
+
+return P
+
Index: code/branches/presentation2/data/gui/scripts/NewControlsMenu.lua
===================================================================
--- code/branches/presentation2/data/gui/scripts/NewControlsMenu.lua	(revision 6150)
+++ code/branches/presentation2/data/gui/scripts/NewControlsMenu.lua	(revision 6150)
@@ -0,0 +1,30 @@
+-- NewControlsMenu.lua
+
+BasicGUI = require("BasicGUI")
+local P = BasicGUI:new() --inherit everything from the gui package
+if _REQUIREDNAME == nil then
+    NewControlsMenu = P
+else
+    _G[_REQUIREDNAME] = P
+end
+
+P.filename = "NewControlsMenu"
+P.layoutString = "NewControlsMenu.layout"
+
+function P.ControlsMouseControlsButton_clicked(e)
+    showGUI("NewMouseControlsMenu")
+    debug("event: MOUSE CONTROLS")
+end
+
+function P.ControlsKeyboardControlsButton_clicked(e)
+    showGUI("NewKeyboardControlsMenu")
+    debug("event: KEYBOARD CONTROLS")
+end
+
+function P.ControlsBackButton_clicked(e)
+    hideGUI("NewControlsMenu")
+    debug("event: back")
+end
+
+return P
+
Index: code/branches/presentation2/data/gui/scripts/NewCreditsMenu.lua
===================================================================
--- code/branches/presentation2/data/gui/scripts/NewCreditsMenu.lua	(revision 6150)
+++ code/branches/presentation2/data/gui/scripts/NewCreditsMenu.lua	(revision 6150)
@@ -0,0 +1,20 @@
+-- NewCreditsMenu.lua
+
+BasicGUI = require("BasicGUI")
+local P = BasicGUI:new() --inherit everything from the gui package
+if _REQUIREDNAME == nil then
+    NewCreditsMenu = P
+else
+    _G[_REQUIREDNAME] = P
+end
+
+P.filename = "NewCreditsMenu"
+P.layoutString = "NewCreditsMenu.layout"
+
+function P.CreditsBackButton_clicked(e)
+    hideGUI("NewCreditsMenu")
+    debug("event: back")
+end
+
+return P
+
Index: code/branches/presentation2/data/gui/scripts/NewGameplayMenu.lua
===================================================================
--- code/branches/presentation2/data/gui/scripts/NewGameplayMenu.lua	(revision 6150)
+++ code/branches/presentation2/data/gui/scripts/NewGameplayMenu.lua	(revision 6150)
@@ -0,0 +1,61 @@
+-- NewGameplayMenu.lua
+
+BasicGUI = require("BasicGUI")
+local P = BasicGUI:new() --inherit everything from the gui package
+if _REQUIREDNAME == nil then
+    NewGameplayMenu = P
+else
+    _G[_REQUIREDNAME] = P
+end
+
+P.filename = "NewGameplayMenu"
+P.layoutString = "NewGameplayMenu.layout"
+
+function P:init()
+    dropdown = winMgr:getWindow("orxonox/ThemeCombobox")
+    preselect = orxonox.LevelManager:getInstance():getDefaultLevel()
+    orxonox.LevelManager:getInstance():compileAvailableLevelList()
+    local levelList = {}
+    local index = 0
+    local level = ""
+    while true do
+      level = orxonox.LevelManager:getInstance():getAvailableLevelListItem(index)
+      if level == "" then
+        break
+      end
+      table.insert(levelList, level)
+      index = index + 1
+    end
+    table.sort(levelList)
+    for k,v in pairs(levelList) do
+        item = CEGUI.createListboxTextItem(v)        
+        item:setSelectionBrushImage("TaharezLook", "MultiListSelectionBrush")
+        CEGUI.toCombobox(dropdown):addItem(item)
+        if v .. ".oxw" == preselect then
+            dropdown:setItemSelectState(item, true)
+        end
+    end
+end
+
+function P.GameplayDifficultyEasyButton_clicked(e)
+    -- difficulty easy
+    debug("event: easy")
+end
+
+function P.GameplayDifficultyNormalButton_clicked(e)
+    -- difficulty normal
+    debug("event: normal")
+end
+
+function P.GameplayDifficultyHardButton_clicked(e)
+    -- difficulty hard
+    debug("event: hard")
+end
+
+function P.GameplayBackButton_clicked(e)
+    hideGUI("NewGameplayMenu")
+    debug("event: back")
+end
+
+return P
+
Index: code/branches/presentation2/data/gui/scripts/NewGraphicsMenu.lua
===================================================================
--- code/branches/presentation2/data/gui/scripts/NewGraphicsMenu.lua	(revision 6150)
+++ code/branches/presentation2/data/gui/scripts/NewGraphicsMenu.lua	(revision 6150)
@@ -0,0 +1,56 @@
+-- NewGraphicsMenu.lua
+
+BasicGUI = require("BasicGUI")
+local P = BasicGUI:new() --inherit everything from the gui package
+if _REQUIREDNAME == nil then
+    NewGraphicsMenu = P
+else
+    _G[_REQUIREDNAME] = P
+end
+
+P.filename = "NewGraphicsMenu"
+P.layoutString = "NewGraphicsMenu.layout"
+
+function P:init()
+    dropdown = winMgr:getWindow("orxonox/ResolutionCombobox")
+    preselect = orxonox.LevelManager:getInstance():getDefaultLevel()
+    orxonox.LevelManager:getInstance():compileAvailableLevelList()
+    local levelList = {}
+    local index = 0
+    local level = ""
+    while true do
+      level = orxonox.LevelManager:getInstance():getAvailableLevelListItem(index)
+      if level == "" then
+        break
+      end
+      table.insert(levelList, level)
+      index = index + 1
+    end
+    table.sort(levelList)
+    for k,v in pairs(levelList) do
+        item = CEGUI.createListboxTextItem(v)        
+        item:setSelectionBrushImage("TaharezLook", "MultiListSelectionBrush")
+        CEGUI.toCombobox(dropdown):addItem(item)
+        if v .. ".oxw" == preselect then
+            dropdown:setItemSelectState(item, true)
+        end
+    end
+end
+
+function P.GraphicsFullscreenCheckbox_clicked(e)
+    -- fullscreen
+    debug("event: fullscreen")
+end
+
+function P.GraphicsBrightnessScrollbar_clicked(e)
+    -- brightness
+    debug("event: brightness")
+end
+
+function P.GraphicsBackButton_clicked(e)
+    hideGUI("NewGraphicsMenu")
+    debug("event: back")
+end
+
+return P
+
Index: code/branches/presentation2/data/gui/scripts/NewMainMenu.lua
===================================================================
--- code/branches/presentation2/data/gui/scripts/NewMainMenu.lua	(revision 6150)
+++ code/branches/presentation2/data/gui/scripts/NewMainMenu.lua	(revision 6150)
@@ -0,0 +1,46 @@
+-- NewMainMenu.lua
+
+BasicGUI = require("BasicGUI")
+local P = BasicGUI:new() --inherit everything from the gui package
+if _REQUIREDNAME == nil then
+    NewMainMenu = P
+else
+    _G[_REQUIREDNAME] = P
+end
+
+P.filename = "NewMainMenu"
+P.layoutString = "NewMainMenu.layout"
+
+-- events for NewMainMenu
+function P.QuickGameTestButton_clicked(e)
+    orxonox.CommandExecutor:execute("startGame")
+    debug("event: quick game test")
+end
+
+function P.SingleplayerButton_clicked(e)
+    showGUI("NewSingleplayerMenu")
+    debug("event: SINGLEPLAYER")
+end
+
+function P.MultiplayerButton_clicked(e)
+    showGUI("NewMultiplayerMenu")
+    debug("event: MULTIPLAYER")
+end
+
+function P.SettingsButton_clicked(e)
+    showGUI("NewSettingsMenu")
+    debug("event: SETTINGS")
+end
+
+function P.CreditsButton_clicked(e)
+    showGUI("NewCreditsMenu")
+    debug("event: CREDITS")
+end
+
+function P.ExitButton_clicked(e)
+    orxonox.CommandExecutor:execute("exit")
+    debug("event: exit")
+end
+
+return P
+
Index: code/branches/presentation2/data/gui/scripts/NewMouseControlsMenu.lua
===================================================================
--- code/branches/presentation2/data/gui/scripts/NewMouseControlsMenu.lua	(revision 6150)
+++ code/branches/presentation2/data/gui/scripts/NewMouseControlsMenu.lua	(revision 6150)
@@ -0,0 +1,35 @@
+-- NewMouseControlsMenu.lua
+
+BasicGUI = require("BasicGUI")
+local P = BasicGUI:new() --inherit everything from the gui package
+if _REQUIREDNAME == nil then
+    NewMouseControlsMenu = P
+else
+    _G[_REQUIREDNAME] = P
+end
+
+P.filename = "NewMouseControlsMenu"
+P.layoutString = "NewMouseControlsMenu.layout"
+
+function P.MouseControlsMouseScrollbar_clicked(e)
+    -- mouse sensitivity
+    debug("event: mouse sensitivity")
+end
+
+function P.MouseControlsDefaultButton_clicked(e)
+    -- default control mode
+    debug("event: default control mode")
+end
+
+function P.MouseControls_______Button_clicked(e)
+    -- .......
+    debug("event: .......")
+end
+
+function P.MouseControlsBackButton_clicked(e)
+    hideGUI("NewMouseControlsMenu")
+    debug("event: back")
+end
+
+return P
+
Index: code/branches/presentation2/data/gui/scripts/NewMultiplayerMenu.lua
===================================================================
--- code/branches/presentation2/data/gui/scripts/NewMultiplayerMenu.lua	(revision 6150)
+++ code/branches/presentation2/data/gui/scripts/NewMultiplayerMenu.lua	(revision 6150)
@@ -0,0 +1,82 @@
+-- NewMultiplayerMenu.lua
+
+BasicGUI = require("BasicGUI")
+local P = BasicGUI:new() --inherit everything from the gui package
+if _REQUIREDNAME == nil then
+    NewMultiplayerMenu = P
+else
+    _G[_REQUIREDNAME] = P
+end
+
+P.filename = "NewMultiplayerMenu"
+P.layoutString = "NewMultiplayerMenu.layout"
+
+function P:init()
+    listbox = winMgr:getWindow("orxonox/MultiplayerLevelListbox")
+    preselect = orxonox.LevelManager:getInstance():getDefaultLevel()
+    orxonox.LevelManager:getInstance():compileAvailableLevelList()
+    local levelList = {}
+    local index = 0
+    local level = ""
+    while true do
+      level = orxonox.LevelManager:getInstance():getAvailableLevelListItem(index)
+      if level == "" then
+        break
+      end
+      table.insert(levelList, level)
+      index = index + 1
+    end
+    table.sort(levelList)
+    for k,v in pairs(levelList) do
+        item = CEGUI.createListboxTextItem(v)        
+        item:setSelectionBrushImage("TaharezLook", "MultiListSelectionBrush")
+        CEGUI.toListbox(listbox):addItem(item)
+        if v .. ".oxw" == preselect then
+            listbox:setItemSelectState(item, true)
+        end
+    end
+    local multiplayerMode = "startClient"
+    if multiplayerMode == "startClient" then
+	window = winMgr:getWindow("orxonox/MultiplayerJoinButton")
+	button = tolua.cast(window,"CEGUI::RadioButton")
+        button:setSelected(true)
+    end
+    if multiplayerMode == "startServer" then
+	window = winMgr:getWindow("orxonox/MultiplayerHostButton")
+	button = tolua.cast(window,"CEGUI::RadioButton")
+        button:setSelected(true)
+    end
+    if multiplayerMode == "startDedicated" then
+	window = winMgr:getWindow("orxonox/MultiplayerDedicatedButton")
+	button = tolua.cast(window,"CEGUI::RadioButton")
+        button:setSelected(true)
+    end
+end
+
+function P.MultiplayerJoinButton_clicked(e)
+    multiplayerMode = "startClient"
+    debug("event: join")
+end
+
+function P.MultiplayerHostButton_clicked(e)
+    multiplayerMode = "startServer"
+    debug("event: host")
+end
+
+function P.MultiplayerDedicatedButton_clicked(e)
+    multiplayerMode = "startDedicated"
+    debug("event: dedicated")
+end
+
+function P.MultiplayerStartButton_clicked(e)
+    orxonox.CommandExecutor:execute(multiplayerMode)
+    debug("event: start")
+end
+
+function P.MultiplayerBackButton_clicked(e)
+    hideGUI("NewMultiplayerMenu")
+    debug("event: back")
+end
+
+return P
+
Index: code/branches/presentation2/data/gui/scripts/NewSettingsMenu.lua
===================================================================
--- code/branches/presentation2/data/gui/scripts/NewSettingsMenu.lua	(revision 6150)
+++ code/branches/presentation2/data/gui/scripts/NewSettingsMenu.lua	(revision 6150)
@@ -0,0 +1,50 @@
+-- NewSettingsMenu.lua
+
+BasicGUI = require("BasicGUI")
+local P = BasicGUI:new() --inherit everything from the gui package
+if _REQUIREDNAME == nil then
+    NewSettingsMenu = P
+else
+    _G[_REQUIREDNAME] = P
+end
+
+P.filename = "NewSettingsMenu"
+P.layoutString = "NewSettingsMenu.layout"
+
+function P.SettingsGameplayButton_clicked(e)
+    showGUI("NewGameplayMenu")
+    debug("event: GAMEPLAY")
+end
+
+function P.SettingsMultiplayerOptionsButton_clicked(e)
+    showGUI("NewMultiplayerOptionsMenu")
+    debug("event: MULTIPLAYER OPTIONS")
+end
+
+function P.SettingsControlsButton_clicked(e)
+    showGUI("NewControlsMenu")
+    debug("event: CONTROLS")
+end
+
+function P.SettingsGraphicsButton_clicked(e)
+    showGUI("NewGraphicsMenu")
+    debug("event: GRAPHICS")
+end
+
+function P.SettingsAudioButton_clicked(e)
+    showGUI("NewAudioMenu")
+    debug("event: AUDIO")
+end
+
+function P.SettingsResetSettingsButton_clicked(e)
+    -- reset settings
+    debug("event: reset settings")
+end
+
+function P.SettingsBackButton_clicked(e)
+    hideGUI("NewSettingsMenu")
+    debug("event: back")
+end
+
+return P
+
Index: code/branches/presentation2/data/gui/scripts/NewSingleplayerMenu.lua
===================================================================
--- code/branches/presentation2/data/gui/scripts/NewSingleplayerMenu.lua	(revision 6150)
+++ code/branches/presentation2/data/gui/scripts/NewSingleplayerMenu.lua	(revision 6150)
@@ -0,0 +1,51 @@
+-- NewSingleplayerMenu.lua
+
+BasicGUI = require("BasicGUI")
+local P = BasicGUI:new() --inherit everything from the gui package
+if _REQUIREDNAME == nil then
+    NewSingleplayerMenu = P
+else
+    _G[_REQUIREDNAME] = P
+end
+
+P.filename = "NewSingleplayerMenu"
+P.layoutString = "NewSingleplayerMenu.layout"
+
+function P:init()
+    listbox = winMgr:getWindow("orxonox/SingleplayerLevelListbox")
+    preselect = orxonox.LevelManager:getInstance():getDefaultLevel()
+    orxonox.LevelManager:getInstance():compileAvailableLevelList()
+    local levelList = {}
+    local index = 0
+    local level = ""
+    while true do
+      level = orxonox.LevelManager:getInstance():getAvailableLevelListItem(index)
+      if level == "" then
+        break
+      end
+      table.insert(levelList, level)
+      index = index + 1
+    end
+    table.sort(levelList)
+    for k,v in pairs(levelList) do
+        item = CEGUI.createListboxTextItem(v)        
+        item:setSelectionBrushImage("TaharezLook", "MultiListSelectionBrush")
+        CEGUI.toListbox(listbox):addItem(item)
+        if v .. ".oxw" == preselect then
+            listbox:setItemSelectState(item, true)
+        end
+    end
+end
+
+function P.SingleplayerStartButton_clicked(e)
+    -- start game
+    debug("event: start")
+end
+
+function P.SingleplayerBackButton_clicked(e)
+    hideGUI("NewSingleplayerMenu")
+    debug("event: back")
+end
+
+return P
+
