from enigma import iPlayableService
from enigma import eLabel, eSlider, eTimer
-class PerServiceBase(GUIComponent):
+class PerServiceBase(object):
def __init__(self, navcore, eventmap):
- GUIComponent.__init__(self)
self.eventmap = eventmap
self.navcore = navcore
self.navcore.event.append(self.event)
# start with stopped state, so simulate that
self.event(iPlayableService.evEnd)
+ def destroy(self):
+ self.navcore.event.remove(self.event)
+
def event(self, ev):
# loop up if we need to handle this event
if self.eventmap.has_key(ev):
def poll(self):
pass
-class PerServiceDisplay(PerServiceBase, VariableText):
+class PerServiceDisplay(PerServiceBase, VariableText, GUIComponent):
"""Mixin for building components which display something which changes on navigation events, for example "service name" """
def __init__(self, navcore, eventmap):
+ GUIComponent.__init__(self)
VariableText.__init__(self)
PerServiceBase.__init__(self, navcore, eventmap)
- def createWidget(self, parent):
- # by default, we use a label to display our data.
- g = eLabel(parent)
- return g
+ GUI_WIDGET = eLabel
-class PerServiceDisplayProgress(GUIComponent, VariableValue, PerServiceBase):
+class PerServiceDisplayProgress(PerServiceBase, VariableValue, GUIComponent):
def __init__(self, navcore, eventmap):
GUIComponent.__init__(self)
VariableValue.__init__(self)
# start with stopped state, so simulate that
self.event(iPlayableService.evEnd)
- def createWidget(self, parent):
- # by default, we use a label to display our data.
- self.g = eSlider(parent)
- return self.g
+ GUI_WIDGET = eSlider