mirror of
https://github.com/edubart/otclient.git
synced 2025-10-21 15:03:26 +02:00
Scrollmenu for Comboboxes, fixes #480
This commit is contained in:
@@ -7,6 +7,9 @@ function UIComboBox.create()
|
||||
combobox.options = {}
|
||||
combobox.currentIndex = -1
|
||||
combobox.mouseScroll = true
|
||||
combobox.menuScroll = false
|
||||
combobox.menuHeight = 100
|
||||
combobox.menuScrollStep = 0
|
||||
return combobox
|
||||
end
|
||||
|
||||
@@ -86,7 +89,16 @@ function UIComboBox:removeOption(text)
|
||||
end
|
||||
|
||||
function UIComboBox:onMousePress(mousePos, mouseButton)
|
||||
local menu = g_ui.createWidget(self:getStyleName() .. 'PopupMenu')
|
||||
local menu
|
||||
if self.menuScroll then
|
||||
menu = g_ui.createWidget(self:getStyleName() .. 'PopupScrollMenu')
|
||||
menu:setHeight(self.menuHeight)
|
||||
if self.menuScrollStep > 0 then
|
||||
menu:setScrollbarStep(self.menuScrollStep)
|
||||
end
|
||||
else
|
||||
menu = g_ui.createWidget(self:getStyleName() .. 'PopupMenu')
|
||||
end
|
||||
menu:setId(self:getId() .. 'PopupMenu')
|
||||
for i,v in ipairs(self.options) do
|
||||
menu:addOption(v.text, function() self:setCurrentOption(v.text) end)
|
||||
@@ -129,6 +141,12 @@ function UIComboBox:onStyleApply(styleName, styleNode)
|
||||
for name,value in pairs(styleNode) do
|
||||
if name == 'mouse-scroll' then
|
||||
self.mouseScroll = value
|
||||
elseif name == 'menu-scroll' then
|
||||
self.menuScroll = value
|
||||
elseif name == 'menu-height' then
|
||||
self.menuHeight = value
|
||||
elseif name == 'menu-scroll-step' then
|
||||
self.menuScrollStep = value
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user