beautify messagebox
[enigma2.git] / lib / python / Screens / MessageBox.py
index 87da7f9..632c9bc 100644 (file)
@@ -2,21 +2,42 @@ 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
 
 class MessageBox(Screen):
-       def __init__(self, session, text):
+       TYPE_YESNO = 0
+       TYPE_INFO = 1
+       TYPE_WARNING = 2
+       TYPE_ERROR = 3
+       
+       def __init__(self, session, text, type = TYPE_YESNO):
+               self.type = type
                Screen.__init__(self, session)
                
                self["text"] = Label(text)
                
-               self["key_green"] = Button("OK")
-               self["key_red"] = Button("Exit")
+               self["ErrorPixmap"] = Pixmap()
+               self["QuestionPixmap"] = Pixmap()
+               
+               self.list = []
+               if type != self.TYPE_ERROR:
+                       self.onShown.append(self["ErrorPixmap"].hideWidget)
+               elif type != self.TYPE_YESNO:
+                       self.onShown.append(self["QuestionPixmap"].hideWidget)
+
+               if type == self.TYPE_YESNO:
+                       self.list = [ (_("yes"), 0), (_("no"), 1) ]
 
+
+               self["list"] = MenuList(self.list)
+               
                self["actions"] = ActionMap(["MsgBoxActions"], 
                        {
                                "cancel": self.cancel,
-                               "ok": self.ok
+                               "ok": self.ok,
+                               "alwaysOK": self.alwaysOK
                        })
                        
        
@@ -24,4 +45,10 @@ class MessageBox(Screen):
                self.close(False)
        
        def ok(self):
-               self.close(True)
+               if self.type == self.TYPE_YESNO:
+                       self.close(self["list"].getCurrent()[1] == 0)
+               else:
+                       self.close(True)
+
+       def alwaysOK(self):
+               self.close(True)
\ No newline at end of file