viplist improvements

This commit is contained in:
Henrique Santiago 2012-01-04 16:11:11 -02:00
parent a73908fbbe
commit a92af44eb6
3 changed files with 81 additions and 1 deletions

View File

@ -0,0 +1,47 @@
MainWindow
size: 256 128
title: Add to VIP list
Label
text: Please enter a character name:
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
margin-left: 16
margin-right: 16
margin-top: 32
LineEdit
id: name
anchors.top: prev.bottom
anchors.left: parent.left
anchors.right: parent.right
margin-left: 16
margin-right: 16
margin-top: 4
HorizontalSeparator
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: next.top
margin-left: 16
margin-right: 16
margin-bottom: 10
Button
text: Ok
width: 64
anchors.right: next.left
anchors.bottom: parent.bottom
margin-bottom: 16
margin-right: 16
@onClick: VipList.addVip()
Button
text: Cancel
width: 64
anchors.right: parent.right
anchors.bottom: parent.bottom
margin-bottom: 16
margin-right: 16
@onClick: VipList.destroyAddWindow()

View File

@ -2,6 +2,7 @@ VipList = {}
-- private variables
local vipWindow = nil
local addVipWindow = nil
-- public functions
function VipList.create()
@ -13,6 +14,20 @@ function VipList.destroy()
vipWindow = nil
end
function VipList.createAddWindow()
addVipWindow = displayUI('addvip.otui')
end
function VipList.destroyAddWindow()
addVipWindow:destroy()
addVipWindow = nil
end
function VipList.addVip()
Game.addVip(addVipWindow:getChildById('name'):getText())
VipList.destroyAddWindow()
end
-- hooked events
function Game.onAddVip(id, name, online)
local vipList = vipWindow:getChildById('vipList')
@ -43,14 +58,31 @@ function Game.onVipStateChange(id, online)
label.vipOnline = online
end
function VipList.onVipListMousePress(widget, mousePos, mouseButton)
if mouseButton ~= MouseRightButton then return end
local vipList = vipWindow:getChildById('vipList')
local menu = createWidget('PopupMenu')
menu:addOption('Add new VIP', function() VipList.createAddWindow() end)
menu:display(mousePos)
return true
end
function VipList.onVipListLabelMousePress(widget, mousePos, mouseButton)
if mouseButton ~= MouseRightButton then return end
local vipList = vipWindow:getChildById('vipList')
local menu = createWidget('PopupMenu')
menu:addOption('Remove from VIP list', function() if widget then Game.removeVip(widget:getId():sub(4)) vipList:removeChild(widget) end end)
menu:addOption('Add new VIP', function() VipList.createAddWindow() end)
menu:addOption('Remove ' .. widget:getText(), function() if widget then Game.removeVip(widget:getId():sub(4)) vipList:removeChild(widget) end end)
menu:addSeparator()
menu:addOption('Copy Name', function() end)
menu:display(mousePos)
return true
end

View File

@ -15,3 +15,4 @@ MiniWindow
margin-bottom: 6
margin-left: 6
margin-right: 6
&onMousePress: VipList.onVipListMousePress