X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/67b53c1cb06988394c35a6e965c99b72b67fe1be..896d63aa5605a9b6ef641830eae4038addc53c60:/lib/python/Components/ScrollLabel.py diff --git a/lib/python/Components/ScrollLabel.py b/lib/python/Components/ScrollLabel.py index aa5163b8..253353bb 100644 --- a/lib/python/Components/ScrollLabel.py +++ b/lib/python/Components/ScrollLabel.py @@ -5,6 +5,7 @@ from enigma import eLabel, eWidget, eSlider, fontRenderClass, ePoint, eSize class ScrollLabel(HTMLComponent, GUIComponent): def __init__(self, text=""): + GUIComponent.__init__(self) self.message = text self.instance = None self.long_text = None @@ -13,10 +14,24 @@ class ScrollLabel(HTMLComponent, GUIComponent): self.total = None def applySkin(self, desktop): - skin.applyAllAttributes(self.long_text, desktop, self.skinAttributes) + ret = False + if self.skinAttributes is not None: + skin.applyAllAttributes(self.long_text, desktop, self.skinAttributes) + widget_attribs = [ ] + scrollbar_attribs = [ ] + for (attrib, value) in self.skinAttributes: + if attrib.find("borderColor") != -1 or attrib.find("borderWidth") != -1: + scrollbar_attribs.append((attrib,value)) + if attrib.find("transparent") != -1 or attrib.find("backgroundColor") != -1: + widget_attribs.append((attrib,value)) + skin.applyAllAttributes(self.instance, desktop, widget_attribs) + skin.applyAllAttributes(self.scrollbar, desktop, scrollbar_attribs+widget_attribs) + ret = True s = self.long_text.size() self.instance.move(self.long_text.position()) lineheight=fontRenderClass.getInstance().getLineHeight( self.long_text.getFont() ) + if not lineheight: + lineheight = 30 # assume a random lineheight if nothing is visible lines = (int)(s.height() / lineheight) self.pageHeight = (int)(lines * lineheight) self.instance.resize(eSize(s.width(), self.pageHeight+(int)(lineheight/6))) @@ -28,10 +43,11 @@ class ScrollLabel(HTMLComponent, GUIComponent): self.long_text.move(ePoint(0,0)) self.long_text.resize(eSize(s.width()-30, self.pageHeight*16)) self.setText(self.message) + return ret def setText(self, text): self.message = text - if self.long_text is not None: + if self.long_text is not None and self.pageHeight: self.long_text.move(ePoint(0,0)) self.long_text.setText(self.message) text_height=self.long_text.calculateSize().height()