orca r4244 - in branches/phase2/src/orca: . plugins
- From: wwalker svn gnome org
- To: svn-commits-list gnome org
- Subject: orca r4244 - in branches/phase2/src/orca: . plugins
- Date: Thu, 18 Sep 2008 19:00:41 +0000 (UTC)
Author: wwalker
Date: Thu Sep 18 19:00:41 2008
New Revision: 4244
URL: http://svn.gnome.org/viewvc/orca?rev=4244&view=rev
Log:
More goofing with introspection.
Modified:
branches/phase2/src/orca/default.py
branches/phase2/src/orca/plugins/automatic.py
branches/phase2/src/orca/script.py
Modified: branches/phase2/src/orca/default.py
==============================================================================
--- branches/phase2/src/orca/default.py (original)
+++ branches/phase2/src/orca/default.py Thu Sep 18 19:00:41 2008
@@ -321,104 +321,92 @@
def _focusListener(self, event):
"""Called on AT-SPI focus events.
-
- event: focus:
"""
log.debug("_focusListener: %s" % str(event).replace("\n", " "))
+ _focusListener.events = ["focus:"]
def _activeDescendantChangedListener(self, event):
"""Called on AT-SPI object:active-descendant-changed events.
-
- event: object:active-descendant-changed
"""
log.debug("_activeDescendantChangedListener: %s" \
% str(event).replace("\n", " "))
+ _activeDescendantChangedListener.events = \
+ ["object:active-descendant-changed"]
def _mouseButtonListener(self, event):
"""Called on AT-SPI mouse:button events.
-
- event: mouse:button
"""
log.debug("_mouseButtonListener: %s" % str(event).replace("\n", " "))
+ _mouseButtonListener.events = ["mouse:button"]
def _nameChangedListener(self, event):
"""Called on AT-SPI object:property-change:accessible-name events.
-
- event: object:property-change:accessible-name
"""
log.debug("_nameChangedListener: %s" % str(event).replace("\n", " "))
+ _nameChangedListener.events = ["object:property-change:accessible-name"]
def _caretMovedListener(self, event):
"""Called on AT-SPI object:text-caret-moved events.
-
- event: object:text-caret-moved
"""
log.debug("_caretMovedListener: %s" % str(event).replace("\n", " "))
+ _caretMovedListener.events = ["object:text-caret-moved"]
def _textDeletedListener(self, event):
"""Called on AT-SPI object:text-changed:delete events.
-
- event: object:text-changed:delete
"""
log.debug("_textDeletedListener: %s" % str(event).replace("\n", " "))
+ _textDeletedListener.events = ["object:text-changed:delete"]
def _textInsertedListener(self, event):
"""Called on AT-SPI object:text-changed:insert events.
-
- event: object:text-changed:insert
"""
log.debug("_textInsertedListener: %s" % str(event).replace("\n", " "))
+ _textInsertedListener.events = ["event: object:text-changed:insert"]
def _textSelectionChangedListener(self, event):
"""Called on AT-SPI object:text-selection-changed events.
-
- event: object:text-selection-changed
"""
log.debug("_textSelectionChangedListener: %s"
% str(event).replace("\n", " "))
+ _textSelectionChangedListener.events = ["object:text-selection-changed"]
def _selectionChangedListener(self, event):
"""Called on AT-SPI object:selection-changed events.
-
- event: object:selection-changed
"""
log.debug("_selectionChangedListener: %s" % str(event).replace("\n", " "))
+ _selectionChangedListener.events = ["object:selection-changed"]
def _linkSelectedListener(self, event):
"""Called on AT-SPI object:link-selected events.
-
- event: object:link-selected
"""
log.debug("_linkSelectedListener: %s" % str(event).replace("\n", " "))
+ _linkSelectedListener.events = ["object:link-selected"]
def _stateChangedListener(self, event):
"""Called on AT-SPI object:state-changed events.
-
- event: object:state-changed
"""
log.debug("_stateChangedListener: %s" % str(event).replace("\n", " "))
+ _stateChangedListener.events = ["object:state-changed"]
def _valueChangedListener(self, event):
"""Called on AT-SPI object:value-changed and
object:property-change:accessible-value events.
-
- event: object:value-changed, object:property-change:accessible-value
"""
log.debug("_valueChangedListener: %s" % str(event).replace("\n", " "))
+ _valueChangedListener.events = \
+ ["object:value-changed", "object:property-change:accessible-value"]
def _windowActivateListener(self, event):
"""Called on AT-SPI window:activate events.
-
- event: window:activate
"""
log.debug("_windowActivateListener: %s" % str(event).replace("\n", " "))
+ _windowActivateListener.events = ["window:activate"]
- def _eindowDeactivatedListener(self, event):
+ def _windowDeactivatedListener(self, event):
"""Called on AT-SPI window:deactivate events.
-
- event: window:deactivate
"""
log.debug("_windowDeactivateListener: %s" % str(event).replace("\n", " "))
+ _windowDeactivatedListener.events = ["window:deactivate"]
def _noOpListener(self, event):
"""Just here to capture events.
Modified: branches/phase2/src/orca/plugins/automatic.py
==============================================================================
--- branches/phase2/src/orca/plugins/automatic.py (original)
+++ branches/phase2/src/orca/plugins/automatic.py Thu Sep 18 19:00:41 2008
@@ -27,6 +27,7 @@
import logging
log = logging.getLogger('orca.plugins.automatic')
+import orca.input_event as input_event
import orca.plugin as plugin
try:
@@ -49,23 +50,24 @@
- scriptSettings: the Settings for the script
"""
plugin.Plugin.__init__(self, owner, scriptSettings)
- self._introspectHandlers()
def floopyDooHandler(self, inputEvent=None, modifiers=None):
"""The floopy doo handler.
-
- keyboard: "a", input_event.defaultModifierMask, input_event.ORCA_CTRL_ALT_MODIFIER_MASK, 1
- description: _("Floopy doo.")
"""
log.debug("floopyDooHandler: %s" % inputEvent)
+ floopyDooHandler.keyboardBindings = [
+ ["a", input_event.defaultModifierMask, input_event.ORCA_CTRL_ALT_MODIFIER_MASK, 1]
+ ]
+ floopyDooHandler.description = _("Floopy doo.")
def floopyDeeHandler(self, inputEvent=None, modifiers=None):
"""The floopy dee handler.
-
- keyboard: "b", input_event.defaultModifierMask, input_event.ORCA_CTRL_ALT_MODIFIER_MASK, 1
- description: _("Floopy dee.")
"""
log.debug("floopyDeeHandler: %s" % inputEvent)
+ floopyDeeHandler.keyboardBindings = [
+ ["b", input_event.defaultModifierMask, input_event.ORCA_CTRL_ALT_MODIFIER_MASK, 1]
+ ]
+ floopyDeeHandler.description = _("Floopy dee.")
if __name__ == "__main__":
logging.basicConfig(format="%(name)s %(message)s")
Modified: branches/phase2/src/orca/script.py
==============================================================================
--- branches/phase2/src/orca/script.py (original)
+++ branches/phase2/src/orca/script.py Thu Sep 18 19:00:41 2008
@@ -84,6 +84,7 @@
self._createKeyboardBindings(self._inputEventHandlers)
self._brailleBindings = \
self._createBrailleBindings(self._inputEventHandlers)
+ self._introspectInputEventBindings()
# Load custom settings and also give the module a chance to
# override our keyboard and braille bindings.
@@ -163,18 +164,6 @@
"""
log.info("NEW SCRIPT: %s" % self)
- def _parseObjectEventListenerDocString(self, docstring):
- """Looks for an 'event:' line in the given docstring and
- returns it if it exists."""
- import re
- EVENT = re.compile(r'(\sevent:\s*)(.*)\n')
- match = EVENT.search(docstring)
- try:
- event = match.group(2).strip()
- except:
- event = None
- return event
-
def _introspectObjectEventListeners(self):
"""Find the AT-SPI listeners based upon their method name.
"""
@@ -186,60 +175,18 @@
if symbol.endswith("Listener"):
method = getattr(self, symbol).__get__(self, self.__class__)
if callable(method):
- eventString = \
- self._parseObjectEventListenerDocString(method.__doc__)
try:
- events = eventString.split()
+ events = method.events
except:
events = []
for event in events:
- listeners[event.strip(', ')] = method
+ listeners[event] = method
return listeners
- def _parseHandlerDocString(self, docstring):
- """Looks for 'keyboard:', 'braille:', and 'description:' lines in
- the given docstring and returns them if they exist."""
- import re
- KEYBOARD = re.compile(r'(\skeyboard:\s*)(.*)\n')
- BRAILLE = re.compile(r'(\sbraille:\s*)(.*)\n')
- DESCRIPTION = re.compile(r'(\sdescription:\s*)(.*)\n')
- match = KEYBOARD.search(docstring)
- try:
- keyboard = match.group(2).strip()
- except:
- keyboard = None
-
- match = BRAILLE.search(docstring)
- try:
- braille = match.group(2).strip()
- except:
- braille = None
-
- match = DESCRIPTION.search(docstring)
- try:
- description = match.group(2).strip()
- except:
- description = None
-
- # TODO: need to allow for multiple bindings.
- # TODO: need allow things to cross lines.
- # TODO: possibly eval things here?
- #
- return (keyboard, braille, description)
-
- def _introspectHandlers(self):
+ def _introspectInputEventBindings(self):
"""TODO: EXPERIMENTAL method to find the input event handlers for this
- object based upon their method name. The biggest issue is getting
- the description to be marked for translation so intltool will pick
- it up.
+ object based upon their method name.
"""
- import input_event
- from orca_i18n import _
- try:
- import brlapi
- except:
- log.exception("Not using braille bindings because of this exception:")
-
# Find all the Handler methods and save them based upon their name
# and their unbound (i.e., requires the plugin to be passed as the
# first argument) form.
@@ -253,30 +200,27 @@
# Create the handlers and bindings.
#
- # TODO: add gratuitous try/except clauses.
- #
for symbol, method in methodList:
- (keyboard, braille, description) = \
- self._parseHandlerDocString(method.__doc__)
- self._inputEventHandlers[symbol] = input_bindings.Handler(
- method, description)
- if keyboard:
- [keysym, mask, modifiers, repeat] = keyboard.split()
- binding = input_bindings.KeyboardBinding(
- eval(keysym.strip(', ')),
- eval(mask.strip(', ')),
- eval(modifiers.strip(', ')),
- symbol,
- eval(repeat))
- self._keyboardBindings.append(binding)
- if braille:
- [cmd, mask, modifiers, repeat] = keyboard.split()
- self._brailleBindings.append(input_bindings.BrailleBinding(
- eval(keysym.strip(',')),
- eval(mask.strip(',')),
- eval(modifiers.strip(',')),
- symbol,
- eval(repeat)))
+ try:
+ self._inputEventHandlers[symbol] = input_bindings.Handler(
+ method, method.description)
+ except:
+ log.warning("No description for %s. Not registering." % symbol)
+ continue
+ try:
+ for keysym, mask, modifiers, clickCount in method.keyboardBindings:
+ self._keyboardBindings.append(
+ input_bindings.KeyboardBinding(
+ keysym, mask, modifiers, symbol, clickCount))
+ except:
+ pass
+ try:
+ for command, mask, modifiers, clickCount in method.brailleBindings:
+ self._brailleBindings.append(
+ input_bindings.BrailleBinding(
+ command, mask, modifiers, symbol, clickCount))
+ except:
+ pass
def __str__(self):
"""Returns a human readable representation of the script.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]