from HTMLComponent import HTMLComponent
from GUIComponent import GUIComponent
+from skin import parseColor
from enigma import loadPNG, eListboxServiceContent, eListbox, eServiceCenter, eServiceReference, gFont, eRect
self.root = None
self.mode = self.MODE_NORMAL
+ self.onSelectionChanged = [ ]
+
+ def applySkin(self, desktop):
+ attribs = [ ]
+ if self.skinAttributes is not None:
+ attribs = [ ]
+ for (attrib, value) in self.skinAttributes:
+ if attrib == "foregroundColorMarked":
+ self.l.setColor(eListboxServiceContent.markedForeground, parseColor(value))
+ elif attrib == "foregroundColorMarkedSelected":
+ self.l.setColor(eListboxServiceContent.markedForegroundSelected, parseColor(value))
+ elif attrib == "backgroundColorMarked":
+ self.l.setColor(eListboxServiceContent.markedBackground, parseColor(value))
+ elif attrib == "backgroundColorMarkedSelected":
+ self.l.setColor(eListboxServiceContent.markedBackgroundSelected, parseColor(value))
+ elif attrib == "foregroundColorServiceNotAvail":
+ self.l.setColor(eListboxServiceContent.serviceNotAvail, parseColor(value))
+ else:
+ attribs.append((attrib, value))
+ self.skinAttributes = attribs
+ return GUIComponent.applySkin(self, desktop)
+
+ def connectSelChanged(self, fnc):
+ if not fnc in self.onSelectionChanged:
+ self.onSelectionChanged.append(fnc)
+
+ def disconnectSelChanged(self, fnc):
+ if fnc in self.onSelectionChanged:
+ self.onSelectionChanged.remove(fnc)
+
+ def selectionChanged(self):
+ for x in self.onSelectionChanged:
+ x()
def setCurrent(self, ref):
self.l.setCurrent(ref)
def postWidgetCreate(self, instance):
instance.setWrapAround(True)
instance.setContent(self.l)
+ instance.selectionChanged.get().append(self.selectionChanged)
self.setMode(self.mode)
def getRoot(self):
self.l.setRoot(root, justSet)
if not justSet:
self.l.sort()
+ self.selectionChanged()
def removeCurrent(self):
self.l.removeCurrent()