From b0bdeff2a2042c42b6370b166de0474c3431570b Mon Sep 17 00:00:00 2001 From: Stefan Pluecken Date: Wed, 16 Jul 2008 16:39:52 +0000 Subject: [PATCH] use new box depending rcs in HelpMenu (not yet 100% correct, needs modifications to several action maps) --- data/skin_default.xml | 8 +- lib/python/Components/HelpMenuList.py | 4 +- lib/python/Screens/HelpMenu.py | 36 ++++--- lib/python/Tools/KeyBindings.py | 130 +++++++++++++++++--------- 4 files changed, 111 insertions(+), 67 deletions(-) diff --git a/data/skin_default.xml b/data/skin_default.xml index b3d102b0..d981ae74 100644 --- a/data/skin_default.xml +++ b/data/skin_default.xml @@ -355,9 +355,11 @@ self.instance.move(ePoint((720-wsizex)/2, (576-wsizey)/(count > 7 and 2 or 3) - - - + + + + + diff --git a/lib/python/Components/HelpMenuList.py b/lib/python/Components/HelpMenuList.py index 3d36e958..25c9b8b6 100644 --- a/lib/python/Components/HelpMenuList.py +++ b/lib/python/Components/HelpMenuList.py @@ -34,7 +34,9 @@ class HelpMenuList(GUIComponent): break if flags & 8: # for long keypresses, prepend l_ into the key name. - name = ("l_" + name[0], name[1], name[2]) + name = (name[0], "long") + + print "name:", name entry.append( (actionmap, context, action, name ) ) entry.append( (eListboxPythonMultiContent.TYPE_TEXT, 0, 0, 400, 28, 0, 0, help) ) diff --git a/lib/python/Screens/HelpMenu.py b/lib/python/Screens/HelpMenu.py index 6332cde2..abef38db 100644 --- a/lib/python/Screens/HelpMenu.py +++ b/lib/python/Screens/HelpMenu.py @@ -3,18 +3,15 @@ from Components.Pixmap import Pixmap, MovingPixmap from Components.Label import Label from Components.ActionMap import ActionMap from Components.HelpMenuList import HelpMenuList +from Screens.Rc import Rc -class HelpMenu(Screen): +class HelpMenu(Screen, Rc): def __init__(self, session, list): Screen.__init__(self, session) self.onSelChanged = [ ] self["list"] = HelpMenuList(list, self.close) self["list"].onSelChanged.append(self.SelectionChanged) - self["rc"] = Pixmap() - self["arrowup"] = MovingPixmap() - self["arrowup"].hide() - self["sh_arrowup"] = Pixmap() - self["sh_arrowup"].hide() + Rc.__init__(self) self["long_key"] = Label("") self["actions"] = ActionMap(["WizardActions"], @@ -26,27 +23,26 @@ class HelpMenu(Screen): self.onLayoutFinish.append(self.SelectionChanged) def SelectionChanged(self): + self.clearSelectedKeys() selection = self["list"].getCurrent() - selection = selection and selection[3] - arrow = self["arrowup"] - sh_arrow = self["sh_arrowup"] + selection = selection[3] + #arrow = self["arrowup"] + print "selection:", selection - if selection and selection[0][:3] == "sh_": - sh_arrow.show() - else: - sh_arrow.hide() + if selection and len(selection) > 1 and selection[1] == "SHIFT": + self.selectKey("SHIFT") - if selection and selection[0][:2] == "l_": + if selection and len(selection) > 1 and selection[1] == "long": self["long_key"].setText(_("Long Keypress")) else: self["long_key"].setText("") - if selection is None: - arrow.hide() - else: - arrow.moveTo(selection[1], selection[2], 1) - arrow.startMoving() - arrow.show() + self.selectKey(selection[0]) + #if selection is None: + print "select arrow" + # arrow.moveTo(selection[1], selection[2], 1) + # arrow.startMoving() + # arrow.show() class HelpableScreen: def __init__(self): diff --git a/lib/python/Tools/KeyBindings.py b/lib/python/Tools/KeyBindings.py index 46459892..c73ecf53 100644 --- a/lib/python/Tools/KeyBindings.py +++ b/lib/python/Tools/KeyBindings.py @@ -2,49 +2,93 @@ keyBindings = { } from keyids import KEYIDS +from Components.config import config -keyDescriptions = { - KEYIDS["BTN_0"]: ("fp_up", 630, 320), - KEYIDS["BTN_1"]: ("fp_down", 565, 320), - KEYIDS["KEY_OK"]: ("ok", 598, 320), - KEYIDS["KEY_UP"]: ("up", 598, 290), - KEYIDS["KEY_DOWN"]: ("down", 598, 345), - KEYIDS["KEY_POWER"]: ("power", 615, 80), - KEYIDS["KEY_RED"]: ("red", 555, 390), - KEYIDS["KEY_BLUE"]: ("blue", 640, 390), - KEYIDS["KEY_GREEN"]: ("green", 585, 390), - KEYIDS["KEY_YELLOW"]: ("yellow", 610, 390), - KEYIDS["KEY_MENU"]: ("menu", 645, 290), - KEYIDS["KEY_LEFT"]: ("left", 565, 320), - KEYIDS["KEY_RIGHT"]: ("right", 630, 320), - KEYIDS["KEY_VIDEO"]: ("video", 645, 355), - KEYIDS["KEY_INFO"]: ("info", 550, 290), - KEYIDS["KEY_AUDIO"]: ("audio", 555, 355), - KEYIDS["KEY_TV"]: ("tv", 560, 425), - KEYIDS["KEY_RADIO"]: ("radio", 585, 425), - KEYIDS["KEY_TEXT"]: ("text", 610, 425), - KEYIDS["KEY_NEXT"]: ("next", 635, 203), - KEYIDS["KEY_PREVIOUS"]: ("prev", 559, 203), - KEYIDS["KEY_PREVIOUSSONG"]: ("sh_blue", 640, 390), - KEYIDS["KEY_PLAYPAUSE"]: ("sh_yellow", 610, 390), - KEYIDS["KEY_PLAY"]: ("sh_green", 585, 390), - KEYIDS["KEY_NEXTSONG"]: ("sh_red", 555, 390), - KEYIDS["KEY_CHANNELUP"]: ("ch_up", 645, 245), - KEYIDS["KEY_CHANNELDOWN"]: ("ch_down", 630, 270), - KEYIDS["KEY_0"]: ("0", 598, 203), - KEYIDS["KEY_1"]: ("1", 559, 134), - KEYIDS["KEY_2"]: ("2", 598, 134), - KEYIDS["KEY_3"]: ("3", 635, 134), - KEYIDS["KEY_4"]: ("4", 559, 157), - KEYIDS["KEY_5"]: ("5", 598, 157), - KEYIDS["KEY_6"]: ("6", 635, 157), - KEYIDS["KEY_7"]: ("7", 559, 180), - KEYIDS["KEY_8"]: ("8", 598, 180), - KEYIDS["KEY_9"]: ("9", 635, 180), - KEYIDS["KEY_EXIT"]: ("exit", 598, 255), - KEYIDS["KEY_STOP"]: ("sh_tv", 560, 425), - KEYIDS["KEY_RECORD"]: ("sh_radio", 585, 425) +keyDescriptions = [{ + KEYIDS["BTN_0"]: ("UP", "fp"), + KEYIDS["BTN_1"]: ("DOWN", "fp"), + KEYIDS["KEY_OK"]: ("OK", ""), + KEYIDS["KEY_UP"]: ("UP",), + KEYIDS["KEY_DOWN"]: ("DOWN",), + KEYIDS["KEY_POWER"]: ("POWER",), + KEYIDS["KEY_RED"]: ("RED",), + KEYIDS["KEY_BLUE"]: ("BLUE",), + KEYIDS["KEY_GREEN"]: ("GREEN",), + KEYIDS["KEY_YELLOW"]: ("YELLOW",), + KEYIDS["KEY_MENU"]: ("MENU",), + KEYIDS["KEY_LEFT"]: ("LEFT",), + KEYIDS["KEY_RIGHT"]: ("RIGHT",), + KEYIDS["KEY_VIDEO"]: ("PVR",), + KEYIDS["KEY_INFO"]: ("INFO",), + KEYIDS["KEY_AUDIO"]: ("YELLOW",), + KEYIDS["KEY_TV"]: ("TV",), + KEYIDS["KEY_RADIO"]: ("RADIO",), + KEYIDS["KEY_TEXT"]: ("TEXT",), + KEYIDS["KEY_NEXT"]: ("ARROWRIGHT",), + KEYIDS["KEY_PREVIOUS"]: ("ARROWLEFT",), + KEYIDS["KEY_PREVIOUSSONG"]: ("BLUE", "SHIFT"), + KEYIDS["KEY_PLAYPAUSE"]: ("PLAYPAUSE",), + KEYIDS["KEY_PLAY"]: ("PLAYPAUSE",), + KEYIDS["KEY_NEXTSONG"]: ("RED", "SHIFT"), + KEYIDS["KEY_CHANNELUP"]: ("BOUQUET+",), + KEYIDS["KEY_CHANNELDOWN"]: ("BOUQUET-",), + KEYIDS["KEY_0"]: ("0",), + KEYIDS["KEY_1"]: ("1",), + KEYIDS["KEY_2"]: ("2",), + KEYIDS["KEY_3"]: ("3",), + KEYIDS["KEY_4"]: ("4",), + KEYIDS["KEY_5"]: ("5",), + KEYIDS["KEY_6"]: ("6",), + KEYIDS["KEY_7"]: ("7",), + KEYIDS["KEY_8"]: ("8",), + KEYIDS["KEY_9"]: ("9",), + KEYIDS["KEY_EXIT"]: ("EXIT",), + KEYIDS["KEY_STOP"]: ("TV", "SHIFT"), + KEYIDS["KEY_RECORD"]: ("RECORD",) + }, + { + KEYIDS["BTN_0"]: ("UP", "fp"), + KEYIDS["BTN_1"]: ("DOWN", "fp"), + KEYIDS["KEY_OK"]: ("OK", ""), + KEYIDS["KEY_UP"]: ("UP",), + KEYIDS["KEY_DOWN"]: ("DOWN",), + KEYIDS["KEY_POWER"]: ("POWER",), + KEYIDS["KEY_RED"]: ("RED",), + KEYIDS["KEY_BLUE"]: ("BLUE",), + KEYIDS["KEY_GREEN"]: ("GREEN",), + KEYIDS["KEY_YELLOW"]: ("YELLOW",), + KEYIDS["KEY_MENU"]: ("MENU",), + KEYIDS["KEY_LEFT"]: ("LEFT",), + KEYIDS["KEY_RIGHT"]: ("RIGHT",), + KEYIDS["KEY_VIDEO"]: ("VIDEO",), + KEYIDS["KEY_INFO"]: ("INFO",), + KEYIDS["KEY_AUDIO"]: ("AUDIO",), + KEYIDS["KEY_TV"]: ("TV",), + KEYIDS["KEY_RADIO"]: ("RADIO",), + KEYIDS["KEY_TEXT"]: ("TEXT",), + KEYIDS["KEY_NEXT"]: ("ARROWRIGHT",), + KEYIDS["KEY_PREVIOUS"]: ("ARROWLEFT",), + KEYIDS["KEY_PREVIOUSSONG"]: ("BLUE", "SHIFT"), + KEYIDS["KEY_PLAYPAUSE"]: ("YELLOW", "SHIFT"), + KEYIDS["KEY_PLAY"]: ("GREEN", "SHIFT"), + KEYIDS["KEY_NEXTSONG"]: ("RED", "SHIFT"), + KEYIDS["KEY_CHANNELUP"]: ("BOUQUET+",), + KEYIDS["KEY_CHANNELDOWN"]: ("BOUQUET-",), + KEYIDS["KEY_0"]: ("0",), + KEYIDS["KEY_1"]: ("1",), + KEYIDS["KEY_2"]: ("2",), + KEYIDS["KEY_3"]: ("3",), + KEYIDS["KEY_4"]: ("4",), + KEYIDS["KEY_5"]: ("5",), + KEYIDS["KEY_6"]: ("6",), + KEYIDS["KEY_7"]: ("7",), + KEYIDS["KEY_8"]: ("8",), + KEYIDS["KEY_9"]: ("9",), + KEYIDS["KEY_EXIT"]: ("EXIT",), + KEYIDS["KEY_STOP"]: ("TV", "SHIFT"), + KEYIDS["KEY_RECORD"]: ("RADIO", "SHIFT") } +] def addKeyBinding(domain, key, context, action, flags): keyBindings.setdefault((context, action), []).append((key, domain, flags)) @@ -57,8 +101,8 @@ def queryKeyBinding(context, action): return [ ] def getKeyDescription(key): - if key in keyDescriptions: - return keyDescriptions.get(key, [ ]) + if key in keyDescriptions[config.misc.rcused.value]: + return keyDescriptions[config.misc.rcused.value].get(key, [ ]) def removeKeyBindings(domain): # remove all entries of domain 'domain' -- 2.30.2