Merge commit 'origin/bug_202_networkconfig_cleanup' into experimental
[enigma2.git] / lib / python / Screens / MessageBox.py
index c3e3813b0c65d14f2bfce2d9e69f73b04df1ab98..f3538b7b730090e71cd6e1fdc4041ec39ec33eee 100644 (file)
@@ -2,8 +2,8 @@ from Screen import Screen
 from Components.ActionMap import ActionMap
 from Components.Label import Label
 from Components.Pixmap import Pixmap
-from Components.MenuList import MenuList
 from Components.Sources.StaticText import StaticText
+from Components.MenuList import MenuList
 from enigma import eTimer
 
 class MessageBox(Screen):
@@ -12,12 +12,15 @@ class MessageBox(Screen):
        TYPE_WARNING = 2
        TYPE_ERROR = 3
 
-       def __init__(self, session, text, type = TYPE_YESNO, timeout = -1, close_on_any_key = False, default = True):
+       def __init__(self, session, text, type = TYPE_YESNO, timeout = -1, close_on_any_key = False, default = True, enable_input = True, msgBoxID = None):
                self.type = type
                Screen.__init__(self, session)
+               
+               self.msgBoxID = msgBoxID
 
-               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
@@ -41,23 +44,26 @@ class MessageBox(Screen):
                                self.list = [ (_("yes"), 0), (_("no"), 1) ]
                        else:
                                self.list = [ (_("no"), 1), (_("yes"), 0) ]
-
+               
+               if self.list:
+                       self["selectedChoice"].setText(self.list[0][0])
                self["list"] = MenuList(self.list)
 
-               self["actions"] = ActionMap(["MsgBoxActions", "DirectionActions"], 
-                       {
-                               "cancel": self.cancel,
-                               "ok": self.ok,
-                               "alwaysOK": self.alwaysOK,
-                               "up": self.up,
-                               "down": self.down,
-                               "left": self.left,
-                               "right": self.right,
-                               "upRepeated": self.up,
-                               "downRepeated": self.down,
-                               "leftRepeated": self.left,
-                               "rightRepeated": self.right
-                       }, -1)
+               if enable_input:
+                       self["actions"] = ActionMap(["MsgBoxActions", "DirectionActions"], 
+                               {
+                                       "cancel": self.cancel,
+                                       "ok": self.ok,
+                                       "alwaysOK": self.alwaysOK,
+                                       "up": self.up,
+                                       "down": self.down,
+                                       "left": self.left,
+                                       "right": self.right,
+                                       "upRepeated": self.up,
+                                       "downRepeated": self.down,
+                                       "leftRepeated": self.left,
+                                       "rightRepeated": self.right
+                               }, -1)
 
        def initTimeout(self, timeout):
                self.timeout = timeout
@@ -84,6 +90,7 @@ class MessageBox(Screen):
        def stopTimer(self):
                if self.timerRunning:
                        del self.timer
+                       self.onExecBegin.remove(self.startTimer)
                        self.setTitle(self.origTitle)
                        self.timerRunning = False
 
@@ -130,6 +137,8 @@ class MessageBox(Screen):
                if self.close_on_any_key:
                        self.close(True)
                self["list"].instance.moveSelection(direction)
+               if self.list:
+                       self["selectedChoice"].setText(self["list"].getCurrent()[0])
                self.stopTimer()
 
        def __repr__(self):