on startup always default to favs
[enigma2.git] / lib / python / Screens / Screen.py
1 from Components.HTMLSkin import *
2 from Components.GUISkin import *
3
4 import sys
5
6 class Screen(dict, HTMLSkin, GUISkin):
7         """ bla """
8
9         def __init__(self, session):
10                 self.skinName = self.__class__.__name__
11                 self.session = session
12                 GUISkin.__init__(self)
13                 
14                 self.onClose = [ ]
15                 self.onExecBegin = [ ]
16                 self.onShown = [ ]
17                 
18                 # in order to support screens *without* a help,
19                 # we need the list in every screen. how ironic.
20                 self.helpList = [ ]
21                 
22         def execBegin(self):
23                 for x in self.onExecBegin:
24                         x()
25 #               assert self.session == None, "a screen can only exec one per time"
26 #               self.session = session
27                 for (name, val) in self.items():
28                         val.execBegin()
29
30                 for x in self.onShown:
31                         x()
32         
33         def execEnd(self):
34                 for (name, val) in self.items():
35                         val.execEnd()
36 #               assert self.session != None, "execEnd on non-execing screen!"
37 #               self.session = None
38         
39         # never call this directly - it will be called from the session!
40         def doClose(self):
41                 for x in self.onClose:
42                         x()
43                 
44                 # fixup circular references
45                 del self.helpList
46                 GUISkin.close(self)
47                 
48                 del self.session
49                 for (name, val) in self.items():
50                         del self[name]
51         
52         def close(self, *retval):
53                 self.session.close(*retval)
54
55         def setFocus(self, o):
56                 self.instance.setFocus(o.instance)