From e330dbae62e83dd2aa2ff63a984519a84b23c3ad Mon Sep 17 00:00:00 2001 From: Stefan Pluecken Date: Fri, 25 Nov 2005 05:51:44 +0000 Subject: [PATCH] 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 --- data/record.png | Bin 0 -> 903 bytes data/skin.xml | 3 +- lib/python/Components/BlinkingPoint.py | 55 +++++++++++++++++++++++++ lib/python/Components/Makefile.am | 3 +- lib/python/Components/Pixmap.py | 25 +++++++++++ lib/python/Screens/InfoBarGenerics.py | 9 +++- 6 files changed, 92 insertions(+), 3 deletions(-) create mode 100755 data/record.png create mode 100644 lib/python/Components/BlinkingPoint.py create mode 100644 lib/python/Components/Pixmap.py diff --git a/data/record.png b/data/record.png new file mode 100755 index 0000000000000000000000000000000000000000..9190d49d6cbfaeeac0af4cb14b789e91bd9b272d GIT binary patch literal 903 zcmW-fO-K|_5XZ+#Ol`r+GK0!Xmps+W3M0W7-h}8%o$_|0iAvE()QcXYKgWcu5nfcHEV{aB)nln}Ft3)JI$Y+o9 zTf6vKzLf75r@kK$S#qOzq&24^CK5!Vh*MKh6;lZ+QN>ePP0S>iL=#Wl8pMKxATfxi zVU1!@LX;TA6PCJ|OK^!Uo}j@tVU%8qi<>y68dRgIr^VdOG?+$HPdq4F&=52R^+bzq ziyETFsGe9dY_7pIx_Tmw2v|cCUJzk3tH1_~Y1*mtzzJs2%#%VEa}U8{Fi(QvK{-T= z(LCvg7Tv)ux_Pn#x3C94FaX6!L=z%l4NZ7Kgv~&M4H(n3Q|EybL-1rJ3R%oO#^A|W z1jB=J^x(;8Vj%~N$7!s^OU%P9?7_4Hm4S2``AS8ECKpW14pAJa9Z^hLtE} zF?UZ9l0SiyFp-iWp^*}?kORi!G}huJcEFNh{J;PdBN5VI!5W(If(V;|1{*M@X{XKu zr}A9qCjNV6orjyV(qFzI&!zHGzN1T|de!2mY~oYzA08{Z3rBMm@2l&}8@KdL|GL0a ze<6FQb=|vrrSZ&Y!-{3anXZp@&)>Y=UAjEBFP=DCd{X*1zyEH}-h=H6V{Nw|4DJ}- zHc%Jz`uN(DANE{4pXt`A`qSSgNAs`7d*)Ww{^*>Vt@&cTL$i&2kN& literal 0 HcmV?d00001 diff --git a/data/skin.xml b/data/skin.xml index 66bcd202..b2ba569a 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 00000000..b5a45dbb --- /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 c2787d9c..31eb61c1 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 00000000..c97c0ab1 --- /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 18ae1059..6c15c707 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: -- 2.30.2