touch menu entry now responses hold gestures

pull/683/head
chrox 10 years ago
parent 6cdfd322f1
commit b0b2149a92

@ -41,6 +41,13 @@ function TouchMenuItem:init()
}, },
doc = "Select Menu Item", doc = "Select Menu Item",
}, },
HoldSelect = {
GestureRange:new{
ges = "hold",
range = self.dimen,
},
doc = "Hold Menu Item",
},
} }
local item_enabled = self.item.enabled local item_enabled = self.item.enabled
@ -96,6 +103,21 @@ function TouchMenuItem:onTapSelect(arg, ges)
self.menu:onMenuSelect(self.item) self.menu:onMenuSelect(self.item)
end end
function TouchMenuItem:onHoldSelect(arg, ges)
local enabled = self.item.enabled
if self.item.enabled_func then
enabled = self.item.enabled_func()
end
if enabled == false then return end
self.item_frame.invert = true
UIManager:setDirty(self.show_parent, "partial")
UIManager:scheduleIn(0.5, function()
self.item_frame.invert = false
UIManager:setDirty(self.show_parent, "partial")
end)
self.menu:onMenuHold(self.item)
end
--[[ --[[
TouchMenuBar widget TouchMenuBar widget
@ -464,11 +486,6 @@ function TouchMenu:onSwipe(arg, ges_ev)
end end
function TouchMenu:onMenuSelect(item) function TouchMenu:onMenuSelect(item)
local enabled = item.enabled
if item.enabled_func then
enabled = item.enabled_func()
end
if enabled == false then return end
local sub_item_table = item.sub_item_table local sub_item_table = item.sub_item_table
if item.sub_item_table_func then if item.sub_item_table_func then
sub_item_table = item.sub_item_table_func() sub_item_table = item.sub_item_table_func()
@ -494,6 +511,20 @@ function TouchMenu:onMenuSelect(item)
return true return true
end end
function TouchMenu:onMenuHold(item)
local callback = item.hold_callback
if item.hold_callback_func then
callback = item.hold_callback_func()
end
if callback then
UIManager:scheduleIn(0.1, function()
self:closeMenu()
callback()
end)
end
return true
end
function TouchMenu:onTapCloseAllMenus(arg, ges_ev) function TouchMenu:onTapCloseAllMenus(arg, ges_ev)
if ges_ev.pos:notIntersectWith(self.dimen) then if ges_ev.pos:notIntersectWith(self.dimen) then
self:closeMenu() self:closeMenu()

Loading…
Cancel
Save