- fixes to use moving infobar non non-accel hardware.
[enigma2.git] / lib / python / Screens / InfoBar.py
index 6f8dde1b0adfac2916e43f60258a44caff17c137..ed193f389bb511ff4680dc10057e2efb78a31c35 100644 (file)
@@ -6,6 +6,7 @@ from Components.ActionMap import ActionMap
 from Components.Button import Button
 from Components.ServiceName import ServiceName
 from Components.EventInfo import EventInfo
+from Components.ServicePosition import ServicePosition
 
 from Screens.MessageBox import MessageBox
 from Screens.MovieSelection import MovieSelection
@@ -18,12 +19,19 @@ import time
 from Menu import MainMenu, mdom
 
 class InfoBar(Screen):
+       STATE_HIDDEN = 0
+       STATE_HIDING = 1
+       STATE_SHOWING = 2
+       STATE_SHOWN = 3
+       
        def __init__(self, session):
                Screen.__init__(self, session)
 
                #instantiate forever
                self.servicelist = self.session.instantiateDialog(ChannelSelection)
                self.volumeBar = VolumeBar()            
+               
+               self.state = self.STATE_HIDDEN
 
                self["actions"] = ActionMap( [ "InfobarActions" ], 
                        {
@@ -43,7 +51,8 @@ class InfoBar(Screen):
                        })
 #              self["okbutton"] = Button("mainMenu", [self.mainMenu])
                
-               self["CurrentTime"] = Clock()
+               self["CurrentTime"] = ServicePosition(self.session.nav, ServicePosition.TYPE_REMAINING)
+               # Clock()
 
                self["Volume"] = self.volumeBar
                
@@ -56,6 +65,8 @@ class InfoBar(Screen):
                self["Event_Next_Duration"] = EventInfo(self.session.nav, EventInfo.Next_Duration)
                
                self.recording = None
+               
+               self.pos = 0
        
        def mainMenu(self):
                print "loading mainmenu XML..."
@@ -75,10 +86,12 @@ class InfoBar(Screen):
                self.instance.hide()
 
        def toggleShow(self):
-               if self.instance.isVisible():
-                       self.instance.hide()
+               if self.state == self.STATE_SHOWN:
+#                      self.instance.hide()
+                       self.startHide()
                else:
-                       self.instance.show()
+#                      self.instance.show()
+                       self.startShow()
 
        def     zapUp(self):
                self.servicelist.moveUp()
@@ -95,6 +108,14 @@ class InfoBar(Screen):
        def     volDown(self):
                eDVBVolumecontrol.getInstance().volumeDown()
                self.volumeBar.setValue(eDVBVolumecontrol.getInstance().getVolume())
+               
+       def startShow(self):
+               self.instance.m_animation.startMoveAnimation(ePoint(0, 600), ePoint(0, 380), 100)
+               self.state = self.STATE_SHOWN
+       
+       def startHide(self):
+               self.instance.m_animation.startMoveAnimation(ePoint(0, 380), ePoint(0, 600), 100)
+               self.state = self.STATE_HIDDEN
 
        def     volMute(self):
                eDVBVolumecontrol.getInstance().volumeToggleMute()
@@ -104,8 +125,8 @@ class InfoBar(Screen):
                quitMainloop()
                
        def instantRecord(self):
-               self.session.open(MessageBox, "this would be an instant recording! do you really know what you're doing?!")
-               return
+               #self.session.open(MessageBox, "this would be an instant recording! do you really know what you're doing?!")
+               #return
        
                if self.recording != None:
                        print "remove entry"