import skin
-from HTMLComponent import *
-from GUIComponent import *
+from HTMLComponent import HTMLComponent
+from GUIComponent import GUIComponent
from enigma import eLabel, eWidget, eSlider, fontRenderClass, ePoint, eSize
class ScrollLabel(HTMLComponent, GUIComponent):
skin.applyAllAttributes(self.long_text, desktop, self.skinAttributes)
s = self.long_text.size()
self.instance.move(self.long_text.position())
- self.scrollbar.move(ePoint(s.width()-20,0))
- self.scrollbar.resize(eSize(20,s.height()))
- self.scrollbar.setOrientation(eSlider.orVertical);
- self.scrollbar.setRange(0,100)
lineheight=fontRenderClass.getInstance().getLineHeight( self.long_text.getFont() )
lines = (int)(s.height() / lineheight)
self.pageHeight = (int)(lines * lineheight)
self.instance.resize(eSize(s.width(), self.pageHeight+(int)(lineheight/6)))
+ self.scrollbar.move(ePoint(s.width()-20,0))
+ self.scrollbar.resize(eSize(20,self.pageHeight+(int)(lineheight/6)))
+ self.scrollbar.setOrientation(eSlider.orVertical);
+ self.scrollbar.setRange(0,100)
+ self.scrollbar.setBorderWidth(1)
self.long_text.move(ePoint(0,0))
self.long_text.resize(eSize(s.width()-30, self.pageHeight*16))
self.setText(self.message)
self.total = None
self.pages = None
+ def appendText(self, text):
+ old_text = self.getText()
+ if len(str(old_text)) >0:
+ self.message += text
+ else:
+ self.message = text
+ if self.long_text is not None:
+ self.long_text.setText(self.message)
+ text_height=self.long_text.calculateSize().height()
+ total=self.pageHeight
+ pages=1
+ while total < text_height:
+ total=total+self.pageHeight
+ pages=pages+1
+ if pages > 1:
+ self.scrollbar.show()
+ self.total = total
+ self.pages = pages
+ self.updateScrollbar()
+ else:
+ self.scrollbar.hide()
+ self.total = None
+ self.pages = None
+
def updateScrollbar(self):
start = -self.long_text.position().y() * 100 / self.total
vis = self.pageHeight * 100 / self.total;
self.long_text.move( ePoint( curPos.x(), curPos.y() - self.pageHeight ) )
self.updateScrollbar()
+ def lastPage(self):
+ i=1
+ while i < self.pages:
+ self.pageDown()
+ i += 1
+ self.updateScrollbar()
+
def produceHTML(self):
return self.getText()