long press the backspace key will clear input text

This commit is contained in:
chrox
2014-08-20 14:45:38 +08:00
parent 948d92a3b3
commit c83f35a0d0
2 changed files with 30 additions and 1 deletions

View File

@@ -151,6 +151,12 @@ function InputText:delChar()
UIManager:setDirty(self.parent, "partial")
end
function InputText:clear()
self.text = ""
self:initTextBox()
UIManager:setDirty(self.parent, "partial")
end
function InputText:getText()
return self.text
end

View File

@@ -41,6 +41,7 @@ function VirtualKey:init()
self.callback = function () self.keyboard:setLayout(self.key or self.label) end
elseif self.label == "Backspace" then
self.callback = function () self.keyboard:delChar() end
self.hold_callback = function () self.keyboard:clear() end
else
self.callback = function () self.keyboard:addChar(self.key) end
end
@@ -83,6 +84,12 @@ function VirtualKey:init()
range = self.dimen,
},
},
HoldSelect = {
GestureRange:new{
ges = "hold",
range = self.dimen,
},
},
}
end
end
@@ -96,6 +103,15 @@ function VirtualKey:onTapSelect()
return true
end
function VirtualKey:onHoldSelect()
self[1].invert = true
if self.hold_callback then
self.hold_callback()
end
UIManager:scheduleIn(0.5, function() self:invert(false) end)
return true
end
function VirtualKey:invert(invert)
self[1].invert = invert
UIManager:setDirty(self.keyboard, "partial")
@@ -191,7 +207,7 @@ function VirtualKeyboard:init()
for i = 1, string.len(GLOBAL_INPUT_VALUE) do
self:addChar(string.sub(GLOBAL_INPUT_VALUE,i,i))
end
end
end
end
function VirtualKeyboard:initLayout(layout)
@@ -303,4 +319,11 @@ function VirtualKeyboard:delChar()
UIManager:setDirty(self.inputbox, "partial")
end
function VirtualKeyboard:clear()
DEBUG("clear input")
self.inputbox:clear()
UIManager:setDirty(self, "partial")
UIManager:setDirty(self.inputbox, "partial")
end
return VirtualKeyboard