From a6f01575d19ffaae326b10b1752a04b427901f13 Mon Sep 17 00:00:00 2001 From: Vincent Vinet Date: Wed, 09 Dec 2009 01:08:04 +0000 Subject: allow the FrameOverlayer to bind itself to a widget for show/hide --- (limited to 'tutorius/overlayer.py') diff --git a/tutorius/overlayer.py b/tutorius/overlayer.py index 5eb0f49..6b75e8a 100644 --- a/tutorius/overlayer.py +++ b/tutorius/overlayer.py @@ -20,6 +20,9 @@ drawing management (Overlayer) and basic overlayable widgets are defined here. import gobject import gtk +import logging +LOGGER=logging.getLogger("tutorius.overlayer") + from gtk.gdk import screen_width, screen_height import cairo import pangocairo @@ -162,11 +165,14 @@ class Overlayer(gtk.Layout): self._overlayed.set_size_request(allocation.width, allocation.height) class FrameOverlayer(gtk.Window): - def __init__(self): + def __init__(self, bind_to=None): gtk.Window.__init__(self) self._vbox = gtk.VBox() self._overlayer = Overlayer(self._vbox) self.add(self._overlayer) + if bind_to: + self._child_map_id = bind_to.connect_after("map", self._child_map_event) + self._child_hide_id = bind_to.connect_after("hide", self._child_hide_event) self._vbox.show() self._overlayer.show() self.show_all() @@ -182,6 +188,16 @@ class FrameOverlayer(gtk.Window): self.fullscreen() # Cover the entire screen self.expose = self.connect("expose-event", self.apply_mask) + def _child_map_event(self, widget): + LOGGER.debug("map %s", str(widget)) + #When the child is shown + self.show() + + def _child_hide_event(self, widget): + LOGGER.debug("hide %s", str(widget)) + #When the child is hiden + self.hide() + def show(self): gtk.Window.show(self) -- cgit v0.9.1