diff options
| author | Stefan Pluecken <stefan.pluecken@multimedia-labs.de> | 2005-11-25 05:51:44 +0000 |
|---|---|---|
| committer | Stefan Pluecken <stefan.pluecken@multimedia-labs.de> | 2005-11-25 05:51:44 +0000 |
| commit | e330dbae62e83dd2aa2ff63a984519a84b23c3ad (patch) | |
| tree | 7138f778d7a7817f01413931ab29d88ca2f13c7e | |
| parent | 6f1188bea106d335f993729e4971770deac88619 (diff) | |
| download | enigma2-e330dbae62e83dd2aa2ff63a984519a84b23c3ad.tar.gz enigma2-e330dbae62e83dd2aa2ff63a984519a84b23c3ad.zip | |
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
| -rwxr-xr-x | data/record.png | bin | 0 -> 903 bytes | |||
| -rw-r--r-- | data/skin.xml | 3 | ||||
| -rw-r--r-- | lib/python/Components/BlinkingPoint.py | 55 | ||||
| -rw-r--r-- | lib/python/Components/Makefile.am | 3 | ||||
| -rw-r--r-- | lib/python/Components/Pixmap.py | 25 | ||||
| -rw-r--r-- | lib/python/Screens/InfoBarGenerics.py | 9 |
6 files changed, 92 insertions, 3 deletions
diff --git a/data/record.png b/data/record.png Binary files differnew file mode 100755 index 00000000..9190d49d --- /dev/null +++ b/data/record.png 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 @@ <widget name="theClock" position="10,60" size="280,50" /> </screen> <screen name="InfoBar" flags="wfNoBorder" position="0,380" size="720,148" title="InfoBar"> - <ePixmap position="0,0" size="720,148" pixmap="/usr/share/enigma2/info-bg.png" /> + <ePixmap position="0,0" zPosition="1" size="720,148" pixmap="/usr/share/enigma2/info-bg.png" /> + <widget name="BlinkingPoint" position="430,35" size="20,20" /> <widget name="ServiceName" position="69,25" size="427,26" valign="center" font="Arial;22" backgroundColor="#101258" /> <widget name="CurrentTime" position="575,10" size="90,30" backgroundColor="dark" font="Arial;19" /> <widget name="Event_Now_StartTime" position="210,68" size="60,22" font="Arial;20" backgroundColor="dark" /> 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: |
