+
+ def cancel(self):
+ rcinput = eRCInput.getInstance()
+ rcinput.setKeyboardMode(rcinput.kmNone)
+ self.close(None)
+
+ def keyHome(self):
+ self["input"].home()
+
+ def keyEnd(self):
+ self["input"].end()
+
+ def keyBackspace(self):
+ self["input"].deleteBackward()
+
+ def keyTab(self):
+ self["input"].tab()
+
+ def keyInsert(self):
+ self["input"].toggleOverwrite()
+
+class PinInput(InputBox):
+ def __init__(self, session, service = "", triesEntry = None, pinList = [], *args, **kwargs):
+ InputBox.__init__(self, session = session, text="9876", maxSize=True, type=Input.PIN, *args, **kwargs)
+
+ self.waitTime = 15
+
+ self.triesEntry = triesEntry
+
+ self.pinList = pinList
+ self["service"] = Label(service)
+
+ if self.getTries() == 0:
+ if (self.triesEntry.time.value + (self.waitTime * 60)) > time():
+ remaining = (self.triesEntry.time.value + (self.waitTime * 60)) - time()
+ remainingMinutes = int(remaining / 60)
+ remainingSeconds = int(remaining % 60)
+ self.onFirstExecBegin.append(boundFunction(self.session.openWithCallback, self.closePinCancel, MessageBox, _("You have to wait for") + " " + str(remainingMinutes) + " " + _("minutes and") + " " + str(remainingSeconds) + " " + _("seconds."), MessageBox.TYPE_ERROR))
+ else:
+ self.setTries(3)
+
+ self["tries"] = Label("")
+ self.onShown.append(self.showTries)
+
+ def keyNumberGlobal(self, number):
+ if self["input"].currPos == len(self["input"]) - 1:
+ InputBox.keyNumberGlobal(self, number)
+ self.go()
+ else:
+ InputBox.keyNumberGlobal(self, number)