Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/presentation2/data/gui/scripts/KeyBindMenu.lua @ 6266

Last change on this file since 6266 was 6266, checked in by dafrick, 14 years ago

KeyBindMenu is working now. (Apart from some minor faults)
Found some commandExecutor("show/hideGUI …") in DecisionPopup, and another possible bug.
Added an InfoPopup

  • Property svn:executable set to *
File size: 2.3 KB
Line 
1-- KeyBindMenu.lua
2
3BasicGUI = require("BasicGUI")
4local P = BasicGUI:new() --inherit everything from the gui package
5if _REQUIREDNAME == nil then
6    KeyBindMenu = P
7else
8    _G[_REQUIREDNAME] = P
9end
10
11P.filename = "KeyBindMenu"
12P.layoutString = "KeyBindMenu.layout"
13
14function P:init()
15    commandList = {}
16    table.insert(commandList, "fire 0")
17    table.insert(commandList, "fire 1")
18    table.insert(commandList, "fire 2")
19
20    local lineHeight = 30
21   
22    local window = winMgr:getWindow("orxonox/KeyBindPane")
23
24    for k,v in pairs(commandList) do
25        local button = winMgr:createWindow("TaharezLook/Button", "orxonox/KeyBindPane/Binding" .. k .. "/Button")
26        local command = winMgr:createWindow("TaharezLook/StaticText", "orxonox/KeyBindPane/Binding" .. k .. "/Command")
27        local line = winMgr:createWindow("DefaultWindow", "orxonox/KeyBindPane/Binding" .. k)
28       
29        line:setSize(CEGUI.UVector2(CEGUI.UDim(1,-13),CEGUI.UDim(0, lineHeight)))
30        button:setSize(CEGUI.UVector2(CEGUI.UDim(0.4, 0), CEGUI.UDim(1, 0)))
31        command:setSize(CEGUI.UVector2(CEGUI.UDim(0.6, 0), CEGUI.UDim(1, 0)))
32       
33        button:setPosition(CEGUI.UVector2(CEGUI.UDim(0.6, 0),CEGUI.UDim(0, 0)))
34        command:setPosition(CEGUI.UVector2(CEGUI.UDim(0, 0),CEGUI.UDim(0, 0)))
35        line:setPosition(CEGUI.UVector2(CEGUI.UDim(0, 0),CEGUI.UDim(0, lineHeight*(k-1))))
36       
37        button:setText(orxonox.KeyBinderManager:getInstance():getCurrent():getBinding(v))
38        command:setText(v)
39       
40        orxonox.KeyBinderManager:getInstance():subscribeEventHelper(button, "Clicked", P.filename .. ".KeyBindButton_clicked")
41        --button:subscribeScriptedEvent("EventClicked", P.filename .. ".KeyBindButton_clicked")
42       
43        line:addChildWindow(command)
44        line:addChildWindow(button)
45        window:addChildWindow(line)
46    end
47end
48
49function P.KeyBindButton_clicked(e)
50    local we = CEGUI.toWindowEventArgs(e)
51    local name = we.window:getName()
52    commandNr = tonumber(string.match(name, "%d+"))
53   
54    openInfoPopup("Press any button/key or move a mouse/joystick axis.", KeyBindMenu.keybind)
55
56end
57
58function P.keybind()
59    orxonox.KeyBinderManager:getInstance():keybind(commandList[commandNr])
60end
61
62function P.KeyBindBackButton_clicked(e)
63    hideGUI("KeyBindMenu")
64    debug("event: back")
65end
66
67return P
68
Note: See TracBrowser for help on using the repository browser.