From: Stefan Pluecken Date: Fri, 25 Nov 2005 05:51:44 +0000 (+0000) Subject: add a blinking point to the infobar X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=commitdiff_plain;h=e330dbae62e83dd2aa2ff63a984519a84b23c3ad add a blinking point to the infobar the blinking point appears when doing an instant record it is a hack up to now the point looks ugly, because the transparency needs to be explored first --- diff --git a/data/record.png b/data/record.png new file mode 100755 index 0000000..9190d49 Binary files /dev/null and b/data/record.png differ diff --git a/data/skin.xml b/data/skin.xml index 66bcd20..b2ba569 100644 --- a/data/skin.xml +++ b/data/skin.xml @@ -143,8 +143,9 @@ - + + diff --git a/lib/python/Components/BlinkingPoint.py b/lib/python/Components/BlinkingPoint.py new file mode 100644 index 0000000..b5a45db --- /dev/null +++ b/lib/python/Components/BlinkingPoint.py @@ -0,0 +1,55 @@ +from HTMLComponent import * +from GUIComponent import * + +from Pixmap import Pixmap + +from enigma import * + +import time + +class BlinkingPoint(GUIComponent, Pixmap): + SHOWN = 0 + HIDDEN = 1 + + def __init__(self): + Pixmap.__init__(self) + GUIComponent.__init__(self) + + self.state = self.SHOWN + self.blinking = False + + self.timer = eTimer() + self.timer.timeout.get().append(self.blink) + + def createWidget(self, parent): + return self.getePixmap(parent, "/usr/share/enigma2/record.png") + + def removeWidget(self, w): + pass + + def showPoint(self): + print "Show point" + self.state = self.SHOWN + self.instance.show() + + def hidePoint(self): + print "Hide point" + self.state = self.HIDDEN + self.instance.hide() + + def blink(self): + if self.blinking == True: + if (self.state == self.SHOWN): + self.hidePoint() + elif (self.state == self.HIDDEN): + self.showPoint() + + def startBlinking(self): + self.blinking = True + self.timer.start(500) + + def stopBlinking(self): + self.blinking = False + if (self.state == self.SHOWN): + self.hidePoint() + self.timer.stop() \ No newline at end of file diff --git a/lib/python/Components/Makefile.am b/lib/python/Components/Makefile.am index c2787d9..31eb61c 100644 --- a/lib/python/Components/Makefile.am +++ b/lib/python/Components/Makefile.am @@ -9,4 +9,5 @@ install_PYTHON = \ GUIComponent.py MenuList.py TextInput.py __init__.py MovieList.py \ InputDevice.py ServicePosition.py SetupDevices.py Harddisk.py \ AVSwitch.py Network.py RFmod.py DiskInfo.py NimManager.py Lcd.py \ - EpgList.py ScrollLabel.py Timezones.py Language.py HelpMenuList.py + EpgList.py ScrollLabel.py Timezones.py Language.py HelpMenuList.py \ + BlinkingPoint.py Pixmap.py diff --git a/lib/python/Components/Pixmap.py b/lib/python/Components/Pixmap.py new file mode 100644 index 0000000..c97c0ab --- /dev/null +++ b/lib/python/Components/Pixmap.py @@ -0,0 +1,25 @@ +import skin + +from enigma import * + +class Pixmap: + """Pixmap can be used for components which use a pixmap""" + + def __init__(self): + self.instance = None + + def GUIcreate(self, parent): + self.instance = self.createWidget(parent) + #self.instance.setText(self.message) + + def GUIdelete(self): + self.removeWidget(self.instance) + self.instance = None + + def getePixmap(self, parent, filename): + pixmap = ePixmap(parent) + pixmap.setPixmapFromFile(filename) + return pixmap + + def removeWidget(self, instance): + pass diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py index 18ae105..6c15c70 100644 --- a/lib/python/Screens/InfoBarGenerics.py +++ b/lib/python/Screens/InfoBarGenerics.py @@ -6,6 +6,7 @@ from Components.config import configfile, configsequencearg from Components.config import config, configElement, ConfigSubsection, configSequence from ChannelSelection import ChannelSelection +from Components.BlinkingPoint import BlinkingPoint from Components.ServiceName import ServiceName from Components.EventInfo import EventInfo @@ -386,15 +387,19 @@ class InfoBarInstantRecord: """Instant Record - handles the instantRecord action in order to start/stop instant records""" def __init__(self): - self["InstnantRecordActions"] = HelpableActionMap(self, "InfobarInstantRecord", + self["InstantRecordActions"] = HelpableActionMap(self, "InfobarInstantRecord", { "instantRecord": (self.instantRecord, "Instant Record..."), }) self.recording = None + + self["BlinkingPoint"] = BlinkingPoint() + self.onShown.append(self["BlinkingPoint"].hidePoint) def stopCurrentRecording(self): self.session.nav.RecordTimer.removeEntry(self.recording) self.recording = None + self["BlinkingPoint"].stopBlinking() def startInstantRecording(self): serviceref = self.session.nav.getCurrentlyPlayingServiceReference() @@ -412,6 +417,8 @@ class InfoBarInstantRecord: # fix me, description. self.recording = self.session.nav.recordWithTimer(time.time(), time.time() + 3600, serviceref, epg, "instant record") self.recording.dontSave = True + + self["BlinkingPoint"].startBlinking() def recordQuestionCallback(self, answer): if answer == False: