fix arrow movement, do not crash on exit
[enigma2.git] / lib / python / Screens / HelpMenu.py
index 4e1d1c49734ed196d698145bc63a62ff31692cd5..cae0a5db1b0210235fb5813ee1fc8612a5ac77b2 100644 (file)
@@ -1,18 +1,51 @@
 from Screen import Screen
 
+from Components.Pixmap import *
+from Components.Pixmap import Pixmap
+from Components.Pixmap import MovingPixmap
+from Components.Label import Label
+from Components.Slider import Slider
 from Components.ActionMap import ActionMap
 from Components.HelpMenuList import HelpMenuList
+import string
+from xml.sax import make_parser
+from xml.sax.handler import ContentHandler
+from Components.MenuList import MenuList
 
 class HelpMenu(Screen):
        def __init__(self, session, list):
                Screen.__init__(self, session)
+               self.onSelChanged = [ ]
                
                self["list"] = HelpMenuList(list, self.close)
-               self["actions"] = ActionMap(["OkCancelActions"],
-                       {
-                               "cancel": self.close,
-                               "ok": self["list"].ok,
-                       })
+               
+               self["rc"] = Pixmap()
+               self["arrowup"] = MovingPixmap()
+
+               self["actions"] = ActionMap(["WizardActions"], 
+               {
+                       "ok": self["list"].ok,
+                       "back": self.close,
+                       "up": self.up,
+                       "down": self.down
+               }, -1)
+       
+       def up(self):
+               self["list"].instance.moveSelection(self["list"].instance.moveUp)
+               self.SelectionChanged()
+               
+       def down(self):
+               self["list"].instance.moveSelection(self["list"].instance.moveDown)
+               self.SelectionChanged()
+               
+       def SelectionChanged(self):
+               selection = self["list"].getCurrent()[3]
+               if selection is None:
+                       self["arrowup"].instance.hide()
+               else:
+                       self["arrowup"].moveTo(selection[1], selection[2], 1)
+                       self["arrowup"].startMoving()
+                       self["arrowup"].instance.show()
 
 class HelpableScreen:
        def __init__(self):
@@ -20,10 +53,8 @@ class HelpableScreen:
                        {
                                "displayHelp": self.showHelp,
                        })
-
        def showHelp(self):
                self.session.openWithCallback(self.callHelpAction, HelpMenu, self.helpList)
-
        def callHelpAction(self, *args):
                if len(args):
                        (actionmap, context, action) = args