diff frontends/src/primitivus/chat.py @ 380:ede26abf6ca1

primitivus: freedesktop notifications (if available) when somebody is talking to us and we have not focus, or our nick is pinged and we have not focus. This need python-Xlib to work, if it's not present, notification are silently ignored.
author Goffi <goffi@goffi.org>
date Sat, 27 Aug 2011 17:15:41 +0200
parents d62eb9003375
children 1f7a14d0343d
line wrap: on
line diff
--- a/frontends/src/primitivus/chat.py	Sat Aug 27 12:39:51 2011 +0200
+++ b/frontends/src/primitivus/chat.py	Sat Aug 27 17:15:41 2011 +0200
@@ -231,6 +231,11 @@
         self.content.append(ChatText(self, timestamp or None, nick, mymess, msg))
         self.text_list.set_focus(len(self.content)-1)
         self.host.redraw()
+        if not self.host.notify.hasFocus():
+            if self.type=="one2one":
+                self.host.notify.sendNotification("Primitivus: %s is talking to you" % from_jid)
+            elif self.getUserNick().lower() in msg.lower(): 
+                self.host.notify.sendNotification("Primitivus: Somebody pinged your name in %s room" % self.target)
     
     def printInfo(self, msg, type='normal'):
         """Print general info
@@ -242,6 +247,11 @@
         self.content.append(sat_widgets.ClickableText(msg))
         self.text_list.set_focus(len(self.content)-1)
         self.host.redraw()
+        if not self.host.notify.hasFocus():
+            if self.type=="one2one":
+                self.host.notify.sendNotification("Primitivus: there is a message about you")
+            elif self.getUserNick().lower() in msg.lower(): 
+                self.host.notify.sendNotification("Primitivus: Somebody is talking about you in %s room" % self.target)
     
     def startGame(self, game_type, referee, players):
         """Configure the chat window to start a game"""