</map>
<map context="MsgBoxActions">
- <key id="KEY_GREEN" mapto="ok" flags="m" />
+ <key id="KEY_GREEN" mapto="alwaysOK" flags="m" />
<key id="KEY_OK" mapto="ok" flags="m" />
<key id="KEY_RED" mapto="cancel" flags="m" />
<key id="KEY_EXIT" mapto="cancel" flags="m" />
<eLabel position="500,40" size="220,60" text="help..." font="Regular;50" />
</screen>
<screen name="MessageBox" position="0,300" size="720,10" title="Message">
- <widget name="text" position="0,35" size="650,0" font="Regular;22" />
- <widget name="key_red" position="0,0" size="140,30" backgroundColor="red" font="Regular;21" />
- <widget name="key_green" position="140,0" size="140,30" backgroundColor="green" font="Regular;21" />
+ <widget name="text" position="60,10" size="650,0" font="Regular;22" />
+ <widget name="ErrorPixmap" pixmap="/usr/share/enigma2/error.png" position="0,0" zPosition="3" size="53,53" alphatest="on" transparent="1" />
+ <widget name="QuestionPixmap" pixmap="/usr/share/enigma2/question.png" position="0,0" zPosition="3" size="53,53" alphatest="on" transparent="1" />
+ <widget name="list" position="100,100" size="550,375" />
<applet type="onLayoutFinish">
# this should be factored out into some helper code, but currently demonstrates applets.
from enigma import eSize, ePoint
# y size still must be fixed in font stuff...
textsize = (textsize[0] + 50, textsize[1] + 50)
-wsizex = textsize[0] + 50
-wsizey = textsize[1] + 50
+offset = 0
+if self.type == self.TYPE_YESNO:
+ offset = 60
+wsizex = textsize[0] + offset
+wsizey = textsize[1] + offset
if (280 > wsizex):
wsizex = 280
wsize = (wsizex, wsizey)
# resize label
self["text"].instance.resize(eSize(*textsize))
+# move list
+listsize = (wsizex, 50)
+self["list"].instance.move(ePoint(0, textsize[1]))
+self["list"].instance.resize(eSize(*listsize))
+
# center window
newwidth = wsize[0]
self.instance.move(ePoint(orgpos.x() + (orgwidth - newwidth)/2, orgpos.y()))
install_PYTHON = \
__init__.py \
- update.py
+ update.py
# example.py
from enigma import *
from Screens.Screen import Screen
+from Screens.MessageBox import MessageBox
+
from Components.ActionMap import ActionMap
from Components.Label import Label
self.skin = Example.skin
Screen.__init__(self, session)
- self["text"] = Label("Small test")
+ self["text"] = Label("Big test")
self["actions"] = ActionMap(["WizardActions"],
{
- "ok": self.ok
+ "ok": self.ok,
+ "back": self.close
}, -1)
def ok(self):
- self.close()
-
+ self.session.open(MessageBox, "Bla bla bla bla bla bla bla bla\n bla bla bla bla bla bla\n bla bla bla bla bla bla\n bla bla bla bla bla", MessageBox.TYPE_YESNO)
+
def main(session):
session.open(Example)
def hddReady(self, result):
print "Result: " + str(result)
if (result != 0):
- self.session.open(MessageBox, _("Unable to initialize harddisk.\nPlease refer to the user manual.\nError: ") + str(self.hdd.errorList[0 - result]))
+ self.session.open(MessageBox, _("Unable to initialize harddisk.\nPlease refer to the user manual.\nError: ") + str(self.hdd.errorList[0 - result]), MessageBox.TYPE_ERROR)
else:
self.close()
try:
stat = os.stat("/hdd/movies")
except:
- self.session.open(MessageBox, "No HDD found!")
+ self.session.open(MessageBox, "No HDD found!", MessageBox.TYPE_ERROR)
return
if self.isInstantRecordRunning():
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
})
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
if result == True:
self.session.openWithCallback(self.deleteConfirmed, MessageBox, _("Do you really want to delete this recording?"))
else:
- self.session.openWithCallback(self.close, MessageBox, _("You cannot delete this!"))
+ self.session.openWithCallback(self.close, MessageBox, _("You cannot delete this!"), MessageBox.TYPE_ERROR)
def deleteConfirmed(self, confirmed):
if not confirmed:
result = True
if result == False:
- self.session.openWithCallback(self.close, MessageBox, _("Delete failed!"))
+ self.session.openWithCallback(self.close, MessageBox, _("Delete failed!"), MessageBox.TYPE_ERROR)
else:
list = self.csel["list"]
currentIndex = list.getCurrentIndex()