X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/0252a3bc3bb43d56b35f0ffe05df0b734b3c9588..a01b52be8469eb9fd10d2f31870d7d9970c5d974:/lib/python/Components/Pixmap.py diff --git a/lib/python/Components/Pixmap.py b/lib/python/Components/Pixmap.py index d25530ea..02eeb870 100644 --- a/lib/python/Components/Pixmap.py +++ b/lib/python/Components/Pixmap.py @@ -1,24 +1,14 @@ -from ConditionalWidget import * +from ConditionalWidget import ConditionalWidget +from GUIComponent import GUIComponent -from enigma import * +from enigma import ePixmap, eTimer -class Pixmap(Widget): - def __init__(self): - Widget.__init__(self) - - def getePixmap(self, parent): - #pixmap = ePixmap(parent) - #pixmap.setPixmapFromFile(self.filename) - return ePixmap(parent) - - def createWidget(self, parent): - return self.getePixmap(parent) +from Tools.Directories import resolveFilename, SCOPE_SKIN_IMAGE +from os import path +from skin import loadPixmap - def removeWidget(self, w): - pass - - def move(self, x, y): - self.instance.move(ePoint(int(x), int(y))) +class Pixmap(GUIComponent): + GUI_WIDGET = ePixmap class PixmapConditional(ConditionalWidget, Pixmap): def __init__(self, withTimer = True): @@ -38,7 +28,7 @@ class MovingPixmap(Pixmap): self.clearPath() self.moveTimer = eTimer() - self.moveTimer.timeout.get().append(self.doMove) + self.moveTimer.callback.append(self.doMove) def clearPath(self, repeated = False): if (self.moving): @@ -90,3 +80,36 @@ class MovingPixmap(Pixmap): else: self.moving = False self.startMoving() + +class MultiPixmap(Pixmap): + def __init__(self): + Pixmap.__init__(self) + self.pixmaps = [] + + def applySkin(self, desktop, screen): + if self.skinAttributes is not None: + skin_path_prefix = getattr(screen, "skin_path", path) + pixmap = None + attribs = [ ] + for (attrib, value) in self.skinAttributes: + if attrib == "pixmaps": + pixmaps = value.split(',') + for pixmap in pixmaps: + self.pixmaps.append(loadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, pixmap, path_prefix=skin_path_prefix), desktop) ) + if not pixmap: + pixmap = resolveFilename(SCOPE_SKIN_IMAGE, pixmaps[0], path_prefix=skin_path_prefix) + elif attrib == "pixmap": + pixmap = resolveFilename(SCOPE_SKIN_IMAGE, value, path_prefix=skin_path_prefix) + else: + attribs.append((attrib,value)) + if pixmap: + attribs.append(("pixmap", pixmap)) + self.skinAttributes = attribs + return GUIComponent.applySkin(self, desktop, screen) + + def setPixmapNum(self, x): + if self.instance: + if len(self.pixmaps) > x: + self.instance.setPixmap(self.pixmaps[x]) + else: + print "setPixmapNum(%d) failed! defined pixmaps:" %(x), self.pixmaps