mobile phone like text input (doesn't update the configList... why?)
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Fri, 11 Nov 2005 23:57:30 +0000 (23:57 +0000)
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Fri, 11 Nov 2005 23:57:30 +0000 (23:57 +0000)
lib/python/Components/config.py
lib/python/Tools/Makefile.am
lib/python/Tools/NumericalTextInput.py [new file with mode: 0644]

index 75dee0ce9119f29810634abd9419f15595859074..f2d45ef8197cbeba375a896c84d6431215cf5885 100644 (file)
@@ -1,4 +1,5 @@
 from time import *
+from Tools.NumericalTextInput import *
 
 class configFile:
        def __init__(self):
@@ -275,6 +276,7 @@ class configText:
                self.parent = parent
                self.markedPos = 0
                self.mode = self.parent.vals[0]
+               self.textInput = NumericalTextInput(self.nextEntry)
 
        def checkValues(self):
                if (self.markedPos < 0):
@@ -287,6 +289,10 @@ class configText:
 
        def save(self):
                self.parent.save()
+               
+       def nextEntry(self):
+               print "Next entry"
+               self.handleKey(config.key["nextElement"])
 
        def handleKey(self, key):
                #this will no change anything on the value itself
@@ -298,12 +304,11 @@ class configText:
                        if (self.mode == self.extendableSize):
                                if (self.markedPos >= len(self.parent.value)):
                                        self.parent.value = self.parent.value.ljust(len(self.parent.value) + 1)
-                       
-               
+       
                if key >= config.key["0"] and key <= config.key["9"]:
                        number = 9 - config.key["9"] + key
 
-                       self.parent.value = self.parent.value[0:self.markedPos] + str(number) + self.parent.value[self.markedPos + 1:]
+                       self.parent.value = self.parent.value[0:self.markedPos] + str(self.textInput.getKey(number)) + self.parent.value[self.markedPos + 1:]
                
                self.checkValues()                      
                
index 882e523ee13c7e1ef519f59f30afaffdedb73e8d..d9bd45a2809ae13f18d54bb63c02d66d1c0eab5a 100644 (file)
@@ -1,4 +1,4 @@
 installdir = $(LIBDIR)/enigma2/python/Tools
 
 install_DATA = \
-       FuzzyDate.py XMLTools.py Directories.py __init__.py
+       FuzzyDate.py XMLTools.py Directories.py NumericalTextInput.py __init__.py
diff --git a/lib/python/Tools/NumericalTextInput.py b/lib/python/Tools/NumericalTextInput.py
new file mode 100644 (file)
index 0000000..d867d74
--- /dev/null
@@ -0,0 +1,30 @@
+from enigma import *
+
+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