combobox with wheel event

master
Henrique Santiago 12 years ago
parent 380a13ef83
commit 168f03125c

@ -2,6 +2,7 @@ Module
name: client name: client
description: Load all other otclient dependecies description: Load all other otclient dependecies
author: OTClient team author: OTClient team
website: https://github.com/edubart/otclient
// NOTE: order does matter // NOTE: order does matter
dependencies: dependencies:

@ -28,6 +28,10 @@ MouseLeftButton = 1
MouseRightButton = 2 MouseRightButton = 2
MouseMidButton = 3 MouseMidButton = 3
MouseNoWheel = 0
MouseWheelUp = 1
MouseWheelDown = 2
AlignNone = 0 AlignNone = 0
AlignLeft = 1 AlignLeft = 1
AlignRight = 2 AlignRight = 2
@ -293,4 +297,4 @@ KeyCodeDescs = {
[KeyNumpad7] = 'Numpad7', [KeyNumpad7] = 'Numpad7',
[KeyNumpad8] = 'Numpad8', [KeyNumpad8] = 'Numpad8',
[KeyNumpad9] = 'Numpad9' [KeyNumpad9] = 'Numpad9'
} }

@ -19,6 +19,15 @@ function UIComboBox:setCurrentOption(text)
end end
end end
function UIComboBox:setCurrentIndex(index)
if index >= 1 and index <= #self.m_options then
local v = self.m_options[index]
self.m_currentIndex = index
self:setText(v.text)
self:onOptionChange(v.text, v.data)
end
end
function UIComboBox:addOption(text, data) function UIComboBox:addOption(text, data)
table.insert(self.m_options, { text = text, data = data }) table.insert(self.m_options, { text = text, data = data })
local index = #self.m_options local index = #self.m_options
@ -38,6 +47,17 @@ function UIComboBox:onMousePress(mousePos, mouseButton)
return true return true
end end
function UIComboBox:onMouseWheel(mousePos, direction)
if direction == MouseWheelUp and self.m_currentIndex > 1 then
self:setCurrentIndex(self.m_currentIndex - 1)
return true
elseif direction == MouseWheelDown and self.m_currentIndex < #self.m_options then
self:setCurrentIndex(self.m_currentIndex + 1)
return true
end
return false
end
function UIComboBox:onStyleApply(styleName, styleNode) function UIComboBox:onStyleApply(styleName, styleNode)
if styleNode.options then if styleNode.options then
for k,option in pairs(styleNode.options) do for k,option in pairs(styleNode.options) do

Loading…
Cancel
Save