1 from components import *
3 from enigma import quitMainloop
7 screen["clock"] = Clock()
9 class Screen(dict, HTMLSkin, GUISkin):
12 def __init__(self, session):
13 self.skinName = self.__class__.__name__
14 self.session = session
15 GUISkin.__init__(self)
18 # assert self.session == None, "a screen can only exec one per time"
19 # self.session = session
20 for (name, val) in self.items():
24 for (name, val) in self.items():
26 # assert self.session != None, "execEnd on non-execing screen!"
29 # never call this directly - it will be called from the session!
34 for (name, val) in self.items():
35 print "%s -> %d" % (name, sys.getrefcount(val))
38 def close(self, retval=None):
41 class mainMenu(Screen):
44 self["title"].setText("EMUs ARE ILLEGAL AND NOT SUPPORTED!")
46 def goTimeshift(self):
47 self["title"].setText("JUST PRESS THE YELLOW BUTTON!")
50 self["title"].setText("HDTV GREEN FLASHES: ENABLED")
53 self.session.open(serviceScan)
56 self.session.open(clockDisplay, Clock())
58 def okbuttonClick(self):
59 selection = self["menu"].getCurrent()
62 def __init__(self, session):
63 Screen.__init__(self, session)
66 self["actions"] = ActionMap(["OkCancelActions"],
68 "ok": self.okbuttonClick,
72 b.onClick = [ self.okbuttonClick ]
74 self["title"] = Header("Main Menu! - press ok to leave!")
75 self["menu"] = MenuList(
77 ("Close Main Menu", self.close),
78 ("Service Scan", self.goScan),
79 ("Quit", quitMainloop),
80 ("EMU SETUP", self.goEmu),
81 ("TIMESHIFT SETUP", self.goTimeshift),
82 ("HDTV PIP CONFIG", self.goHDTV),
83 ("wie spaet ists?!", self.goClock)
86 #class mainMenu(Screen):
88 # GUISkin.__init__(self)
90 # self["title"] = Header("this is the\nMAIN MENU !!!");
91 # self["okbutton"] = Button("ok")
92 # self["okbutton"].onClick = [ self.close ]
94 class channelSelection(Screen):
95 def __init__(self, session):
96 Screen.__init__(self, session)
98 self["list"] = ServiceList()
99 self["list"].setRoot(eServiceReference("""1:0:1:0:0:0:0:0:0:0:(provider=="ARD") && (type == 1)"""))
101 self["okbutton"] = Button("ok", [self.channelSelected])
103 class ChannelActionMap(ActionMap):
104 def action(self, contexts, action):
105 if action[:7] == "bouquet":
106 print "setting root to " + action[8:]
107 self.csel["list"].setRoot(eServiceReference("1:0:1:0:0:0:0:0:0:0:" + action[8:]))
109 ActionMap.action(self, contexts, action)
111 self["actions"] = ChannelActionMap(["ChannelSelectActions", "OkCancelActions"],
113 "cancel": self.close,
114 "ok": self.channelSelected,
117 self["actions"].csel = self
120 ref = self["list"].getCurrent()
121 if self["list"].isMarked(ref):
122 self["list"].removeMarked(ref)
124 self["list"].addMarked(ref)
126 def channelSelected(self):
127 self.session.nav.playService(self["list"].getCurrent())
131 class infoBar(Screen):
132 def __init__(self, session):
133 Screen.__init__(self, session)
135 self["actions"] = ActionMap( [ "InfobarActions" ],
137 "switchChannel": self.switchChannel,
138 "mainMenu": self.mainMenu
140 self["okbutton"] = Button("mainMenu", [self.mainMenu])
142 self["CurrentTime"] = Clock()
144 self["ServiceName"] = ServiceName(self.session.nav)
146 self["Event_Now"] = EventInfo(self.session.nav, EventInfo.Now)
147 self["Event_Next"] = EventInfo(self.session.nav, EventInfo.Next)
149 self["Event_Now_Duration"] = EventInfo(self.session.nav, EventInfo.Now_Duration)
150 self["Event_Next_Duration"] = EventInfo(self.session.nav, EventInfo.Next_Duration)
153 self.session.open(mainMenu)
155 def switchChannel(self):
156 self.session.open(channelSelection)
158 # a clock display dialog
159 class clockDisplay(Screen):
163 def __init__(self, session, clock):
164 Screen.__init__(self, session)
165 self["theClock"] = clock
167 b.onClick = [ self.okbutton ]
169 self["title"] = Header("clock dialog: here you see the current uhrzeit!")
171 class serviceScan(Screen):
173 if self["scan"].isDone():
176 def __init__(self, session):
177 Screen.__init__(self, session)
179 self["scan_progress"] = ProgressBar()
180 self["scan_state"] = Label("scan state")
181 self["scan"] = ServiceScan(self["scan_progress"], self["scan_state"])
183 self["okbutton"] = Button("ok", [self.ok])
184 self["okbutton"].disable()