use new box depending rcs in HelpMenu (not yet 100% correct, needs
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Wed, 16 Jul 2008 16:39:52 +0000 (16:39 +0000)
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Wed, 16 Jul 2008 16:39:52 +0000 (16:39 +0000)
modifications to several action maps)

data/skin_default.xml
lib/python/Components/HelpMenuList.py
lib/python/Screens/HelpMenu.py
lib/python/Tools/KeyBindings.py

index b3d102b..d981ae7 100644 (file)
@@ -355,9 +355,11 @@ self.instance.move(ePoint((720-wsizex)/2, (576-wsizey)/(count &gt; 7 and 2 or 3)
        <screen name="HelpMenu" position="0,0" size="720,576" title="Menu" flags="wfNoBorder">
                <eLabel text="help..." position="400,40" size="220,60" font="Regular;40" />
                <widget name="list" position="50,100" size="450,380" scrollbarMode="showOnDemand" />
-               <widget name="rc" pixmap="skin_default/rc.png" position="540,50" zPosition="10" size="154,475" alphatest="on" />
-               <widget name="arrowup" pixmap="skin_default/arrowup.png" position="585,425" zPosition="11" size="37,70" alphatest="on" />
-               <widget name="sh_arrowup" pixmap="skin_default/arrowup.png" position="580,75" zPosition="11" size="37,70" alphatest="on" />
+               <widget name="rc" pixmap="skin_default/rc.png" position="540,10" zPosition="10" size="154,500" alphatest="on" />
+               <widget name="arrowdown" pixmap="skin_default/arrowdown.png" position="-100,-100" zPosition="11" size="37,70" alphatest="on" />
+               <widget name="arrowdown2" pixmap="skin_default/arrowdown.png" position="-100,-100" zPosition="11" size="37,70" alphatest="on" />
+               <widget name="arrowup" pixmap="skin_default/arrowup.png" position="-100,-100" zPosition="11" size="37,70" alphatest="on" />
+               <widget name="arrowup2" pixmap="skin_default/arrowup.png" position="-100,-100" zPosition="11" size="37,70" alphatest="on" />
                <widget name="long_key" position="320,520" size="350,50" font="Regular;25" halign="right" foregroundColor="yellow" />
        </screen>
        <!-- Image Wizard -->
index 3d36e95..25c9b8b 100644 (file)
@@ -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) )
index 6332cde..abef38d 100644 (file)
@@ -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):
index 4645989..c73ecf5 100644 (file)
@@ -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'