X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2FScreens%2FMessageBox.py;h=51f398774966bcf67206c66a4a8bdedd89391405;hp=6c7bdd3c620f5af8cba0b275e6b95deb77b6c342;hb=6f73e6abddf4170357c490966d0e1c622eb376f5;hpb=b58a0fa7cab89937586e2d08d79274fab3f14edc diff --git a/lib/python/Screens/MessageBox.py b/lib/python/Screens/MessageBox.py index 6c7bdd3..51f3987 100644 --- a/lib/python/Screens/MessageBox.py +++ b/lib/python/Screens/MessageBox.py @@ -1,26 +1,25 @@ from Screen import Screen from Components.ActionMap import ActionMap from Components.Label import Label -from Components.Button import Button from Components.Pixmap import Pixmap from Components.MenuList import MenuList -from enigma import eSize, ePoint, eTimer +from enigma import eTimer class MessageBox(Screen): TYPE_YESNO = 0 TYPE_INFO = 1 TYPE_WARNING = 2 TYPE_ERROR = 3 - - def __init__(self, session, text, type = TYPE_YESNO, timeout = -1, close_on_any_key = False): + + def __init__(self, session, text, type = TYPE_YESNO, timeout = -1, close_on_any_key = False, default = True): 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() @@ -34,12 +33,15 @@ class MessageBox(Screen): self["QuestionPixmap"].hide() if type != self.TYPE_INFO: self["InfoPixmap"].hide() - + if type == self.TYPE_YESNO: - self.list = [ (_("yes"), 0), (_("no"), 1) ] + if default == True: + self.list = [ (_("yes"), 0), (_("no"), 1) ] + else: + self.list = [ (_("no"), 1), (_("yes"), 0) ] self["list"] = MenuList(self.list) - + self["actions"] = ActionMap(["MsgBoxActions", "DirectionActions"], { "cancel": self.cancel, @@ -59,20 +61,21 @@ class MessageBox(Screen): self.timeout = timeout if timeout > 0: self.timer = eTimer() - self.timer.timeout.get().append(self.timerTick) + self.timer.callback.append(self.timerTick) self.onExecBegin.append(self.startTimer) self.origTitle = None - try: - if self.instance and self.instance.isVisible(): - self.timerTick() - else: - self.onShown.append(self.timerTick) - except AttributeError: - self.onShown.append(self.timerTick) + if self.execing: + self.timerTick() + else: + self.onShown.append(self.__onShown) self.timerRunning = True else: self.timerRunning = False + def __onShown(self): + self.onShown.remove(self.__onShown) + self.timerTick() + def startTimer(self): self.timer.start(1000) @@ -80,7 +83,7 @@ class MessageBox(Screen): if self.timerRunning: del self.timer self.setTitle(self.origTitle) - self.onShown.remove(self.timerTick) + self.timerRunning = False def timerTick(self): if self.execing: @@ -96,10 +99,10 @@ class MessageBox(Screen): def timeoutCallback(self): print "Timeout!" self.ok() - + def cancel(self): self.close(False) - + def ok(self): if self.type == self.TYPE_YESNO: self.close(self["list"].getCurrent()[1] == 0) @@ -111,13 +114,13 @@ class MessageBox(Screen): def up(self): self.move(self["list"].instance.moveUp) - + def down(self): self.move(self["list"].instance.moveDown) def left(self): self.move(self["list"].instance.pageUp) - + def right(self): self.move(self["list"].instance.pageDown)