X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2FComponents%2FPixmap.py;h=3fd09394dae09b01630625f171df0a61f02248d9;hp=f6ecaf0ca00b9ea117ed266257a674c0ca9d038d;hb=01d75322e7f2c56a3fc67db645440a5a71ef3d1e;hpb=6f73e6abddf4170357c490966d0e1c622eb376f5 diff --git a/lib/python/Components/Pixmap.py b/lib/python/Components/Pixmap.py index f6ecaf0..3fd0939 100644 --- a/lib/python/Components/Pixmap.py +++ b/lib/python/Components/Pixmap.py @@ -3,6 +3,10 @@ from GUIComponent import GUIComponent from enigma import ePixmap, eTimer +from Tools.Directories import resolveFilename, SCOPE_SKIN_IMAGE +from os import path +from skin import loadPixmap + class Pixmap(GUIComponent): GUI_WIDGET = ePixmap @@ -76,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 p in pixmaps: + self.pixmaps.append(loadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, p, 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