From c83f35a0d07dfde280712c387a14cd0525bae111 Mon Sep 17 00:00:00 2001 From: chrox Date: Wed, 20 Aug 2014 14:45:38 +0800 Subject: [PATCH] long press the backspace key will clear input text --- frontend/ui/widget/inputtext.lua | 6 ++++++ frontend/ui/widget/virtualkeyboard.lua | 25 ++++++++++++++++++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/frontend/ui/widget/inputtext.lua b/frontend/ui/widget/inputtext.lua index 262e0ab4b..cba04858a 100644 --- a/frontend/ui/widget/inputtext.lua +++ b/frontend/ui/widget/inputtext.lua @@ -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 diff --git a/frontend/ui/widget/virtualkeyboard.lua b/frontend/ui/widget/virtualkeyboard.lua index 617eedf12..bd863a9fc 100644 --- a/frontend/ui/widget/virtualkeyboard.lua +++ b/frontend/ui/widget/virtualkeyboard.lua @@ -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