Enigma2-Plugins: implement needsRestart=False for plugins that don't need a enigma2...
[enigma2.git] / lib / python / Plugins / DemoPlugins / TestPlugin / plugin.py
1 from Screens.Screen import Screen
2 from Screens.MessageBox import MessageBox
3 from Components.ActionMap import NumberActionMap
4 from Components.Input import Input
5 from Components.Pixmap import Pixmap
6 from Components.FileList import FileList
7 from Screens.ChoiceBox import ChoiceBox
8 from Plugins.Plugin import PluginDescriptor
9
10 class Test(Screen):
11         skin = """
12                 <screen position="100,100" size="550,400" title="Test" >
13                         <!--widget name="text" position="0,0" size="550,25" font="Regular;20" /-->
14                         <widget name="list" position="10,0" size="190,250" scrollbarMode="showOnDemand" />
15                         <widget name="pixmap" position="200,0" size="190,250" />
16                 </screen>"""
17         def __init__(self, session, args = None):
18                 self.skin = Test.skin
19                 Screen.__init__(self, session)
20
21                 self["list"] = FileList("/", matchingPattern = "^.*\.(png|avi|mp3|mpeg|ts)")
22                 self["pixmap"] = Pixmap()
23                 
24                 #self["text"] = Input("1234", maxSize=True, type=Input.NUMBER)
25                                 
26                 self["actions"] = NumberActionMap(["WizardActions", "InputActions"],
27                 {
28                         "ok": self.openTest,
29                         "back": self.close,
30 #                       "left": self.keyLeft,
31 #                       "right": self.keyRight,
32                         "1": self.keyNumberGlobal,
33                         "2": self.keyNumberGlobal,
34                         "3": self.keyNumberGlobal,
35                         "4": self.keyNumberGlobal,
36                         "5": self.keyNumberGlobal,
37                         "6": self.keyNumberGlobal,
38                         "7": self.keyNumberGlobal,
39                         "8": self.keyNumberGlobal,
40                         "9": self.keyNumberGlobal,
41                         "0": self.keyNumberGlobal
42                 }, -1)
43                 
44                 #self.onShown.append(self.openTest)
45
46         def openTest(self):
47                 self.session.openWithCallback(self.mycallback, MessageBox, _("Test-Messagebox?"))
48
49 #               self.session.open(InputBox)
50         
51         def mycallback(self, answer):
52                 print "answer:", answer
53                 if answer:
54                         raise Exception("test-crash")
55                 self.close()
56         
57         def keyLeft(self):
58                 self["text"].left()
59         
60         def keyRight(self):
61                 self["text"].right()
62         
63         def ok(self):
64                 selection = self["list"].getSelection()
65                 if selection[1] == True: # isDir
66                         self["list"].changeDir(selection[0])
67                 else:
68                         self["pixmap"].instance.setPixmapFromFile(selection[0])
69         
70         def keyNumberGlobal(self, number):
71                 print "pressed", number
72                 self["text"].number(number)
73
74 def main(session, **kwargs):
75         session.open(Test)
76         #session.openWithCallback(test, MessageBox, _("Test-Messagebox?"), timeout = 10)
77         #session.openWithCallback(test, ChoiceBox, title="Delete everything on this Dreambox?", list=[(_("yes"), "yes"), (_("no"), "no"), (_("perhaps"), "perhaps"), (_("ask me tomorrow"), "ask me tomorrow"), (_("leave me alone with this!"), "yes")])
78         
79 def test(returnValue):
80         print "You entered", returnValue
81
82 def Plugins(**kwargs):
83         return PluginDescriptor(name="Test", description="plugin to test some capabilities", where = PluginDescriptor.WHERE_PLUGINMENU, needsRestart = False, fnc=main)