diff options
Diffstat (limited to 'lib/python/Screens/Rc.py')
| -rw-r--r-- | lib/python/Screens/Rc.py | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/lib/python/Screens/Rc.py b/lib/python/Screens/Rc.py new file mode 100644 index 00000000..49ee1d75 --- /dev/null +++ b/lib/python/Screens/Rc.py @@ -0,0 +1,88 @@ +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 |
