add invalidate to eListboxPythonStringContent
[enigma2.git] / lib / python / Screens / Satconfig.py
1 from Screen import Screen
2 from Components.ActionMap import ActionMap
3 from Components.ConfigList import ConfigList
4 from Components.config import *
5 from Components.MenuList import MenuList
6 from Components.NimManager import nimmanager
7
8 class NimSetup(Screen):
9         def createSimpleSetup(self, nim, list, mode):
10                 print "request for diseqcmode:" + str(mode)
11                 
12                 b = config.Nims[nim.slotid].diseqcA
13                 item = b.controlType(b)
14                 if mode == 0:
15                         list.append( ("Satellite", item) )
16                 else:
17                         list.append( ("Port A", item) )
18                 
19                 if mode >= 1:
20                         b = config.Nims[nim.slotid].diseqcB
21                         item = b.controlType(b)
22                         list.append( ("Port B", item) )
23                         if mode >= 3:
24                                 b = config.Nims[nim.slotid].diseqcC
25                                 item = b.controlType(b)
26                                 list.append( ("Port C", item) )
27
28                                 b = config.Nims[nim.slotid].diseqcD
29                                 item = b.controlType(b)
30                                 list.append( ("Port D", item) )
31                                 
32         def createSetup(self):
33                 print "createSetup"
34                 self.list = [ ]
35                 
36                 b = config.Nims[self.nim.slotid].configMode
37                 item = b.controlType(b)
38                 self.list.append( ("Configmode", item) )
39                 
40                 if b.value == 0:                        #simple setup
41                         b = config.Nims[self.nim.slotid].diseqcMode
42                         item = b.controlType(b)
43                         self.list.append( ("Diseqcmode", item) )
44                 
45                         self.createSimpleSetup(self.nim, self.list, b.value)
46                 else:   
47                         print "FIXME: implement advanced mode"
48
49                 #???
50                 self["config"].list = self.list
51                 self["config"].l.setList(self.list)
52                 self["config"].l.invalidate()
53                 
54         def newConfig(self):    
55                 if self["config"].getCurrent()[0] == "Diseqcmode":
56                         self.createSetup()
57                 if self["config"].getCurrent()[0] == "Configmode":
58                         self.createSetup()
59                 
60         def keyLeft(self):
61                 self["config"].handleKey(config.key["prevElement"])
62                 self.newConfig()
63
64         def keyRight(self):
65                 self["config"].handleKey(config.key["nextElement"])
66                 self.newConfig()
67
68         def __init__(self, session, nim):
69                 Screen.__init__(self, session)
70                 self.nim = nim
71
72                 self["actions"] = ActionMap(["SetupActions"],
73                 {
74                         "ok": self.close,
75                         "cancel": self.close,
76                         "left": self.keyLeft,
77                         "right": self.keyRight
78                 }, -1)
79
80                 self.list = [ ]
81                 self["config"] = ConfigList(self.list)
82                 
83                 self.createSetup()
84
85 class NimSelection(Screen):
86         def __init__(self, session):
87                 Screen.__init__(self, session)
88
89                 self["nimlist"] = MenuList(nimmanager.nimList())
90
91                 self["actions"] = ActionMap(["OkCancelActions"],
92                 {
93                         "ok": self.okbuttonClick ,
94                         "cancel": self.close
95                 }, -1)
96
97         def okbuttonClick(self):
98                 selection = self["nimlist"].getCurrent()
99                 if selection[1].nimType != -1:  #unknown/empty
100                         self.session.open(NimSetup, selection[1])
101