X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/8ffec89a2f2027c2cb263e99b5a45170ffaf6667..d3eca61ede32dd385b2e53fb33c669efa26cbcfb:/skin.py diff --git a/skin.py b/skin.py index fc4721dd..3b448127 100644 --- a/skin.py +++ b/skin.py @@ -1,12 +1,10 @@ import xml.dom.minidom -from xml.dom import EMPTY_NAMESPACE from os import path from enigma import eSize, ePoint, gFont, eWindow, eLabel, ePixmap, eWindowStyleManager, \ loadPNG, addFont, gRGB, eWindowStyleSkinned from Components.config import ConfigSubsection, ConfigText, config -from Components.Element import Element from Components.Converter.Converter import Converter from Tools.Directories import resolveFilename, SCOPE_SKIN, SCOPE_SKIN_IMAGE, SCOPE_FONTS from Tools.Import import my_import @@ -90,7 +88,7 @@ def collectAttributes(skinAttributes, node, skin_path_prefix=None, ignore=[]): # TODO: localization? as in e1? value = a.value.encode("utf-8") - if attrib in ["pixmap", "pointer", "seek_pointer"]: + if attrib in ["pixmap", "pointer", "seek_pointer", "backgroundPixmap", "selectionPixmap"]: value = resolveFilename(SCOPE_SKIN_IMAGE, value, path_prefix=skin_path_prefix) if attrib not in ignore: @@ -117,11 +115,15 @@ def applySingleAttribute(guiObject, desktop, attrib, value): guiObject.setFont(parseFont(value)) elif attrib == 'zPosition': guiObject.setZPosition(int(value)) - elif attrib == "pixmap": + elif attrib in ["pixmap", "backgroundPixmap", "selectionPixmap"]: ptr = loadPixmap(value) # this should already have been filename-resolved. - # that __deref__ still scares me! - desktop.makeCompatiblePixmap(ptr.__deref__()) - guiObject.setPixmap(ptr.__deref__()) + desktop.makeCompatiblePixmap(ptr) + if attrib == "pixmap": + guiObject.setPixmap(ptr) + elif attrib == "backgroundPixmap": + guiObject.setBackgroundPicture(ptr) + elif attrib == "selectionPixmap": + guiObject.setSelectionPicture(ptr) # guiObject.setPixmapFromFile(value) elif attrib == "alphatest": # used by ePixmap guiObject.setAlphatest( @@ -189,8 +191,8 @@ def applySingleAttribute(guiObject, desktop, attrib, value): (name, pos) = value.split(':') pos = parsePosition(pos) ptr = loadPixmap(name) - desktop.makeCompatiblePixmap(ptr.__deref__()) - guiObject.setPointer({"pointer": 0, "seek_pointer": 1}[attrib], ptr.__deref__(), pos) + desktop.makeCompatiblePixmap(ptr) + guiObject.setPointer({"pointer": 0, "seek_pointer": 1}[attrib], ptr, pos) elif attrib == 'shadowOffset': guiObject.setShadowOffset(parsePosition(value)) elif attrib == 'noWrap': @@ -253,8 +255,8 @@ def loadSingleSkinData(desktop, dom_skin, path_prefix): png = loadPixmap(resolveFilename(SCOPE_SKIN_IMAGE, filename, path_prefix=path_prefix)) # adapt palette - desktop.makeCompatiblePixmap(png.__deref__()) - style.setPixmap(eWindowStyleSkinned.__dict__[bsName], eWindowStyleSkinned.__dict__[bpName], png.__deref__()) + desktop.makeCompatiblePixmap(png) + style.setPixmap(eWindowStyleSkinned.__dict__[bsName], eWindowStyleSkinned.__dict__[bpName], png) for color in elementsWithTag(windowstyle.childNodes, "color"): type = str(color.getAttribute("name"))