tibia-client/modules/client_topmenu/topmenu.lua

79 lines
1.7 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
2011-11-01 17:41:15 +01:00
2012-01-07 21:00:07 +01:00
-- private functions
local function onLogout()
if Game.isOnline() then
Game.logout(false)
else
exit()
end
end
2011-11-01 17:41:15 +01:00
-- public functions
2012-01-07 18:36:58 +01:00
function TopMenu.init()
topMenu = displayUI('topmenu.otui')
2012-01-07 18:36:58 +01:00
leftButtonsPanel = topMenu:getChildById('leftButtonsPanel')
rightButtonsPanel = topMenu:getChildById('rightButtonsPanel')
2012-01-07 21:00:07 +01:00
TopMenu.addRightButton('logoutButton', 'Logout (Ctrl+Q)', '/core_styles/icons/logout.png', onLogout)
Hotkeys.bind('Ctrl+Q', onLogout)
2011-11-01 17:41:15 +01:00
end
2012-01-07 18:36:58 +01:00
function TopMenu.terminate()
2012-01-07 21:00:07 +01:00
Hotkeys.unbind('Ctrl+Q')
2012-01-07 18:36:58 +01:00
leftButtonsPanel = nil
rightButtonsPanel = nil
2011-11-01 17:41:15 +01:00
topMenu:destroy()
topMenu = nil
2011-11-16 19:08:42 +01:00
end
2012-01-07 18:36:58 +01:00
function TopMenu.addButton(id, description, icon, callback, right)
local panel
local class
if right then
panel = rightButtonsPanel
class = 'TopRightButton'
else
panel = leftButtonsPanel
class = 'TopLeftButton'
end
local button = createWidget(class, panel)
button:setId(id)
button:setTooltip(description)
button:setIcon(resolvepath(icon, 2))
button.onClick = callback
return button
end
function TopMenu.addLeftButton(id, description, icon, callback)
return TopMenu.addButton(id, description, icon, callback, false)
end
function TopMenu.addRightButton(id, description, icon, callback)
return TopMenu.addButton(id, description, icon, callback, true)
end
function TopMenu.removeButton(param)
local button
if type(param) == 'string' then
button = TopMenu.getButton(param)
else
button = param
end
button:destroy()
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
function TopMenu:getLogoutButton(id)
return TopMenu.getButton('logoutButton')
2011-12-05 19:27:07 +01:00
end