[orca] Fix for bug #652238 - Remove gnome-mag support from the master/3.1.x branch



commit d29dbe1d6dc07d654e427278dac73009b164c21b
Author: Joanmarie Diggs <joanmarie diggs gmail com>
Date:   Sat Jun 11 18:40:00 2011 -0400

    Fix for bug #652238 - Remove gnome-mag support from the master/3.1.x branch

 configure.in    |    2 -
 src/orca/mag.py | 1757 ++-----------------------------------------------------
 2 files changed, 41 insertions(+), 1718 deletions(-)
---
diff --git a/configure.in b/configure.in
index e4d5182..9209560 100644
--- a/configure.in
+++ b/configure.in
@@ -59,7 +59,6 @@ AM_CHECK_PYMOD(pango,,,[AC_MSG_ERROR(Could not find python module: pango)])
 AM_CHECK_PYMOD(json,,,[AC_MSG_ERROR(Could not find python module: json)])
 AM_CHECK_PYMOD(xdg,,,[AC_MSG_ERROR(Could not find python module: xdg)])
 AM_CHECK_PYMOD(wnck,,[wnck_available="yes"],[wnck_available="no"])
-AM_CHECK_PYORBIT_MOD(GNOME_Magnifier,[gnome_mag_available="yes"],[gnome_mag_available="no"])
 AM_CHECK_PYMOD(brlapi,,[brlapi_available="yes"],[brlapi_available="no"])
 LOUIS_TABLE_DIR=""
 AM_CHECK_PYMOD(louis,,[louis_available="yes"],[louis_available="no"])
@@ -155,7 +154,6 @@ echo
 echo Use ORBit: $ORBit_available
 echo Use CORBA: $CORBA_available
 echo Use bonobo: $bonobo_available
-echo Use gnome-mag: $gnome_mag_available
 echo Use brltty: $brlapi_available
 echo Use liblouis: $louis_available
 echo
diff --git a/src/orca/mag.py b/src/orca/mag.py
index ca1991f..ba8d3e1 100644
--- a/src/orca/mag.py
+++ b/src/orca/mag.py
@@ -1,6 +1,7 @@
 # Orca
 #
 # Copyright 2005-2008 Sun Microsystems Inc.
+# Copyright 2011 The Orca Team
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -17,1793 +18,117 @@
 # Free Software Foundation, Inc., Franklin Street, Fifth Floor,
 # Boston MA  02110-1301 USA.
 
-"""Manages the magnifier for orca.  [[[TODO: WDW - this is very very
-early in development.  One might even say it is pre-prototype.]]]"""
-
 __id__        = "$Id$"
 __version__   = "$Revision$"
 __date__      = "$Date$"
-__copyright__ = "Copyright (c) 2005-2008 Sun Microsystems Inc."
+__copyright__ = "Copyright (c) 2011 The Orca Team."
 __license__   = "LGPL"
 
-try:
-    # This can fail due to gtk not being available.  We want to
-    # be able to recover from that if possible.  The main driver
-    # for this is to allow "orca --text-setup" to work even if
-    # the desktop is not running.
-    #
-    import gtk
-except:
-    pass
-import time
-
-import pyatspi
-import debug
-import eventsynthesizer
-import settings
-import orca
-import orca_state
-
-from orca_i18n import _  # for gettext support
-
-_magnifierAvailable = False
-_settingsManager = getattr(orca, '_settingsManager')
-
-try:
-    import bonobo
-    import ORBit
-    ORBit.load_typelib('GNOME_Magnifier')
-    import GNOME.Magnifier
-    _magnifierAvailable = True
-except:
-    pass
-
-# If True, this module has been initialized.
-#
-_initialized = False
-
-# The Magnifier and its property bag
-#
-_magnifier = None
-_magnifierPBag = None
-
-# The width and height, in unzoomed system coordinates of the rectangle that,
-# when magnified, will fill the viewport of the magnifier - this needs to be
-# sync'd with the magnification factors of the zoom area.
-#
-_roiWidth = 0
-_roiHeight = 0
-
-# Minimum/maximum values for the center of the ROI
-# in source screen coordinates.
-#
-_minROIX = 0
-_maxROIX = 0
-_minROIY = 0
-_maxROIY = 0
-
-# The current region of interest.
-#
-# A GNOME.Magnifier.RectBounds object which consists of x1, y1, x2, y2 values
-# that are in source screen coordinates.
-#
-_roi = None
-
-# The area of the source display that is not covered by the magnifier.
-#
-# A GNOME.Magnifier.RectBounds object which consists of x1, y1, x2, y2 values
-# that are in source screen coordinates.  If the COMPOSITE support is enabled
-# in gnome-mag, then this typically becomes the entire source screen.  If it
-# it not enabled, however, and the target and source displays are the same,
-# this ends up becoming the portion of the screen that is not covered by the
-# magnifier.
-#
-_sourceDisplayBounds = None
-
-# The area on the target display where we are placing the magnifier.
-#
-# A GNOME.Magnifier.RectBounds object which consists of x1, y1, x2, y2 values
-# that are in target screen coordinates.
-#
-_targetDisplayBounds = None
-
-# The ZoomRegion we care about and its property bag.  We only use one
-# ZoomRegion and we make it occupy the whole magnifier.
-#
-_zoomer = None
-_zoomerPBag = None
-
-# The time of the last mouse event.
-#
-_lastMouseEventTime = time.time()
-
-# Whether or not the last mouse event was the result of our routing the
-# pointer.
-#
-_lastMouseEventWasRoute = False
-
-# If True, we're using gnome-mag >= 0.13.1 that allows us to control
-# where to draw the cursor and crosswires.
-#
-_pollMouseDisabled = False
-
-# Whether or not composite is being used.
-#
-_fullScreenCapable = True
-
-# Whether or not we're in the process of making "live update" changes
-# to the location of the magnifier.
-#
-_liveUpdatingMagnifier = False
-
-# The original source display bounds.
-#
-_originalSourceDisplayBounds = None
-
-# The current modes of tracking, for use with "live update" changes.
-#
-_mouseTracking = None
-_controlTracking = None
-_textTracking = None
-_edgeMargin = None
-_pointerFollowsZoomer = None
-_pointerFollowsFocus = None
-
-def __setROI(rect):
-    """Sets the region of interest.
-
-    Arguments:
-    - rect: A GNOME.Magnifier.RectBounds object.
-    """
-
-    global _roi
-
-    debug.println(debug.LEVEL_ALL, "mag.py:__setROI: (%d, %d), (%d, %d)" \
-                  % (rect.x1, rect.y1, rect.x2, rect.y2))
-
-    _roi = rect
-
-    _zoomer.setROI(_roi)
-    _zoomer.markDirty(_roi)  # [[[TODO: WDW - for some reason, this seems
-                             # necessary.]]]
-def __setROICenter(x, y):
-    """Centers the region of interest around the given point.
-
-    Arguments:
-    - x: integer in unzoomed system coordinates representing x component
-    - y: integer in unzoomed system coordinates representing y component
-    """
-
-    if not _initialized:
-        return
-
-    if x < _minROIX:
-        x = _minROIX
-    elif x > _maxROIX:
-        x = _maxROIX
-
-    if y < _minROIY:
-        y = _minROIY
-    elif y > _maxROIY:
-        y = _maxROIY
-
-    x1 = x - (_roiWidth / 2)
-    y1 = y - (_roiHeight / 2)
-
-    x2 = x1 + _roiWidth
-    y2 = y1 + _roiHeight
-
-    __setROI(GNOME.Magnifier.RectBounds(x1, y1, x2, y2))
-
-def __setROIPush(x, y):
-    """Nudges the ROI if the pointer bumps into the edge of it.  The point
-    given is assumed to be the point where the mouse pointer is.
-
-    Arguments:
-    - x: integer in unzoomed system coordinates representing x component
-    - y: integer in unzoomed system coordinates representing y component
-    """
-
-    #needNewROI = False
-    newROI = GNOME.Magnifier.RectBounds(_roi.x1, _roi.y1, _roi.x2, _roi.y2)
-    if x < _roi.x1:
-        #needNewROI = True
-        newROI.x1 = x
-        newROI.x2 = x + _roiWidth
-    elif x > _roi.x2:
-        #needNewROI = True
-        newROI.x2 = x
-        newROI.x1 = x - _roiWidth
-    if y < _roi.y1:
-        #needNewROI = True
-        newROI.y1 = y
-        newROI.y2 = y + _roiHeight
-    elif y > _roi.y2:
-        #needNewROI = True
-        newROI.y2 = y
-        newROI.y1 = y - _roiHeight
-
-    # Well...we'll always update the ROI so the new gnome-mag API
-    # will redraw the crosswires for us.
-    #
-    #if needNewROI:
-    if True:
-        __setROI(newROI)
-
-def __setROICursorPush(x, y, width, height, edgeMargin = 0):
-    """Nudges the ROI if the caret or control is not visible.
-
-    Arguments:
-    - x: integer in unzoomed system coordinates representing x component
-    - y: integer in unzoomed system coordinates representing y component
-    - width: integer in unzoomed system coordinates representing the width
-    - height: integer in unzoomed system coordinates representing the height
-    - edgeMargin: a percentage representing how close to the edge we can get
-                  before we need to push
-    """
-
-    # The edge margin should not exceed 50%. (50% is a centered alignment).
-    #
-    edgeMargin = min(edgeMargin, 50)/100.00
-    magZoomFactor = _settingsManager.getSetting('magZoomFactor')
-    edgeMarginX = edgeMargin * _sourceDisplayBounds.x2/magZoomFactor
-    edgeMarginY = edgeMargin * _sourceDisplayBounds.y2/magZoomFactor
-
-    # Determine if the accessible is partially to the left, right,
-    # above, or below the current region of interest (ROI).
-    #
-    leftOfROI = (x - edgeMarginX) <= _roi.x1
-    rightOfROI = (x + width + edgeMarginX) >= _roi.x2
-    aboveROI = (y - edgeMarginY)  <= _roi.y1
-    belowROI = (y + height + edgeMarginY) >= _roi.y2
-
-    # If it is already completely showing, do nothing.
-    #
-    visibleX = not(leftOfROI or rightOfROI)
-    visibleY = not(aboveROI or belowROI)
-    if visibleX and visibleY:
-        _zoomer.markDirty(_roi)
-
-    # The algorithm is devised to move the ROI as little as possible, yet
-    # favor the top left side of the object [[[TODO: WDW - the left/right
-    # top/bottom favoring should probably depend upon the locale.  Also,
-    # I had the notion of including a floating point snap factor between
-    # 0.0 and 1.0 that would determine how to position the object in the
-    # window relative to the ROI edges.  A snap factor of -1 would mean to
-    # snap to the closest edge.  A snap factor of 0.0 would snap to the
-    # left most or top most edge, a snap factor of 1.0 would snap to the
-    # right most or bottom most edge.  Any number in between would divide
-    # the two.]]]
-    #
-    x1 = _roi.x1
-    x2 = _roi.x2
-    y1 = _roi.y1
-    y2 = _roi.y2
-
-    if leftOfROI:
-        x1 = max(_sourceDisplayBounds.x1, x - edgeMarginX)
-        x2 = x1 + _roiWidth
-    elif rightOfROI:
-        x = min(_sourceDisplayBounds.x2, x + edgeMarginX)
-        if width > _roiWidth:
-            x1 = x
-            x2 = x1 + _roiWidth
-        else:
-            x2 = x + width
-            x1 = x2 - _roiWidth
-
-    if aboveROI:
-        y1 = max(_sourceDisplayBounds.y1, y - edgeMarginY)
-        y2 = y1 + _roiHeight
-    elif belowROI:
-        y = min(_sourceDisplayBounds.y2, y + edgeMarginY)
-        if height > _roiHeight:
-            y1 = y
-            y2 = y1 + _roiHeight
-        else:
-            y2 = y + height
-            y1 = y2 - _roiHeight
-
-    __setROI(GNOME.Magnifier.RectBounds(x1, y1, x2, y2))
-
-def __setROIProportional(x, y):
-    """Positions the ROI proportionally to where the pointer is on the screen.
-
-    Arguments:
-    - x: integer in unzoomed system coordinates representing x component
-    - y: integer in unzoomed system coordinates representing y component
-    """
-
-    if not _initialized:
-        return
-
-    if not _sourceDisplayBounds:
-        __setROICenter(x, y)
-    else:
-        halfScreenWidth  = (_sourceDisplayBounds.x2 \
-                            - _sourceDisplayBounds.x1) / 2.0
-        halfScreenHeight = (_sourceDisplayBounds.y2 \
-                            - _sourceDisplayBounds.y1) / 2.0
-
-        proportionX = (halfScreenWidth  - x) / halfScreenWidth
-        proportionY = (halfScreenHeight - y) / halfScreenHeight
-
-        centerX = x + int(proportionX * _roiWidth  / 2.0)
-        centerY = y + int(proportionY * _roiHeight / 2.0)
-
-        __setROICenter(centerX, centerY)
-
-# Used for tracking the pointer.
-#
-def __onMouseEvent(e):
-    """
-    Arguments:
-    - e: at-spi event from the at-api registry
-    """
-
-    global _lastMouseEventTime
-    global _lastMouseEventWasRoute
-
-    isNewMouseMovement = (time.time() - _lastMouseEventTime > 1)
-    _lastMouseEventTime = time.time()
-
-    [x, y] = [e.detail1, e.detail2]
-
-    if _pointerFollowsZoomer and isNewMouseMovement \
-       and not _lastMouseEventWasRoute:
-        mouseIsVisible = (_roi.x1 < x < _roi.x2) and (_roi.y1 < y < _roi.y2)
-        if not mouseIsVisible and orca_state.locusOfFocus:
-            if _mouseTracking == settings.MAG_TRACKING_MODE_CENTERED:
-                x = (_roi.x1 + _roi.x2) / 2
-                y = (_roi.y1 + _roi.y2) / 2
-            elif _mouseTracking != settings.MAG_TRACKING_MODE_NONE:
-                try:
-                    extents = \
-                        orca_state.locusOfFocus.queryComponent().getExtents(0)
-                except:
-                    extents = None
-                if extents:
-                    x = extents.x
-                    y = extents.y + extents.height - 1
-
-            eventsynthesizer.generateMouseEvent(x, y, "abs")
-            _lastMouseEventWasRoute = True
-
-    # If True, we're using gnome-mag >= 0.13.1 that allows us to
-    # control where to draw the cursor and crosswires.
-    #
-    if _pollMouseDisabled:
-        _zoomer.setPointerPos(x, y)
-
-    if _lastMouseEventWasRoute:
-        # If we just moved the mouse pointer to the menu item or control
-        # with focus, we don't want to do anything.
-        #
-        _lastMouseEventWasRoute = False
-        _zoomer.markDirty(_roi)
-        return
-
-    if _mouseTracking == settings.MAG_TRACKING_MODE_PUSH:
-        __setROIPush(x, y)
-    elif _mouseTracking == settings.MAG_TRACKING_MODE_PROPORTIONAL:
-        __setROIProportional(x, y)
-    elif _mouseTracking == settings.MAG_TRACKING_MODE_CENTERED:
-        __setROICenter(x, y)
-
-def __getValueText(slot, value):
-    valueText = ""
-    if slot == "cursor-hotspot":
-        valueText = "(%d, %d)" % (value.x, value.y)
-    elif slot == "source-display-bounds":
-        valueText = "(%d, %d),(%d, %d)" \
-                    % (value.x1, value.y1, value.x2, value.y2)
-    elif slot == "target-display-bounds":
-        valueText = "(%d, %d),(%d, %d)" \
-                    % (value.x1, value.y1, value.x2, value.y2)
-    elif slot == "viewport":
-        valueText = "(%d, %d),(%d, %d)" \
-                    % (value.x1, value.y1, value.x2, value.y2)
-    return valueText
-
-def __dumpPropertyBag(obj):
-    pbag = obj.getProperties()
-    slots = pbag.getKeys("")
-    print "  Available slots: ", pbag.getKeys("")
-    for slot in slots:
-        # These crash the magnifier since it doesn't know how to marshall
-        # them to us.
-        #
-        if slot in ["cursor-set", "smoothing-type"]:
-            continue
-        print "    About '%s':" % slot
-        print "    Doc Title:", pbag.getDocTitle(slot)
-        print "    Type:", pbag.getType(slot)
-        value = pbag.getDefault(slot).value()
-        print "    Default value:", value, __getValueText(slot, value)
-        value = pbag.getValue(slot).value()
-        print "    Current value:", value, __getValueText(slot, value)
-        print
-
-def __setupMagnifier(position, left=None, top=None, right=None, bottom=None,
-                     restore=None):
-    """Creates the magnifier in the position specified.
-
-    Arguments:
-    - position: the position/type of zoomer (full, left half, etc.)
-    - left:     the left edge of the zoomer (only applicable for custom)
-    - top:      the top edge of the zoomer (only applicable for custom)
-    - right:    the right edge of the zoomer (only applicable for custom)
-    - bottom:   the top edge of the zoomer (only applicable for custom)
-    - restore:  a dictionary of all of the settings which should be restored
-    """
-
-    global _fullScreenCapable
-    global _magnifierPBag
-    global _originalSourceDisplayBounds
-
-    _magnifier.clearAllZoomRegions()
-
-    if not restore:
-        restore = {}
-
-    # Define where the magnifier will live.
-    #
-    try:
-        _magnifier.TargetDisplay = \
-            _settingsManager.getSetting('magTargetDisplay')
-    except:
-        pass
-
-    # Define what will be magnified.
-    #
-    try:
-        _magnifier.SourceDisplay = \
-            _settingsManager.getSetting('magSourceDisplay')
-    except:
-        pass
-
-    # Find out if we're using composite.
-    #
-    try:
-        _fullScreenCapable = _magnifier.fullScreenCapable()
-    except:
-        debug.printException(debug.LEVEL_WARNING)
-
-    # If we are running in full screen mode, try to hide the original cursor
-    # (assuming the user wants to). See bug #533095 for more details.
-    # Depends upon new functionality in gnome-mag, so just catch the 
-    # exception if this functionality isn't there.
-    #
-    hideCursor = restore.get('magHideCursor',
-                             _settingsManager.getSetting('magHideCursor'))
-    if hideCursor \
-       and _fullScreenCapable \
-       and _magnifier.SourceDisplay == _magnifier.TargetDisplay \
-       and position == settings.MAG_ZOOMER_TYPE_FULL_SCREEN:
-        hideSystemPointer(True)
-    else:
-        hideSystemPointer(False)
-
-    _magnifierPBag = _magnifier.getProperties()
-    sdb = _magnifierPBag.getValue("source-display-bounds").value()
-    if not _originalSourceDisplayBounds:
-        _originalSourceDisplayBounds = sdb
-    elif _liveUpdatingMagnifier:
-        sdb = _originalSourceDisplayBounds
-
-    # Find out where the user wants to place the target display.
-    #
-    if _fullScreenCapable and \
-       position == settings.MAG_ZOOMER_TYPE_FULL_SCREEN:
-        prefLeft = 0
-        prefTop = 0
-        prefRight = sdb.x2
-        prefBottom = sdb.y2
-    elif position == settings.MAG_ZOOMER_TYPE_TOP_HALF:
-        prefLeft = 0
-        prefTop = 0
-        prefRight = sdb.x2
-        prefBottom = sdb.y2 / 2
-    elif position == settings.MAG_ZOOMER_TYPE_BOTTOM_HALF:
-        prefLeft = 0
-        prefTop = sdb.y2 / 2
-        prefRight = sdb.x2
-        prefBottom = sdb.y2
-    elif position == settings.MAG_ZOOMER_TYPE_LEFT_HALF:
-        prefLeft = 0
-        prefTop = 0
-        prefRight = sdb.x2 / 2
-        prefBottom = sdb.y2
-    elif position == settings.MAG_ZOOMER_TYPE_RIGHT_HALF:
-        prefLeft = sdb.x2 / 2
-        prefTop = 0
-        prefRight = sdb.x2
-        prefBottom = sdb.y2
-    else:
-        prefLeft   = left or _settingsManager.getSetting('magZoomerLeft')
-        prefTop    = top or _settingsManager.getSetting('magZoomerTop')
-        prefRight  = right or _settingsManager.getSetting('magZoomerRight')
-        prefBottom = bottom or _settingsManager.getSetting('magZoomerBottom')
-    orca_state.zoomerType = position
-    updateTarget = True
-
-    # If we're not using composite, bad things will happen if we allow the
-    # target display to occupy more than 50% of the full screen.  Also, if
-    # it occupies the same space as something that should be magnified (e.g.
-    # the Applications menu), that item will not be magnified. Therefore,
-    # we're going to prefer the right half of the screen for the target
-    # display -- unless gnome-mag is already running and not in "full screen"
-    # mode.
-    #
-    if not _fullScreenCapable \
-       and _magnifier.SourceDisplay == _magnifier.TargetDisplay:
-        # At this point, the target display bounds have not been set. if they
-        # are all 0, then we know that gnome-mag isn't already running.
-        #
-        magAlreadyRunning = False
-        tdb = _magnifierPBag.getValue("target-display-bounds").value()
-        if tdb.x1 or tdb.x2 or tdb.y1 or tdb.y2:
-            magAlreadyRunning = True
-
-        # At this point, because we haven't set the target display bounds,
-        # gnome-mag has not modified the source display bounds. Therefore,
-        # we can use the current source display bounds to get the
-        # dimensions of the full screen -- assuming gnome-mag has not
-        # already been launched with a split screen. Comparing the values
-        # of the source and target display bounds lets us know if gnome-mag
-        # has been started in "full screen" mode.
-        #
-        magFullScreen = magAlreadyRunning \
-                        and (tdb.x1 == sdb.x1) and (tdb.x2 == sdb.x2) \
-                        and (tdb.y1 == sdb.y1) and (tdb.y2 == sdb.y2)
-
-        sourceArea = (sdb.x2 - sdb.x1) * (sdb.y2 - sdb.y1)
-        prefArea = (prefRight - prefLeft) * (prefBottom - prefTop)
-        if prefArea > sourceArea/2:
-            debug.println(
-                debug.LEVEL_WARNING,
-                "Composite is not being used. The preferred target area is\n"\
-                "greater than 50% of the source area.  These settings can\n"\
-                "render the contents of the screen inaccessible.")
-            if not magAlreadyRunning or magFullScreen:
-                debug.println(
-                    debug.LEVEL_WARNING,
-                    "Setting the target display to the screen's right half.")
-                prefRight  = sdb.x2
-                prefLeft   = sdb.x2/2
-                prefTop    = sdb.y1
-                prefBottom = sdb.y2
-            elif sdb.y2 > 0:
-                updateTarget = False
-                debug.println(
-                    debug.LEVEL_WARNING,
-                    "Gnome-mag is already running.  Using those settings.")
-
-    # Now, tell the magnifier where we want it to live on the target display.
-    # The coordinates are in screen coordinates of the target display.
-    # This will have the side effect of setting up other stuff for us, such
-    # as source-display-bouinds.
-    #
-    if updateTarget:
-        tdb = _magnifierPBag.getValue("target-display-bounds").value()
-        _magnifierPBag.setValue(
-            "target-display-bounds",
-            ORBit.CORBA.Any(
-                ORBit.CORBA.TypeCode(
-                    tdb.__typecode__.repo_id),
-                GNOME.Magnifier.RectBounds(prefLeft,
-                                           prefTop,
-                                           prefRight,
-                                           prefBottom)))
-
-    bonobo.pbclient_set_string(_magnifierPBag, "cursor-set", "default")
-
-    enableCursor = restore.get(
-        'enableMagCursor', _settingsManager.getSetting('enableMagCursor'))
-    explicitSize = restore.get(
-        'enableMagCursorExplicitSize',
-        _settingsManager.getSetting('enableMagCursorExplicitSize'))
-    size = restore.get(
-        'magCursorSize', _settingsManager.getSetting('magCursorSize'))
-    setMagnifierCursor(enableCursor, explicitSize, size, False)
-
-    value = restore.get(
-        'magCursorColor', _settingsManager.getSetting('magCursorColor'))
-    setMagnifierObjectColor("cursor-color", value, False)
-
-    value = restore.get(
-        'magCrossHairColor', _settingsManager.getSetting('magCrossHairColor'))
-    setMagnifierObjectColor("crosswire-color", value, False)
-
-    enableCrossHair = restore.get(
-        'enableMagCrossHair', _settingsManager.getSetting('enableMagCrossHair'))
-    setMagnifierCrossHair(enableCrossHair, False)
-
-    value = restore.get(
-        'enableMagCrossHairClip', 
-        _settingsManager.getSetting('enableMagCrossHairClip'))
-    setMagnifierCrossHairClip(value, False)
-
-    orca_state.mouseEnhancementsEnabled = enableCursor or enableCrossHair
-
-def __setupZoomer(restore=None):
-    """Creates a zoomer in the magnifier
-    Arguments:
-    - restore:  a dictionary of all of the settings which should be restored
-    """
-
-    global _sourceDisplayBounds
-    global _targetDisplayBounds
-    global _zoomer
-    global _roiWidth
-    global _roiHeight
-    global _pollMouseDisabled
-    global _zoomerPBag
-    global _fullScreenCapable
-
-    if not restore:
-        restore = {}
-
-    _targetDisplayBounds = _magnifierPBag.getValue(
-        "target-display-bounds").value()
-
-    debug.println(debug.LEVEL_ALL,
-                  "Magnifier target bounds preferences: (%d, %d), (%d, %d)" \
-                  % (_settingsManager.getSetting('magZoomerLeft'),
-                     _settingsManager.getSetting('magZoomerTop'),
-                     _settingsManager.getSetting('magZoomerRight'),
-                     _settingsManager.getSetting('magZoomerBottom')))
-
-    debug.println(debug.LEVEL_ALL,
-                  "Magnifier target bounds actual: (%d, %d), (%d, %d)" \
-                  % (_targetDisplayBounds.x1, _targetDisplayBounds.y1, \
-                     _targetDisplayBounds.x2, _targetDisplayBounds.y2))
-
-    # If the COMPOSITE support is not enabled in gnome-mag, then the
-    # source-display-bounds will be adjusted to accomodate portion of the
-    # display not being covered by the magnifier (assuming there is only
-    # one display).  Otherwise, the source-display-bounds will be the
-    # entire source screen.
-    #
-    _sourceDisplayBounds = _magnifierPBag.getValue(
-        "source-display-bounds").value()
-
-    debug.println(debug.LEVEL_ALL,
-                  "Magnifier source bounds actual: (%d, %d), (%d, %d)" \
-                  % (_sourceDisplayBounds.x1, _sourceDisplayBounds.y1, \
-                     _sourceDisplayBounds.x2, _sourceDisplayBounds.y2))
-
-    # If there is nothing we can possibly magnify, switch to the right half.
-    #
-    if ((_sourceDisplayBounds.x2 - _sourceDisplayBounds.x1) == 0) \
-        or ((_sourceDisplayBounds.y2 - _sourceDisplayBounds.y1) == 0):
-        debug.println(
-            debug.LEVEL_SEVERE,
-            "There is nothing to magnify.  This is usually caused\n" \
-            "by a preferences setting that tries to take up the\n" \
-            "full screen for magnification, but the underlying\n"
-            "system does not support full screen magnification.\n"
-            "The causes of that are generally that COMPOSITE\n" \
-            "support has not been enabled in gnome-mag or the\n" \
-            "X Window System Server.  As a result of this issue,\n" \
-            "defaulting to the right half of the screen.\n")
-        _fullScreenCapable = False
-        __setupMagnifier(settings.MAG_ZOOMER_TYPE_CUSTOM,
-                         _targetDisplayBounds.x1/2,
-                         _targetDisplayBounds.y1,
-                         _targetDisplayBounds.x2,
-                         _targetDisplayBounds.y2)
-        _sourceDisplayBounds = _magnifierPBag.getValue(
-            "source-display-bounds").value()
-        _targetDisplayBounds = _magnifierPBag.getValue(
-            "target-display-bounds").value()
-
-    # Now, we create a zoom region to occupy the whole magnifier (i.e.,
-    # the viewport is in target region coordinates and we make the
-    # viewport be the whole target region).  Note, since we're starting
-    # at (0, 0), the viewportWidth and viewportHeight are the same as
-    # the x2, y2 values for a rectangular region.
-    #
-    viewportWidth = _targetDisplayBounds.x2 - _targetDisplayBounds.x1
-    viewportHeight = _targetDisplayBounds.y2 - _targetDisplayBounds.y1
-
-    debug.println(debug.LEVEL_ALL,
-                  "Magnifier zoomer viewport desired: (0, 0), (%d, %d)" \
-                  % (viewportWidth, viewportHeight))
-
-    # Now, let's see what the ROI looks like.
-    #
-    zoomFactor = _settingsManager.getSetting('magZoomFactor')
-    debug.println(debug.LEVEL_ALL,
-                 "Magnifier source width: %d (viewport can show %d)" \
-                  % (_sourceDisplayBounds.x2 - _sourceDisplayBounds.x1,
-                  viewportWidth / zoomFactor))
-    debug.println(debug.LEVEL_ALL,
-                  "Magnifier source height: %d (viewport can show %d)" \
-                  % (_sourceDisplayBounds.y2 - _sourceDisplayBounds.y1,
-                   viewportHeight / zoomFactor))
-
-    # Adjust the ROI in the event the source window is too small for the
-    # target window.  This usually happens when someone expects COMPOSITE
-    # to be enabled, but it isn't.  As a result, they usually have a very
-    # big grey magnifier on their screen.
-    #
-    _roiWidth  = min(_sourceDisplayBounds.x2 - _sourceDisplayBounds.x1,
-                     viewportWidth / zoomFactor)
-    _roiHeight = min(_sourceDisplayBounds.y2 - _sourceDisplayBounds.y1,
-                     viewportHeight / zoomFactor)
-
-    debug.println(debug.LEVEL_ALL,
-                  "Magnifier zoomer ROI size desired: width=%d, height=%d)" \
-                  % (_roiWidth, _roiHeight))
-
-    # Create the zoomer with a magnification factor, an initial ROI, and
-    # where in magnifier we want it to be (we want it to be in the whole
-    # magnifier). Initially set the viewport so that it does not appear.
-    # After we set all of the color properties, reset the viewport to
-    # the correct position.  This will prevent the user from seeing the
-    # individual property changes (e.g. brightness, contrast) upon load.
-    #
-    _zoomer = _magnifier.createZoomRegion(
-        zoomFactor, zoomFactor,
-        GNOME.Magnifier.RectBounds(0, 0, _roiWidth, _roiHeight),
-        GNOME.Magnifier.RectBounds(0, 0, 1, 1))
-
-    _zoomerPBag = _zoomer.getProperties()
-    bonobo.pbclient_set_boolean(_zoomerPBag, "is-managed", True)
-
-    value = restore.get('magZoomFactor', zoomFactor)
-    setZoomerMagFactor(value, value, False)
-
-    value = restore.get(
-        'enableMagZoomerColorInversion',
-        _settingsManager.getSetting('enableMagZoomerColorInversion'))
-    setZoomerColorInversion(value, False)
-
-    brightness = restore.get(
-        'magBrightnessLevel', _settingsManager.getSetting('magBrightnessLevel'))
-    r = brightness + \
-        restore.get('magBrightnessLevelRed',
-                    _settingsManager.getSetting('magBrightnessLevelRed'))
-    g = brightness + \
-        restore.get('magBrightnessLevelGreen',
-                    _settingsManager.getSetting('magBrightnessLevelGreen'))
-    b = brightness + \
-        restore.get('magBrightnessLevelBlue',
-                    _settingsManager.getSetting('magBrightnessLevelBlue'))
-    setZoomerBrightness(r, g, b, False)
-
-    contrast = restore.get(
-        'magContrastLevel', _settingsManager.getSetting('magContrastLevel'))
-    r = contrast + \
-        restore.get('magContrastLevelRed',
-                    _settingsManager.getSetting('magContrastLevelRed'))
-    g = contrast + \
-        restore.get('magContrastLevelGreen',
-                    _settingsManager.getSetting('magContrastLevelGreen'))
-    b = contrast + \
-        restore.get('magContrastLevelBlue',
-                    _settingsManager.getSetting('magContrastLevelBlue'))
-    setZoomerContrast(r, g, b, False)
-
-    value = restore.get('magColorFilteringMode',
-                        _settingsManager.getSetting('magColorFilteringMode'))
-    setZoomerColorFilter(value, False)
-
-    value = restore.get(
-        'magZoomerType', _settingsManager.getSetting('magZoomerType'))
-    if value == settings.MAG_ZOOMER_TYPE_FULL_SCREEN:
-        size = 0
-    else:
-        size = restore.get('magZoomerBorderSize',
-                           _settingsManager.getSetting('magZoomerBorderSize'))
-    color = restore.get('magZoomerBorderColor',
-                        _settingsManager.getSetting('magZoomerBorderColor'))
-    setZoomerObjectSize("border-size", size, False)
-    setZoomerObjectColor("border-color", color, False)
-
-    value = restore.get('magSmoothingMode',
-                        _settingsManager.getSetting('magSmoothingMode'))
-    setZoomerSmoothingType(value, False)
-
-    # Now it's safe to display the viewport.
-    #
-    bounds = GNOME.Magnifier.RectBounds(0, 0, viewportWidth, viewportHeight)
-    _zoomer.moveResize(bounds)
-
-    # Try to use gnome-mag >= 0.13.1 to allow us to control where to
-    # draw the cursor and crosswires.
-    #
-    try:
-        bonobo.pbclient_set_boolean(_zoomerPBag, "poll-mouse", False)
-        _pollMouseDisabled = True
-    except:
-        _pollMouseDisabled = False
-
-    __updateROIDimensions()
-    _magnifier.addZoomRegion(_zoomer)
-
-def __updateROIDimensions():
-    """Updates the ROI width, height, and maximum and minimum values.
-    """
-
-    global _roiWidth
-    global _roiHeight
-    global _minROIX
-    global _minROIY
-    global _maxROIX
-    global _maxROIY
-
-    viewport = _zoomerPBag.getValue("viewport").value()
-
-    debug.println(debug.LEVEL_ALL,
-                  "Magnifier viewport actual: (%d, %d), (%d, %d)" \
-                  % (viewport.x1, viewport.y1, viewport.x2, viewport.y2))
-
-    magx = _zoomerPBag.getValue("mag-factor-x").value()
-    magy = _zoomerPBag.getValue("mag-factor-y").value()
-
-    _roiWidth  = min(_sourceDisplayBounds.x2 - _sourceDisplayBounds.x1,
-                     (viewport.x2 - viewport.x1) / magx)
-    _roiHeight = min(_sourceDisplayBounds.y2 - _sourceDisplayBounds.y1,
-                     (viewport.y2 - viewport.y1) / magy)
-
-    debug.println(debug.LEVEL_ALL,
-                  "Magnifier zoomer ROI size actual: width=%d, height=%d)" \
-                  % (_roiWidth, _roiHeight))
-
-    _minROIX = _sourceDisplayBounds.x1 + (_roiWidth / 2)
-    _minROIY = _sourceDisplayBounds.y1 + (_roiHeight / 2)
-
-    _maxROIX = _sourceDisplayBounds.x2 - (_roiWidth / 2)
-    _maxROIY = _sourceDisplayBounds.y2 - (_roiHeight / 2)
-
-    debug.println(debug.LEVEL_ALL,
-                  "Magnifier ROI min/max center: (%d, %d), (%d, %d)" \
-                  % (_minROIX, _minROIY, _maxROIX, _maxROIY))
+# NOTE: This is an interim step in the plan for Orca to co-exist
+# with various magnification solutions rather than to drive them.
+# Orca should only fall back on this module if gnome-shell mag is
+# unavailable. And in a GNOME 3 environment, there are no other
+# magnification solutions. Hence the lack of functionality. ;-)
 
 def applySettings():
-    """Looks at the user settings and applies them to the magnifier."""
-
-    global _mouseTracking
-    global _controlTracking
-    global _textTracking
-    global _edgeMargin
-    global _pointerFollowsZoomer
-    global _pointerFollowsFocus
-
-    __setupMagnifier(_settingsManager.getSetting('magZoomerType'))
-    __setupZoomer()
-  
-    _mouseTracking = _settingsManager.getSetting('magMouseTrackingMode')
-    _controlTracking = _settingsManager.getSetting('magControlTrackingMode')
-    _textTracking = _settingsManager.getSetting('magTextTrackingMode')
-    _edgeMargin = _settingsManager.getSetting('magEdgeMargin')
-    _pointerFollowsZoomer = \
-        _settingsManager.getSetting('magPointerFollowsZoomer')
-    _pointerFollowsFocus = \
-        _settingsManager.getSetting('magPointerFollowsFocus')
-
-    #print "MAGNIFIER PROPERTIES:", _magnifier
-    #__dumpPropertyBag(_magnifier)
-    #print "ZOOMER PROPERTIES:", _zoomer
-    #__dumpPropertyBag(_zoomer)
+    pass
 
 def magnifyAccessible(event, obj, extents=None):
-    """Sets the region of interest to the upper left of the given
-    accessible, if it implements the Component interface.  Otherwise,
-    does nothing.
-
-    Arguments:
-    - event: the Event that caused this to be called
-    - obj: the accessible
-    """
-
-    global _lastMouseEventWasRoute
-
-    if not _initialized:
-        return
-
-    # Avoid jerking the display around if the mouse is what ended up causing
-    # this event.  We guess this by seeing if this request has come in within
-    # a close period of time.  [[[TODO: WDW - this is a hack and really
-    # doesn't belong here.  Plus, the delta probably should be adjustable.]]]
-    #
-    currentTime = time.time()
-    if (currentTime - _lastMouseEventTime) < 0.2: # 200 milliseconds
-        return
-
-    haveSomethingToMagnify = False
-
-    if extents:
-        [x, y, width, height] = extents
-        haveSomethingToMagnify = True
-    elif event and event.type.startswith("object:text-caret-moved"):
-        try:
-            text = obj.queryText()
-            if text and (text.caretOffset >= 0):
-                offset = text.caretOffset
-                if offset == text.characterCount:
-                    offset -= 1
-                [x, y, width, height] = \
-                    text.getCharacterExtents(offset, 0)
-                haveSomethingToMagnify = (width + height > 0)
-                    
-        except:
-            haveSomethingToMagnify = False
-
-        if haveSomethingToMagnify:
-            if _textTracking == settings.MAG_TRACKING_MODE_CENTERED:
-                __setROICenter(x, y)
-            elif _textTracking == settings.MAG_TRACKING_MODE_PUSH:
-                __setROICursorPush(x, y, width, height, _edgeMargin)
-            return
-
-    if not haveSomethingToMagnify:
-        try:
-            extents = obj.queryComponent().getExtents(0)
-            [x, y, width, height] = \
-                [extents.x, extents.y, extents.width, extents.height]
-            haveSomethingToMagnify = True
-        except:
-            haveSomethingToMagnify = False
-
-    if haveSomethingToMagnify:
-        if _pointerFollowsFocus:
-            _lastMouseEventWasRoute = True
-            eventsynthesizer.generateMouseEvent(x, y + height - 1, "abs")
-
-        if _controlTracking == settings.MAG_TRACKING_MODE_CENTERED:
-            centerX = x + width/2
-            centerY = y + height/2
-
-            # Be sure that the upper-left corner of the object will still
-            # be visible on the screen.
-            #
-            if width > _roiWidth:
-                centerX = x
-            if height > _roiHeight:
-                centerY = y
-
-            __setROICenter(centerX, centerY)
-        elif _controlTracking == settings.MAG_TRACKING_MODE_PUSH:
-            __setROICursorPush(x, y, width, height)
+    pass
 
 def init():
-    """Initializes the magnifier, bringing the magnifier up on the
-    display.
-
-    Returns True if the initialization procedure was run or False if this
-    module has already been initialized.
-    """
-
-    global _initialized
-    global _magnifier
-
-    if not _magnifierAvailable:
-        return False
-
-    if _initialized:
-        return False
-
-    _magnifier = bonobo.get_object("OAFIID:GNOME_Magnifier_Magnifier:0.9",
-                                   "GNOME/Magnifier/Magnifier")
-
-    try:
-        _initialized = True
-        applySettings()
-        pyatspi.Registry.registerEventListener(__onMouseEvent, "mouse:abs")
-
-        # Zoom to the upper left corner of the display for now.
-        #
-        __setROICenter(0, 0)
-
-        return True
-    except:
-        _initialized = False
-        _magnifier.dispose()
-        raise
+    return False
 
 def shutdown():
-    """Shuts down the magnifier module.
-    Returns True if the shutdown procedure was run or False if this
-    module has not been initialized.
-    """
-
-    global _initialized
-    global _magnifier
-
-    if not _magnifierAvailable:
-        return False
-
-    if not _initialized:
-        return False
-
-    pyatspi.Registry.deregisterEventListener(__onMouseEvent,"mouse:abs")
-
-    # Someone might have killed the magnifier on us.  They shouldn't
-    # have done so, but we need to be able to recover if they did.
-    # See http://bugzilla.gnome.org/show_bug.cgi?id=375396.
-    #
-    try:
-        hideSystemPointer(False)
-        _magnifier.clearAllZoomRegions()
-        _magnifier.dispose()
-    except:
-        debug.printException(debug.LEVEL_WARNING)
-
-    _magnifier = None
-
-    _initialized = False
-
-    return True
-
-######################################################################
-#                                                                    #
-#              Convenience functions for "live" changes              #
-#                                                                    #
-######################################################################
+    return False
 
 def setupMagnifier(position, left=None, top=None, right=None, bottom=None,
                    restore=None):
-    """Creates the magnifier in the position specified.
-
-    Arguments:
-    - position: the position/type of zoomer (full, left half, etc.)
-    - left:     the left edge of the zoomer (only applicable for custom)
-    - top:      the top edge of the zoomer (only applicable for custom)
-    - right:    the right edge of the zoomer (only applicable for custom)
-    - bottom:   the top edge of the zoomer (only applicable for custom)
-    - restore:  a dictionary of all of the settings that should be restored
-    """
-
-    if not _initialized:
-        return
-
-    global _liveUpdatingMagnifier
-
-    _liveUpdatingMagnifier = True
-    __setupMagnifier(position, left, top, right, bottom, restore)
-    __setupZoomer(restore)
+    pass
 
 def setMagnifierCursor(enabled, customEnabled, size, updateScreen=True):
-    """Sets the cursor.
-
-    Arguments:
-    - enabled:        Whether or not the cursor should be enabled
-    - customEnabled:  Whether or not a custom size has been enabled
-    - size:           The size it should be set to
-    - updateScreen:   Whether or not to update the screen
-    """
-
-    if not _initialized:
-        return
-    try:
-        mag = _zoomerPBag.getValue("mag-factor-x").value()
-    except:
-        mag = _settingsManager.getSetting('magZoomFactor')
-
-    if enabled:
-        scale = 1.0 * mag
-    else:
-        scale = 0.0
-
-    if not (enabled and customEnabled):
-        size = 0
-
-    bonobo.pbclient_set_float(_magnifierPBag, "cursor-scale-factor", scale)
-    bonobo.pbclient_set_long(_magnifierPBag, "cursor-size", size)
-
-    if updateScreen:
-        _zoomer.markDirty(_roi)
+    pass
 
 def setMagnifierCrossHair(enabled, updateScreen=True):
-    """Sets the cross-hair.
-
-    Arguments:
-    - enabled: Whether or not the cross-hair should be enabled
-    - updateScreen:  Whether or not to update the screen
-    """
-
-    if not _initialized:
-        return
-
-    size = 0
-    if enabled:
-        size = _settingsManager.getSetting('magCrossHairSize')
-
-    bonobo.pbclient_set_long(_magnifierPBag, "crosswire-size", size)
-
-    if updateScreen:
-        _zoomer.markDirty(_roi)
+    pass
 
 def setMagnifierCrossHairClip(enabled, updateScreen=True):
-    """Sets the cross-hair clip.
-
-    Arguments:
-    - enabled: Whether or not the cross-hair clip should be enabled
-    - updateScreen:   Whether or not to update the screen
-    """
-
-    if not _initialized:
-        return
-
-    bonobo.pbclient_set_boolean(_magnifierPBag, "crosswire-clip", enabled)
-
-    if updateScreen:
-        _zoomer.markDirty(_roi)
+    pass
 
 def setZoomerColorInversion(enabled, updateScreen=True):
-    """Sets the color inversion.
-
-    Arguments:
-    - enabled: Whether or not color inversion should be enabled
-    - updateScreen:   Whether or not to update the screen
-    """
-
-    if not _initialized:
-        return
-
-    bonobo.pbclient_set_boolean(_zoomerPBag, "inverse-video", enabled)
-
-    if updateScreen:
-        _zoomer.markDirty(_roi)
+    pass
 
 def setZoomerBrightness(red=0, green=0, blue=0, updateScreen=True):
-    """Increases/Decreases the brightness level by the specified
-    increments.  Increments are floats ranging from -1 (black/no
-    brightenss) to 1 (white/100% brightness).  0 means no change.
-
-    Arguments:
-    - red:    The amount to alter the red brightness level
-    - green:  The amount to alter the green brightness level
-    - blue:   The amount to alter the blue brightness level
-    - updateScreen:   Whether or not to update the screen
-    """
-
-    if not _initialized:
-        return
-
-    _zoomer.setBrightness(red, green, blue)
-
-    if updateScreen:
-        _zoomer.markDirty(_roi)
+    pass
 
 def setZoomerContrast(red=0, green=0, blue=0, updateScreen=True):
-    """Increases/Decreases the contrast level by the specified
-    increments.  Increments are floats ranging from -1 (grey/no
-    contrast) to 1 (white/back/100% contrast).  0 means no change.
-
-    Arguments:
-    - red:    The amount to alter the red contrast level
-    - green:  The amount to alter the green contrast level
-    - blue:   The amount to alter the blue contrast level
-    - updateScreen:  Whether or not to update the screen
-    """
-
-    if not _initialized:
-        return
-
-    _zoomer.setContrast(red, green, blue)
-
-    if updateScreen:
-        _zoomer.markDirty(_roi)
+    pass
 
 def setMagnifierObjectSize(magProperty, size, updateScreen=True):
-    """Sets the specified magnifier property to the specified size.
-
-    Arguments:
-    - magProperty:   The property to set (as a string)
-    - size:          The size to apply
-    - updateScreen:  Whether or not to update the screen
-    """
-
-    if not _initialized:
-        return
-
-    bonobo.pbclient_set_long(_magnifierPBag, magProperty, size)
-
-    if updateScreen:
-        _zoomer.markDirty(_roi)
+    pass
 
 def setZoomerObjectSize(magProperty, size, updateScreen=True):
-    """Sets the specified zoomer property to the specified size.
-
-    Arguments:
-    - magProperty:   The property to set (as a string)
-    - size:          The size to apply
-    - updateScreen:  Whether or not to update the screen
-    """
-
-    if not _initialized:
-        return
-
-    if magProperty == "border-size":
-        try:
-            left = right = top = bottom = 0
-            if orca_state.zoomerType == settings.MAG_ZOOMER_TYPE_RIGHT_HALF:
-                left = size
-            elif orca_state.zoomerType == settings.MAG_ZOOMER_TYPE_LEFT_HALF:
-                right = size
-            elif orca_state.zoomerType == settings.MAG_ZOOMER_TYPE_TOP_HALF:
-                bottom = size
-            elif orca_state.zoomerType == settings.MAG_ZOOMER_TYPE_BOTTOM_HALF:
-                top = size
-            elif orca_state.zoomerType == settings.MAG_ZOOMER_TYPE_CUSTOM:
-                if _targetDisplayBounds.x1 > _sourceDisplayBounds.x1:
-                    left = size
-                if _targetDisplayBounds.x2 < _sourceDisplayBounds.x2:
-                    right = size
-                if _targetDisplayBounds.y1 > _sourceDisplayBounds.y1:
-                    top = size
-                if _targetDisplayBounds.y2 < _sourceDisplayBounds.y2:
-                    bottom = size
-                
-            bonobo.pbclient_set_long(_zoomerPBag, "border-size-left", left)
-            bonobo.pbclient_set_long(_zoomerPBag, "border-size-top", top)
-            bonobo.pbclient_set_long(_zoomerPBag, "border-size-right", right)
-            bonobo.pbclient_set_long(_zoomerPBag, "border-size-bottom", bottom)
-        except:
-            bonobo.pbclient_set_long(_zoomerPBag, "border-size", size)
-    else:
-        bonobo.pbclient_set_long(_zoomerPBag, magProperty, size)
-
-    if updateScreen:
-        _zoomer.markDirty(_roi)
+    pass
 
 def setZoomerObjectColor(magProperty, colorSetting, updateScreen=True):
-    """Sets the specified zoomer property to the specified color.
-
-    Arguments:
-    - magProperty:  The property to set (as a string)
-    - colorSetting: The Orca color setting to apply
-    - updateScreen:  Whether or not to update the screen
-    """
-
-    if not _initialized:
-        return
-
-    colorPreference = gtk.gdk.color_parse(colorSetting)
-
-    # Convert the colorPreference string to something we can use.
-    # The main issue here is that the color preferences are saved
-    # as 4 byte values per color.  We only need 2 bytes, so we
-    # get rid of the bottom 8 bits.
-    #
-    colorPreference.red   = colorPreference.red   >> 8
-    colorPreference.blue  = colorPreference.blue  >> 8
-    colorPreference.green = colorPreference.green >> 8
-    colorString = "0x%02X%02X%02X" \
-                  % (colorPreference.red,
-                     colorPreference.green,
-                     colorPreference.blue)
-
-    toChange = _zoomerPBag.getValue(magProperty)
-    _zoomerPBag.setValue(magProperty,
-                         ORBit.CORBA.Any(toChange.typecode(),
-                                         long(colorString, 0)))
-    if updateScreen:
-        _zoomer.markDirty(_roi)
+    pass
 
 def setMagnifierObjectColor(magProperty, colorSetting, updateScreen=True):
-    """Sets the specified magnifier property to the specified color.
-
-    Arguments:
-    - magProperty:  The property to set (as a string)
-    - colorSetting: The Orca color setting to apply
-    - updateScreen:  Whether or not to update the screen
-    """
-
-    if not _initialized:
-        return
-
-    colorPreference = gtk.gdk.color_parse(colorSetting)
-
-    # Convert the colorPreference string to something we can use.
-    # The main issue here is that the color preferences are saved
-    # as 4 byte values per color.  We only need 2 bytes, so we
-    # get rid of the bottom 8 bits.
-    #
-    colorPreference.red   = colorPreference.red   >> 8
-    colorPreference.blue  = colorPreference.blue  >> 8
-    colorPreference.green = colorPreference.green >> 8
-    colorString = "0x%02X%02X%02X" \
-                  % (colorPreference.red,
-                     colorPreference.green,
-                     colorPreference.blue)
-
-    toChange = _magnifierPBag.getValue(magProperty)
-    _magnifierPBag.setValue(magProperty,
-                            ORBit.CORBA.Any(toChange.typecode(),
-                                            long(colorString, 0)))
-    if updateScreen:
-        _zoomer.markDirty(_roi)
+    pass
 
 def setZoomerMagFactor(x, y, updateScreen=True):
-    """Sets the magnification level.
-
-    Arguments:
-    - x: The horizontal magnification level
-    - y: The vertical magnification level
-    - updateScreen:  Whether or not to update the screen
-    """
-
-    global _minROIX
-    global _minROIY
-
-    if not _initialized:
-        return
-
-    [oldX, oldY] = _zoomer.getMagFactor()
-
-    _zoomer.setMagFactor(x, y)
-
-    if updateScreen:
-        __updateROIDimensions()
-        if (oldX > x) and (x < 1.5):
-            _minROIX = _sourceDisplayBounds.x1
-            _minROIY = _sourceDisplayBounds.y1
-            __setROI(GNOME.Magnifier.RectBounds(_minROIX,
-                                                _minROIY,
-                                                _minROIX + _roiWidth,
-                                                _minROIY + _roiHeight))
-        else:
-            extents = orca_state.locusOfFocus.queryComponent().getExtents(0)
-            __setROICenter(extents.x, extents.y)
+    pass
 
 def setZoomerSmoothingType(smoothingType, updateScreen=True):
-    """Sets the zoomer's smoothing type.
-
-    Arguments:
-    - smoothingType: The type of smoothing to use
-    - updateScreen:  Whether or not to update the screen
-    """
-
-    if not _initialized:
-        return
-
-    if smoothingType == settings.MAG_SMOOTHING_MODE_BILINEAR:
-        string = "bilinear"
-    else:
-        string = "None"
-
-    try:
-        bonobo.pbclient_set_string(_zoomerPBag, "smoothing-type", string)
-    except:
-        pass
-
-    if updateScreen:
-        _zoomer.markDirty(_roi)
+    pass
 
 def setZoomerColorFilter(colorFilter, updateScreen=True):
-    """Sets the zoomer's color filter.
-
-    Arguments:
-    - colorFilter: The color filter to apply
-    - updateScreen:  Whether or not to update the screen
-    """
-
-    if not _initialized or not isFilteringCapable():
-        return
-
-    if colorFilter == settings.MAG_COLOR_FILTERING_MODE_SATURATE_RED:
-        toApply = _zoomer.COLORBLIND_FILTER_T_SELECTIVE_SATURATE_RED
-    elif colorFilter == settings.MAG_COLOR_FILTERING_MODE_SATURATE_GREEN:
-        toApply = _zoomer.COLORBLIND_FILTER_T_SELECTIVE_SATURATE_GREEN
-    elif colorFilter == settings.MAG_COLOR_FILTERING_MODE_SATURATE_BLUE:
-        toApply = _zoomer.COLORBLIND_FILTER_T_SELECTIVE_SATURATE_BLUE
-    elif colorFilter == settings.MAG_COLOR_FILTERING_MODE_DESATURATE_RED:
-        toApply = _zoomer.COLORBLIND_FILTER_T_SELECTIVE_DESSATURATE_RED
-    elif colorFilter == settings.MAG_COLOR_FILTERING_MODE_DESATURATE_GREEN:
-        toApply = _zoomer.COLORBLIND_FILTER_T_SELECTIVE_DESSATURATE_GREEN
-    elif colorFilter == settings.MAG_COLOR_FILTERING_MODE_DESATURATE_BLUE:
-        toApply = _zoomer.COLORBLIND_FILTER_T_SELECTIVE_DESSATURATE_BLUE
-    elif colorFilter == settings.MAG_COLOR_FILTERING_MODE_NEGATIVE_HUE_SHIFT:
-        toApply = _zoomer.COLORBLIND_FILTER_T_HUE_SHIFT_NEGATIVE
-    elif colorFilter == settings.MAG_COLOR_FILTERING_MODE_POSITIVE_HUE_SHIFT:
-        toApply = _zoomer.COLORBLIND_FILTER_T_HUE_SHIFT_POSITIVE
-    else:
-        toApply = _zoomer.COLORBLIND_FILTER_T_NO_FILTER
-
-    colorFilter = _zoomerPBag.getValue("color-blind-filter")
-    _zoomerPBag.setValue(
-         "color-blind-filter",
-         ORBit.CORBA.Any(
-             colorFilter.typecode(),
-             toApply))
-
-    if updateScreen:
-        _zoomer.markDirty(_roi)
+    pass
 
 def hideSystemPointer(hidePointer):
-    """Hide or show the system pointer.
-
-    Arguments:
-    -hidePointer: If True, hide the system pointer, otherwise show it.
-    """
-
-    # Depends upon new functionality in gnome-mag, so just catch the
-    # exception if this functionality isn't there.
-    #
-    try:
-        if hidePointer:
-            _magnifier.hideCursor()
-        else:
-            _magnifier.showCursor()
-    except:
-        debug.printException(debug.LEVEL_FINEST)
+    pass
 
 def isFullScreenCapable():
-    """Returns True if we are capable of doing full screen (i.e. whether
-    composite is being used.
-    """
-
-    try:
-        capable = _magnifier.fullScreenCapable()
-    except:
-        capable = False
-
-    return capable
+    return False
 
 def isFilteringCapable():
-    """Returns True if we're able to take advantage of libcolorblind's color
-    filtering.
-    """
-
-    try:
-        capable = _magnifier.supportColorblindFilters()
-    except:
-        capable = False
-
-    return capable
+    return False
 
 def updateMouseTracking(newMode):
-    """Updates the mouse tracking mode.
-
-    Arguments:
-    -newMode: The new mode to use.
-    """
-
-    global _mouseTracking
-    _mouseTracking = newMode
+    pass
 
 def updateControlTracking(newMode):
-    """Updates the control tracking mode.
-
-    Arguments:
-    -newMode: The new mode to use.
-    """
-
-    global _controlTracking
-    _controlTracking = newMode
+    pass
 
 def updateTextTracking(newMode):
-    """Updates the text tracking mode.
-
-    Arguments:
-    -newMode: The new mode to use.
-    """
-
-    global _textTracking
-    _textTracking = newMode
+    pass
 
 def updateEdgeMargin(amount):
-    """Updates the edge margin
-
-    Arguments:
-    -amount: The new margin to use, in pixels.
-    """
-
-    global _edgeMargin
-    _edgeMargin = amount
+    pass
 
 def updatePointerFollowsFocus(enabled):
-    """Updates the pointer follows focus setting.
-
-    Arguments:
-    -enabled: whether or not pointer follows focus should be enabled.
-    """
-
-    global _pointerFollowsFocus
-    _pointerFollowsFocus = enabled
+    pass
 
 def updatePointerFollowsZoomer(enabled):
-    """Updates the pointer follows zoomer setting.
-
-    Arguments:
-    -enabled: whether or not pointer follows zoomer should be enabled.
-    """
-
-    global _pointerFollowsZoomer
-    _pointerFollowsZoomer = enabled
+    pass
 
 def finishLiveUpdating():
-    """Restores things that were altered via a live update."""
-
-    global _liveUpdatingMagnifier
-    global _mouseTracking
-    global _controlTracking
-    global _textTracking
-    global _edgeMargin
-    global _pointerFollowsFocus
-    global _pointerFollowsZoomer
-
-    _liveUpdatingMagnifier = False
-    _mouseTracking = _settingsManager.getSetting('magMouseTrackingMode')
-    _controlTracking = _settingsManager.getSetting('magControlTrackingMode')
-    _textTracking = _settingsManager.getSetting('magTextTrackingMode')
-    _edgeMargin = _settingsManager.getSetting('magEdgeMargin')
-    _pointerFollowsFocus = _settingsManager.getSetting('magPointerFollowsFocus')
-    _pointerFollowsZoomer = \
-        _settingsManager.getSetting('magPointerFollowsZoomer')
-
-    if _settingsManager.getSetting('enableMagnifier'):
-        setupMagnifier(_settingsManager.getSetting('magZoomerType'))
-        init()
-    else:
-        shutdown()
-
-######################################################################
-#                                                                    #
-#                        Input Event Handlers                        #
-#                                                                    #
-######################################################################
+    pass
 
 def toggleColorEnhancements(script=None, inputEvent=None):
-    """Toggles the color enhancements on/off."""
-
-    if not _initialized:
-        return
-
-    # We don't want to stomp on a command-altered magnification level.
-    #
-    [levelX, levelY] = _zoomer.getMagFactor()
-    
-    normal = {'enableMagZoomerColorInversion': False,
-              'magBrightnessLevelRed': 0,
-              'magBrightnessLevelGreen': 0,
-              'magBrightnessLevelBlue': 0,
-              'magContrastLevelRed': 0,
-              'magContrastLevelGreen': 0,
-              'magContrastLevelBlue': 0,
-              'magColorFilteringMode': settings.MAG_COLOR_FILTERING_MODE_NONE,
-              'magSmoothingMode': settings.MAG_SMOOTHING_MODE_BILINEAR,
-              'magZoomerBorderColor': '#000000',
-              'magZoomFactor': levelX}
-
-    if orca_state.colorEnhancementsEnabled:
-        __setupZoomer(restore = normal)
-        # Translators: "color enhancements" are changes users can
-        # make to the appearance of the screen to make things easier
-        # to see, such as inverting the colors or applying a tint.
-        #
-        orca_state.activeScript.presentMessage(
-            _("Color enhancements disabled."))
-    else:
-        toRestore = {'magZoomFactor': levelX}
-        __setupZoomer(restore = toRestore)
-        # Translators: "color enhancements" are changes users can
-        # make to the appearance of the screen to make things easier
-        # to see, such as inverting the colors or applying a tint.
-        #
-        orca_state.activeScript.presentMessage(_("Color enhancements enabled."))
-
-    orca_state.colorEnhancementsEnabled = \
-                                    not orca_state.colorEnhancementsEnabled
-
-    return True
+    pass
 
 def toggleMouseEnhancements(script=None, inputEvent=None):
-    """Toggles the mouse enhancements on/off."""
-
-    if not _initialized:
-        return
-
-    if orca_state.mouseEnhancementsEnabled:
-        setMagnifierCrossHair(False, False)
-        setMagnifierObjectColor("cursor-color", "#000000", False)
-        setMagnifierCursor(True, False, 0)
-        # Translators: "mouse enhancements" are changes users can
-        # make to the appearance of the mouse pointer to make it
-        # easier to see, such as increasing its size, changing its
-        # color, and surrounding it with crosshairs.
-        #
-        orca_state.activeScript.presentMessage(
-            _("Mouse enhancements disabled."))
-    else:
-        # We normally toggle "on" what the user has enabled by default.
-        # However, if the user's default settings are to disable all mouse
-        # enhancements "on" and "off" are the same thing.  If that is the
-        # case and this command is being used, the user probably expects
-        # to see *something* change. We don't know what, so enable both
-        # the cursor and the cross-hairs.
-        #
-        cursorEnable = _settingsManager.getSetting('enableMagCursor')
-        crossHairEnable = _settingsManager.getSetting('enableMagCrossHair')
-        if not (cursorEnable or crossHairEnable):
-            cursorEnable = True
-            crossHairEnable = True
-
-        setMagnifierCursor(
-            cursorEnable,
-            _settingsManager.getSetting('enableMagCursorExplicitSize'),
-            _settingsManager.getSetting('magCursorSize'),
-            False)
-        setMagnifierObjectColor(
-            "cursor-color",
-            _settingsManager.getSetting('magCursorColor'),
-            False)
-        setMagnifierObjectColor(
-            "crosswire-color",
-            _settingsManager.getSetting('magCrossHairColor'),
-            False)
-        setMagnifierCrossHairClip(
-            _settingsManager.getSetting('enableMagCrossHairClip'),
-            False)
-        setMagnifierCrossHair(crossHairEnable)
-        # Translators: "mouse enhancements" are changes users can
-        # make to the appearance of the mouse pointer to make it
-        # easier to see, such as increasing its size, changing its
-        # color, and surrounding it with crosshairs.
-        #
-        orca_state.activeScript.presentMessage(_("Mouse enhancements enabled."))
-
-    orca_state.mouseEnhancementsEnabled = \
-                                    not orca_state.mouseEnhancementsEnabled
-    return True
+    pass
 
 def increaseMagnification(script=None, inputEvent=None):
-    """Increases the magnification level."""
-
-    if not _initialized:
-        return
-
-    [levelX, levelY] = _zoomer.getMagFactor()
-
-    # Move in increments that are sensible based on the current level of
-    # magnification.
-    #
-    if 1 <= levelX < 4:
-        increment = 0.25
-    elif 4 <= levelX < 7:
-        increment = 0.5
-    else:
-        increment = 1
-
-    newLevel = levelX + increment
-    if newLevel <= 16:
-        setZoomerMagFactor(newLevel, newLevel)
-        orca_state.activeScript.presentMessage(str(newLevel))
-
-    return True
+    pass
 
 def decreaseMagnification(script=None, inputEvent=None):
-    """Decreases the magnification level."""
-
-    if not _initialized:
-        return
-
-    [levelX, levelY] = _zoomer.getMagFactor()
-
-    # Move in increments that are sensible based on the current level of
-    # magnification.
-    #
-    if 1 <= levelX < 4:
-        increment = 0.25
-    elif 4 <= levelX < 7:
-        increment = 0.5
-    else:
-        increment = 1
-
-    newLevel = levelX - increment
-    if newLevel >= 1:
-        setZoomerMagFactor(newLevel, newLevel)
-        orca_state.activeScript.presentMessage(str(newLevel))
-
-    return True
+    pass
 
 def toggleMagnifier(script=None, inputEvent=None):
-    """Toggles the magnifier."""
-
-    if not _initialized:
-        init()
-        # Translators: this is the message spoken when a user enables the
-        # magnifier.  In addition to screen magnification, the user's
-        # preferred colors and mouse customizations are loaded.
-        #
-        orca_state.activeScript.presentMessage(_("Magnifier enabled."))
-    else:
-        shutdown()
-        # Translators: this is the message spoken when a user disables the
-        # magnifier, restoring the screen contents to their normal colors
-        # and sizes.
-        #
-        orca_state.activeScript.presentMessage(_("Magnifier disabled."))
-
-    return True
+    pass
 
 def cycleZoomerType(script=None, inputEvent=None):
-    """Allows the user to cycle through the available zoomer types."""
-
-    if not _initialized:
-        return
-
-    # There are 6 possible zoomer types
-    #
-    orca_state.zoomerType += 1
-
-    if orca_state.zoomerType >= 6:
-        orca_state.zoomerType = 0
-
-    if orca_state.zoomerType == settings.MAG_ZOOMER_TYPE_FULL_SCREEN \
-       and not _fullScreenCapable:
-        orca_state.zoomerType += 1
-
-    # We don't want to stomp on any command-altered settings
-    #
-    toRestore = {}
-
-    [levelX, levelY] = _zoomer.getMagFactor()
-    if levelX != _settingsManager.getSetting('magZoomFactor'):
-        toRestore['magZoomFactor'] = levelX
-
-    if not orca_state.colorEnhancementsEnabled:
-        toRestore.update(\
-            {'enableMagZoomerColorInversion': False,
-             'magBrightnessLevelRed': 0,
-             'magBrightnessLevelGreen': 0,
-             'magBrightnessLevelBlue': 0,
-             'magContrastLevelRed': 0,
-             'magContrastLevelGreen': 0,
-             'magContrastLevelBlue': 0,
-             'magColorFilteringMode': settings.MAG_COLOR_FILTERING_MODE_NONE,
-             'magSmoothingMode': settings.MAG_SMOOTHING_MODE_BILINEAR,
-             'magZoomerBorderColor': '#000000'})
-
-    setupMagnifier(orca_state.zoomerType, restore = toRestore)
-
-    if not orca_state.mouseEnhancementsEnabled:
-        setMagnifierCrossHair(False)
-        setMagnifierObjectColor("cursor-color",
-                                _settingsManager.getSetting('magCursorColor'),
-                                False)
-        setMagnifierCursor(False, False, 0)
-
-    if orca_state.zoomerType == settings.MAG_ZOOMER_TYPE_FULL_SCREEN:
-        if _fullScreenCapable:
-            # Translators: magnification will use the full screen.
-            #
-            zoomerType = _("Full Screen")
-        else:
-            # Translators: the user attempted to switch to full screen
-            # magnification, but his/her system doesn't support it.
-            #
-            zoomerType = _("Full Screen mode unavailable")
-    elif orca_state.zoomerType == settings.MAG_ZOOMER_TYPE_TOP_HALF:
-        # Translators: magnification will use the top half of the screen.
-        #
-        zoomerType = _("Top Half")
-    elif orca_state.zoomerType == settings.MAG_ZOOMER_TYPE_BOTTOM_HALF:
-        # Translators: magnification will use the bottom half of the screen.
-        #
-        zoomerType = _("Bottom Half")
-    elif orca_state.zoomerType == settings.MAG_ZOOMER_TYPE_LEFT_HALF:
-        # Translators: magnification will use the left half of the screen.
-        #
-        zoomerType = _("Left Half")
-    elif orca_state.zoomerType == settings.MAG_ZOOMER_TYPE_RIGHT_HALF:
-        # Translators: magnification will use the right half of the screen.
-        #
-        zoomerType = _("Right Half")
-    elif orca_state.zoomerType == settings.MAG_ZOOMER_TYPE_CUSTOM:
-        # Translators: the user has selected a custom area of the screen
-        # to use for magnification.
-        #
-        zoomerType = _("Custom")
-    else:
-        # This shouldn't happen, but just in case....
-        zoomerType = ""
-
-    orca_state.activeScript.presentMessage(zoomerType)
-
-    return True
+    pass



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