-from HTMLComponent import *
-from GUIComponent import *
-from VariableText import *
-
-from ConditionalWidget import *
+from HTMLComponent import HTMLComponent
+from GUIComponent import GUIComponent
+from VariableText import VariableText
+from skin import parseColor
+from ConditionalWidget import ConditionalWidget, BlinkingWidget, BlinkingWidgetConditional
from enigma import eLabel
-class Label(HTMLComponent, GUIComponent, VariableText):
+class Label(VariableText, HTMLComponent, GUIComponent):
def __init__(self, text=""):
GUIComponent.__init__(self)
VariableText.__init__(self)
return self.getText()
# GUI:
- def createWidget(self, parent):
- return eLabel(parent)
-
+ GUI_WIDGET = eLabel
+
def getSize(self):
s = self.instance.calculateSize()
return (s.width(), s.height())
- def show(self):
- self.instance.show()
-
- def hide(self):
- self.instance.hide()
-
class LabelConditional(Label, ConditionalWidget):
def __init__(self, text = "", withTimer = True):
ConditionalWidget.__init__(self, withTimer = withTimer)
- Label.__init__(self, text = text)
\ No newline at end of file
+ Label.__init__(self, text = text)
+
+class BlinkingLabel(Label, BlinkingWidget):
+ def __init__(self, text = ""):
+ Label.__init__(text = text)
+ BlinkingWidget.__init__()
+
+class BlinkingLabelConditional(BlinkingWidgetConditional, LabelConditional):
+ def __init__(self, text = ""):
+ LabelConditional.__init__(self, text = text)
+ BlinkingWidgetConditional.__init__(self)
+
+class MultiColorLabel(Label):
+ def __init__(self, text=""):
+ Label.__init__(self,text)
+ self.foreColors = []
+ self.backColors = []
+
+ def applySkin(self, desktop, screen):
+ if self.skinAttributes is not None:
+ foregroundColor = None
+ backgroundColor = None
+ attribs = [ ]
+ for (attrib, value) in self.skinAttributes:
+ if attrib == "foregroundColors":
+ colors = value.split(',')
+ for color in colors:
+ self.foreColors.append(parseColor(color))
+ if not foregroundColor:
+ foregroundColor = colors[0]
+ elif attrib == "backgroundColors":
+ colors = value.split(',')
+ for color in colors:
+ self.backColors.append(parseColor(color))
+ if not backgroundColor:
+ backgroundColor = colors[0]
+ elif attrib == "backgroundColor":
+ backgroundColor = value
+ elif attrib == "foregroundColor":
+ foregroundColor = value
+ else:
+ attribs.append((attrib,value))
+ if foregroundColor:
+ attribs.append(("foregroundColor",foregroundColor))
+ if backgroundColor:
+ attribs.append(("backgroundColor",backgroundColor))
+ self.skinAttributes = attribs
+ return GUIComponent.applySkin(self, desktop, screen)
+
+ def setForegroundColorNum(self, x):
+ if self.instance:
+ if len(self.foreColors) > x:
+ self.instance.setForegroundColor(self.foreColors[x])
+ else:
+ print "setForegroundColorNum(%d) failed! defined colors:" %(x), self.foreColors
+
+ def setBackgroundColorNum(self, x):
+ if self.instance:
+ if len(self.backColors) > x:
+ self.instance.setBackgroundColor(self.backColors[x])
+ else:
+ print "setBackgroundColorNum(%d) failed! defined colors:" %(x), self.backColors
+