remove double import
[enigma2.git] / lib / python / Screens / MessageBox.py
index deea54bae4f6a2e2352434306781b61b50b746cb..8477fe04b97c04e68e4882f958c0f0faecc99a31 100644 (file)
@@ -1,26 +1,28 @@
 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.Sources.StaticText import StaticText
 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"] = Label(text)
+               self["Text"] = StaticText(text)
+               self["selectedChoice"] = StaticText()
+
                self.text = text
                self.close_on_any_key = close_on_any_key
-               
+
                self["ErrorPixmap"] = Pixmap()
                self["QuestionPixmap"] = Pixmap()
                self["InfoPixmap"] = Pixmap()
@@ -34,12 +36,17 @@ 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) ]
 
-               self["list"] = MenuList(self.list)
+               if type == self.TYPE_YESNO:
+                       if default == True:
+                               self.list = [ (_("yes"), 0), (_("no"), 1) ]
+                       else:
+                               self.list = [ (_("no"), 1), (_("yes"), 0) ]
                
+               if len(self.list):
+                       self["selectedChoice"].setText(self.list[0][0])
+               self["list"] = MenuList(self.list)
+
                self["actions"] = ActionMap(["MsgBoxActions", "DirectionActions"], 
                        {
                                "cancel": self.cancel,
@@ -59,7 +66,7 @@ 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
                        if self.execing:
@@ -81,6 +88,7 @@ class MessageBox(Screen):
                if self.timerRunning:
                        del self.timer
                        self.setTitle(self.origTitle)
+                       self.timerRunning = False
 
        def timerTick(self):
                if self.execing:
@@ -96,10 +104,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 +119,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)
 
@@ -125,6 +133,8 @@ class MessageBox(Screen):
                if self.close_on_any_key:
                        self.close(True)
                self["list"].instance.moveSelection(direction)
+               if len(self.list):
+                       self["selectedChoice"].setText(self["list"].getCurrent()[0])
                self.stopTimer()
 
        def __repr__(self):