[Orxonox-commit 2884] r7587 - in code/branches/menu/data/gui: layouts scripts

konrad at orxonox.net konrad at orxonox.net
Wed Oct 27 13:11:24 CEST 2010


Author: konrad
Date: 2010-10-27 13:11:24 +0200 (Wed, 27 Oct 2010)
New Revision: 7587

Added:
   code/branches/menu/data/gui/layouts/HostMenu.layout
   code/branches/menu/data/gui/scripts/HostMenu.lua
Modified:
   code/branches/menu/data/gui/layouts/MainMenu.layout
   code/branches/menu/data/gui/layouts/MultiplayerMenu.layout
   code/branches/menu/data/gui/scripts/MenuSheet.lua
   code/branches/menu/data/gui/scripts/MultiplayerMenu.lua
Log:
changes in the multiplayer menu, 2 buttons instead of 3: host and join separated.


Added: code/branches/menu/data/gui/layouts/HostMenu.layout
===================================================================
--- code/branches/menu/data/gui/layouts/HostMenu.layout	                        (rev 0)
+++ code/branches/menu/data/gui/layouts/HostMenu.layout	2010-10-27 11:11:24 UTC (rev 7587)
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<GUILayout >
+    <Window Type="MenuWidgets/StaticImage" Name="orxonox/HostMenuBackground" >
+        <Property Name="FrameEnabled" Value="False" />
+        <Property Name="InheritsAlpha" Value="False" />
+        <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+        <Property Name="UnifiedAreaRect" Value="{{0,0},{0,0},{1,0},{1,0}}" />
+        <Property Name="BackgroundEnabled" Value="False" />
+
+
+        <Window Type="MenuWidgets/StaticText" Name="orxonox/HostMenuWindow" >
+            <Property Name="Text" Value="Multiplayer" />
+            <Property Name="Alpha" Value="0.8" />
+            <Property Name="InheritsAlpha" Value="False" />
+            <Property Name="HorzFormatting" Value="HorzCentred" />
+            <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+            <Property Name="VertFormatting" Value="TopAligned" />
+            <Property Name="UnifiedAreaRect" Value="{{0.25,0},{0.2875,0},{0.75,0},{0.6375,0}}" />
+            <Window Type="MenuWidgets/Listbox" Name="orxonox/HostMenuListbox" >
+                <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+                <Property Name="UnifiedAreaRect" Value="{{0.05,0},{0.15,0},{0.95,0},{0.8,0}}" />
+            </Window>
+	   
+
+            <Window Type="MenuWidgets/RadioButton" Name="orxonox/HostMenuHostButton" >
+                <Property Name="Text" Value="Build Server"/>
+                <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+                <Property Name="UnifiedAreaRect" Value="{{0.2,0},{0.85,0},{0.4,0},{0.95,0}}" />
+                <Event Name="SelectStateChanged" Function="HostMenu.HostMenuBuildServerButton_clicked"/>
+            </Window>
+            <Window Type="MenuWidgets/RadioButton" Name="orxonox/HostMenuDedicatedButton" >
+                <Property Name="Text" Value="Dedicated" />
+                <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+                <Property Name="UnifiedAreaRect" Value="{{0.7,0},{0.85,0},{0.9,0},{0.95,0}}" />
+                <Event Name="SelectStateChanged" Function="HostMenu.HostMenuDedicatedButton_clicked"/>
+            </Window>
+
+        </Window>
+
+        <Window Type="MenuWidgets/Button" Name="orxonox/HostMenuStartButton" >
+            <Property Name="Text" Value="Start" />
+            <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+            <Property Name="UnifiedAreaRect" Value="{{0.2875,0},{0.6625,0},{0.4875,0},{0.7125,0}}" />
+            <Event Name="Clicked" Function="HostMenu.HostMenuStartButton_clicked"/>
+        </Window>
+        <Window Type="MenuWidgets/Button" Name="orxonox/HostMenuBackButton" >
+	            <Property Name="Text" Value="Back" />
+	            <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+	            <Property Name="UnifiedAreaRect" Value="{{0.5125,0},{0.6625,0},{0.7125,0},{0.7125,0}}" />
+	            <Event Name="Clicked" Function="HostMenu.HostMenuBackButton_clicked"/>
+	        </Window>
+
+    </Window>
+</GUILayout>
+

Modified: code/branches/menu/data/gui/layouts/MainMenu.layout
===================================================================
--- code/branches/menu/data/gui/layouts/MainMenu.layout	2010-10-26 19:14:45 UTC (rev 7586)
+++ code/branches/menu/data/gui/layouts/MainMenu.layout	2010-10-27 11:11:24 UTC (rev 7587)
@@ -9,7 +9,6 @@
         <Property Name="BackgroundEnabled" Value="False" />
         <Window Type="MenuWidgets/Button" Name="orxonox/QuickGameTestButton" >
             <Property Name="Text" Value="Quickstart" />
-            <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
             <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.2875,0},{0.6,0},{0.3375,0}}" />
             <Event Name="Clicked" Function="MainMenu.QuickGameTestButton_clicked"/>
         </Window>

Modified: code/branches/menu/data/gui/layouts/MultiplayerMenu.layout
===================================================================
--- code/branches/menu/data/gui/layouts/MultiplayerMenu.layout	2010-10-26 19:14:45 UTC (rev 7586)
+++ code/branches/menu/data/gui/layouts/MultiplayerMenu.layout	2010-10-27 11:11:24 UTC (rev 7587)
@@ -7,6 +7,8 @@
         <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
         <Property Name="UnifiedAreaRect" Value="{{0,0},{0,0},{1,0},{1,0}}" />
         <Property Name="BackgroundEnabled" Value="False" />
+
+
         <Window Type="MenuWidgets/StaticText" Name="orxonox/MultiplayerWindow" >
             <Property Name="Text" Value="Multiplayer" />
             <Property Name="Alpha" Value="0.8" />
@@ -19,16 +21,24 @@
                 <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
                 <Property Name="UnifiedAreaRect" Value="{{0.05,0},{0.15,0},{0.95,0},{0.8,0}}" />
             </Window>
+
+        </Window>
+	    <!--
+		Die Radiobuttons brauchen wir nicht mehr, dafuer ihre Funktionen.
+		Neue Buttons:
+		>join<          >host<      
+	
+
             <Window Type="MenuWidgets/RadioButton" Name="orxonox/MultiplayerJoinButton" >
                 <Property Name="Text" Value="Join" />
                 <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-                <Property Name="UnifiedAreaRect" Value="{{0.1,0},{0.85,0},{0.3,0},{0.95,0}}" />
+                <Property Name="UnifiedAreaRect" Value="{{0.2,0},{0.85,0},{0.4,0},{0.95,0}}" />
                 <Event Name="SelectStateChanged" Function="MultiplayerMenu.MultiplayerJoinButton_clicked"/>
             </Window>
             <Window Type="MenuWidgets/RadioButton" Name="orxonox/MultiplayerHostButton" >
-                <Property Name="Text" Value="Host" />
+                <Property Name="Text" Value="Build Server"/>
                 <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
-                <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.85,0},{0.6,0},{0.95,0}}" />
+                <Property Name="UnifiedAreaRect" Value="{{0.6,0},{0.85,0},{0.8,0},{0.95,0}}" />
                 <Event Name="SelectStateChanged" Function="MultiplayerMenu.MultiplayerHostButton_clicked"/>
             </Window>
             <Window Type="MenuWidgets/RadioButton" Name="orxonox/MultiplayerDedicatedButton" >
@@ -37,7 +47,32 @@
                 <Property Name="UnifiedAreaRect" Value="{{0.7,0},{0.85,0},{0.9,0},{0.95,0}}" />
                 <Event Name="SelectStateChanged" Function="MultiplayerMenu.MultiplayerDedicatedButton_clicked"/>
             </Window>
-        </Window>
+
+	     -->
+
+	         <Window Type="MenuWidgets/Button" Name="orxonox/MultiplayerBackButton" >
+	            <Property Name="Text" Value="Back" />
+	            <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+	            <Property Name="UnifiedAreaRect" Value="{{0.7125,0},{0.8625,0},{0.9125,0},{0.9125,0}}" />
+	            <Event Name="Clicked" Function="MultiplayerMenu.MultiplayerBackButton_clicked"/>
+	        </Window>
+
+	        <Window Type="MenuWidgets/Button" Name="orxonox/MultiplayerJoinButton2" >
+	            <Property Name="Text" Value="Join" />
+	            <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+	            <Property Name="UnifiedAreaRect" Value="{{0.2875,0},{0.6625,0},{0.4875,0},{0.7125,0}}" />
+	            <Event Name="Clicked" Function="MultiplayerMenu.MultiplayerJoinButton2_clicked"/>
+	        </Window>
+
+	        <Window Type="MenuWidgets/Button" Name="orxonox/MultiplayerHostButton2" >
+	            <Property Name="Text" Value="Host" />
+	            <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+	            <Property Name="UnifiedAreaRect" Value="{{0.5125,0},{0.6625,0},{0.7125,0},{0.7125,0}}" />
+	            <Event Name="Clicked" Function="MultiplayerMenu.MultiplayerHostButton2_clicked"/>
+	        </Window>
+
+	<!--
+
         <Window Type="MenuWidgets/Button" Name="orxonox/MultiplayerStartButton" >
             <Property Name="Text" Value="Start" />
             <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
@@ -50,5 +85,9 @@
             <Property Name="UnifiedAreaRect" Value="{{0.5125,0},{0.6625,0},{0.7125,0},{0.7125,0}}" />
             <Event Name="Clicked" Function="MultiplayerMenu.MultiplayerBackButton_clicked"/>
         </Window>
+	
+	-->
+
     </Window>
 </GUILayout>
+

Added: code/branches/menu/data/gui/scripts/HostMenu.lua
===================================================================
--- code/branches/menu/data/gui/scripts/HostMenu.lua	                        (rev 0)
+++ code/branches/menu/data/gui/scripts/HostMenu.lua	2010-10-27 11:11:24 UTC (rev 7587)
@@ -0,0 +1,83 @@
+-- HostMenu.lua
+
+local P = createMenuSheet("HostMenu")
+
+P.multiplayerMode = "startServer"
+
+function P.onShow()
+    if P.multiplayerMode == "startServer" then
+        local window = winMgr:getWindow("orxonox/HostMenuHostButton")
+        local button = tolua.cast(window,"CEGUI::RadioButton")
+        button:setSelected(true)
+        P.showLevelList()
+    end
+
+    if P.multiplayerMode == "startDedicated" then
+        local window = winMgr:getWindow("orxonox/HostMenuDedicatedButton")
+        local button = tolua.cast(window,"CEGUI::RadioButton")
+        button:setSelected(true)
+        P.showLevelList()
+    end
+
+end
+
+function P.HostMenuBuildServerButton_clicked(e)
+    P.multiplayerMode = "startServer"
+    P.showLevelList()
+end
+
+function P.HostMenuDedicatedButton_clicked(e)
+    P.multiplayerMode = "startDedicated"
+    P.showLevelList()
+end
+
+function P.HostMenuBackButton_clicked(e)
+    hideMenuSheet(P.name)
+end
+
+function P.HostMenuStartButton_clicked(e)
+    local choice = winMgr:getWindow("orxonox/HostMenuListbox"):getFirstSelectedItem()
+        if choice then
+            orxonox.LevelManager:getInstance():setDefaultLevel(choice:getText() .. ".oxw")
+        else
+            return
+        end
+    orxonox.execute(P.multiplayerMode)
+    hideAllMenuSheets()
+end
+
+
+
+function P.showLevelList()
+    local listbox = winMgr:getWindow("orxonox/HostMenuListbox")
+    CEGUI.toListbox(listbox):resetList()
+    local 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)
+    index = 1
+    for k,v in pairs(levelList) do
+        local item = CEGUI.createListboxTextItem(v)
+        item:setSelectionBrushImage(menuImageSet, "MultiListSelectionBrush")
+        item:setID(index)
+        index = index + 1
+        CEGUI.toListbox(listbox):addItem(item)
+        if v .. ".oxw" == preselect then
+            listbox:setItemSelectState(item, true)
+        end
+    end
+end
+
+
+
+return P

Modified: code/branches/menu/data/gui/scripts/MenuSheet.lua
===================================================================
--- code/branches/menu/data/gui/scripts/MenuSheet.lua	2010-10-26 19:14:45 UTC (rev 7586)
+++ code/branches/menu/data/gui/scripts/MenuSheet.lua	2010-10-27 11:11:24 UTC (rev 7587)
@@ -15,7 +15,7 @@
     local newSheet = GUISheet.new(_name)
     newSheet.bHidePrevious  = handleDefArg(_bHidePrevious,  true)
     newSheet.tShowCursor    = handleDefArg(_tShowCusor,     TriBool.True)
-    newSheet.tUseKeyboard   = handleDefArg(_tUseKeyboard,   TriBool.Dontcare)
+    newSheet.tUseKeyboard   = handleDefArg(_tUseKeyboard,   TriBool.True)
     newSheet.bBlockJoyStick = handleDefArg(_bBlockJoyStick, false)
 
     setmetatable(newSheet, P)

Modified: code/branches/menu/data/gui/scripts/MultiplayerMenu.lua
===================================================================
--- code/branches/menu/data/gui/scripts/MultiplayerMenu.lua	2010-10-26 19:14:45 UTC (rev 7586)
+++ code/branches/menu/data/gui/scripts/MultiplayerMenu.lua	2010-10-27 11:11:24 UTC (rev 7587)
@@ -7,24 +7,7 @@
 end
 
 function P.onShow()
-    if P.multiplayerMode == "startClient" then
-        local window = winMgr:getWindow("orxonox/MultiplayerJoinButton")
-        local button = tolua.cast(window,"CEGUI::RadioButton")
-        button:setSelected(true)
-        P.showServerList()
-    end
-    if P.multiplayerMode == "startServer" then
-        local window = winMgr:getWindow("orxonox/MultiplayerHostButton")
-        local button = tolua.cast(window,"CEGUI::RadioButton")
-        button:setSelected(true)
-        P.showLevelList()
-    end
-    if P.multiplayerMode == "startDedicated" then
-        local window = winMgr:getWindow("orxonox/MultiplayerDedicatedButton")
-        local button = tolua.cast(window,"CEGUI::RadioButton")
-        button:setSelected(true)
-        P.showLevelList()
-    end
+    P.showServerList()
 end
 
 function P.MultiplayerJoinButton_clicked(e)
@@ -42,24 +25,21 @@
     P.showLevelList()
 end
 
-function P.MultiplayerStartButton_clicked(e)
+function P.MultiplayerHostButton2_clicked(e)
+    showMenuSheet("HostMenu", true)
+end
+
+
+function P.MultiplayerJoinButton2_clicked(e)
     local choice = winMgr:getWindow("orxonox/MultiplayerListbox"):getFirstSelectedItem()
-    if P.multiplayerMode == "startClient" 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
+    if choice then
+        local client = orxonox.Client:getInstance()
+        local index = tolua.cast(choice, "CEGUI::ListboxItem"):getID()
+        client:setDestination( P.serverList[index][2], 55556 )
     else
-        if choice then
-            orxonox.LevelManager:getInstance():setDefaultLevel(choice:getText() .. ".oxw")
-        else
-            return
-        end
+        return
     end
-    orxonox.execute(P.multiplayerMode)
+    orxonox.execute("startClient")
     hideAllMenuSheets()
 end
 




More information about the Orxonox-commit mailing list