X-Git-Url: http://git.maemo.org/git/?p=watersofshiloah;a=blobdiff_plain;f=src%2Fbanners.py;h=afa5281dddd83c26bc6b3e17f61b695093a84284;hp=328029ae1d6fee581e72a54e3e6dcfbff3a28195;hb=2ec509cf8efef2845a1736b5062b5c4f38684bfc;hpb=ed27fe5f073929a7b3de7ea3ef2966f0cac8c72d diff --git a/src/banners.py b/src/banners.py index 328029a..afa5281 100644 --- a/src/banners.py +++ b/src/banners.py @@ -12,22 +12,30 @@ _moduleLogger = logging.getLogger(__name__) class GenericBanner(object): def __init__(self): + self._indicator = gtk.Image() + self._label = gtk.Label() - self._layout = gtk.VBox() - self._layout.pack_start(self._label) + self._layout = gtk.HBox() + self._layout.pack_start(self._indicator, False, False) + self._layout.pack_start(self._label, False, True) @property def toplevel(self): return self._layout - def show(self, message): + def show(self, icon, message): assert not self._label.get_text(), self._label.get_text() + if isinstance(icon, gtk.gdk.PixbufAnimation): + self._indicator.set_from_animation(icon) + elif isinstance(icon, gtk.gdk.Pixbuf): + self._indicator.set_from_pixbuf(icon) + else: + self._indicator.set_from_stock(icon) self._label.set_text(message) self.toplevel.show() def hide(self): - assert self._label.get_text(), self._label.get_text() self._label.set_text("") self.toplevel.hide() @@ -61,7 +69,7 @@ class StackingBanner(object): def push_message(self, message, icon=""): self._messages.append((message, icon)) - if 1 == len(self.__messages): + if 1 == len(self._messages): self._update_message() def push_exception(self): @@ -70,14 +78,14 @@ class StackingBanner(object): _moduleLogger.exception(userMessage) def pop_message(self): - del self.__messages[0] + del self._messages[0] self._update_message() def _update_message(self): - if 0 == len(self.__messages): + if 0 == len(self._messages): self.toplevel.hide() else: - message, icon = self._message[0] + message, icon = self._messages[0] self._message.set_text(message) if icon: self._indicator.set_from_stock(icon)