aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Screens/HelpMenu.py
blob: e6eab6b4c379dfc8dc2869bbd516124d7b4ae4f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
from Screen import Screen
from Components.Pixmap import Pixmap, MovingPixmap
from Components.Label import Label
from Components.ActionMap import ActionMap
from Components.HelpMenuList import HelpMenuList

class HelpMenu(Screen):
	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()
		self["long_key"] = Label("")

		self["actions"] = ActionMap(["WizardActions"], 
		{
			"ok": self["list"].ok,
			"back": self.close,
		}, -1)

	def SelectionChanged(self):
		selection = self["list"].getCurrent()
		selection = selection and selection[3]
		arrow = self["arrowup"]
		sh_arrow = self["sh_arrowup"]

		if selection and selection[0][:3] == "sh_":
			sh_arrow.show()
		else:
			sh_arrow.hide()

		if selection and selection[0][:2] == "l_":
			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()

class HelpableScreen:
	def __init__(self):
		self["helpActions"] = ActionMap( [ "HelpActions" ],
			{
				"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
			actionmap.action(context, action)