-# -*- coding: latin-1 -*-
+# -*- coding: utf-8 -*-
from enigma import eTimer
from Components.Language import language
class NumericalTextInput:
- def __init__(self, nextFunc=None, handleTimeout = True):
+ 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".,?'+\"0-()@/:_$!") # 0
self.mapping.append (u" 1") # 1
- self.mapping.append (u"aäbc2AÄBC") # 2
+ 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"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".,?'+\"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"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"mnñoóò6MNÑOÓÒ") # 6
self.mapping.append (u"pqrs7PQRS") # 7
- self.mapping.append (u"tuvúù8TUVÚÙ") # 8
+ 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".,?'+\"0-()@/:_$!") # 0
self.mapping.append (u" 1") # 1
self.mapping.append (u"abc2ABC") # 2
self.mapping.append (u"def3DEF") # 3
self.mapping.append (u"tuv8TUV") # 8
self.mapping.append (u"wxyz9WXYZ") # 9
- if handleTimeout:
- self.timer = eTimer()
- self.timer.timeout.get().append(self.timeout)
- else:
- self.timer = None
- self.lastKey = -1
- self.pos = -1
-
def setUseableChars(self, useable):
self.useableChars = useable
def getKey(self, num):
cnt=0
- if self.timer is not None:
- self.timer.start(1000, True)
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.nextFunction()
def timeout(self):
- self.nextChar()
+ if self.lastKey != -1:
+ self.nextChar()