X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/65f6d162b837f60ce76fa308f741bd0b6516563e..20dff87d087a63ac3be50290d5f7308313ae042d:/lib/python/Screens/MessageBox.py diff --git a/lib/python/Screens/MessageBox.py b/lib/python/Screens/MessageBox.py index e850f7fc..33d51b24 100644 --- a/lib/python/Screens/MessageBox.py +++ b/lib/python/Screens/MessageBox.py @@ -12,12 +12,15 @@ class MessageBox(Screen): TYPE_WARNING = 2 TYPE_ERROR = 3 - def __init__(self, session, text, type = TYPE_YESNO, timeout = -1): + def __init__(self, session, text, type = TYPE_YESNO, timeout = -1, close_on_any_key = False): self.type = type Screen.__init__(self, session) self["text"] = Label(text) + self.text = text + self.close_on_any_key = close_on_any_key + self["ErrorPixmap"] = Pixmap() self["QuestionPixmap"] = Pixmap() self["InfoPixmap"] = Pixmap() @@ -25,7 +28,7 @@ class MessageBox(Screen): if timeout > 0: self.timer = eTimer() self.timer.timeout.get().append(self.timerTick) - self.timer.start(1000) + self.onExecBegin.append(self.startTimer) self.origTitle = None self.onShown.append(self.timerTick) self.timerRunning = True @@ -59,8 +62,10 @@ class MessageBox(Screen): "leftRepeated": self.left, "rightRepeated": self.right }, -1) - - + + def startTimer(self): + self.timer.start(1000) + def timerTick(self): self.timeout -= 1 if self.origTitle is None: @@ -96,14 +101,18 @@ class MessageBox(Screen): def left(self): self.move(self["list"].instance.pageUp) - - def right(self): self.move(self["list"].instance.pageDown) def move(self, direction): + if self.close_on_any_key: + self.close(True) + self["list"].instance.moveSelection(direction) if self.timerRunning: self.timer.stop() self.setTitle(self.origTitle) - self.timerRunning = False \ No newline at end of file + self.timerRunning = False + + def __repr__(self): + return str(type(self)) + "(" + self.text + ")"