X-Git-Url: http://code.vuplus.com/gitweb/?a=blobdiff_plain;f=lib%2Fpython%2FTools%2FNumericalTextInput.py;h=da090b1321b154728f440a9b4bdd657aa0cb3c2b;hb=739c64ceb1cad3f9fcf1e85be88bf3faad13c534;hp=d867d74eb0cff2a97999027b0db1d2f5234e2fe2;hpb=ad849952739d402553830c5ff080ac9a3edb3f4e;p=vuplus_dvbapp diff --git a/lib/python/Tools/NumericalTextInput.py b/lib/python/Tools/NumericalTextInput.py index d867d74..da090b1 100644 --- a/lib/python/Tools/NumericalTextInput.py +++ b/lib/python/Tools/NumericalTextInput.py @@ -1,30 +1,117 @@ -from enigma import * +# -*- coding: utf-8 -*- +from enigma import eTimer +from Components.Language import language class NumericalTextInput: - mapping = [] - mapping.append (('a', 'b', 'c', 'A', 'B', 'C')) # 0 - mapping.append (('a', 'b', 'c', 'A', 'B', 'C')) # 1 - mapping.append (('a', 'b', 'c', 'A', 'B', 'C')) # 2 - mapping.append (('a', 'b', 'c', 'A', 'B', 'C')) # 3 - mapping.append (('a', 'b', 'c', 'A', 'B', 'C')) # 4 - mapping.append (('a', 'b', 'c', 'A', 'B', 'C')) # 5 - mapping.append (('a', 'b', 'c', 'A', 'B', 'C')) # 6 - mapping.append (('a', 'b', 'c', 'A', 'B', 'C')) # 7 - mapping.append (('a', 'b', 'c', 'A', 'B', 'C')) # 8 - mapping.append (('a', 'b', 'c', 'A', 'B', 'C')) # 9 - - - def __init__(self, nextFunction): - self.nextFunction = nextFunction - self.Timer = eTimer() - self.Timer.timeout.get().append(self.nextChar) - - def getKey(self, num): - self.Timer.start(1000) - return self.mapping[num][0] - - def nextChar(self): - self.Timer.stop() - print "Timer done" - self.nextFunction() - \ No newline at end of file + def __init__(self, nextFunc=None, handleTimeout = True, search = False): + self.mapping = [] + self.lang = language.getLanguage() + self.useableChars=None + self.nextFunction=nextFunc + + if handleTimeout: + self.timer = eTimer() + self.timer.callback.append(self.timeout) + else: + self.timer = None + self.lastKey = -1 + self.pos = -1 + + if search: + self.mapping.append (u"%_0") # 0 + self.mapping.append (u" 1") # 1 + self.mapping.append (u"abc2") # 2 + self.mapping.append (u"def3") # 3 + self.mapping.append (u"ghi4") # 4 + self.mapping.append (u"jkl5") # 5 + self.mapping.append (u"mno6") # 6 + self.mapping.append (u"pqrs7") # 7 + self.mapping.append (u"tuv8") # 8 + self.mapping.append (u"wxyz9") # 9 + return + + if self.lang == 'de_DE': + self.mapping.append (u".,?'+\"0-()@/:_$!=") # 0 + self.mapping.append (u" 1") # 1 + self.mapping.append (u"aäbc2AÄBC") # 2 + self.mapping.append (u"def3DEF") # 3 + self.mapping.append (u"ghi4GHI") # 4 + self.mapping.append (u"jkl5JKL") # 5 + self.mapping.append (u"mnoö6MNOÖ") # 6 + self.mapping.append (u"pqrsß7PQRSß") # 7 + self.mapping.append (u"tuüv8TUÜV") # 8 + self.mapping.append (u"wxyz9WXYZ") # 9 + elif self.lang == 'es_ES': + self.mapping.append (u".,?'+\"0-()@/:_$!=") # 0 + self.mapping.append (u" 1") # 1 + self.mapping.append (u"abcáà2ABCÁÀ") # 2 + self.mapping.append (u"deéèf3DEFÉÈ") # 3 + self.mapping.append (u"ghiíì4GHIÍÌ") # 4 + self.mapping.append (u"jkl5JKL") # 5 + self.mapping.append (u"mnñoóò6MNÑOÓÒ") # 6 + self.mapping.append (u"pqrs7PQRS") # 7 + self.mapping.append (u"tuvúù8TUVÚÙ") # 8 + self.mapping.append (u"wxyz9WXYZ") # 9 + if self.lang in ('sv_SE', 'fi_FI'): + self.mapping.append (u".,?'+\"0-()@/:_$!=") # 0 + self.mapping.append (u" 1") # 1 + self.mapping.append (u"abcåä2ABCÅÄ") # 2 + self.mapping.append (u"defé3DEFÉ") # 3 + self.mapping.append (u"ghi4GHI") # 4 + self.mapping.append (u"jkl5JKL") # 5 + self.mapping.append (u"mnoö6MNOÖ") # 6 + self.mapping.append (u"pqrs7PQRS") # 7 + self.mapping.append (u"tuv8TUV") # 8 + self.mapping.append (u"wxyz9WXYZ") # 9 + else: + self.mapping.append (u".,?'+\"0-()@/:_$!=") # 0 + self.mapping.append (u" 1") # 1 + self.mapping.append (u"abc2ABC") # 2 + self.mapping.append (u"def3DEF") # 3 + self.mapping.append (u"ghi4GHI") # 4 + self.mapping.append (u"jkl5JKL") # 5 + self.mapping.append (u"mno6MNO") # 6 + self.mapping.append (u"pqrs7PQRS") # 7 + self.mapping.append (u"tuv8TUV") # 8 + self.mapping.append (u"wxyz9WXYZ") # 9 + + def setUseableChars(self, useable): + self.useableChars = useable + + def getKey(self, num): + cnt=0 + if self.lastKey != num: + if self.lastKey != -1: + self.nextChar() + self.lastKey = num + self.pos = -1 + if self.timer is not None: + self.timer.start(1000, True) + while True: + self.pos += 1 + if len(self.mapping[num]) <= self.pos: + self.pos = 0 + if self.useableChars: + pos = self.useableChars.find(self.mapping[num][self.pos]) + if pos == -1: + cnt += 1 + if cnt < len(self.mapping[num]): + continue + else: + return None + break + return self.mapping[num][self.pos] + + def nextKey(self): + if self.timer is not None: + self.timer.stop() + self.lastKey = -1 + + def nextChar(self): + self.nextKey() + if self.nextFunction: + self.nextFunction() + + def timeout(self): + if self.lastKey != -1: + self.nextChar()