Index: code/trunk/data/gui/scripts/ChatBox-inputonly.lua
===================================================================
--- code/trunk/data/gui/scripts/ChatBox-inputonly.lua	(revision 7734)
+++ code/trunk/data/gui/scripts/ChatBox-inputonly.lua	(revision 7801)
@@ -1,5 +1,5 @@
 -- ChatBox-inputonly.lua
 
-local P = createMenuSheet("ChatBox-inputonly")
+local P = createMenuSheet("ChatBox-inputonly", true, TriBool.True, TriBool.Dontcare, false)
 return P
 
Index: code/trunk/data/gui/scripts/ChatBox.lua
===================================================================
--- code/trunk/data/gui/scripts/ChatBox.lua	(revision 7734)
+++ code/trunk/data/gui/scripts/ChatBox.lua	(revision 7801)
@@ -1,5 +1,5 @@
 -- ChatBox.lua
 
-local P = createMenuSheet("ChatBox")
+local P = createMenuSheet("ChatBox", true, TriBool.True, TriBool.Dontcare, false)
 
 function P.ChatBoxCloseButton_clicked(e)
Index: code/trunk/data/gui/scripts/GraphicsMenu.lua
===================================================================
--- code/trunk/data/gui/scripts/GraphicsMenu.lua	(revision 7734)
+++ code/trunk/data/gui/scripts/GraphicsMenu.lua	(revision 7801)
@@ -4,4 +4,5 @@
 
 P.buttonList = {}
+P.schemeList = {"TaharezGreen", "Orxonox"}
 
 function P.onShow()
@@ -97,4 +98,27 @@
     }
     P.buttonList[1] = item
+
+    local dropbox = winMgr:getWindow("orxonox/ThemeDropBox")
+    local scheme = orxonox.CommandExecutor:query("getConfig GUIManager guiScheme_")
+    for k,v in pairs(P.schemeList) do
+        local item = CEGUI.createListboxTextItem(P.schemeList[k])
+        item:setSelectionBrushImage(menuImageSet, "MultiListSelectionBrush")
+        CEGUI.toListbox(dropbox):addItem(item)
+        if v == scheme then
+            dropbox:setItemSelectState(item, true)
+        end
+    end
+
+end
+
+function P.ThemeDropBox_changed(e)
+    local dropbox = winMgr:getWindow("orxonox/ThemeDropBox")
+    local listbox = CEGUI.toListbox(dropbox)
+    local choice = listbox:getFirstSelectedItem()
+    local index = 0
+    if choice ~= nil then
+        index = listbox:getItemIndex(choice)
+    end
+    orxonox.CommandExecutor:execute("config GUIManager guiScheme_ " .. P.schemeList[index+1])
 end
 
Index: code/trunk/data/gui/scripts/InitialiseGUI.lua
===================================================================
--- code/trunk/data/gui/scripts/InitialiseGUI.lua	(revision 7734)
+++ code/trunk/data/gui/scripts/InitialiseGUI.lua	(revision 7801)
@@ -5,7 +5,8 @@
 winMgr    = CEGUI.WindowManager:getSingleton()
 
+local scheme = orxonox.CommandExecutor:query("getConfig GUIManager guiScheme_")
 -- Load all required skins
-schemeMgr:loadScheme("TaharezGreenLook.scheme")
---schemeMgr:loadScheme("OrxonoxLook.scheme")
+--schemeMgr:loadScheme("TaharezGreenLook.scheme")
+schemeMgr:loadScheme(scheme .. "Look.scheme")
 --schemeMgr:loadScheme("TaharezLook.scheme")
 --schemeMgr:loadScheme("WindowsLook.scheme")
@@ -16,12 +17,12 @@
 -- By loading a different file (if there is) you can change the skin
 -- of the menus or the HUD independently
-schemeMgr:loadScheme("TaharezGreenMenuWidgets.scheme")
-menuImageSet = "TaharezGreenLook"
-schemeMgr:loadScheme("TaharezGreenHUDWidgets.scheme")
-hudImageSet = "TaharezGreenLook"
---schemeMgr:loadScheme("OrxonoxLookMenuWidgets.scheme")
---menuImageSet = "OrxonoxLook"
---schemeMgr:loadScheme("OrxonoxLookHUDWidgets.scheme")
---hudImageSet = "OrxonoxLook"
+--schemeMgr:loadScheme("TaharezGreenMenuWidgets.scheme")
+--menuImageSet = "TaharezGreenLook"
+--schemeMgr:loadScheme("TaharezGreenHUDWidgets.scheme")
+--hudImageSet = "TaharezGreenLook"
+schemeMgr:loadScheme(scheme .. "MenuWidgets.scheme")
+menuImageSet = scheme .. "Look"
+schemeMgr:loadScheme(scheme .. "HUDWidgets.scheme")
+hudImageSet = scheme .. "Look"
 
 -- Just a remaining test hack
Index: code/trunk/data/gui/scripts/MultiplayerMenu.lua
===================================================================
--- code/trunk/data/gui/scripts/MultiplayerMenu.lua	(revision 7734)
+++ code/trunk/data/gui/scripts/MultiplayerMenu.lua	(revision 7801)
@@ -6,6 +6,6 @@
 
 --joinMode is 1 for choice "LAN" and 2 for "Internet"
---initial status 0
-P.joinMode = 0
+--initial status 1
+P.joinMode = 1
 
 function P.onLoad()
@@ -33,17 +33,38 @@
 
 function P.onShow()
-    P.showServerList()
+    --P.showServerList()
 
     --indices to iterate through buttonlist
     P.oldindex = -2
     P.index = -1
+    
+    if P.joinMode == 1 then
+        local window = winMgr:getWindow("orxonox/MultiplayerLanButton")
+        local button = tolua.cast(window,"CEGUI::RadioButton")
+        button:setSelected(true)
+    end
+    if P.joinMode == 2 then
+        local window = winMgr:getWindow("orxonox/MultiplayerInternetButton")
+        local button = tolua.cast(window,"CEGUI::RadioButton")
+        button:setSelected(true)
+    end
 end
 
 function P.LanButton_clicked(e)
+    local we = CEGUI.toWindowEventArgs(e)
+    local button = tolua.cast(we.window,"CEGUI::RadioButton")
     P.joinMode = 1
+    if button:isSelected() == true then
+	    P.showServerList()
+    end
 end
 
 function P.InternetButton_clicked(e)
+    local we = CEGUI.toWindowEventArgs(e)
+    local button = tolua.cast(we.window,"CEGUI::RadioButton")
     P.joinMode = 2
+    if button:isSelected() == true then
+	    P.showServerList()
+	end
 end
 
@@ -55,19 +76,13 @@
 function P.MultiplayerJoinButton_clicked(e)
     local choice = winMgr:getWindow("orxonox/MultiplayerListbox"):getFirstSelectedItem()   
-
-    if P.joinMode == 2 then
-        if choice then
-            local client = orxonox.Client:getInstance()
-            local index = tolua.cast(choice, "CEGUI::ListboxItem"):getID()
-            client:setDestination( P.serverList[index][2], 55556 )
-        else
-            return
-        end
-        orxonox.execute("startClient")
-        hideAllMenuSheets()
+    if choice then
+        local client = orxonox.Client:getInstance()
+        local index = tolua.cast(choice, "CEGUI::ListboxItem"):getID()
+        client:setDestination( P.serverList[index][2], 55556 )
     else
-        --wait for Sandro's function
+        return
     end
-
+    orxonox.execute("startClient")
+    hideAllMenuSheets()
 end
 
@@ -77,32 +92,68 @@
 
 function P.showServerList()
-    local listbox = winMgr:getWindow("orxonox/MultiplayerListbox")
-    CEGUI.toListbox(listbox):resetList()
-    local discovery = orxonox.LANDiscovery:getInstance()
-    discovery:discover()
-    P.serverList = {}
-    local index = 0
-    local servername = ""
-    local serverip = ""
-    while true do
-        servername = discovery:getServerListItemName(index)
-        if servername == "" then
-            break
-        end
-        serverip = discovery:getServerListItemIP(index)
-        if serverip == "" then
-          break
-        end
-        table.insert(P.serverList, {servername, serverip})
-        index = index + 1
-    end
-    index = 1
-    for k,v in pairs(P.serverList) do
-        local item = CEGUI.createListboxTextItem( v[1] .. ": " .. v[2] )
-        item:setID(index)
-        index = index + 1
-        item:setSelectionBrushImage(menuImageSet, "MultiListSelectionBrush")
-        CEGUI.toListbox(listbox):addItem(item)
-    end
+	-- LAN Discovery
+	if P.joinMode == 1 then
+		local listbox = winMgr:getWindow("orxonox/MultiplayerListbox")
+		CEGUI.toListbox(listbox):resetList()
+		local discovery = orxonox.LANDiscovery:getInstance()
+		discovery:discover()
+		P.serverList = {}
+		local index = 0
+		local servername = ""
+		local serverip = ""
+		while true do
+		    servername = discovery:getServerListItemName(index)
+		    if servername == "" then
+		        break
+		    end
+		    serverip = discovery:getServerListItemIP(index)
+		    if serverip == "" then
+		      break
+		    end
+		    table.insert(P.serverList, {servername, serverip})
+		    index = index + 1
+		end
+		index = 1
+		for k,v in pairs(P.serverList) do
+		    local item = CEGUI.createListboxTextItem( v[1] .. ": " .. v[2] )
+		    item:setID(index)
+		    index = index + 1
+		    item:setSelectionBrushImage(menuImageSet, "MultiListSelectionBrush")
+		    CEGUI.toListbox(listbox):addItem(item)
+		end
+	-- WAN Discovery
+	elseif P.joinMode == 2 then
+		local listbox = winMgr:getWindow("orxonox/MultiplayerListbox")
+		CEGUI.toListbox(listbox):resetList()
+		local discovery = orxonox.WANDiscovery:getInstance()
+		cout(0, "discovering.\n" )
+		discovery:discover()
+		cout(0, "discovered.\n" )
+		P.serverList = {}
+		local index = 0
+		local servername = ""
+		local serverip = ""
+		while true do
+		    servername = discovery:getServerListItemName(index)
+		    if servername == "" then
+		        break
+		    end
+		    serverip = discovery:getServerListItemIP(index)
+		    if serverip == "" then
+		      break
+		    end
+		    table.insert(P.serverList, {servername, serverip})
+		    index = index + 1
+		end
+		index = 1
+		for k,v in pairs(P.serverList) do
+		    local item = CEGUI.createListboxTextItem( v[1] .. ": " .. v[2] )
+		    item:setID(index)
+		    index = index + 1
+		    item:setSelectionBrushImage(menuImageSet, "MultiListSelectionBrush")
+		    CEGUI.toListbox(listbox):addItem(item)
+		end
+	end
+	
 end
 
