+class AttributeParser:
+ def __init__(self, guiObject, desktop, scale = ((1,1),(1,1))):
+ self.guiObject = guiObject
+ self.desktop = desktop
+ self.scale = scale
+ def applyOne(self, attrib, value):
+ try:
+ getattr(self, attrib)(value)
+ except AttributeError:
+ print "[Skin] Attribute not implemented:", attrib, "value:", value
+ except SkinError, ex:
+ print "[Skin] Error:", ex
+ def applyAll(self, attrs):
+ for attrib, value in attrs:
+ try:
+ getattr(self, attrib)(value)
+ except AttributeError:
+ print "[Skin] Attribute not implemented:", attrib, "value:", value
+ except SkinError, ex:
+ print "[Skin] Error:", ex
+ def position(self, value):
+ if isinstance(value, tuple):
+ self.guiObject.move(ePoint(*value))
+ else:
+ self.guiObject.move(parsePosition(value, self.scale, self.desktop, self.guiObject.csize()))
+ def size(self, value):
+ if isinstance(value, tuple):
+ self.guiObject.resize(eSize(*value))
+ else:
+ self.guiObject.resize(parseSize(value, self.scale))
+ def animationPaused(self, value):
+ pass
+ def animationPaused(self, value):
+ self.guiObject.setAnimationMode(
+ { "disable": 0x00,
+ "off": 0x00,
+ "offshow": 0x10,
+ "offhide": 0x01,
+ "onshow": 0x01,
+ "onhide": 0x10,
+ }[value])
+ def title(self, value):
+ self.guiObject.setTitle(_(value))
+ def text(self, value):
+ self.guiObject.setText(_(value))
+ def font(self, value):
+ self.guiObject.setFont(parseFont(value, self.scale))
+ def zPosition(self, value):
+ self.guiObject.setZPosition(int(value))
+ def itemHeight(self, value):
+ self.guiObject.setItemHeight(int(value))
+ def pixmap(self, value):
+ ptr = loadPixmap(value, self.desktop)
+ self.guiObject.setPixmap(ptr)
+ def backgroundPixmap(self, value):
+ ptr = loadPixmap(value, self.desktop)
+ self.guiObject.setBackgroundPicture(ptr)
+ def selectionPixmap(self, value):
+ ptr = loadPixmap(value, self.desktop)
+ self.guiObject.setSelectionPicture(ptr)
+ def itemHeight(self, value):
+ self.guiObject.setItemHeight(int(value))
+ def alphatest(self, value):
+ self.guiObject.setAlphatest(
+ { "on": 1,
+ "off": 0,
+ "blend": 2,
+ }[value])
+ def scale(self, value):
+ self.guiObject.setScale(1)
+ def orientation(self, value):
+ try:
+ self.guiObject.setOrientation(*
+ { "orVertical": (self.guiObject.orVertical, False),
+ "orTopToBottom": (self.guiObject.orVertical, False),
+ "orBottomToTop": (self.guiObject.orVertical, True),
+ "orHorizontal": (self.guiObject.orHorizontal, False),
+ "orLeftToRight": (self.guiObject.orHorizontal, False),
+ "orRightToLeft": (self.guiObject.orHorizontal, True),