orca r4601 - in trunk: . po src/orca/scripts/apps



Author: eitani
Date: Wed Feb 25 19:01:32 2009
New Revision: 4601
URL: http://svn.gnome.org/viewvc/orca?rev=4601&view=rev

Log:
* src/orca/scripts/apps/Makefile.am:
  src/orca/scripts/apps/notify-osd.py:
  po/POTFILES.am:
  Added a notify-osd script (bug #573156).



Added:
   trunk/src/orca/scripts/apps/notify-osd.py
Modified:
   trunk/ChangeLog
   trunk/po/POTFILES.in
   trunk/src/orca/scripts/apps/Makefile.am

Modified: trunk/po/POTFILES.in
==============================================================================
--- trunk/po/POTFILES.in	(original)
+++ trunk/po/POTFILES.in	Wed Feb 25 19:01:32 2009
@@ -45,6 +45,7 @@
 src/orca/scripts/apps/liferea.py
 src/orca/scripts/apps/metacity.py
 src/orca/scripts/apps/notification-daemon.py
+src/orca/scripts/apps/notify-osd.py
 src/orca/scripts/apps/pidgin/script.py
 src/orca/scripts/apps/pidgin/speech_generator.py
 src/orca/scripts/apps/pidgin/where_am_i.py

Modified: trunk/src/orca/scripts/apps/Makefile.am
==============================================================================
--- trunk/src/orca/scripts/apps/Makefile.am	(original)
+++ trunk/src/orca/scripts/apps/Makefile.am	Wed Feb 25 19:01:32 2009
@@ -28,6 +28,7 @@
 	Mozilla.py \
 	nautilus.py \
 	notification-daemon.py \
+	notify-osd.py \
 	yelp.py
 
 orca_pythondir=$(pyexecdir)/orca/scripts/apps

Added: trunk/src/orca/scripts/apps/notify-osd.py
==============================================================================
--- (empty file)
+++ trunk/src/orca/scripts/apps/notify-osd.py	Wed Feb 25 19:01:32 2009
@@ -0,0 +1,89 @@
+# Orca
+#
+# Copyright 2009 Eitan Isaacson
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Library General Public
+# License as published by the Free Software Foundation; either
+# version 2 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this library; if not, write to the
+# Free Software Foundation, Inc., Franklin Street, Fifth Floor,
+# Boston MA  02110-1301 USA.
+
+""" Custom script for The notify-osd
+"""
+
+__id__        = ""
+__version__   = ""
+__date__      = ""
+__copyright__ = "Copyright (c) 2009 Eitan Isaacson"
+__license__   = "LGPL"
+
+import orca.default as default
+import orca.speech as speech
+import pyatspi
+
+from orca.orca_i18n import _
+
+########################################################################
+#                                                                      #
+# The notify-osd script class.                                         #
+#                                                                      #
+########################################################################
+
+class Script(default.Script):
+    def getListeners(self):
+        """Sets up the AT-SPI event listeners for this script.
+        """
+        listeners = default.Script.getListeners(self)
+
+        listeners["window:create"] = \
+            self.onWindowCreate
+
+        listeners["object:property-change:accessible-value"] = \
+            self.onValueChange
+
+        return listeners
+    
+    def onValueChange(self, event):
+        try:
+            ivalue = event.source.queryValue()
+            value = int(ivalue.currentValue)
+        except NotImplementedError:
+            value = -1
+
+        if value >= 0:
+            speech.speak(str(value), None, True)
+            
+
+    def onWindowCreate(self, event):
+        """Called whenever a window is created in the notify-osd
+        application.
+
+        Arguments:
+        - event: the Event.
+        """
+        try:
+            ivalue = event.source.queryValue()
+            value = ivalue.currentValue
+        except NotImplementedError:
+            value = -1
+            
+        if value < 0:
+            # Not a gauge notification.
+            texts = [event.source.name, event.source.description]
+            # Translators: This denotes a notification to the user of some sort.
+            #
+            text = _('Notification %s') % ' '.join(texts)
+        else:
+            text = '%s %d' % (event.source.name, value)
+        
+        speech.speak(text, None, True)
+



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]