add parental control (still somehow buggy and some minor features missing... don...
[enigma2.git] / lib / python / Components / ParentalControlList.py
1 from HTMLComponent import *
2 from GUIComponent import *
3
4 from MenuList import MenuList
5 from Components.ParentalControl import parentalControl
6 from Tools.Directories import *
7
8 from enigma import *
9
10 RT_HALIGN_LEFT = 0
11 RT_HALIGN_RIGHT = 1
12 RT_HALIGN_CENTER = 2
13 RT_HALIGN_BLOCK = 4
14
15 RT_VALIGN_TOP = 0
16 RT_VALIGN_CENTER = 8
17 RT_VALIGN_BOTTOM = 16
18
19 lockPicture = loadPNG(resolveFilename(SCOPE_SKIN_IMAGE, "lock-fs8.png"))
20
21 def ParentalControlEntryComponent(service, name, locked = True):
22         res = [ (service, name, locked) ]
23         res.append((eListboxPythonMultiContent.TYPE_TEXT, 80, 5, 200, 50, 0, RT_HALIGN_LEFT, name))
24         if locked:
25                 res.append((eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, 0, 0, 32, 32, lockPicture))
26         
27         return res
28
29 class ParentalControlList(MenuList, HTMLComponent, GUIComponent):
30         def __init__(self, list):
31                 GUIComponent.__init__(self)
32                 self.l = eListboxPythonMultiContent()
33                 self.list = list
34                 self.l.setList(list)
35                 self.l.setFont(0, gFont("Regular", 20))
36
37         GUI_WIDGET = eListbox
38         
39         def setList(self, list):
40                 self.list = list
41                 self.l.setList(list)
42                 
43         def postWidgetCreate(self, instance):
44                 instance.setContent(self.l)
45                 instance.setItemHeight(32)
46
47         def toggleSelectedLock(self):
48                 print "self.l.getCurrentSelection():", self.l.getCurrentSelection()
49                 print "self.l.getCurrentSelectionIndex():", self.l.getCurrentSelectionIndex()
50                 self.list[self.l.getCurrentSelectionIndex()] = ParentalControlEntryComponent(self.l.getCurrentSelection()[0][0], self.l.getCurrentSelection()[0][1], not self.l.getCurrentSelection()[0][2]);
51                 if self.l.getCurrentSelection()[0][2]:
52                         parentalControl.protectService(self.l.getCurrentSelection()[0][0])
53                 else:
54                         parentalControl.unProtectService(self.l.getCurrentSelection()[0][0])    
55                 self.l.setList(self.list)