--- /dev/null
+from Components.Pixmap import MovingPixmap, MultiPixmap
+from Tools.Directories import resolveFilename, SCOPE_SKIN
+from xml.etree.ElementTree import ElementTree
+from Components.config import config, ConfigInteger
+
+config.misc.rcused = ConfigInteger(default = 1)
+
+class Rc:
+ def __init__(self):
+ self["rc"] = MultiPixmap()
+ self["arrowdown"] = MovingPixmap()
+ self["arrowdown2"] = MovingPixmap()
+ self["arrowup"] = MovingPixmap()
+ self["arrowup2"] = MovingPixmap()
+
+ self.rcheight = 500
+ self.rcheighthalf = 250
+
+ self.selectpics = []
+ self.selectpics.append((self.rcheighthalf, ["arrowdown", "arrowdown2"], (-18,-70)))
+ self.selectpics.append((self.rcheight, ["arrowup", "arrowup2"], (-18,0)))
+
+ self.readPositions()
+ self.clearSelectedKeys()
+ self.onShown.append(self.initRc)
+
+ def initRc(self):
+ self["rc"].setPixmapNum(config.misc.rcused.value)
+
+
+ def readPositions(self):
+ tree = ElementTree(file = resolveFilename(SCOPE_SKIN, "rcpositions.xml"))
+ rcs = tree.getroot()
+ self.rcs = {}
+ for rc in rcs:
+ id = int(rc.attrib["id"])
+ self.rcs[id] = {}
+ print "id:", id
+ for key in rc:
+ name = key.attrib["name"]
+ pos = key.attrib["pos"].split(",")
+ print "name:", name
+ print "pos:", pos
+ self.rcs[id][name] = (int(pos[0]), int(pos[1]))
+
+ def getSelectPic(self, pos):
+ for selectPic in self.selectpics:
+ if pos[1] <= selectPic[0]:
+ print "pos[1]:", pos[1]
+ print "selectPic[0]:", selectPic[0]
+ return (selectPic[1], selectPic[2])
+ return None
+
+ def hideRc(self):
+ self["rc"].hide()
+ self.hideSelectPics()
+
+ def showRc(self):
+ self["rc"].show()
+
+ def selectKey(self, key):
+ rc = self.rcs[config.misc.rcused.value]
+ if rc.has_key(key):
+ rcpos = self["rc"].getPosition()
+ pos = rc[key]
+ selectPics = self.getSelectPic(pos)
+ selectPic = None
+ for x in selectPics[0]:
+ if x not in self.selectedKeys:
+ selectPic = x
+ break
+ if selectPic is not None:
+ print "selectPic:", selectPic
+ self[selectPic].show()
+ self[selectPic].moveTo(rcpos[0] + pos[0] + selectPics[1][0], rcpos[1] + pos[1] + selectPics[1][1], 1)
+ self[selectPic].startMoving()
+ self.selectedKeys.append(selectPic)
+
+ def clearSelectedKeys(self):
+ self.showRc()
+ self.selectedKeys = []
+ self.hideSelectPics()
+
+ def hideSelectPics(self):
+ for selectPic in self.selectpics:
+ for pic in selectPic[1]:
+ self[pic].hide()
+
\ No newline at end of file