tibia-client/modules/client_topmenu/topmenu.lua

107 lines
2.9 KiB
Lua
Raw Normal View History

2011-11-01 17:41:15 +01:00
TopMenu = {}
-- private variables
local topMenu
2012-01-07 18:36:58 +01:00
local leftButtonsPanel
local rightButtonsPanel
local leftGameButtonsPanel
local rightGameButtonsPanel
2011-11-01 17:41:15 +01:00
2012-01-07 21:00:07 +01:00
-- private functions
local function addButton(id, description, icon, callback, panel, toggle)
local class
if toggle then
class = 'TopToggleButton'
else
class = 'TopButton'
end
2012-06-26 00:13:30 +02:00
local button = g_ui.createWidget(class, panel)
button:setId(id)
button:setTooltip(description)
button:setIcon(resolvepath(icon, 3))
button.onClick = callback
return button
2012-01-07 21:00:07 +01:00
end
2011-11-01 17:41:15 +01:00
-- public functions
2012-01-07 18:36:58 +01:00
function TopMenu.init()
connect(g_game, { onGameStart = TopMenu.showGameButtons,
onGameEnd = TopMenu.hideGameButtons })
2012-06-26 00:13:30 +02:00
topMenu = g_ui.displayUI('topmenu.otui')
2012-01-07 18:36:58 +01:00
leftButtonsPanel = topMenu:getChildById('leftButtonsPanel')
rightButtonsPanel = topMenu:getChildById('rightButtonsPanel')
leftGameButtonsPanel = topMenu:getChildById('leftGameButtonsPanel')
rightGameButtonsPanel = topMenu:getChildById('rightGameButtonsPanel')
if g_game.isOnline() then
leftGameButtonsPanel:show()
rightGameButtonsPanel:show()
end
2011-11-01 17:41:15 +01:00
end
2012-01-07 18:36:58 +01:00
function TopMenu.terminate()
disconnect(g_game, { onGameStart = TopMenu.showGameButtons,
onGameEnd = TopMenu.hideGameButtons })
2012-01-07 18:36:58 +01:00
leftButtonsPanel = nil
rightButtonsPanel = nil
leftGameButtonsPanel = nil
rightGameButtonsPanel = nil
2011-11-01 17:41:15 +01:00
topMenu:destroy()
topMenu = nil
2012-02-06 20:19:47 +01:00
2012-02-07 01:41:53 +01:00
TopMenu = nil
2011-11-16 19:08:42 +01:00
end
function TopMenu.addLeftButton(id, description, icon, callback)
return addButton(id, description, icon, callback, leftButtonsPanel, false)
end
2012-01-07 18:36:58 +01:00
function TopMenu.addLeftToggleButton(id, description, icon, callback, right)
return addButton(id, description, icon, callback, leftButtonsPanel, true)
2012-01-07 18:36:58 +01:00
end
function TopMenu.addRightButton(id, description, icon, callback)
return addButton(id, description, icon, callback, rightButtonsPanel, false)
end
function TopMenu.addRightToggleButton(id, description, icon, callback, right)
return addButton(id, description, icon, callback, rightButtonsPanel, true)
2012-01-07 18:36:58 +01:00
end
function TopMenu.addLeftGameButton(id, description, icon, callback)
return addButton(id, description, icon, callback, leftGameButtonsPanel, false)
end
function TopMenu.addLeftGameToggleButton(id, description, icon, callback, right)
return addButton(id, description, icon, callback, leftGameButtonsPanel, true)
end
function TopMenu.addRightGameButton(id, description, icon, callback)
return addButton(id, description, icon, callback, rightGameButtonsPanel, false)
end
function TopMenu.addRightGameToggleButton(id, description, icon, callback, right)
return addButton(id, description, icon, callback, rightGameButtonsPanel, true)
2012-01-07 18:36:58 +01:00
end
2012-01-23 14:47:15 +01:00
function TopMenu.hideGameButtons()
leftGameButtonsPanel:hide()
rightGameButtonsPanel:hide()
2012-01-23 14:47:15 +01:00
end
function TopMenu.showGameButtons()
leftGameButtonsPanel:show()
rightGameButtonsPanel:show()
2012-01-23 14:47:15 +01:00
end
2011-11-16 19:08:42 +01:00
function TopMenu.getButton(id)
2012-01-07 18:36:58 +01:00
return topMenu:recursiveGetChildById(id)
end