# -*- coding: UTF-8 -*-
+from enigma import eListboxPythonMultiContent, gFont, RT_HALIGN_CENTER, RT_VALIGN_CENTER, getPrevAsciiCode
+from Screen import Screen
from Components.Language import language
from Components.ActionMap import ActionMap
from Components.Sources.StaticText import StaticText
from Components.Pixmap import Pixmap
from Components.MenuList import MenuList
from Components.MultiContent import MultiContentEntryText, MultiContentEntryPixmapAlphaTest
-from enigma import eListboxPythonMultiContent, gFont, RT_HALIGN_CENTER, RT_VALIGN_CENTER
-from Screen import Screen
from Tools.Directories import resolveFilename, SCOPE_CURRENT_SKIN
from Tools.LoadPixmap import LoadPixmap
self["text"] = Label(self.text)
self["list"] = VirtualKeyBoardList([])
- self["actions"] = ActionMap(["OkCancelActions", "WizardActions", "ColorActions"],
+ self["actions"] = ActionMap(["OkCancelActions", "WizardActions", "ColorActions", "KeyboardInputActions", "InputBoxActions", "InputAsciiActions"],
{
+ "gotAsciiCode": self.keyGotAscii,
"ok": self.okClicked,
"cancel": self.exit,
"left": self.left,
"down": self.down,
"red": self.backClicked,
"green": self.ok,
- "yellow": self.switchLang
+ "yellow": self.switchLang,
+ "deleteBackward": self.backClicked,
+ "back": self.exit
}, -2)
- self.setLanq()
+ self.setLang()
+ self.onExecBegin.append(self.setKeyboardModeAscii)
self.onLayoutFinish.append(self.buildVirtualKeyBoard)
def switchLang(self):
self.lang = self.nextLang
- self.setLanq()
+ self.setLang()
self.buildVirtualKeyBoard()
- def setLanq(self):
+ def setLang(self):
if self.lang == 'de_DE':
self.keys_list = [
[u"EXIT", u"1", u"2", u"3", u"4", u"5", u"6", u"7", u"8", u"9", u"0", u"BACKSPACE"],
self.keys_list = [
[u"EXIT", u"1", u"2", u"3", u"4", u"5", u"6", u"7", u"8", u"9", u"0", u"BACKSPACE"],
[u"q", u"w", u"e", u"r", u"t", u"z", u"u", u"i", u"o", u"p", u"+", u"@"],
- [u"a", u"s", u"d", u"f", u"g", u"h", u"j", u"k", u"l", u"#", u"\\"],
+ [u"a", u"s", u"d", u"f", u"g", u"h", u"j", u"k", u"l", u"#", u"\\", u"|"],
[u"<", u"y", u"x", u"c", u"v", u"b", u"n", u"m", u",", ".", u"-", u"CLEAR"],
[u"SHIFT", u"SPACE", u"OK"]]
self.shiftkeys_list = [
[u"EXIT", u"!", u'"', u"ยง", u"$", u"%", u"&", u"/", u"(", u")", u"=", u"BACKSPACE"],
- [u"Q", u"W", u"E", u"R", u"T", u"Z", u"U", u"I", u"O", u"P", u"*"],
- [u"A", u"S", u"D", u"F", u"G", u"H", u"J", u"K", u"L", u"'", u"?"],
+ [u"Q", u"W", u"E", u"R", u"T", u"Z", u"U", u"I", u"O", u"P", u"*", u"["],
+ [u"A", u"S", u"D", u"F", u"G", u"H", u"J", u"K", u"L", u"'", u"?", u"]"],
[u">", u"Y", u"X", u"C", u"V", u"B", u"N", u"M", u";", u":", u"_", u"CLEAR"],
[u"SHIFT", u"SPACE", u"OK"]]
self.lang = 'en_EN'
if self.shiftMode:
self.k_list = self.shiftkeys_list
for keys in self.k_list:
- if selectedKey < 12 and selectedKey > -1:
+ keyslen = len(keys)
+ if selectedKey < keyslen and selectedKey > -1:
list.append(VirtualKeyBoardEntryComponent(keys, selectedKey,True))
else:
list.append(VirtualKeyBoardEntryComponent(keys, -1,True))
- selectedKey -= 12
+ selectedKey -= keyslen
else:
self.k_list = self.keys_list
for keys in self.k_list:
- if selectedKey < 12 and selectedKey > -1:
+ keyslen = len(keys)
+ if selectedKey < keyslen and selectedKey > -1:
list.append(VirtualKeyBoardEntryComponent(keys, selectedKey))
else:
list.append(VirtualKeyBoardEntryComponent(keys, -1))
- selectedKey -= 12
+ selectedKey -= keyslen
self["list"].setList(list)
def backClicked(self):
self.text = self["text"].getText()[:-1]
self["text"].setText(self.text)
-
+
def okClicked(self):
if self.shiftMode:
list = self.shiftkeys_list
text = None
for x in list:
- if selectedKey < 12:
+ xlen = len(x)
+ if selectedKey < xlen:
if selectedKey < len(x):
text = x[selectedKey]
break
else:
- selectedKey -= 12
+ selectedKey -= xlen
if text is None:
return
def showActiveKey(self):
self.buildVirtualKeyBoard(self.selectedKey)
+
+ def inShiftKeyList(self,key):
+ for KeyList in self.shiftkeys_list:
+ for char in KeyList:
+ if char == key:
+ return True
+ return False
+
+ def keyGotAscii(self):
+ #char = str(unichr(getPrevAsciiCode()).encode('utf-8'))
+ from Components.config import getCharValue
+ char = getCharValue(getPrevAsciiCode())
+ if len(str(char)) == 1:
+ char = char.encode("utf-8")
+ if self.inShiftKeyList(char):
+ self.shiftMode = True
+ list = self.shiftkeys_list
+ else:
+ self.shiftMode = False
+ list = self.keys_list
+
+ if char == " ":
+ char = "SPACE"
+
+ selkey = 0
+ for keylist in list:
+ for key in keylist:
+ if key == char:
+ self.selectedKey = selkey
+ self.okClicked()
+ self.showActiveKey()
+ return
+ else:
+ selkey += 1