diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2006-01-26 13:29:28 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2006-01-26 13:29:28 +0000 |
| commit | bb9ce4897ba4326cd0cdf4b394631c679ba353dc (patch) | |
| tree | 02aa2ed38fbcba2b2a565f10cd7905f876701fd8 | |
| parent | 6077e08da9e6c94c708b30bcc088dc468f219627 (diff) | |
| download | enigma2-bb9ce4897ba4326cd0cdf4b394631c679ba353dc.tar.gz enigma2-bb9ce4897ba4326cd0cdf4b394631c679ba353dc.zip | |
show, hide is now supported in screen, adding onShow (!= onShown), onHide
| -rw-r--r-- | lib/python/Screens/Screen.py | 20 | ||||
| -rw-r--r-- | mytest.py | 14 |
2 files changed, 27 insertions, 7 deletions
diff --git a/lib/python/Screens/Screen.py b/lib/python/Screens/Screen.py index 3c635831..a8d0b048 100644 --- a/lib/python/Screens/Screen.py +++ b/lib/python/Screens/Screen.py @@ -15,7 +15,11 @@ class Screen(dict, HTMLSkin, GUISkin): self.onExecBegin = [ ] self.onShown = [ ] + self.onShow = [ ] + self.onHide = [ ] + self.execing = False + self.shown = False # in order to support screens *without* a help, # we need the list in every screen. how ironic. @@ -72,3 +76,19 @@ class Screen(dict, HTMLSkin, GUISkin): def setFocus(self, o): self.instance.setFocus(o.instance) + + def show(self): + if self.shown: + return + self.shown = True + self.instance.show() + for x in self.onShow: + x() + + def hide(self): + if not self.shown: + return + self.shown = False + self.instance.hide() + for x in self.onHide: + x() @@ -110,11 +110,11 @@ class Session: # when execBegin opened a new dialog, don't bother showing the old one. if c == self.currentDialog: - c.instance.show() + c.show() def execEnd(self): self.currentDialog.execEnd() - self.currentDialog.instance.hide() + self.currentDialog.hide() def create(self, screen, arguments): # creates an instance of 'screen' (which is a class) @@ -235,7 +235,7 @@ class VolumeControl: if (eDVBVolumecontrol.getInstance().isMuted()): self.volMute() eDVBVolumecontrol.getInstance().volumeUp() - self.volumeDialog.instance.show() + self.volumeDialog.show() self.volumeDialog.setValue(eDVBVolumecontrol.getInstance().getVolume()) self.volSave() self.hideVolTimer.start(3000, True) @@ -244,22 +244,22 @@ class VolumeControl: if (eDVBVolumecontrol.getInstance().isMuted()): self.volMute() eDVBVolumecontrol.getInstance().volumeDown() - self.volumeDialog.instance.show() + self.volumeDialog.show() self.volumeDialog.setValue(eDVBVolumecontrol.getInstance().getVolume()) self.volSave() self.hideVolTimer.start(3000, True) def volHide(self): - self.volumeDialog.instance.hide() + self.volumeDialog.hide() def volMute(self): eDVBVolumecontrol.getInstance().volumeToggleMute() self.volumeDialog.setValue(eDVBVolumecontrol.getInstance().getVolume()) if (eDVBVolumecontrol.getInstance().isMuted()): - self.muteDialog.instance.show() + self.muteDialog.show() else: - self.muteDialog.instance.hide() + self.muteDialog.hide() def runScreenTest(): session = Session() |
