[orca] Fix for bgo #607470 - Update script for Package Manager to include sibling of status bar when presen



commit c336f52f77364b405c6cf96890bd4a77180f2ab1
Author: Joanmarie Diggs <joanmarie diggs gmail com>
Date:   Sun Jan 24 15:08:53 2010 -0500

    Fix for bgo #607470 - Update script for Package Manager to include sibling of status bar when presenting status bar contents

 src/orca/scripts/apps/packagemanager/script.py     |   25 ++++++++++++++++++++
 .../apps/packagemanager/speech_generator.py        |   21 ++++++++++++++++
 2 files changed, 46 insertions(+), 0 deletions(-)
---
diff --git a/src/orca/scripts/apps/packagemanager/script.py b/src/orca/scripts/apps/packagemanager/script.py
index 8923b16..994c7dc 100644
--- a/src/orca/scripts/apps/packagemanager/script.py
+++ b/src/orca/scripts/apps/packagemanager/script.py
@@ -218,6 +218,31 @@ class Script(default.Script):
 
         return statusBar
 
+    def findStatusBarIcon(self, statusBar=None):
+        """Locates the icon which is sometimes found to the left of the
+        packagemanager status bar.
+
+        Arguments:
+        - statusBar: packagemanager's status bar
+
+        Returns the accessible for the icon if the icon is found and
+        showing.
+        """
+
+        icon = None
+        if not statusBar:
+            statusBar = self.findStatusBar(orca_state.locusOfFocus)
+
+        if statusBar:
+            i = statusBar.getIndexInParent()
+            if i > 0:
+                icons = self.findByRole(
+                    statusBar.parent[i - 1], pyatspi.ROLE_ICON)
+                if icons:
+                    icon = icons[0]
+
+        return icon
+
     def stopSpeechOnActiveDescendantChanged(self, event):
         """Whether or not speech should be stopped prior to setting the
         locusOfFocus in onActiveDescendantChanged.
diff --git a/src/orca/scripts/apps/packagemanager/speech_generator.py b/src/orca/scripts/apps/packagemanager/speech_generator.py
index 5d18348..d0793f3 100644
--- a/src/orca/scripts/apps/packagemanager/speech_generator.py
+++ b/src/orca/scripts/apps/packagemanager/speech_generator.py
@@ -86,3 +86,24 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
             result.extend(speech_generator.SpeechGenerator.\
                 _generateAvailability(self, obj, **args))
         return result
+
+    def _generateStatusBar(self, obj, **args):
+        """Returns an array of strings (and possibly voice and audio
+        specifications) that represent the status bar of a window.
+        This method should initially be called with a top-level window.
+        """
+        result = []
+        statusBar = self._script.findStatusBar(obj)
+        if statusBar:
+            name = self._generateName(statusBar)
+            if name:
+                result.extend(name)
+            else:
+                for child in statusBar:
+                    result.extend(self._generateName(child))
+
+            icon = self._script.findStatusBarIcon(statusBar)
+            if icon:
+                result[0:0] = self.generate(icon)
+
+        return result



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