adding a sleep timer
[enigma2.git] / lib / python / Screens / SleepTimerEdit.py
diff --git a/lib/python/Screens/SleepTimerEdit.py b/lib/python/Screens/SleepTimerEdit.py
new file mode 100644 (file)
index 0000000..ac50066
--- /dev/null
@@ -0,0 +1,96 @@
+from Screens.Screen import Screen
+from Screens.MessageBox import MessageBox
+from Components.ActionMap import NumberActionMap
+from Components.Input import Input
+from Components.Label import Label
+from Components.Pixmap import Pixmap
+from Components.config import config
+from SleepTimer import SleepTimerEntry
+import time
+
+class SleepTimerEdit(Screen):
+       def __init__(self, session):
+               Screen.__init__(self, session)
+               
+               self["red"] = Pixmap()
+               self["green"] = Pixmap()
+               self["yellow"] = Pixmap()
+               self["blue"] = Pixmap()
+               self["red_text"] = Label()
+               self["green_text"] = Label()
+               self["yellow_text"] = Label()
+               self["blue_text"] = Label()
+               self.updateColors()
+               
+               self["pretext"] = Label(_("Shutdown Dreambox after"))
+               self["input"] = Input(text = str(self.session.nav.SleepTimer.getCurrentSleepTime()), maxSize = False, type = Input.NUMBER)
+               self["aftertext"] = Label(_("minutes"))
+               
+               self["actions"] = NumberActionMap(["SleepTimerEditorActions"], 
+               {
+                       "exit": self.close,
+                       "select": self.select,
+                       "1": self.keyNumberGlobal,
+                       "2": self.keyNumberGlobal,
+                       "3": self.keyNumberGlobal,
+                       "4": self.keyNumberGlobal,
+                       "5": self.keyNumberGlobal,
+                       "6": self.keyNumberGlobal,
+                       "7": self.keyNumberGlobal,
+                       "8": self.keyNumberGlobal,
+                       "9": self.keyNumberGlobal,
+                       "0": self.keyNumberGlobal,
+                       "selectLeft": self.selectLeft,
+                       "selectRight": self.selectRight,
+                       "disableTimer": self.disableTimer,
+                       "toggleAction": self.toggleAction,
+                       "toggleAsk": self.toggleAsk
+               }, -1)
+               
+       def updateColors(self):
+               if self.session.nav.SleepTimer.isActive():
+                       self["red_text"].setText(_("Timer status:") + " " + _("Enabled"))
+               else:
+                       self["red_text"].setText(_("Timer status:") + " " + _("Disabled"))
+               if config.SleepTimer.action.value == "shutdown":
+                       self["green_text"].setText(_("Sleep timer action:") + " " + _("Deep Standby"))
+               elif config.SleepTimer.action.value == "standby":
+                       self["green_text"].setText(_("Sleep timer action:") + " " + _("Standby"))
+
+               if config.SleepTimer.ask.value:
+                       self["yellow_text"].setText(_("Ask before shutdown:") + " " + _("yes"))
+               else:
+                       self["yellow_text"].setText(_("Ask before shutdown:") + " " + _("no"))
+               self["blue_text"].setText(_("Settings"))
+               
+               
+       def select(self):
+               self.session.nav.SleepTimer.setSleepTime(int(self["input"].getText()))
+               self.session.openWithCallback(self.close, MessageBox, _("The sleep timer has been acitvated."), MessageBox.TYPE_INFO)
+       
+       def keyNumberGlobal(self, number):
+               self["input"].number(number)
+               
+       def selectLeft(self):
+               self["input"].left()
+
+       def selectRight(self):
+               self["input"].right()
+       
+       def disableTimer(self):
+               if self.session.nav.SleepTimer.isActive():
+                       self.session.nav.SleepTimer.clear()
+               else:
+                       self.session.nav.SleepTimer.setSleepTime(int(self["input"].getText()))
+               self.updateColors()
+               
+       def toggleAction(self):
+               if config.SleepTimer.action.value == "shutdown":
+                       config.SleepTimer.action.value = "standby"
+               elif config.SleepTimer.action.value == "standby":
+                       config.SleepTimer.action.value = "shutdown"
+               self.updateColors()
+               
+       def toggleAsk(self):
+               config.SleepTimer.ask.value = not config.SleepTimer.ask.value
+               self.updateColors()
\ No newline at end of file