X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/7bc4a59528ab13f3062dc1520e76f9ecedd87400..d17277948450b3b080049b7ce859044b57490120:/lib/python/Screens/Menu.py diff --git a/lib/python/Screens/Menu.py b/lib/python/Screens/Menu.py index c3809318..41d18d1e 100644 --- a/lib/python/Screens/Menu.py +++ b/lib/python/Screens/Menu.py @@ -1,17 +1,30 @@ -from Screen import * +#from Screen import * from Components.MenuList import MenuList from Components.ActionMap import ActionMap from Components.Header import Header - -# hack ... must be made dynamic -from ServiceScan import ServiceScan -from ScartLoopThrough import ScartLoopThrough from Components.Button import Button from Components.Label import Label from Components.ProgressBar import ProgressBar -from ConfigMenu import * -from TimerEdit import * +# hack ... must be made dynamic +#from Screens.Setup import Setup +#from ServiceScan import ServiceScan +#from ScartLoopThrough import ScartLoopThrough +#from HarddiskSetup import HarddiskSelection +#from ConfigMenu import * + +#from About import * + +#from Network import * + +#from TimerEdit import * + +# hack.... dynamically importing all screens +from __init__ import __all__ +for i in __all__: + print "import " + i + if (i is not "Menu" ): + exec "from " + i + " import *" from enigma import quitMainloop @@ -19,67 +32,31 @@ import xml.dom.minidom from xml.dom import EMPTY_NAMESPACE from skin import elementsWithTag +from Tools import XMLTools + # some screens def doGlobal(screen): screen["clock"] = Clock() -mdom = xml.dom.minidom.parseString( - """ - - quitMainloop() - self.openDialog(ServiceScan) - - self.setModeTV() - self.setModeRadio() - self.setModeFile() - self.openDialog(ScartLoopThrough) - self.openDialog(TimerEditList) - - - - - - - - - - - - self.openDialog(ServiceScan) - - - - - - - - - - self.openDialog(configOSD) - - - - - - - - - - - - - - self.goSetup() - - """) - -def getText(nodelist): - rc = "" - for node in nodelist: - if node.nodeType == node.TEXT_NODE: - rc = rc + node.data - return rc +# self.setModeTV() +# self.setModeRadio() +# self.setModeFile() +# self.openDialog(ScartLoopThrough) +# + + +# read the menu +try: + # first we search in the current path + menufile = file('data/menu.xml', 'r') +except: + # if not found in the current path, we use the global datadir-path + menufile = file('/usr/share/enigma2/menu.xml', 'r') +mdom = xml.dom.minidom.parseString(menufile.read()) +menufile.close() + + def getValbyAttr(x, attr): for p in range(x.attributes.length): @@ -127,38 +104,9 @@ class configOSD(Screen): self["sld_gamma"] = ProgressBar() self["sld_gamma"].setValue(50) - - - class Menu(Screen): - #add file load functions for the xml-file - #remove old code (i.e. goScan / goClock...) - - def openDialog(self, dialog): - self.session.open(dialog) - - def goSetup(self): - self.session.open(configTest) - - def setModeTV(self): - print "set Mode to TV" - pass - - def setModeRadio(self): - print "set Mode to Radio" - pass - - def setModeFile(self): - print "set Mode to File" - pass - - def goScan(self): - self.session.open(ServiceScan) - - def goClock(self): - self.session.open(clockDisplay, Clock()) - def okbuttonClick(self): + print "okbuttonClick" selection = self["menu"].getCurrent() selection[1]() @@ -168,6 +116,12 @@ class Menu(Screen): def nothing(self): #dummy pass + def openDialog(self, dialog): # in every layer needed + self.session.open(dialog) + + def openSetup(self, dialog): + self.session.open(Setup, dialog) + def addMenu(self, destList, node): MenuTitle = getValbyAttr(node, "text") if MenuTitle != "": #check for title @@ -178,7 +132,7 @@ class Menu(Screen): def addItem(self, destList, node): ItemText = getValbyAttr(node, "text") if ItemText != "": #check for name - b = getText(node.childNodes) + b = XMLTools.mergeText(node.childNodes) if b != "": #check for function destList.append((ItemText,boundFunction(self.evalText,b))) else: @@ -210,3 +164,56 @@ class Menu(Screen): a = getValbyAttr(parent, "text") self["title"] = Header(a) +class FixedMenu(Screen): + def okbuttonClick(self): + selection = self["menu"].getCurrent() + selection[1]() + + def __init__(self, session, title, list): + Screen.__init__(self, session) + + self["menu"] = MenuList(list) + + self["actions"] = ActionMap(["OkCancelActions"], + { + "ok": self.okbuttonClick, + "cancel": self.close + }) + + self["title"] = Header(title) + + +class MainMenu(Menu): + #add file load functions for the xml-file + #remove old code (i.e. goScan / goClock...) + + def __init__(self, *x): + Menu.__init__(self, *x) + self.skinName = "Menu" + + def openDialog(self, dialog): + self.session.open(dialog) + + def openSetup(self, dialog): + self.session.open(Setup, dialog) + + def goSetup(self): + self.session.open(configTest) + + def setModeTV(self): + print "set Mode to TV" + pass + + def setModeRadio(self): + print "set Mode to Radio" + pass + + def setModeFile(self): + print "set Mode to File" + pass + + def goScan(self): + self.session.open(ServiceScan) + + def goClock(self): + self.session.open(clockDisplay, Clock())