summaryrefslogtreecommitdiff
path: root/svx/source/accessibility
diff options
context:
space:
mode:
Diffstat (limited to 'svx/source/accessibility')
-rw-r--r--svx/source/accessibility/AccessibleComponentBase.cxx243
-rw-r--r--svx/source/accessibility/AccessibleContextBase.cxx719
-rw-r--r--svx/source/accessibility/AccessibleControlShape.cxx5
-rw-r--r--svx/source/accessibility/AccessibleEditableTextPara.cxx2204
-rw-r--r--svx/source/accessibility/AccessibleEditableTextPara.hxx414
-rw-r--r--svx/source/accessibility/AccessibleEmptyEditSource.cxx9
-rw-r--r--svx/source/accessibility/AccessibleEmptyEditSource.hxx7
-rw-r--r--svx/source/accessibility/AccessibleFrameSelector.cxx7
-rw-r--r--svx/source/accessibility/AccessibleGraphicShape.cxx5
-rw-r--r--svx/source/accessibility/AccessibleImageBullet.cxx654
-rw-r--r--svx/source/accessibility/AccessibleImageBullet.hxx240
-rw-r--r--svx/source/accessibility/AccessibleOLEShape.cxx5
-rw-r--r--svx/source/accessibility/AccessibleParaManager.cxx423
-rw-r--r--svx/source/accessibility/AccessibleParaManager.hxx349
-rw-r--r--svx/source/accessibility/AccessibleSelectionBase.cxx111
-rwxr-xr-xsvx/source/accessibility/AccessibleShape.cxx9
-rw-r--r--svx/source/accessibility/AccessibleShapeInfo.cxx5
-rw-r--r--svx/source/accessibility/AccessibleShapeTreeInfo.cxx5
-rw-r--r--svx/source/accessibility/AccessibleStaticTextBase.cxx1050
-rw-r--r--svx/source/accessibility/AccessibleStringWrap.cxx104
-rw-r--r--svx/source/accessibility/AccessibleTextEventQueue.cxx19
-rw-r--r--svx/source/accessibility/AccessibleTextEventQueue.hxx5
-rw-r--r--svx/source/accessibility/AccessibleTextHelper.cxx23
-rw-r--r--svx/source/accessibility/ChildrenManager.cxx5
-rw-r--r--svx/source/accessibility/ChildrenManagerImpl.cxx5
-rw-r--r--svx/source/accessibility/ChildrenManagerImpl.hxx14
-rw-r--r--svx/source/accessibility/DGColorNameLookUp.cxx5
-rw-r--r--svx/source/accessibility/DescriptionGenerator.cxx5
-rw-r--r--svx/source/accessibility/GraphCtlAccessibleContext.cxx5
-rwxr-xr-xsvx/source/accessibility/ShapeTypeHandler.cxx5
-rw-r--r--svx/source/accessibility/SvxShapeTypes.cxx5
-rw-r--r--svx/source/accessibility/accessibility.src15
-rw-r--r--svx/source/accessibility/charmapacc.cxx5
-rwxr-xr-xsvx/source/accessibility/makefile.mk23
-rw-r--r--svx/source/accessibility/svxrectctaccessiblecontext.cxx5
35 files changed, 49 insertions, 6663 deletions
diff --git a/svx/source/accessibility/AccessibleComponentBase.cxx b/svx/source/accessibility/AccessibleComponentBase.cxx
deleted file mode 100644
index 79614604df0b..000000000000
--- a/svx/source/accessibility/AccessibleComponentBase.cxx
+++ /dev/null
@@ -1,243 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: AccessibleComponentBase.cxx,v $
- * $Revision: 1.17 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svx.hxx"
-
-
-#include <svx/AccessibleComponentBase.hxx>
-
-#ifndef _COM_SUN_STAR_ACCESSIBILITY_ACCESSIBLE_ROLE_HPP_
-#include <com/sun/star/accessibility/AccessibleRole.hpp>
-#endif
-#ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLE_SELECTION_HPP_
-#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
-#endif
-#include <com/sun/star/container/XChild.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/drawing/XShapes.hpp>
-#include <com/sun/star/drawing/XShapeDescriptor.hpp>
-#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
-#include <tools/color.hxx>
-
-using namespace ::rtl;
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::accessibility;
-
-namespace accessibility {
-
-//===== internal ============================================================
-
-AccessibleComponentBase::AccessibleComponentBase (void)
-{
-}
-
-
-
-
-AccessibleComponentBase::~AccessibleComponentBase (void)
-{
-}
-
-
-
-
-//===== XAccessibleComponent ================================================
-
-sal_Bool SAL_CALL AccessibleComponentBase::containsPoint (
- const ::com::sun::star::awt::Point& aPoint)
- throw (::com::sun::star::uno::RuntimeException)
-{
- awt::Size aSize (getSize());
- return (aPoint.X >= 0)
- && (aPoint.X < aSize.Width)
- && (aPoint.Y >= 0)
- && (aPoint.Y < aSize.Height);
-}
-
-
-
-
-uno::Reference<XAccessible > SAL_CALL
- AccessibleComponentBase::getAccessibleAtPoint (
- const awt::Point& /*aPoint*/)
- throw (uno::RuntimeException)
-{
- return uno::Reference<XAccessible>();
-}
-
-
-
-
-awt::Rectangle SAL_CALL AccessibleComponentBase::getBounds (void)
- throw (uno::RuntimeException)
-{
- return awt::Rectangle();
-}
-
-
-
-
-awt::Point SAL_CALL AccessibleComponentBase::getLocation (void)
- throw (::com::sun::star::uno::RuntimeException)
-{
- awt::Rectangle aBBox (getBounds());
- return awt::Point (aBBox.X, aBBox.Y);
-}
-
-
-
-
-awt::Point SAL_CALL AccessibleComponentBase::getLocationOnScreen (void)
- throw (::com::sun::star::uno::RuntimeException)
-{
- return awt::Point();
-}
-
-
-
-
-::com::sun::star::awt::Size SAL_CALL AccessibleComponentBase::getSize (void)
- throw (::com::sun::star::uno::RuntimeException)
-{
- awt::Rectangle aBBox (getBounds());
- return awt::Size (aBBox.Width, aBBox.Height);
-}
-
-
-
-
-void SAL_CALL AccessibleComponentBase::addFocusListener (
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::awt::XFocusListener >& /*xListener*/)
- throw (::com::sun::star::uno::RuntimeException)
-{
- // Ignored
-}
-
-
-
-
-void SAL_CALL AccessibleComponentBase::removeFocusListener (const ::com::sun::star::uno::Reference<
- ::com::sun::star::awt::XFocusListener >& /*xListener*/ )
- throw (::com::sun::star::uno::RuntimeException)
-{
- // Ignored
-}
-
-
-
-
-void SAL_CALL AccessibleComponentBase::grabFocus (void)
- throw (::com::sun::star::uno::RuntimeException)
-{
- uno::Reference<XAccessibleContext> xContext (this, uno::UNO_QUERY);
- uno::Reference<XAccessibleSelection> xSelection (
- xContext->getAccessibleParent(), uno::UNO_QUERY);
- if (xSelection.is())
- {
- // Do a single selection on this object.
- xSelection->clearAccessibleSelection();
- xSelection->selectAccessibleChild (xContext->getAccessibleIndexInParent());
- }
-}
-
-
-
-
-sal_Int32 SAL_CALL AccessibleComponentBase::getForeground (void)
- throw (::com::sun::star::uno::RuntimeException)
-{
- return Color(COL_BLACK).GetColor();
-}
-
-
-
-
-sal_Int32 SAL_CALL AccessibleComponentBase::getBackground (void)
- throw (::com::sun::star::uno::RuntimeException)
-{
- return Color(COL_WHITE).GetColor();
-}
-
-
-
-
-//===== XAccessibleExtendedComponent ========================================
-
-::com::sun::star::uno::Reference< ::com::sun::star::awt::XFont > SAL_CALL
- AccessibleComponentBase::getFont (void)
- throw (::com::sun::star::uno::RuntimeException)
-{
- return uno::Reference<awt::XFont>();
-}
-
-
-
-
-::rtl::OUString SAL_CALL AccessibleComponentBase::getTitledBorderText (void)
- throw (::com::sun::star::uno::RuntimeException)
-{
- return ::rtl::OUString::createFromAscii ("");
-}
-
-
-
-
-::rtl::OUString SAL_CALL AccessibleComponentBase::getToolTipText (void)
- throw (::com::sun::star::uno::RuntimeException)
-{
- return ::rtl::OUString::createFromAscii ("");
-}
-
-
-
-
-//===== XTypeProvider ===================================================
-
-uno::Sequence<uno::Type> SAL_CALL
- AccessibleComponentBase::getTypes (void)
- throw (uno::RuntimeException)
-{
- // Get list of types from the context base implementation...
- uno::Sequence<uno::Type> aTypeList (2);
- // ...and add the additional type for the component.
- const uno::Type aComponentType =
- ::getCppuType((const uno::Reference<XAccessibleComponent>*)0);
- const uno::Type aExtendedComponentType =
- ::getCppuType((const uno::Reference<XAccessibleExtendedComponent>*)0);
- aTypeList[0] = aComponentType;
- aTypeList[1] = aExtendedComponentType;
-
- return aTypeList;
-}
-
-
-} // end of namespace accessibility
diff --git a/svx/source/accessibility/AccessibleContextBase.cxx b/svx/source/accessibility/AccessibleContextBase.cxx
deleted file mode 100644
index 17f163c48baf..000000000000
--- a/svx/source/accessibility/AccessibleContextBase.cxx
+++ /dev/null
@@ -1,719 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: AccessibleContextBase.cxx,v $
- * $Revision: 1.28.144.1 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svx.hxx"
-
-
-#include <svx/AccessibleContextBase.hxx>
-#include <com/sun/star/accessibility/AccessibleRole.hpp>
-
-
-#include <com/sun/star/beans/PropertyChangeEvent.hpp>
-#include <com/sun/star/accessibility/XAccessibleEventListener.hpp>
-#include <com/sun/star/accessibility/AccessibleStateType.hpp>
-#include <com/sun/star/accessibility/AccessibleRelationType.hpp>
-#include <unotools/accessiblestatesethelper.hxx>
-#include <unotools/accessiblerelationsethelper.hxx>
-#include <comphelper/accessibleeventnotifier.hxx>
-#include <rtl/uuid.h>
-
-#include <vos/mutex.hxx>
-#include <vcl/svapp.hxx>
-
-#include <utility>
-
-using namespace ::rtl;
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::accessibility;
-using ::com::sun::star::uno::Reference;
-
-namespace accessibility {
-
-//===== internal ============================================================
-
-// Define a shortcut for the somewhot longish base class name.
-typedef ::cppu::WeakComponentImplHelper4<
- ::com::sun::star::accessibility::XAccessible,
- ::com::sun::star::accessibility::XAccessibleContext,
- ::com::sun::star::accessibility::XAccessibleEventBroadcaster,
- ::com::sun::star::lang::XServiceInfo> BaseClass;
-
-AccessibleContextBase::AccessibleContextBase (
- const uno::Reference<XAccessible>& rxParent,
- const sal_Int16 aRole)
- : BaseClass (MutexOwner::maMutex),
- mxStateSet (NULL),
- mxRelationSet (NULL),
- mxParent(rxParent),
- msDescription(),
- meDescriptionOrigin(NotSet),
- msName(),
- meNameOrigin(NotSet),
- mnClientId(0),
- maRole(aRole)
-{
- // Create the state set.
- ::utl::AccessibleStateSetHelper* pStateSet = new ::utl::AccessibleStateSetHelper ();
- mxStateSet = pStateSet;
-
- // Set some states. Don't use the SetState method because no events
- // shall be broadcastet (that is not yet initialized anyway).
- if (pStateSet != NULL)
- {
- pStateSet->AddState (AccessibleStateType::ENABLED);
- pStateSet->AddState (AccessibleStateType::SENSITIVE);
- pStateSet->AddState (AccessibleStateType::SHOWING);
- pStateSet->AddState (AccessibleStateType::VISIBLE);
- pStateSet->AddState (AccessibleStateType::FOCUSABLE);
- pStateSet->AddState (AccessibleStateType::SELECTABLE);
- }
-
- // Create the relation set.
- ::utl::AccessibleRelationSetHelper* pRelationSet = new ::utl::AccessibleRelationSetHelper ();
- mxRelationSet = pRelationSet;
-}
-
-
-
-
-AccessibleContextBase::~AccessibleContextBase(void)
-{
-}
-
-
-
-
-sal_Bool AccessibleContextBase::SetState (sal_Int16 aState)
-{
- ::osl::ClearableMutexGuard aGuard (maMutex);
- ::utl::AccessibleStateSetHelper* pStateSet =
- static_cast< ::utl::AccessibleStateSetHelper*>(mxStateSet.get());
- if ((pStateSet != NULL) && !pStateSet->contains(aState))
- {
- pStateSet->AddState (aState);
- // Clear the mutex guard so that it is not locked during calls to
- // listeners.
- aGuard.clear();
-
- // Send event for all states except the DEFUNC state.
- if (aState != AccessibleStateType::DEFUNC)
- {
- uno::Any aNewValue;
- aNewValue <<= aState;
- CommitChange(
- AccessibleEventId::STATE_CHANGED,
- aNewValue,
- uno::Any());
- }
- return sal_True;
- }
- else
- return sal_False;
-}
-
-
-
-
-sal_Bool AccessibleContextBase::ResetState (sal_Int16 aState)
-{
- ::osl::ClearableMutexGuard aGuard (maMutex);
- ::utl::AccessibleStateSetHelper* pStateSet =
- static_cast< ::utl::AccessibleStateSetHelper*>(mxStateSet.get());
- if ((pStateSet != NULL) && pStateSet->contains(aState))
- {
- pStateSet->RemoveState (aState);
- // Clear the mutex guard so that it is not locked during calls to listeners.
- aGuard.clear();
-
- uno::Any aOldValue;
- aOldValue <<= aState;
- CommitChange(
- AccessibleEventId::STATE_CHANGED,
- uno::Any(),
- aOldValue);
- return sal_True;
- }
- else
- return sal_False;
-}
-
-
-
-
-sal_Bool AccessibleContextBase::GetState (sal_Int16 aState)
-{
- ::osl::MutexGuard aGuard (maMutex);
- ::utl::AccessibleStateSetHelper* pStateSet =
- static_cast< ::utl::AccessibleStateSetHelper*>(mxStateSet.get());
- if (pStateSet != NULL)
- return pStateSet->contains(aState);
- else
- // If there is no state set then return false as a default value.
- return sal_False;
-}
-
-
-
-
-void AccessibleContextBase::SetRelationSet (
- const uno::Reference<XAccessibleRelationSet>& rxNewRelationSet)
- throw (::com::sun::star::uno::RuntimeException)
-{
- OSL_TRACE ("setting relation set");
-
- // Try to emit some meaningfull events indicating differing relations in
- // both sets.
- typedef std::pair<short int,short int> RD;
- const RD aRelationDescriptors[] = {
- RD(AccessibleRelationType::CONTROLLED_BY, AccessibleEventId::CONTROLLED_BY_RELATION_CHANGED),
- RD(AccessibleRelationType::CONTROLLER_FOR, AccessibleEventId::CONTROLLER_FOR_RELATION_CHANGED),
- RD(AccessibleRelationType::LABELED_BY, AccessibleEventId::LABELED_BY_RELATION_CHANGED),
- RD(AccessibleRelationType::LABEL_FOR, AccessibleEventId::LABEL_FOR_RELATION_CHANGED),
- RD(AccessibleRelationType::MEMBER_OF, AccessibleEventId::MEMBER_OF_RELATION_CHANGED),
- RD(AccessibleRelationType::INVALID, -1),
- };
- for (int i=0; aRelationDescriptors[i].first!=AccessibleRelationType::INVALID; i++)
- if (mxRelationSet->containsRelation(aRelationDescriptors[i].first)
- != rxNewRelationSet->containsRelation(aRelationDescriptors[i].first))
- CommitChange (aRelationDescriptors[i].second, uno::Any(), uno::Any());
-
- mxRelationSet = rxNewRelationSet;
-}
-
-
-
-
-//===== XAccessible =========================================================
-
-uno::Reference< XAccessibleContext> SAL_CALL
- AccessibleContextBase::getAccessibleContext (void)
- throw (uno::RuntimeException)
-{
- ThrowIfDisposed ();
- return this;
-}
-
-
-
-
-//===== XAccessibleContext ==================================================
-
-/** No children.
-*/
-sal_Int32 SAL_CALL
- AccessibleContextBase::getAccessibleChildCount (void)
- throw (uno::RuntimeException)
-{
- ThrowIfDisposed ();
- return 0;
-}
-
-
-
-
-/** Forward the request to the shape. Return the requested shape or throw
- an exception for a wrong index.
-*/
-uno::Reference<XAccessible> SAL_CALL
- AccessibleContextBase::getAccessibleChild (sal_Int32 nIndex)
- throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
-{
- ThrowIfDisposed ();
- throw lang::IndexOutOfBoundsException (
- ::rtl::OUString::createFromAscii ("no child with index " + nIndex),
- NULL);
-}
-
-
-
-
-uno::Reference<XAccessible> SAL_CALL
- AccessibleContextBase::getAccessibleParent (void)
- throw (::com::sun::star::uno::RuntimeException)
-{
- ThrowIfDisposed ();
- return mxParent;
-}
-
-
-
-
-sal_Int32 SAL_CALL
- AccessibleContextBase::getAccessibleIndexInParent (void)
- throw (::com::sun::star::uno::RuntimeException)
-{
- ThrowIfDisposed ();
- // Use a simple but slow solution for now. Optimize later.
-
- // Iterate over all the parent's children and search for this object.
- if (mxParent.is())
- {
- uno::Reference<XAccessibleContext> xParentContext (
- mxParent->getAccessibleContext());
- if (xParentContext.is())
- {
- sal_Int32 nChildCount = xParentContext->getAccessibleChildCount();
- for (sal_Int32 i=0; i<nChildCount; i++)
- {
- uno::Reference<XAccessible> xChild (xParentContext->getAccessibleChild (i));
- if (xChild.is())
- {
- uno::Reference<XAccessibleContext> xChildContext = xChild->getAccessibleContext();
- if (xChildContext == (XAccessibleContext*)this)
- return i;
- }
- }
- }
- }
-
- // Return -1 to indicate that this object's parent does not know about the
- // object.
- return -1;
-}
-
-
-
-
-sal_Int16 SAL_CALL
- AccessibleContextBase::getAccessibleRole (void)
- throw (::com::sun::star::uno::RuntimeException)
-{
- ThrowIfDisposed ();
- return maRole;
-}
-
-
-
-
-::rtl::OUString SAL_CALL
- AccessibleContextBase::getAccessibleDescription (void)
- throw (::com::sun::star::uno::RuntimeException)
-{
- ThrowIfDisposed ();
-
- return msDescription;
-}
-
-
-
-
-OUString SAL_CALL
- AccessibleContextBase::getAccessibleName (void)
- throw (::com::sun::star::uno::RuntimeException)
-{
- ThrowIfDisposed ();
-
- if (meNameOrigin == NotSet)
- {
- // Do not send an event because this is the first time it has been
- // requested.
- msName = CreateAccessibleName();
- meNameOrigin = AutomaticallyCreated;
- }
-
- return msName;
-}
-
-
-
-
-/** Return a copy of the relation set.
-*/
-uno::Reference<XAccessibleRelationSet> SAL_CALL
- AccessibleContextBase::getAccessibleRelationSet (void)
- throw (::com::sun::star::uno::RuntimeException)
-{
- ThrowIfDisposed ();
-
- // Create a copy of the relation set and return it.
- ::utl::AccessibleRelationSetHelper* pRelationSet =
- static_cast< ::utl::AccessibleRelationSetHelper*>(mxRelationSet.get());
- if (pRelationSet != NULL)
- {
- return uno::Reference<XAccessibleRelationSet> (
- new ::utl::AccessibleRelationSetHelper (*pRelationSet));
- }
- else
- return uno::Reference<XAccessibleRelationSet>(NULL);
-}
-
-
-
-
-/** Return a copy of the state set.
- Possible states are:
- ENABLED
- SHOWING
- VISIBLE
-*/
-uno::Reference<XAccessibleStateSet> SAL_CALL
- AccessibleContextBase::getAccessibleStateSet (void)
- throw (::com::sun::star::uno::RuntimeException)
-{
- ::utl::AccessibleStateSetHelper* pStateSet = NULL;
-
- if (rBHelper.bDisposed)
- {
- // We are already disposed!
- // Create a new state set that has only set the DEFUNC state.
- pStateSet = new ::utl::AccessibleStateSetHelper ();
- if (pStateSet != NULL)
- pStateSet->AddState (AccessibleStateType::DEFUNC);
- }
- else
- {
- // Create a copy of the state set and return it.
- pStateSet = static_cast< ::utl::AccessibleStateSetHelper*>(mxStateSet.get());
-
- // Merge current focused state from edit engine.
-#if 0
- if (aState == AccessibleStateType::FOCUSED
- && pStateSet != NULL
- && mpText != NULL)
- {
- if (mpText->GetFocusedState ())
- pStateSet->AddState (aState);
- else
- pStateSet->RemoveState (aState);
- }
-#endif
- if (pStateSet != NULL)
- pStateSet = new ::utl::AccessibleStateSetHelper (*pStateSet);
- }
-
- return uno::Reference<XAccessibleStateSet>(pStateSet);
-}
-
-
-
-
-lang::Locale SAL_CALL
- AccessibleContextBase::getLocale (void)
- throw (IllegalAccessibleComponentStateException,
- ::com::sun::star::uno::RuntimeException)
-{
- ThrowIfDisposed ();
- // Delegate request to parent.
- if (mxParent.is())
- {
- uno::Reference<XAccessibleContext> xParentContext (
- mxParent->getAccessibleContext());
- if (xParentContext.is())
- return xParentContext->getLocale ();
- }
-
- // No locale and no parent. Therefore throw exception to indicate this
- // cluelessness.
- throw IllegalAccessibleComponentStateException ();
-}
-
-
-
-
-//===== XAccessibleEventListener ============================================
-
-void SAL_CALL
- AccessibleContextBase::addEventListener (
- const uno::Reference<XAccessibleEventListener >& rxListener)
- throw (uno::RuntimeException)
-{
- if (rxListener.is())
- {
- if (rBHelper.bDisposed || rBHelper.bInDispose)
- {
- uno::Reference<uno::XInterface> x ((lang::XComponent *)this, uno::UNO_QUERY);
- rxListener->disposing (lang::EventObject (x));
- }
- else
- {
- if (!mnClientId)
- mnClientId = comphelper::AccessibleEventNotifier::registerClient( );
- comphelper::AccessibleEventNotifier::addEventListener( mnClientId, rxListener );
- }
- }
-}
-
-
-
-
-void SAL_CALL
- AccessibleContextBase::removeEventListener (
- const uno::Reference<XAccessibleEventListener >& rxListener )
- throw (uno::RuntimeException)
-{
- ThrowIfDisposed ();
- if (rxListener.is())
- {
- sal_Int32 nListenerCount = comphelper::AccessibleEventNotifier::removeEventListener( mnClientId, rxListener );
- if ( !nListenerCount )
- {
- // no listeners anymore
- // -> revoke ourself. This may lead to the notifier thread dying (if we were the last client),
- // and at least to us not firing any events anymore, in case somebody calls
- // NotifyAccessibleEvent, again
- comphelper::AccessibleEventNotifier::revokeClient( mnClientId );
- mnClientId = 0;
- }
- }
-}
-
-
-
-
-//===== XServiceInfo ========================================================
-
-::rtl::OUString SAL_CALL
- AccessibleContextBase::getImplementationName (void)
- throw (::com::sun::star::uno::RuntimeException)
-{
- ThrowIfDisposed ();
- return OUString(RTL_CONSTASCII_USTRINGPARAM("AccessibleContextBase"));
-}
-
-
-
-
-sal_Bool SAL_CALL
- AccessibleContextBase::supportsService (const OUString& sServiceName)
- throw (::com::sun::star::uno::RuntimeException)
-{
- ThrowIfDisposed ();
- // Iterate over all supported service names and return true if on of them
- // matches the given name.
- uno::Sequence< ::rtl::OUString> aSupportedServices (
- getSupportedServiceNames ());
- for (int i=0; i<aSupportedServices.getLength(); i++)
- if (sServiceName == aSupportedServices[i])
- return sal_True;
- return sal_False;
-}
-
-
-
-
-uno::Sequence< ::rtl::OUString> SAL_CALL
- AccessibleContextBase::getSupportedServiceNames (void)
- throw (::com::sun::star::uno::RuntimeException)
-{
- ThrowIfDisposed ();
- static const OUString sServiceNames[2] = {
- OUString(RTL_CONSTASCII_USTRINGPARAM(
- "com.sun.star.accessibility.Accessible")),
- OUString(RTL_CONSTASCII_USTRINGPARAM(
- "com.sun.star.accessibility.AccessibleContext"))
- };
- return uno::Sequence<OUString> (sServiceNames, 2);
-}
-
-
-
-
-//===== XTypeProvider =======================================================
-
-uno::Sequence< ::com::sun::star::uno::Type>
- AccessibleContextBase::getTypes (void)
- throw (::com::sun::star::uno::RuntimeException)
-{
- ThrowIfDisposed ();
-
- // This class supports no interfaces on its own. Just return those
- // supported by the base class.
- return BaseClass::getTypes();
-}
-
-
-
-
-uno::Sequence<sal_Int8> SAL_CALL
- AccessibleContextBase::getImplementationId (void)
- throw (::com::sun::star::uno::RuntimeException)
-{
- ThrowIfDisposed ();
- static uno::Sequence<sal_Int8> aId;
- if (aId.getLength() == 0)
- {
- ::osl::MutexGuard aGuard (maMutex);
- aId.realloc (16);
- rtl_createUuid ((sal_uInt8 *)aId.getArray(), 0, sal_True);
- }
- return aId;
-}
-
-
-
-
-//===== internal ============================================================
-
-void SAL_CALL AccessibleContextBase::disposing (void)
-{
- SetState (AccessibleStateType::DEFUNC);
-
- ::osl::MutexGuard aGuard (maMutex);
-
- // Send a disposing to all listeners.
- if ( mnClientId )
- {
- comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing( mnClientId, *this );
- mnClientId = 0;
- }
-}
-
-
-
-
-void AccessibleContextBase::SetAccessibleDescription (
- const ::rtl::OUString& rDescription,
- StringOrigin eDescriptionOrigin)
- throw (uno::RuntimeException)
-{
- if (eDescriptionOrigin < meDescriptionOrigin
- || (eDescriptionOrigin == meDescriptionOrigin && msDescription != rDescription))
- {
- uno::Any aOldValue, aNewValue;
- aOldValue <<= msDescription;
- aNewValue <<= rDescription;
-
- msDescription = rDescription;
- meDescriptionOrigin = eDescriptionOrigin;
-
- CommitChange(
- AccessibleEventId::DESCRIPTION_CHANGED,
- aNewValue,
- aOldValue);
- }
-}
-
-
-
-
-void AccessibleContextBase::SetAccessibleName (
- const ::rtl::OUString& rName,
- StringOrigin eNameOrigin)
- throw (uno::RuntimeException)
-{
- if (eNameOrigin < meNameOrigin
- || (eNameOrigin == meNameOrigin && msName != rName))
- {
- uno::Any aOldValue, aNewValue;
- aOldValue <<= msName;
- aNewValue <<= rName;
-
- msName = rName;
- meNameOrigin = eNameOrigin;
-
- CommitChange(
- AccessibleEventId::NAME_CHANGED,
- aNewValue,
- aOldValue);
- }
-}
-
-
-
-
-::rtl::OUString AccessibleContextBase::CreateAccessibleDescription (void)
- throw (::com::sun::star::uno::RuntimeException)
-{
- return ::rtl::OUString::createFromAscii ("Empty Description");
-}
-
-
-
-
-::rtl::OUString AccessibleContextBase::CreateAccessibleName (void)
- throw (::com::sun::star::uno::RuntimeException)
-{
- return ::rtl::OUString::createFromAscii ("Empty Name");
-}
-
-
-
-
-void AccessibleContextBase::CommitChange (
- sal_Int16 nEventId,
- const uno::Any& rNewValue,
- const uno::Any& rOldValue)
-{
- // Do not call FireEvent and do not even create the event object when no
- // listener has been registered yet. Creating the event object can
- // otherwise lead to a crash. See issue 93419 for details.
- if (mnClientId != 0)
- {
- AccessibleEventObject aEvent (
- static_cast<XAccessibleContext*>(this),
- nEventId,
- rNewValue,
- rOldValue);
-
- FireEvent (aEvent);
- }
-}
-
-
-
-
-void AccessibleContextBase::FireEvent (const AccessibleEventObject& aEvent)
-{
- if (mnClientId)
- comphelper::AccessibleEventNotifier::addEvent( mnClientId, aEvent );
-}
-
-
-
-
-void AccessibleContextBase::ThrowIfDisposed (void)
- throw (::com::sun::star::lang::DisposedException)
-{
- if (rBHelper.bDisposed || rBHelper.bInDispose)
- {
- OSL_TRACE ("Calling disposed object. Throwing exception:");
- throw lang::DisposedException (
- OUString(RTL_CONSTASCII_USTRINGPARAM("object has been already disposed")),
- static_cast<uno::XWeak*>(this));
- }
-}
-
-
-
-sal_Bool AccessibleContextBase::IsDisposed (void)
-{
- return (rBHelper.bDisposed || rBHelper.bInDispose);
-}
-
-
-
-void AccessibleContextBase::SetAccessibleRole( sal_Int16 _nRole )
-{
- maRole = _nRole;
-}
-
-
-} // end of namespace accessibility
diff --git a/svx/source/accessibility/AccessibleControlShape.cxx b/svx/source/accessibility/AccessibleControlShape.cxx
index 52359c0064ae..610f219c21cf 100644
--- a/svx/source/accessibility/AccessibleControlShape.cxx
+++ b/svx/source/accessibility/AccessibleControlShape.cxx
@@ -2,13 +2,10 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2008 by Sun Microsystems, Inc.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: AccessibleControlShape.cxx,v $
- * $Revision: 1.29 $
- *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
diff --git a/svx/source/accessibility/AccessibleEditableTextPara.cxx b/svx/source/accessibility/AccessibleEditableTextPara.cxx
deleted file mode 100644
index 1c0ce04bb1d6..000000000000
--- a/svx/source/accessibility/AccessibleEditableTextPara.cxx
+++ /dev/null
@@ -1,2204 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: AccessibleEditableTextPara.cxx,v $
- * $Revision: 1.53 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svx.hxx"
-
-//------------------------------------------------------------------------
-//
-// Global header
-//
-//------------------------------------------------------------------------
-
-#include <limits.h>
-#include <vector>
-#include <algorithm>
-#include <vos/mutex.hxx>
-#include <vcl/window.hxx>
-#include <vcl/svapp.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Reference.hxx>
-#include <com/sun/star/awt/Point.hpp>
-#include <com/sun/star/awt/Rectangle.hpp>
-#include <com/sun/star/lang/DisposedException.hpp>
-#include <com/sun/star/accessibility/AccessibleRole.hpp>
-#include <com/sun/star/accessibility/AccessibleTextType.hpp>
-#include <com/sun/star/accessibility/AccessibleStateType.hpp>
-#include <com/sun/star/accessibility/AccessibleEventId.hpp>
-#include <comphelper/accessibleeventnotifier.hxx>
-#include <comphelper/sequenceashashmap.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
-
-// --> OD 2006-01-11 #i27138#
-#include <unotools/accessiblerelationsethelper.hxx>
-#include <com/sun/star/accessibility/AccessibleRelationType.hpp>
-// <--
-#include <vcl/unohelp.hxx>
-
-//------------------------------------------------------------------------
-//
-// Project-local header
-//
-//------------------------------------------------------------------------
-
-#include <com/sun/star/beans/PropertyState.hpp>
-#include <svx/unoshape.hxx>
-#include "unolingu.hxx"
-#include "unopracc.hxx"
-#include "AccessibleEditableTextPara.hxx"
-#include <svx/dialmgr.hxx>
-
-#include "accessibility.hrc"
-#include <svtools/colorcfg.hxx>
-
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::accessibility;
-
-
-//------------------------------------------------------------------------
-//
-// AccessibleEditableTextPara implementation
-//
-//------------------------------------------------------------------------
-
-namespace accessibility
-{
-
- const SvxItemPropertySet* ImplGetSvxCharAndParaPropertiesSet()
- {
- // PropertyMap for character and paragraph properties
- static const SfxItemPropertyMapEntry aPropMap[] =
- {
- SVX_UNOEDIT_CHAR_PROPERTIES,
- SVX_UNOEDIT_PARA_PROPERTIES,
- SVX_UNOEDIT_NUMBERING_PROPERTIE,
- {MAP_CHAR_LEN("TextUserDefinedAttributes"), EE_CHAR_XMLATTRIBS, &::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0) , 0, 0},
- {MAP_CHAR_LEN("ParaUserDefinedAttributes"), EE_PARA_XMLATTRIBS, &::getCppuType((const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >*)0) , 0, 0},
- {0,0,0,0,0,0}
- };
- static SvxItemPropertySet aPropSet( aPropMap );
- return &aPropSet;
- }
-
-
- DBG_NAME( AccessibleEditableTextPara )
-
- // --> OD 2006-01-11 #i27138# - add parameter <_pParaManager>
- AccessibleEditableTextPara::AccessibleEditableTextPara(
- const uno::Reference< XAccessible >& rParent,
- const AccessibleParaManager* _pParaManager )
- : AccessibleTextParaInterfaceBase( m_aMutex ),
- mnParagraphIndex( 0 ),
- mnIndexInParent( 0 ),
- mpEditSource( NULL ),
- maEEOffset( 0, 0 ),
- mxParent( rParent ),
- // well, that's strictly (UNO) exception safe, though not
- // really robust. We rely on the fact that this member is
- // constructed last, and that the constructor body catches
- // exceptions, thus no chance for exceptions once the Id is
- // fetched. Nevertheless, normally should employ RAII here...
- mnNotifierClientId(::comphelper::AccessibleEventNotifier::registerClient()),
- // --> OD 2006-01-11 #i27138#
- mpParaManager( _pParaManager )
- // <--
- {
-#ifdef DBG_UTIL
- DBG_CTOR( AccessibleEditableTextPara, NULL );
- OSL_TRACE( "AccessibleEditableTextPara received ID: %d\n", mnNotifierClientId );
-#endif
-
- try
- {
- // Create the state set.
- ::utl::AccessibleStateSetHelper* pStateSet = new ::utl::AccessibleStateSetHelper ();
- mxStateSet = pStateSet;
-
- // these are always on
- pStateSet->AddState( AccessibleStateType::MULTI_LINE );
- pStateSet->AddState( AccessibleStateType::FOCUSABLE );
- pStateSet->AddState( AccessibleStateType::VISIBLE );
- pStateSet->AddState( AccessibleStateType::SHOWING );
- pStateSet->AddState( AccessibleStateType::ENABLED );
- pStateSet->AddState( AccessibleStateType::SENSITIVE );
- }
- catch( const uno::Exception& ) {}
- }
-
- AccessibleEditableTextPara::~AccessibleEditableTextPara()
- {
- DBG_DTOR( AccessibleEditableTextPara, NULL );
-
- // sign off from event notifier
- if( getNotifierClientId() != -1 )
- {
- try
- {
- ::comphelper::AccessibleEventNotifier::revokeClient( getNotifierClientId() );
-#ifdef DBG_UTIL
- OSL_TRACE( "AccessibleEditableTextPara revoked ID: %d\n", mnNotifierClientId );
-#endif
- }
- catch( const uno::Exception& ) {}
- }
- }
-
- ::rtl::OUString AccessibleEditableTextPara::implGetText()
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- return GetTextRange( 0, GetTextLen() );
- }
-
- ::com::sun::star::lang::Locale AccessibleEditableTextPara::implGetLocale()
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- lang::Locale aLocale;
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::getLocale: paragraph index value overflow");
-
- // return locale of first character in the paragraph
- return SvxLanguageToLocale(aLocale, GetTextForwarder().GetLanguage( static_cast< USHORT >( GetParagraphIndex() ), 0 ));
- }
-
- void AccessibleEditableTextPara::implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex )
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- USHORT nStart, nEnd;
-
- if( GetSelection( nStart, nEnd ) )
- {
- nStartIndex = nStart;
- nEndIndex = nEnd;
- }
- else
- {
- // #102234# No exception, just set to 'invalid'
- nStartIndex = -1;
- nEndIndex = -1;
- }
- }
-
- void AccessibleEditableTextPara::implGetParagraphBoundary( ::com::sun::star::i18n::Boundary& rBoundary, sal_Int32 /*nIndex*/ )
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
- DBG_WARNING( "AccessibleEditableTextPara::implGetParagraphBoundary: only a base implementation, ignoring the index" );
-
- rBoundary.startPos = 0;
- rBoundary.endPos = GetTextLen();
- }
-
- void AccessibleEditableTextPara::implGetLineBoundary( ::com::sun::star::i18n::Boundary& rBoundary, sal_Int32 nIndex )
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- SvxTextForwarder& rCacheTF = GetTextForwarder();
- const sal_Int32 nParaIndex = GetParagraphIndex();
-
- DBG_ASSERT(nParaIndex >= 0 && nParaIndex <= USHRT_MAX,
- "AccessibleEditableTextPara::implGetLineBoundary: paragraph index value overflow");
-
- const sal_Int32 nTextLen = rCacheTF.GetTextLen( static_cast< USHORT >( nParaIndex ) );
-
- CheckPosition(nIndex);
-
- rBoundary.startPos = rBoundary.endPos = -1;
-
- const USHORT nLineCount=rCacheTF.GetLineCount( static_cast< USHORT >( nParaIndex ) );
-
- if( nIndex == nTextLen )
- {
- // #i17014# Special-casing one-behind-the-end character
- if( nLineCount <= 1 )
- rBoundary.startPos = 0;
- else
- rBoundary.startPos = nTextLen - rCacheTF.GetLineLen( static_cast< USHORT >( nParaIndex ),
- nLineCount-1 );
-
- rBoundary.endPos = nTextLen;
- }
- else
- {
- // normal line search
- USHORT nLine;
- sal_Int32 nCurIndex;
- for( nLine=0, nCurIndex=0; nLine<nLineCount; ++nLine )
- {
- nCurIndex += rCacheTF.GetLineLen( static_cast< USHORT >( nParaIndex ), nLine);
-
- if( nCurIndex > nIndex )
- {
- rBoundary.startPos = nCurIndex - rCacheTF.GetLineLen(static_cast< USHORT >( nParaIndex ), nLine);
- rBoundary.endPos = nCurIndex;
- break;
- }
- }
- }
- }
-
- int AccessibleEditableTextPara::getNotifierClientId() const
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- return mnNotifierClientId;
- }
-
- void AccessibleEditableTextPara::SetIndexInParent( sal_Int32 nIndex )
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- mnIndexInParent = nIndex;
- }
-
- sal_Int32 AccessibleEditableTextPara::GetIndexInParent() const
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- return mnIndexInParent;
- }
-
- void AccessibleEditableTextPara::SetParagraphIndex( sal_Int32 nIndex )
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- sal_Int32 nOldIndex = mnParagraphIndex;
-
- mnParagraphIndex = nIndex;
-
- WeakBullet::HardRefType aChild( maImageBullet.get() );
- if( aChild.is() )
- aChild->SetParagraphIndex(mnParagraphIndex);
-
- try
- {
- if( nOldIndex != nIndex )
- {
- uno::Any aOldDesc;
- uno::Any aOldName;
-
- try
- {
- aOldDesc <<= getAccessibleDescription();
- aOldName <<= getAccessibleName();
- }
- catch( const uno::Exception& ) {} // optional behaviour
- // index and therefore description changed
- FireEvent( AccessibleEventId::DESCRIPTION_CHANGED, uno::makeAny( getAccessibleDescription() ), aOldDesc );
- FireEvent( AccessibleEventId::NAME_CHANGED, uno::makeAny( getAccessibleName() ), aOldName );
- }
- }
- catch( const uno::Exception& ) {} // optional behaviour
- }
-
- sal_Int32 AccessibleEditableTextPara::GetParagraphIndex() const SAL_THROW((uno::RuntimeException))
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- return mnParagraphIndex;
- }
-
- void AccessibleEditableTextPara::Dispose()
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- int nClientId( getNotifierClientId() );
-
- // #108212# drop all references before notifying dispose
- mxParent = NULL;
- mnNotifierClientId = -1;
- mpEditSource = NULL;
-
- // notify listeners
- if( nClientId != -1 )
- {
- try
- {
- uno::Reference < XAccessibleContext > xThis = getAccessibleContext();
-
- // #106234# Delegate to EventNotifier
- ::comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing( nClientId, xThis );
-#ifdef DBG_UTIL
- OSL_TRACE( "Disposed ID: %d\n", nClientId );
-#endif
- }
- catch( const uno::Exception& ) {}
- }
- }
-
- void AccessibleEditableTextPara::SetEditSource( SvxEditSourceAdapter* pEditSource )
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- mpEditSource = pEditSource;
-
- WeakBullet::HardRefType aChild( maImageBullet.get() );
- if( aChild.is() )
- aChild->SetEditSource(pEditSource);
-
- if( !mpEditSource )
- {
- // going defunc
- UnSetState( AccessibleStateType::SHOWING );
- UnSetState( AccessibleStateType::VISIBLE );
- SetState( AccessibleStateType::INVALID );
- SetState( AccessibleStateType::DEFUNC );
-
- Dispose();
- }
-
- // #108900# Init last text content
- try
- {
- TextChanged();
- }
- catch( const uno::RuntimeException& ) {}
- }
-
- ESelection AccessibleEditableTextPara::MakeSelection( sal_Int32 nStartEEIndex, sal_Int32 nEndEEIndex )
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- // check overflow
- DBG_ASSERT(nStartEEIndex >= 0 && nStartEEIndex <= USHRT_MAX &&
- nEndEEIndex >= 0 && nEndEEIndex <= USHRT_MAX &&
- GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::MakeSelection: index value overflow");
-
- USHORT nParaIndex = static_cast< USHORT >( GetParagraphIndex() );
- return ESelection( nParaIndex, static_cast< USHORT >( nStartEEIndex ),
- nParaIndex, static_cast< USHORT >( nEndEEIndex ) );
- }
-
- ESelection AccessibleEditableTextPara::MakeSelection( sal_Int32 nEEIndex )
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- return MakeSelection( nEEIndex, nEEIndex+1 );
- }
-
- ESelection AccessibleEditableTextPara::MakeCursor( sal_Int32 nEEIndex )
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- return MakeSelection( nEEIndex, nEEIndex );
- }
-
- void AccessibleEditableTextPara::CheckIndex( sal_Int32 nIndex ) SAL_THROW((lang::IndexOutOfBoundsException, uno::RuntimeException))
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- if( nIndex < 0 || nIndex >= getCharacterCount() )
- throw lang::IndexOutOfBoundsException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AccessibleEditableTextPara: character index out of bounds")),
- uno::Reference< uno::XInterface >
- ( static_cast< ::cppu::OWeakObject* > (this) ) ); // disambiguate hierarchy
- }
-
- void AccessibleEditableTextPara::CheckPosition( sal_Int32 nIndex ) SAL_THROW((lang::IndexOutOfBoundsException, uno::RuntimeException))
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- if( nIndex < 0 || nIndex > getCharacterCount() )
- throw lang::IndexOutOfBoundsException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AccessibleEditableTextPara: character position out of bounds")),
- uno::Reference< uno::XInterface >
- ( static_cast< ::cppu::OWeakObject* > (this) ) ); // disambiguate hierarchy
- }
-
- void AccessibleEditableTextPara::CheckRange( sal_Int32 nStart, sal_Int32 nEnd ) SAL_THROW((lang::IndexOutOfBoundsException, uno::RuntimeException))
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- CheckPosition( nStart );
- CheckPosition( nEnd );
- }
-
- sal_Bool AccessibleEditableTextPara::GetSelection( USHORT& nStartPos, USHORT& nEndPos ) SAL_THROW((uno::RuntimeException))
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ESelection aSelection;
- USHORT nPara = static_cast< USHORT > ( GetParagraphIndex() );
- if( !GetEditViewForwarder().GetSelection( aSelection ) )
- return sal_False;
-
- if( aSelection.nStartPara < aSelection.nEndPara )
- {
- if( aSelection.nStartPara > nPara ||
- aSelection.nEndPara < nPara )
- return sal_False;
-
- if( nPara == aSelection.nStartPara )
- nStartPos = aSelection.nStartPos;
- else
- nStartPos = 0;
-
- if( nPara == aSelection.nEndPara )
- nEndPos = aSelection.nEndPos;
- else
- nEndPos = GetTextLen();
- }
- else
- {
- if( aSelection.nStartPara < nPara ||
- aSelection.nEndPara > nPara )
- return sal_False;
-
- if( nPara == aSelection.nStartPara )
- nStartPos = aSelection.nStartPos;
- else
- nStartPos = GetTextLen();
-
- if( nPara == aSelection.nEndPara )
- nEndPos = aSelection.nEndPos;
- else
- nEndPos = 0;
- }
-
- return sal_True;
- }
-
- String AccessibleEditableTextPara::GetText( sal_Int32 nIndex ) SAL_THROW((uno::RuntimeException))
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- return GetTextForwarder().GetText( MakeSelection(nIndex) );
- }
-
- String AccessibleEditableTextPara::GetTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) SAL_THROW((uno::RuntimeException))
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- return GetTextForwarder().GetText( MakeSelection(nStartIndex, nEndIndex) );
- }
-
- USHORT AccessibleEditableTextPara::GetTextLen() const SAL_THROW((uno::RuntimeException))
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- return GetTextForwarder().GetTextLen( static_cast< USHORT >( GetParagraphIndex() ) );
- }
-
- sal_Bool AccessibleEditableTextPara::IsVisible() const
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- return mpEditSource ? sal_True : sal_False ;
- }
-
- uno::Reference< XAccessibleText > AccessibleEditableTextPara::GetParaInterface( sal_Int32 nIndex )
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- uno::Reference< XAccessible > xParent = getAccessibleParent();
- if( xParent.is() )
- {
- uno::Reference< XAccessibleContext > xParentContext = xParent->getAccessibleContext();
- if( xParentContext.is() )
- {
- uno::Reference< XAccessible > xPara = xParentContext->getAccessibleChild( nIndex );
- if( xPara.is() )
- return uno::Reference< XAccessibleText > ( xPara, uno::UNO_QUERY );
- }
- }
-
- return uno::Reference< XAccessibleText >();
- }
-
- SvxEditSourceAdapter& AccessibleEditableTextPara::GetEditSource() const SAL_THROW((uno::RuntimeException))
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- if( mpEditSource )
- return *mpEditSource;
- else
- throw uno::RuntimeException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("No edit source, object is defunct")),
- uno::Reference< uno::XInterface >
- ( static_cast< ::cppu::OWeakObject* >
- ( const_cast< AccessibleEditableTextPara* > (this) ) ) ); // disambiguate hierarchy
- }
-
- SvxAccessibleTextAdapter& AccessibleEditableTextPara::GetTextForwarder() const SAL_THROW((uno::RuntimeException))
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- SvxEditSourceAdapter& rEditSource = GetEditSource();
- SvxAccessibleTextAdapter* pTextForwarder = rEditSource.GetTextForwarderAdapter();
-
- if( !pTextForwarder )
- throw uno::RuntimeException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Unable to fetch text forwarder, object is defunct")),
- uno::Reference< uno::XInterface >
- ( static_cast< ::cppu::OWeakObject* >
- ( const_cast< AccessibleEditableTextPara* > (this) ) ) ); // disambiguate hierarchy
-
- if( pTextForwarder->IsValid() )
- return *pTextForwarder;
- else
- throw uno::RuntimeException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Text forwarder is invalid, object is defunct")),
- uno::Reference< uno::XInterface >
- ( static_cast< ::cppu::OWeakObject* >
- ( const_cast< AccessibleEditableTextPara* > (this) ) ) ); // disambiguate hierarchy
- }
-
- SvxViewForwarder& AccessibleEditableTextPara::GetViewForwarder() const SAL_THROW((uno::RuntimeException))
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- SvxEditSource& rEditSource = GetEditSource();
- SvxViewForwarder* pViewForwarder = rEditSource.GetViewForwarder();
-
- if( !pViewForwarder )
- {
- throw uno::RuntimeException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Unable to fetch view forwarder, object is defunct")),
- uno::Reference< uno::XInterface >
- ( static_cast< ::cppu::OWeakObject* >
- ( const_cast< AccessibleEditableTextPara* > (this) ) ) ); // disambiguate hierarchy
- }
-
- if( pViewForwarder->IsValid() )
- return *pViewForwarder;
- else
- throw uno::RuntimeException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("View forwarder is invalid, object is defunct")),
- uno::Reference< uno::XInterface >
- ( static_cast< ::cppu::OWeakObject* >
- ( const_cast< AccessibleEditableTextPara* > (this) ) ) ); // disambiguate hierarchy
- }
-
- SvxAccessibleTextEditViewAdapter& AccessibleEditableTextPara::GetEditViewForwarder( sal_Bool bCreate ) const SAL_THROW((uno::RuntimeException))
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- SvxEditSourceAdapter& rEditSource = GetEditSource();
- SvxAccessibleTextEditViewAdapter* pTextEditViewForwarder = rEditSource.GetEditViewForwarderAdapter( bCreate );
-
- if( !pTextEditViewForwarder )
- {
- if( bCreate )
- throw uno::RuntimeException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Unable to fetch view forwarder, object is defunct")),
- uno::Reference< uno::XInterface >
- ( static_cast< ::cppu::OWeakObject* >
- ( const_cast< AccessibleEditableTextPara* > (this) ) ) ); // disambiguate hierarchy
- else
- throw uno::RuntimeException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("No view forwarder, object not in edit mode")),
- uno::Reference< uno::XInterface >
- ( static_cast< ::cppu::OWeakObject* >
- ( const_cast< AccessibleEditableTextPara* > (this) ) ) ); // disambiguate hierarchy
- }
-
- if( pTextEditViewForwarder->IsValid() )
- return *pTextEditViewForwarder;
- else
- {
- if( bCreate )
- throw uno::RuntimeException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("View forwarder is invalid, object is defunct")),
- uno::Reference< uno::XInterface >
- ( static_cast< ::cppu::OWeakObject* >
- ( const_cast< AccessibleEditableTextPara* > (this) ) ) ); // disambiguate hierarchy
- else
- throw uno::RuntimeException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("View forwarder is invalid, object not in edit mode")),
- uno::Reference< uno::XInterface >
- ( static_cast< ::cppu::OWeakObject* >
- ( const_cast< AccessibleEditableTextPara* > (this) ) ) ); // disambiguate hierarchy
- }
- }
-
- sal_Bool AccessibleEditableTextPara::HaveEditView() const
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- SvxEditSource& rEditSource = GetEditSource();
- SvxEditViewForwarder* pViewForwarder = rEditSource.GetEditViewForwarder();
-
- if( !pViewForwarder )
- return sal_False;
-
- if( !pViewForwarder->IsValid() )
- return sal_False;
-
- return sal_True;
- }
-
- sal_Bool AccessibleEditableTextPara::HaveChildren()
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::HaveChildren: paragraph index value overflow");
-
- return GetTextForwarder().HaveImageBullet( static_cast< USHORT >(GetParagraphIndex()) );
- }
-
- sal_Bool AccessibleEditableTextPara::IsActive() const SAL_THROW((uno::RuntimeException))
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- SvxEditSource& rEditSource = GetEditSource();
- SvxEditViewForwarder* pViewForwarder = rEditSource.GetEditViewForwarder();
-
- if( !pViewForwarder )
- return sal_False;
-
- if( pViewForwarder->IsValid() )
- return sal_False;
- else
- return sal_True;
- }
-
- Rectangle AccessibleEditableTextPara::LogicToPixel( const Rectangle& rRect, const MapMode& rMapMode, SvxViewForwarder& rForwarder )
- {
- // convert to screen coordinates
- return Rectangle( rForwarder.LogicToPixel( rRect.TopLeft(), rMapMode ),
- rForwarder.LogicToPixel( rRect.BottomRight(), rMapMode ) );
- }
-
- const Point& AccessibleEditableTextPara::GetEEOffset() const
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- return maEEOffset;
- }
-
- void AccessibleEditableTextPara::SetEEOffset( const Point& rOffset )
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- WeakBullet::HardRefType aChild( maImageBullet.get() );
- if( aChild.is() )
- aChild->SetEEOffset(rOffset);
-
- maEEOffset = rOffset;
- }
-
- void AccessibleEditableTextPara::FireEvent(const sal_Int16 nEventId, const uno::Any& rNewValue, const uno::Any& rOldValue) const
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- uno::Reference < XAccessibleContext > xThis( const_cast< AccessibleEditableTextPara* > (this)->getAccessibleContext() );
-
- AccessibleEventObject aEvent(xThis, nEventId, rNewValue, rOldValue);
-
- // #102261# Call global queue for focus events
- if( nEventId == AccessibleEventId::STATE_CHANGED )
- vcl::unohelper::NotifyAccessibleStateEventGlobally( aEvent );
-
- // #106234# Delegate to EventNotifier
- if( getNotifierClientId() != -1 )
- ::comphelper::AccessibleEventNotifier::addEvent( getNotifierClientId(),
- aEvent );
- }
-
- void AccessibleEditableTextPara::GotPropertyEvent( const uno::Any& rNewValue, const sal_Int16 nEventId ) const
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- FireEvent( nEventId, rNewValue );
- }
-
- void AccessibleEditableTextPara::LostPropertyEvent( const uno::Any& rOldValue, const sal_Int16 nEventId ) const
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- FireEvent( nEventId, uno::Any(), rOldValue );
- }
-
- bool AccessibleEditableTextPara::HasState( const sal_Int16 nStateId )
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::utl::AccessibleStateSetHelper* pStateSet = static_cast< ::utl::AccessibleStateSetHelper*>(mxStateSet.get());
- if( pStateSet != NULL )
- return pStateSet->contains(nStateId) ? true : false;
-
- return false;
- }
-
- void AccessibleEditableTextPara::SetState( const sal_Int16 nStateId )
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::utl::AccessibleStateSetHelper* pStateSet = static_cast< ::utl::AccessibleStateSetHelper*>(mxStateSet.get());
- if( pStateSet != NULL &&
- !pStateSet->contains(nStateId) )
- {
- pStateSet->AddState( nStateId );
- GotPropertyEvent( uno::makeAny( nStateId ), AccessibleEventId::STATE_CHANGED );
- }
- }
-
- void AccessibleEditableTextPara::UnSetState( const sal_Int16 nStateId )
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::utl::AccessibleStateSetHelper* pStateSet = static_cast< ::utl::AccessibleStateSetHelper*>(mxStateSet.get());
- if( pStateSet != NULL &&
- pStateSet->contains(nStateId) )
- {
- pStateSet->RemoveState( nStateId );
- LostPropertyEvent( uno::makeAny( nStateId ), AccessibleEventId::STATE_CHANGED );
- }
- }
-
- void AccessibleEditableTextPara::TextChanged()
- {
- ::rtl::OUString aCurrentString( OCommonAccessibleText::getText() );
- uno::Any aDeleted;
- uno::Any aInserted;
- if( OCommonAccessibleText::implInitTextChangedEvent( maLastTextString, aCurrentString,
- aDeleted, aInserted) )
- {
- FireEvent( AccessibleEventId::TEXT_CHANGED, aInserted, aDeleted );
- maLastTextString = aCurrentString;
- }
- }
-
- sal_Bool AccessibleEditableTextPara::GetAttributeRun( USHORT& nStartIndex, USHORT& nEndIndex, sal_Int32 nIndex )
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- DBG_ASSERT(nIndex >= 0 && nIndex <= USHRT_MAX,
- "AccessibleEditableTextPara::GetAttributeRun: index value overflow");
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::getLocale: paragraph index value overflow");
-
- return GetTextForwarder().GetAttributeRun( nStartIndex,
- nEndIndex,
- static_cast< USHORT >(GetParagraphIndex()),
- static_cast< USHORT >(nIndex) );
- }
-
- uno::Any SAL_CALL AccessibleEditableTextPara::queryInterface (const uno::Type & rType) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- uno::Any aRet;
-
- // must provide XAccesibleText by hand, since it comes publicly inherited by XAccessibleEditableText
- if ( rType == ::getCppuType((uno::Reference< XAccessibleText > *)0) )
- {
- uno::Reference< XAccessibleText > aAccText = static_cast< XAccessibleEditableText * >(this);
- aRet <<= aAccText;
- }
- else if ( rType == ::getCppuType((uno::Reference< XAccessibleEditableText > *)0) )
- {
- uno::Reference< XAccessibleEditableText > aAccEditText = this;
- aRet <<= aAccEditText;
- }
- else
- {
- aRet = AccessibleTextParaInterfaceBase::queryInterface(rType);
- }
-
- return aRet;
- }
-
- // XAccessible
- uno::Reference< XAccessibleContext > SAL_CALL AccessibleEditableTextPara::getAccessibleContext() throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- // We implement the XAccessibleContext interface in the same object
- return uno::Reference< XAccessibleContext > ( this );
- }
-
- // XAccessibleContext
- sal_Int32 SAL_CALL AccessibleEditableTextPara::getAccessibleChildCount() throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- return HaveChildren() ? 1 : 0;
- }
-
- uno::Reference< XAccessible > SAL_CALL AccessibleEditableTextPara::getAccessibleChild( sal_Int32 i ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- if( !HaveChildren() )
- throw lang::IndexOutOfBoundsException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("No childs available")),
- uno::Reference< uno::XInterface >
- ( static_cast< ::cppu::OWeakObject* > (this) ) ); // static_cast: disambiguate hierarchy
-
- if( i != 0 )
- throw lang::IndexOutOfBoundsException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Invalid child index")),
- uno::Reference< uno::XInterface >
- ( static_cast< ::cppu::OWeakObject* > (this) ) ); // static_cast: disambiguate hierarchy
-
- WeakBullet::HardRefType aChild( maImageBullet.get() );
-
- if( !aChild.is() )
- {
- // there is no hard reference available, create object then
- AccessibleImageBullet* pChild = new AccessibleImageBullet( uno::Reference< XAccessible >( this ) );
- uno::Reference< XAccessible > xChild( static_cast< ::cppu::OWeakObject* > (pChild), uno::UNO_QUERY );
-
- if( !xChild.is() )
- throw uno::RuntimeException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Child creation failed")),
- uno::Reference< uno::XInterface >
- ( static_cast< ::cppu::OWeakObject* > (this) ) );
-
- aChild = WeakBullet::HardRefType( xChild, pChild );
-
- aChild->SetEditSource( &GetEditSource() );
- aChild->SetParagraphIndex( GetParagraphIndex() );
- aChild->SetIndexInParent( i );
-
- maImageBullet = aChild;
- }
-
- return aChild.getRef();
- }
-
- uno::Reference< XAccessible > SAL_CALL AccessibleEditableTextPara::getAccessibleParent() throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
-#ifdef DBG_UTIL
- if( !mxParent.is() )
- DBG_TRACE( "AccessibleEditableTextPara::getAccessibleParent: no frontend set, did somebody forgot to call AccessibleTextHelper::SetEventSource()?");
-#endif
-
- return mxParent;
- }
-
- sal_Int32 SAL_CALL AccessibleEditableTextPara::getAccessibleIndexInParent() throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- return mnIndexInParent;
- }
-
- sal_Int16 SAL_CALL AccessibleEditableTextPara::getAccessibleRole() throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- return AccessibleRole::PARAGRAPH;
- }
-
- ::rtl::OUString SAL_CALL AccessibleEditableTextPara::getAccessibleDescription() throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
-// ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- return ::rtl::OUString();
- }
-
- ::rtl::OUString SAL_CALL AccessibleEditableTextPara::getAccessibleName() throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
-// ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- return ::rtl::OUString();
- }
-
- uno::Reference< XAccessibleRelationSet > SAL_CALL AccessibleEditableTextPara::getAccessibleRelationSet() throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- // --> OD 2006-01-11 #i27138# - provide relations CONTENT_FLOWS_FROM
- // and CONTENT_FLOWS_TO
- if ( mpParaManager )
- {
- utl::AccessibleRelationSetHelper* pAccRelSetHelper =
- new utl::AccessibleRelationSetHelper();
- sal_Int32 nMyParaIndex( GetParagraphIndex() );
- // relation CONTENT_FLOWS_FROM
- if ( nMyParaIndex > 0 &&
- mpParaManager->IsReferencable( nMyParaIndex - 1 ) )
- {
- uno::Sequence<uno::Reference<XInterface> > aSequence(1);
- aSequence[0] =
- mpParaManager->GetChild( nMyParaIndex - 1 ).first.get().getRef();
- AccessibleRelation aAccRel( AccessibleRelationType::CONTENT_FLOWS_FROM,
- aSequence );
- pAccRelSetHelper->AddRelation( aAccRel );
- }
-
- // relation CONTENT_FLOWS_TO
- if ( (nMyParaIndex + 1) < (sal_Int32)mpParaManager->GetNum() &&
- mpParaManager->IsReferencable( nMyParaIndex + 1 ) )
- {
- uno::Sequence<uno::Reference<XInterface> > aSequence(1);
- aSequence[0] =
- mpParaManager->GetChild( nMyParaIndex + 1 ).first.get().getRef();
- AccessibleRelation aAccRel( AccessibleRelationType::CONTENT_FLOWS_TO,
- aSequence );
- pAccRelSetHelper->AddRelation( aAccRel );
- }
-
- return pAccRelSetHelper;
- }
- else
- {
- // no relations, therefore empty
- return uno::Reference< XAccessibleRelationSet >();
- }
- // <--
- }
-
- uno::Reference< XAccessibleStateSet > SAL_CALL AccessibleEditableTextPara::getAccessibleStateSet() throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- // Create a copy of the state set and return it.
- ::utl::AccessibleStateSetHelper* pStateSet = static_cast< ::utl::AccessibleStateSetHelper*>(mxStateSet.get());
-
- if( !pStateSet )
- return uno::Reference<XAccessibleStateSet>();
-
- return uno::Reference<XAccessibleStateSet>( new ::utl::AccessibleStateSetHelper (*pStateSet) );
- }
-
- lang::Locale SAL_CALL AccessibleEditableTextPara::getLocale() throw (IllegalAccessibleComponentStateException, uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- return implGetLocale();
- }
-
- void SAL_CALL AccessibleEditableTextPara::addEventListener( const uno::Reference< XAccessibleEventListener >& xListener ) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- if( getNotifierClientId() != -1 )
- ::comphelper::AccessibleEventNotifier::addEventListener( getNotifierClientId(), xListener );
- }
-
- void SAL_CALL AccessibleEditableTextPara::removeEventListener( const uno::Reference< XAccessibleEventListener >& xListener ) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- if( getNotifierClientId() != -1 )
- ::comphelper::AccessibleEventNotifier::removeEventListener( getNotifierClientId(), xListener );
- }
-
- // XAccessibleComponent
- sal_Bool SAL_CALL AccessibleEditableTextPara::containsPoint( const awt::Point& aTmpPoint ) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::contains: index value overflow");
-
- awt::Rectangle aTmpRect = getBounds();
- Rectangle aRect( Point(aTmpRect.X, aTmpRect.Y), Size(aTmpRect.Width, aTmpRect.Height) );
- Point aPoint( aTmpPoint.X, aTmpPoint.Y );
-
- return aRect.IsInside( aPoint );
- }
-
- uno::Reference< XAccessible > SAL_CALL AccessibleEditableTextPara::getAccessibleAtPoint( const awt::Point& _aPoint ) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- if( HaveChildren() )
- {
- // #103862# No longer need to make given position relative
- Point aPoint( _aPoint.X, _aPoint.Y );
-
- // respect EditEngine offset to surrounding shape/cell
- aPoint -= GetEEOffset();
-
- // convert to EditEngine coordinate system
- SvxTextForwarder& rCacheTF = GetTextForwarder();
- Point aLogPoint( GetViewForwarder().PixelToLogic( aPoint, rCacheTF.GetMapMode() ) );
-
- EBulletInfo aBulletInfo = rCacheTF.GetBulletInfo( static_cast< USHORT > (GetParagraphIndex()) );
-
- if( aBulletInfo.nParagraph != EE_PARA_NOT_FOUND &&
- aBulletInfo.bVisible &&
- aBulletInfo.nType == SVX_NUM_BITMAP )
- {
- Rectangle aRect = aBulletInfo.aBounds;
-
- if( aRect.IsInside( aLogPoint ) )
- return getAccessibleChild(0);
- }
- }
-
- // no children at all, or none at given position
- return uno::Reference< XAccessible >();
- }
-
- awt::Rectangle SAL_CALL AccessibleEditableTextPara::getBounds() throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::getBounds: index value overflow");
-
- SvxTextForwarder& rCacheTF = GetTextForwarder();
- Rectangle aRect = rCacheTF.GetParaBounds( static_cast< USHORT >( GetParagraphIndex() ) );
-
- // convert to screen coordinates
- Rectangle aScreenRect = AccessibleEditableTextPara::LogicToPixel( aRect,
- rCacheTF.GetMapMode(),
- GetViewForwarder() );
-
- // offset from shape/cell
- Point aOffset = GetEEOffset();
-
- return awt::Rectangle( aScreenRect.Left() + aOffset.X(),
- aScreenRect.Top() + aOffset.Y(),
- aScreenRect.GetSize().Width(),
- aScreenRect.GetSize().Height() );
- }
-
- awt::Point SAL_CALL AccessibleEditableTextPara::getLocation( ) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- awt::Rectangle aRect = getBounds();
-
- return awt::Point( aRect.X, aRect.Y );
- }
-
- awt::Point SAL_CALL AccessibleEditableTextPara::getLocationOnScreen( ) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- // relate us to parent
- uno::Reference< XAccessible > xParent = getAccessibleParent();
- if( xParent.is() )
- {
- uno::Reference< XAccessibleComponent > xParentComponent( xParent, uno::UNO_QUERY );
- if( xParentComponent.is() )
- {
- awt::Point aRefPoint = xParentComponent->getLocationOnScreen();
- awt::Point aPoint = getLocation();
- aPoint.X += aRefPoint.X;
- aPoint.Y += aRefPoint.Y;
-
- return aPoint;
- }
- }
-
- throw uno::RuntimeException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Cannot access parent")),
- uno::Reference< uno::XInterface >
- ( static_cast< XAccessible* > (this) ) ); // disambiguate hierarchy
- }
-
- awt::Size SAL_CALL AccessibleEditableTextPara::getSize( ) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- awt::Rectangle aRect = getBounds();
-
- return awt::Size( aRect.Width, aRect.Height );
- }
-
- void SAL_CALL AccessibleEditableTextPara::grabFocus( ) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- // set cursor to this paragraph
- setSelection(0,0);
- }
-
- sal_Int32 SAL_CALL AccessibleEditableTextPara::getForeground( ) throw (::com::sun::star::uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- // #104444# Added to XAccessibleComponent interface
- svtools::ColorConfig aColorConfig;
- UINT32 nColor = aColorConfig.GetColorValue( svtools::FONTCOLOR ).nColor;
- return static_cast<sal_Int32>(nColor);
- }
-
- sal_Int32 SAL_CALL AccessibleEditableTextPara::getBackground( ) throw (::com::sun::star::uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- // #104444# Added to XAccessibleComponent interface
- Color aColor( Application::GetSettings().GetStyleSettings().GetWindowColor().GetColor() );
-
- // the background is transparent
- aColor.SetTransparency( 0xFF);
-
- return static_cast<sal_Int32>( aColor.GetColor() );
- }
-
- // XAccessibleText
- sal_Int32 SAL_CALL AccessibleEditableTextPara::getCaretPosition() throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- if( !HaveEditView() )
- return -1;
-
- ESelection aSelection;
- if( GetEditViewForwarder().GetSelection( aSelection ) &&
- GetParagraphIndex() == aSelection.nEndPara )
- {
- // caret is always nEndPara,nEndPos
- return aSelection.nEndPos;
- }
-
- // not within this paragraph
- return -1;
- }
-
- sal_Bool SAL_CALL AccessibleEditableTextPara::setCaretPosition( sal_Int32 nIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- return setSelection(nIndex, nIndex);
- }
-
- sal_Unicode SAL_CALL AccessibleEditableTextPara::getCharacter( sal_Int32 nIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::getCharacter: index value overflow");
-
- return OCommonAccessibleText::getCharacter( nIndex );
- }
-
- uno::Sequence< beans::PropertyValue > SAL_CALL AccessibleEditableTextPara::getCharacterAttributes( sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& rRequestedAttributes ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- CheckIndex(nIndex); // may throw IndexOutOfBoundsException
-
- // get default attribues...
- ::comphelper::SequenceAsHashMap aPropHashMap( getDefaultAttributes( rRequestedAttributes ) );
-
- // ... and override them with the direct attributes from the specific position
- uno::Sequence< beans::PropertyValue > aRunAttribs( getRunAttributes( nIndex, rRequestedAttributes ) );
- sal_Int32 nRunAttribs = aRunAttribs.getLength();
- const beans::PropertyValue *pRunAttrib = aRunAttribs.getConstArray();
- for (sal_Int32 k = 0; k < nRunAttribs; ++k)
- {
- const beans::PropertyValue &rRunAttrib = pRunAttrib[k];
- aPropHashMap[ rRunAttrib.Name ] = rRunAttrib.Value; //!! should not only be the value !!
- }
-#ifdef TL_DEBUG
- {
- uno::Sequence< rtl::OUString > aNames(1);
- aNames.getArray()[0] = rtl::OUString::createFromAscii("CharHeight");
- const rtl::OUString *pNames = aNames.getConstArray();
- const uno::Sequence< beans::PropertyValue > aAttribs( getRunAttributes( nIndex, aNames ) );
- const beans::PropertyValue *pAttribs = aAttribs.getConstArray();
- double d1 = -1.0;
- float f1 = -1.0;
- if (aAttribs.getLength())
- {
- uno::Any aAny( pAttribs[0].Value );
- aAny >>= d1;
- aAny >>= f1;
- }
- int i = 3;
- }
-#endif
-
- // get resulting sequence
- uno::Sequence< beans::PropertyValue > aRes;
- aPropHashMap >> aRes;
-
- // since SequenceAsHashMap ignores property handles and property state
- // we have to restore the property state here (property handles are
- // of no use to the accessibility API).
- sal_Int32 nRes = aRes.getLength();
- beans::PropertyValue *pRes = aRes.getArray();
- for (sal_Int32 i = 0; i < nRes; ++i)
- {
- beans::PropertyValue &rRes = pRes[i];
- sal_Bool bIsDirectVal = sal_False;
- for (sal_Int32 k = 0; k < nRunAttribs && !bIsDirectVal; ++k)
- {
- if (rRes.Name == pRunAttrib[k].Name)
- bIsDirectVal = sal_True;
- }
- rRes.Handle = -1;
- rRes.State = bIsDirectVal ? PropertyState_DIRECT_VALUE : PropertyState_DEFAULT_VALUE;
- }
-
- return aRes;
- }
-
- awt::Rectangle SAL_CALL AccessibleEditableTextPara::getCharacterBounds( sal_Int32 nIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::getCharacterBounds: index value overflow");
-
- // #108900# Have position semantics now for nIndex, as
- // one-past-the-end values are legal, too.
- CheckPosition( nIndex );
-
- SvxTextForwarder& rCacheTF = GetTextForwarder();
- Rectangle aRect = rCacheTF.GetCharBounds( static_cast< USHORT >( GetParagraphIndex() ), static_cast< USHORT >( nIndex ) );
-
- // convert to screen
- Rectangle aScreenRect = AccessibleEditableTextPara::LogicToPixel( aRect,
- rCacheTF.GetMapMode(),
- GetViewForwarder() );
- // #109864# offset from parent (paragraph), but in screen
- // coordinates. This makes sure the internal text offset in
- // the outline view forwarder gets cancelled out here
- awt::Rectangle aParaRect( getBounds() );
- aScreenRect.Move( -aParaRect.X, -aParaRect.Y );
-
- // offset from shape/cell
- Point aOffset = GetEEOffset();
-
- return awt::Rectangle( aScreenRect.Left() + aOffset.X(),
- aScreenRect.Top() + aOffset.Y(),
- aScreenRect.GetSize().Width(),
- aScreenRect.GetSize().Height() );
- }
-
- sal_Int32 SAL_CALL AccessibleEditableTextPara::getCharacterCount() throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::getCharacterCount: index value overflow");
-
- return OCommonAccessibleText::getCharacterCount();
- }
-
- sal_Int32 SAL_CALL AccessibleEditableTextPara::getIndexAtPoint( const awt::Point& rPoint ) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- USHORT nPara, nIndex;
-
- // offset from surrounding cell/shape
- Point aOffset( GetEEOffset() );
- Point aPoint( rPoint.X - aOffset.X(), rPoint.Y - aOffset.Y() );
-
- // convert to logical coordinates
- SvxTextForwarder& rCacheTF = GetTextForwarder();
- Point aLogPoint( GetViewForwarder().PixelToLogic( aPoint, rCacheTF.GetMapMode() ) );
-
- // re-offset to parent (paragraph)
- Rectangle aParaRect = rCacheTF.GetParaBounds( static_cast< USHORT >( GetParagraphIndex() ) );
- aLogPoint.Move( aParaRect.Left(), aParaRect.Top() );
-
- if( rCacheTF.GetIndexAtPoint( aLogPoint, nPara, nIndex ) &&
- GetParagraphIndex() == nPara )
- {
- // #102259# Double-check if we're _really_ on the given character
- try
- {
- awt::Rectangle aRect1( getCharacterBounds(nIndex) );
- Rectangle aRect2( aRect1.X, aRect1.Y,
- aRect1.Width + aRect1.X, aRect1.Height + aRect1.Y );
- if( aRect2.IsInside( Point( rPoint.X, rPoint.Y ) ) )
- return nIndex;
- else
- return -1;
- }
- catch( const lang::IndexOutOfBoundsException& )
- {
- // #103927# Don't throw for invalid nIndex values
- return -1;
- }
- }
- else
- {
- // not within our paragraph
- return -1;
- }
- }
-
- ::rtl::OUString SAL_CALL AccessibleEditableTextPara::getSelectedText() throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::getSelectedText: index value overflow");
-
- if( !HaveEditView() )
- return ::rtl::OUString();
-
- return OCommonAccessibleText::getSelectedText();
- }
-
- sal_Int32 SAL_CALL AccessibleEditableTextPara::getSelectionStart() throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::getSelectionStart: index value overflow");
-
- if( !HaveEditView() )
- return -1;
-
- return OCommonAccessibleText::getSelectionStart();
- }
-
- sal_Int32 SAL_CALL AccessibleEditableTextPara::getSelectionEnd() throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::getSelectionEnd: index value overflow");
-
- if( !HaveEditView() )
- return -1;
-
- return OCommonAccessibleText::getSelectionEnd();
- }
-
- sal_Bool SAL_CALL AccessibleEditableTextPara::setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::setSelection: paragraph index value overflow");
-
- CheckRange(nStartIndex, nEndIndex);
-
- try
- {
- SvxEditViewForwarder& rCacheVF = GetEditViewForwarder( sal_True );
- return rCacheVF.SetSelection( MakeSelection(nStartIndex, nEndIndex) );
- }
- catch( const uno::RuntimeException& )
- {
- return sal_False;
- }
- }
-
- ::rtl::OUString SAL_CALL AccessibleEditableTextPara::getText() throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::getText: paragraph index value overflow");
-
- return OCommonAccessibleText::getText();
- }
-
- ::rtl::OUString SAL_CALL AccessibleEditableTextPara::getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::getTextRange: paragraph index value overflow");
-
- return OCommonAccessibleText::getTextRange(nStartIndex, nEndIndex);
- }
-
- ::com::sun::star::accessibility::TextSegment SAL_CALL AccessibleEditableTextPara::getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::getTextAtIndex: paragraph index value overflow");
-
- ::com::sun::star::accessibility::TextSegment aResult;
- aResult.SegmentStart = -1;
- aResult.SegmentEnd = -1;
-
- switch( aTextType )
- {
- // Not yet handled by OCommonAccessibleText. Missing
- // implGetAttributeRunBoundary() method there
- case AccessibleTextType::ATTRIBUTE_RUN:
- {
- const sal_Int32 nTextLen = GetTextForwarder().GetTextLen( static_cast< USHORT >( GetParagraphIndex() ) );
-
- if( nIndex == nTextLen )
- {
- // #i17014# Special-casing one-behind-the-end character
- aResult.SegmentStart = aResult.SegmentEnd = nTextLen;
- }
- else
- {
- USHORT nStartIndex, nEndIndex;
-
- if( GetAttributeRun(nStartIndex, nEndIndex, nIndex) )
- {
- aResult.SegmentText = GetTextRange(nStartIndex, nEndIndex);
- aResult.SegmentStart = nStartIndex;
- aResult.SegmentEnd = nEndIndex;
- }
- }
- break;
- }
-
- default:
- aResult = OCommonAccessibleText::getTextAtIndex( nIndex, aTextType );
- break;
- } /* end of switch( aTextType ) */
-
- return aResult;
- }
-
- ::com::sun::star::accessibility::TextSegment SAL_CALL AccessibleEditableTextPara::getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::getTextBeforeIndex: paragraph index value overflow");
-
- ::com::sun::star::accessibility::TextSegment aResult;
- aResult.SegmentStart = -1;
- aResult.SegmentEnd = -1;
-
- switch( aTextType )
- {
- // Not yet handled by OCommonAccessibleText. Missing
- // implGetAttributeRunBoundary() method there
- case AccessibleTextType::ATTRIBUTE_RUN:
- {
- const sal_Int32 nTextLen = GetTextForwarder().GetTextLen( static_cast< USHORT >( GetParagraphIndex() ) );
- USHORT nStartIndex, nEndIndex;
-
- if( nIndex == nTextLen )
- {
- // #i17014# Special-casing one-behind-the-end character
- if( nIndex > 0 &&
- GetAttributeRun(nStartIndex, nEndIndex, nIndex-1) )
- {
- aResult.SegmentText = GetTextRange(nStartIndex, nEndIndex);
- aResult.SegmentStart = nStartIndex;
- aResult.SegmentEnd = nEndIndex;
- }
- }
- else
- {
- if( GetAttributeRun(nStartIndex, nEndIndex, nIndex) )
- {
- // already at the left border? If not, query
- // one index further left
- if( nStartIndex > 0 &&
- GetAttributeRun(nStartIndex, nEndIndex, nStartIndex-1) )
- {
- aResult.SegmentText = GetTextRange(nStartIndex, nEndIndex);
- aResult.SegmentStart = nStartIndex;
- aResult.SegmentEnd = nEndIndex;
- }
- }
- }
- break;
- }
-
- default:
- aResult = OCommonAccessibleText::getTextBeforeIndex( nIndex, aTextType );
- break;
- } /* end of switch( aTextType ) */
-
- return aResult;
- }
-
- ::com::sun::star::accessibility::TextSegment SAL_CALL AccessibleEditableTextPara::getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::getTextBehindIndex: paragraph index value overflow");
-
- ::com::sun::star::accessibility::TextSegment aResult;
- aResult.SegmentStart = -1;
- aResult.SegmentEnd = -1;
-
- switch( aTextType )
- {
- case AccessibleTextType::ATTRIBUTE_RUN:
- {
- USHORT nStartIndex, nEndIndex;
-
- if( GetAttributeRun(nStartIndex, nEndIndex, nIndex) )
- {
- // already at the right border?
- if( nEndIndex < GetTextLen() )
- {
- if( GetAttributeRun(nStartIndex, nEndIndex, nEndIndex) )
- {
- aResult.SegmentText = GetTextRange(nStartIndex, nEndIndex);
- aResult.SegmentStart = nStartIndex;
- aResult.SegmentEnd = nEndIndex;
- }
- }
- }
- break;
- }
-
- default:
- aResult = OCommonAccessibleText::getTextBehindIndex( nIndex, aTextType );
- break;
- } /* end of switch( aTextType ) */
-
- return aResult;
- }
-
- sal_Bool SAL_CALL AccessibleEditableTextPara::copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- try
- {
- SvxEditViewForwarder& rCacheVF = GetEditViewForwarder( sal_True );
- #if OSL_DEBUG_LEVEL > 0
- SvxAccessibleTextAdapter& rCacheTF = GetTextForwarder(); // MUST be after GetEditViewForwarder(), see method docs
- (void)rCacheTF;
- #else
- GetTextForwarder(); // MUST be after GetEditViewForwarder(), see method docs
- #endif
-
- sal_Bool aRetVal;
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::copyText: index value overflow");
-
- CheckRange(nStartIndex, nEndIndex);
-
- // save current selection
- ESelection aOldSelection;
-
- rCacheVF.GetSelection( aOldSelection );
- rCacheVF.SetSelection( MakeSelection(nStartIndex, nEndIndex) );
- aRetVal = rCacheVF.Copy();
- rCacheVF.SetSelection( aOldSelection ); // restore
-
- return aRetVal;
- }
- catch( const uno::RuntimeException& )
- {
- return sal_False;
- }
- }
-
- // XAccessibleEditableText
- sal_Bool SAL_CALL AccessibleEditableTextPara::cutText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- try
- {
- SvxEditViewForwarder& rCacheVF = GetEditViewForwarder( sal_True );
- SvxAccessibleTextAdapter& rCacheTF = GetTextForwarder(); // MUST be after GetEditViewForwarder(), see method docs
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::cutText: index value overflow");
-
- CheckRange(nStartIndex, nEndIndex);
-
- if( !rCacheTF.IsEditable( MakeSelection(nStartIndex, nEndIndex) ) )
- return sal_False; // non-editable area selected
-
- // don't save selection, might become invalid after cut!
- rCacheVF.SetSelection( MakeSelection(nStartIndex, nEndIndex) );
-
- return rCacheVF.Cut();
- }
- catch( const uno::RuntimeException& )
- {
- return sal_False;
- }
- }
-
- sal_Bool SAL_CALL AccessibleEditableTextPara::pasteText( sal_Int32 nIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- try
- {
- SvxEditViewForwarder& rCacheVF = GetEditViewForwarder( sal_True );
- SvxAccessibleTextAdapter& rCacheTF = GetTextForwarder(); // MUST be after GetEditViewForwarder(), see method docs
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::pasteText: index value overflow");
-
- CheckPosition(nIndex);
-
- if( !rCacheTF.IsEditable( MakeSelection(nIndex) ) )
- return sal_False; // non-editable area selected
-
- // #104400# set empty selection (=> cursor) to given index
- rCacheVF.SetSelection( MakeCursor(nIndex) );
-
- return rCacheVF.Paste();
- }
- catch( const uno::RuntimeException& )
- {
- return sal_False;
- }
- }
-
- sal_Bool SAL_CALL AccessibleEditableTextPara::deleteText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- try
- {
- // #102710# Request edit view when doing changes
- // AccessibleEmptyEditSource relies on this behaviour
- GetEditViewForwarder( sal_True );
- SvxAccessibleTextAdapter& rCacheTF = GetTextForwarder(); // MUST be after GetEditViewForwarder(), see method docs
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::deleteText: index value overflow");
-
- CheckRange(nStartIndex, nEndIndex);
-
- if( !rCacheTF.IsEditable( MakeSelection(nStartIndex, nEndIndex) ) )
- return sal_False; // non-editable area selected
-
- sal_Bool bRet = rCacheTF.Delete( MakeSelection(nStartIndex, nEndIndex) );
-
- GetEditSource().UpdateData();
-
- return bRet;
- }
- catch( const uno::RuntimeException& )
- {
- return sal_False;
- }
- }
-
- sal_Bool SAL_CALL AccessibleEditableTextPara::insertText( const ::rtl::OUString& sText, sal_Int32 nIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- try
- {
- // #102710# Request edit view when doing changes
- // AccessibleEmptyEditSource relies on this behaviour
- GetEditViewForwarder( sal_True );
- SvxAccessibleTextAdapter& rCacheTF = GetTextForwarder(); // MUST be after GetEditViewForwarder(), see method docs
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::insertText: index value overflow");
-
- CheckPosition(nIndex);
-
- if( !rCacheTF.IsEditable( MakeSelection(nIndex) ) )
- return sal_False; // non-editable area selected
-
- // #104400# insert given text at empty selection (=> cursor)
- sal_Bool bRet = rCacheTF.InsertText( sText, MakeCursor(nIndex) );
-
- rCacheTF.QuickFormatDoc();
- GetEditSource().UpdateData();
-
- return bRet;
- }
- catch( const uno::RuntimeException& )
- {
- return sal_False;
- }
- }
-
- sal_Bool SAL_CALL AccessibleEditableTextPara::replaceText( sal_Int32 nStartIndex, sal_Int32 nEndIndex, const ::rtl::OUString& sReplacement ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- try
- {
- // #102710# Request edit view when doing changes
- // AccessibleEmptyEditSource relies on this behaviour
- GetEditViewForwarder( sal_True );
- SvxAccessibleTextAdapter& rCacheTF = GetTextForwarder(); // MUST be after GetEditViewForwarder(), see method docs
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::replaceText: index value overflow");
-
- CheckRange(nStartIndex, nEndIndex);
-
- if( !rCacheTF.IsEditable( MakeSelection(nStartIndex, nEndIndex) ) )
- return sal_False; // non-editable area selected
-
- // insert given text into given range => replace
- sal_Bool bRet = rCacheTF.InsertText( sReplacement, MakeSelection(nStartIndex, nEndIndex) );
-
- rCacheTF.QuickFormatDoc();
- GetEditSource().UpdateData();
-
- return bRet;
- }
- catch( const uno::RuntimeException& )
- {
- return sal_False;
- }
- }
-
- sal_Bool SAL_CALL AccessibleEditableTextPara::setAttributes( sal_Int32 nStartIndex, sal_Int32 nEndIndex, const uno::Sequence< beans::PropertyValue >& aAttributeSet ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- try
- {
- // #102710# Request edit view when doing changes
- // AccessibleEmptyEditSource relies on this behaviour
- GetEditViewForwarder( sal_True );
- SvxAccessibleTextAdapter& rCacheTF = GetTextForwarder(); // MUST be after GetEditViewForwarder(), see method docs
- USHORT nPara = static_cast< USHORT >( GetParagraphIndex() );
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::setAttributes: index value overflow");
-
- CheckRange(nStartIndex, nEndIndex);
-
- if( !rCacheTF.IsEditable( MakeSelection(nStartIndex, nEndIndex) ) )
- return sal_False; // non-editable area selected
-
- // do the indices span the whole paragraph? Then use the outliner map
- // TODO: hold it as a member?
- SvxAccessibleTextPropertySet aPropSet( &GetEditSource(),
- 0 == nStartIndex &&
- rCacheTF.GetTextLen(nPara) == nEndIndex ?
- ImplGetSvxUnoOutlinerTextCursorSvxPropertySet() :
- ImplGetSvxTextPortionSvxPropertySet() );
-
- aPropSet.SetSelection( MakeSelection(nStartIndex, nEndIndex) );
-
- // convert from PropertyValue to Any
- sal_Int32 i, nLength( aAttributeSet.getLength() );
- const beans::PropertyValue* pPropArray = aAttributeSet.getConstArray();
- for(i=0; i<nLength; ++i)
- {
- try
- {
- aPropSet.setPropertyValue(pPropArray->Name, pPropArray->Value);
- }
- catch( const uno::Exception& )
- {
- DBG_ERROR("AccessibleEditableTextPara::setAttributes exception in setPropertyValue");
- }
-
- ++pPropArray;
- }
-
- rCacheTF.QuickFormatDoc();
- GetEditSource().UpdateData();
-
- return sal_True;
- }
- catch( const uno::RuntimeException& )
- {
- return sal_False;
- }
- }
-
- sal_Bool SAL_CALL AccessibleEditableTextPara::setText( const ::rtl::OUString& sText ) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- return replaceText(0, getCharacterCount(), sText);
- }
-
- // XAccessibleTextAttributes
- uno::Sequence< beans::PropertyValue > SAL_CALL AccessibleEditableTextPara::getDefaultAttributes(
- const uno::Sequence< ::rtl::OUString >& rRequestedAttributes )
- throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- #if OSL_DEBUG_LEVEL > 0
- SvxAccessibleTextAdapter& rCacheTF =
- #endif
- GetTextForwarder();
-
- #if OSL_DEBUG_LEVEL > 0
- (void)rCacheTF;
- #endif
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::getCharacterAttributes: index value overflow");
-
- // get XPropertySetInfo for paragraph attributes and
- // character attributes that span all the paragraphs text.
- SvxAccessibleTextPropertySet aPropSet( &GetEditSource(),
- ImplGetSvxCharAndParaPropertiesSet() );
- aPropSet.SetSelection( MakeSelection( 0, GetTextLen() ) );
- uno::Reference< beans::XPropertySetInfo > xPropSetInfo = aPropSet.getPropertySetInfo();
- if (!xPropSetInfo.is())
- throw uno::RuntimeException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Cannot query XPropertySetInfo")),
- uno::Reference< uno::XInterface >
- ( static_cast< XAccessible* > (this) ) ); // disambiguate hierarchy
-
- // build sequence of available properties to check
- sal_Int32 nLenReqAttr = rRequestedAttributes.getLength();
- uno::Sequence< beans::Property > aProperties;
- if (nLenReqAttr)
- {
- const rtl::OUString *pRequestedAttributes = rRequestedAttributes.getConstArray();
-
- aProperties.realloc( nLenReqAttr );
- beans::Property *pProperties = aProperties.getArray();
- sal_Int32 nCurLen = 0;
- for (sal_Int32 i = 0; i < nLenReqAttr; ++i)
- {
- beans::Property aProp;
- try
- {
- aProp = xPropSetInfo->getPropertyByName( pRequestedAttributes[i] );
- }
- catch (beans::UnknownPropertyException &)
- {
- continue;
- }
- pProperties[ nCurLen++ ] = aProp;
- }
- aProperties.realloc( nCurLen );
- }
- else
- aProperties = xPropSetInfo->getProperties();
-
- sal_Int32 nLength = aProperties.getLength();
- const beans::Property *pProperties = aProperties.getConstArray();
-
- // build resulting sequence
- uno::Sequence< beans::PropertyValue > aOutSequence( nLength );
- beans::PropertyValue* pOutSequence = aOutSequence.getArray();
- sal_Int32 nOutLen = 0;
- for (sal_Int32 i = 0; i < nLength; ++i)
- {
- // calling implementation functions:
- // _getPropertyState and _getPropertyValue (see below) to provide
- // the proper paragraph number when retrieving paragraph attributes
- PropertyState eState = aPropSet._getPropertyState( pProperties->Name, mnParagraphIndex );
- if ( eState == PropertyState_AMBIGUOUS_VALUE )
- {
- OSL_ENSURE( false, "ambiguous property value encountered" );
- }
-
- //if (eState == PropertyState_DIRECT_VALUE)
- // per definition all paragraph properties and all character
- // properties spanning the whole paragraph should be returned
- // and declared as default value
- {
- pOutSequence->Name = pProperties->Name;
- pOutSequence->Handle = pProperties->Handle;
- pOutSequence->Value = aPropSet._getPropertyValue( pProperties->Name, mnParagraphIndex );
- pOutSequence->State = PropertyState_DEFAULT_VALUE;
-
- ++pOutSequence;
- ++nOutLen;
- }
- ++pProperties;
- }
- aOutSequence.realloc( nOutLen );
-
- return aOutSequence;
- }
-
-
- uno::Sequence< beans::PropertyValue > SAL_CALL AccessibleEditableTextPara::getRunAttributes(
- sal_Int32 nIndex,
- const uno::Sequence< ::rtl::OUString >& rRequestedAttributes )
- throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- #if OSL_DEBUG_LEVEL > 0
- SvxAccessibleTextAdapter& rCacheTF =
- #endif
- GetTextForwarder();
-
- #if OSL_DEBUG_LEVEL > 0
- (void)rCacheTF;
- #endif
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::getCharacterAttributes: index value overflow");
-
- CheckIndex(nIndex);
-
- SvxAccessibleTextPropertySet aPropSet( &GetEditSource(),
- ImplGetSvxCharAndParaPropertiesSet() );
- aPropSet.SetSelection( MakeSelection( nIndex ) );
- uno::Reference< beans::XPropertySetInfo > xPropSetInfo = aPropSet.getPropertySetInfo();
- if (!xPropSetInfo.is())
- throw uno::RuntimeException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Cannot query XPropertySetInfo")),
- uno::Reference< uno::XInterface >
- ( static_cast< XAccessible* > (this) ) ); // disambiguate hierarchy
-
- // build sequence of available properties to check
- sal_Int32 nLenReqAttr = rRequestedAttributes.getLength();
- uno::Sequence< beans::Property > aProperties;
- if (nLenReqAttr)
- {
- const rtl::OUString *pRequestedAttributes = rRequestedAttributes.getConstArray();
-
- aProperties.realloc( nLenReqAttr );
- beans::Property *pProperties = aProperties.getArray();
- sal_Int32 nCurLen = 0;
- for (sal_Int32 i = 0; i < nLenReqAttr; ++i)
- {
- beans::Property aProp;
- try
- {
- aProp = xPropSetInfo->getPropertyByName( pRequestedAttributes[i] );
- }
- catch (beans::UnknownPropertyException &)
- {
- continue;
- }
- pProperties[ nCurLen++ ] = aProp;
- }
- aProperties.realloc( nCurLen );
- }
- else
- aProperties = xPropSetInfo->getProperties();
-
- sal_Int32 nLength = aProperties.getLength();
- const beans::Property *pProperties = aProperties.getConstArray();
-
- // build resulting sequence
- uno::Sequence< beans::PropertyValue > aOutSequence( nLength );
- beans::PropertyValue* pOutSequence = aOutSequence.getArray();
- sal_Int32 nOutLen = 0;
- for (sal_Int32 i = 0; i < nLength; ++i)
- {
- // calling 'regular' functions that will operate on the selection
- PropertyState eState = aPropSet.getPropertyState( pProperties->Name );
- if (eState == PropertyState_DIRECT_VALUE)
- {
- pOutSequence->Name = pProperties->Name;
- pOutSequence->Handle = pProperties->Handle;
- pOutSequence->Value = aPropSet.getPropertyValue( pProperties->Name );
- pOutSequence->State = eState;
-
- ++pOutSequence;
- ++nOutLen;
- }
- ++pProperties;
- }
- aOutSequence.realloc( nOutLen );
-
- return aOutSequence;
- }
-
- // XAccessibleMultiLineText
- sal_Int32 SAL_CALL AccessibleEditableTextPara::getLineNumberAtIndex( sal_Int32 nIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- sal_Int32 nRes = -1;
- sal_Int32 nPara = GetParagraphIndex();
-
- SvxTextForwarder &rCacheTF = GetTextForwarder();
- const bool bValidPara = 0 <= nPara && nPara < rCacheTF.GetParagraphCount();
- DBG_ASSERT( bValidPara, "getLineNumberAtIndex: current paragraph index out of range" );
- if (bValidPara)
- {
- // we explicitly allow for the index to point at the character right behind the text
- if (0 <= nIndex && nIndex <= rCacheTF.GetTextLen( static_cast< USHORT >(nPara) ))
- nRes = rCacheTF.GetLineNumberAtIndex( static_cast< USHORT >(nPara), static_cast< USHORT >(nIndex) );
- else
- throw lang::IndexOutOfBoundsException();
- }
- return nRes;
- }
-
- // XAccessibleMultiLineText
- ::com::sun::star::accessibility::TextSegment SAL_CALL AccessibleEditableTextPara::getTextAtLineNumber( sal_Int32 nLineNo ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::com::sun::star::accessibility::TextSegment aResult;
- sal_Int32 nPara = GetParagraphIndex();
- SvxTextForwarder &rCacheTF = GetTextForwarder();
- const bool bValidPara = 0 <= nPara && nPara < rCacheTF.GetParagraphCount();
- DBG_ASSERT( bValidPara, "getTextAtLineNumber: current paragraph index out of range" );
- if (bValidPara)
- {
- if (0 <= nLineNo && nLineNo < rCacheTF.GetLineCount( static_cast< USHORT >(nPara) ))
- {
- USHORT nStart = 0, nEnd = 0;
- rCacheTF.GetLineBoundaries( nStart, nEnd, static_cast< USHORT >(nPara), static_cast< USHORT >(nLineNo) );
- if (nStart != 0xFFFF && nEnd != 0xFFFF)
- {
- try
- {
- aResult.SegmentText = getTextRange( nStart, nEnd );
- aResult.SegmentStart = nStart;
- aResult.SegmentEnd = nEnd;
- }
- catch (lang::IndexOutOfBoundsException)
- {
- // this is not the exception that should be raised in this function ...
- DBG_ASSERT( 0, "unexpected exception" );
- }
- }
- }
- else
- throw lang::IndexOutOfBoundsException();
- }
- return aResult;
- }
-
- // XAccessibleMultiLineText
- ::com::sun::star::accessibility::TextSegment SAL_CALL AccessibleEditableTextPara::getTextAtLineWithCaret( ) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- ::com::sun::star::accessibility::TextSegment aResult;
- try
- {
- aResult = getTextAtLineNumber( getNumberOfLineWithCaret() );
- }
- catch (lang::IndexOutOfBoundsException &)
- {
- // this one needs to be catched since this interface does not allow for it.
- }
- return aResult;
- }
-
- // XAccessibleMultiLineText
- sal_Int32 SAL_CALL AccessibleEditableTextPara::getNumberOfLineWithCaret( ) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- sal_Int32 nRes = -1;
- try
- {
- nRes = getLineNumberAtIndex( getCaretPosition() );
- }
- catch (lang::IndexOutOfBoundsException &)
- {
- // this one needs to be catched since this interface does not allow for it.
- }
- return nRes;
- }
-
-
- // XServiceInfo
- ::rtl::OUString SAL_CALL AccessibleEditableTextPara::getImplementationName (void) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM ("AccessibleEditableTextPara"));
- }
-
- sal_Bool SAL_CALL AccessibleEditableTextPara::supportsService (const ::rtl::OUString& sServiceName) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- // Iterate over all supported service names and return true if on of them
- // matches the given name.
- uno::Sequence< ::rtl::OUString> aSupportedServices (
- getSupportedServiceNames ());
- for (int i=0; i<aSupportedServices.getLength(); i++)
- if (sServiceName == aSupportedServices[i])
- return sal_True;
- return sal_False;
- }
-
- uno::Sequence< ::rtl::OUString> SAL_CALL AccessibleEditableTextPara::getSupportedServiceNames (void) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- const ::rtl::OUString sServiceName( getServiceName() );
- return uno::Sequence< ::rtl::OUString > (&sServiceName, 1);
- }
-
- // XServiceName
- ::rtl::OUString SAL_CALL AccessibleEditableTextPara::getServiceName (void) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleEditableTextPara, NULL );
-
- // #105185# Using correct service now
- return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.text.AccessibleParagraphView"));
- }
-
-} // end of namespace accessibility
-
-//------------------------------------------------------------------------
diff --git a/svx/source/accessibility/AccessibleEditableTextPara.hxx b/svx/source/accessibility/AccessibleEditableTextPara.hxx
deleted file mode 100644
index 4e297f44c3b5..000000000000
--- a/svx/source/accessibility/AccessibleEditableTextPara.hxx
+++ /dev/null
@@ -1,414 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: AccessibleEditableTextPara.hxx,v $
- * $Revision: 1.22 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SVX_ACCESSIBLE_EDITABLE_TEXT_PARA_HXX
-#define _SVX_ACCESSIBLE_EDITABLE_TEXT_PARA_HXX
-
-#include <tools/gen.hxx>
-#include <tools/string.hxx>
-#include <cppuhelper/weakref.hxx>
-#include <cppuhelper/compbase8.hxx>
-#include <cppuhelper/typeprovider.hxx>
-#include <cppuhelper/interfacecontainer.hxx>
-
-#include <com/sun/star/uno/Reference.hxx>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/accessibility/XAccessible.hpp>
-#include <com/sun/star/accessibility/XAccessibleContext.hpp>
-#include <com/sun/star/accessibility/XAccessibleComponent.hpp>
-#include <com/sun/star/accessibility/XAccessibleEditableText.hpp>
-#include <com/sun/star/accessibility/XAccessibleTextAttributes.hpp>
-#include <com/sun/star/accessibility/XAccessibleMultiLineText.hpp>
-
-#include <comphelper/accessibletexthelper.hxx>
-#include <comphelper/broadcasthelper.hxx>
-#include "AccessibleParaManager.hxx"
-#include "AccessibleImageBullet.hxx"
-#include "unoedprx.hxx"
-
-namespace accessibility
-{
- typedef ::cppu::WeakComponentImplHelper8< ::com::sun::star::accessibility::XAccessible,
- ::com::sun::star::accessibility::XAccessibleContext,
- ::com::sun::star::accessibility::XAccessibleComponent,
- ::com::sun::star::accessibility::XAccessibleEditableText,
- ::com::sun::star::accessibility::XAccessibleEventBroadcaster,
- ::com::sun::star::accessibility::XAccessibleTextAttributes,
- ::com::sun::star::accessibility::XAccessibleMultiLineText,
- ::com::sun::star::lang::XServiceInfo > AccessibleTextParaInterfaceBase;
-
- /** This class implements the actual text paragraphs for the EditEngine/Outliner UAA
- */
- class AccessibleEditableTextPara : public ::comphelper::OBaseMutex, public AccessibleTextParaInterfaceBase, public ::comphelper::OCommonAccessibleText
- {
-
- protected:
- // override OCommonAccessibleText methods
- virtual ::rtl::OUString implGetText();
- virtual ::com::sun::star::lang::Locale implGetLocale();
- virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex );
- virtual void implGetParagraphBoundary( ::com::sun::star::i18n::Boundary& rBoundary, sal_Int32 nIndex );
- virtual void implGetLineBoundary( ::com::sun::star::i18n::Boundary& rBoundary, sal_Int32 nIndex );
-
- public:
- /// Create accessible object for given parent
- // --> OD 2006-01-11 #i27138#
- // - add parameter <_pParaManager> (default value NULL)
- // This has to be the the instance of <AccessibleParaManager>, which
- // created and manages this accessible paragraph.
- AccessibleEditableTextPara ( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rParent,
- const AccessibleParaManager* _pParaManager = NULL );
- // <--
-
- virtual ~AccessibleEditableTextPara ();
-
- // XInterface
- virtual ::com::sun::star::uno::Any SAL_CALL queryInterface (const ::com::sun::star::uno::Type & rType) throw (::com::sun::star::uno::RuntimeException);
-
- // XComponent
-
- using WeakComponentImplHelperBase::addEventListener;
- using WeakComponentImplHelperBase::removeEventListener;
-
- // XAccessible
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) throw (::com::sun::star::uno::RuntimeException);
-
- // XAccessibleContext
- virtual sal_Int32 SAL_CALL getAccessibleChildCount() throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent() throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Int32 SAL_CALL getAccessibleIndexInParent() throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Int16 SAL_CALL getAccessibleRole() throw (::com::sun::star::uno::RuntimeException);
- /// Maximal length of text returned by getAccessibleDescription()
- enum { MaxDescriptionLen = 40 };
- virtual ::rtl::OUString SAL_CALL getAccessibleDescription() throw (::com::sun::star::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL getAccessibleName() throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet() throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet() throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::lang::Locale SAL_CALL getLocale() throw (::com::sun::star::accessibility::IllegalAccessibleComponentStateException, ::com::sun::star::uno::RuntimeException);
-
- // XAccessibleEventBroadcaster
- virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
-
- // XAccessibleComponent
- virtual sal_Bool SAL_CALL containsPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::awt::Rectangle SAL_CALL getBounds( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::awt::Point SAL_CALL getLocation( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::awt::Size SAL_CALL getSize( ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL grabFocus( ) throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Int32 SAL_CALL getForeground( ) throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Int32 SAL_CALL getBackground( ) throw (::com::sun::star::uno::RuntimeException);
-
- // XAccessibleText (this comes implicitely inherited by XAccessibleEditableText AND by XAccessibleMultiLineText)
- virtual sal_Int32 SAL_CALL getCaretPosition() throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
- virtual sal_Unicode SAL_CALL getCharacter( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRequestedAttributes ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
- virtual sal_Int32 SAL_CALL getCharacterCount() throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Int32 SAL_CALL getIndexAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL getSelectedText() throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Int32 SAL_CALL getSelectionStart() throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Int32 SAL_CALL getSelectionEnd() throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL getText() throw (::com::sun::star::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
- /// Does not support AccessibleTextType::SENTENCE (missing feature in EditEngine)
- virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- /// Does not support AccessibleTextType::SENTENCE (missing feature in EditEngine)
- virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- /// Does not support AccessibleTextType::SENTENCE (missing feature in EditEngine)
- virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
-
- // XAccessibleEditableText
- virtual sal_Bool SAL_CALL cutText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL pasteText( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL deleteText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL insertText( const ::rtl::OUString& sText, sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL replaceText( sal_Int32 nStartIndex, sal_Int32 nEndIndex, const ::rtl::OUString& sReplacement ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL setAttributes( sal_Int32 nStartIndex, sal_Int32 nEndIndex, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aAttributeSet ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL setText( const ::rtl::OUString& sText ) throw (::com::sun::star::uno::RuntimeException);
-
- // XAccessibleTextAttributes
- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL getDefaultAttributes( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& RequestedAttributes ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL getRunAttributes( ::sal_Int32 Index, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& RequestedAttributes ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
-
- // XAccessibleMultiLineText
- virtual ::sal_Int32 SAL_CALL getLineNumberAtIndex( ::sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextAtLineNumber( ::sal_Int32 nLineNo ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextAtLineWithCaret( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::sal_Int32 SAL_CALL getNumberOfLineWithCaret( ) throw (::com::sun::star::uno::RuntimeException);
-
- // XServiceInfo
- virtual ::rtl::OUString SAL_CALL getImplementationName (void) throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL supportsService (const ::rtl::OUString& sServiceName) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< ::rtl::OUString> SAL_CALL getSupportedServiceNames (void) throw (::com::sun::star::uno::RuntimeException);
-
- // XServiceName
- virtual ::rtl::OUString SAL_CALL getServiceName (void) throw (::com::sun::star::uno::RuntimeException);
-
- /** Set the current index in the accessibility parent
-
- @attention This method does not lock the SolarMutex,
- leaving that to the calling code. This is because only
- there potential deadlock situations can be resolved. Thus,
- make sure SolarMutex is locked when calling this.
- */
- void SetIndexInParent( sal_Int32 nIndex );
-
- /** Get the current index in the accessibility parent
-
- @attention This method does not lock the SolarMutex,
- leaving that to the calling code. This is because only
- there potential deadlock situations can be resolved. Thus,
- make sure SolarMutex is locked when calling this.
- */
- sal_Int32 GetIndexInParent() const;
-
- /** Set the current paragraph number
-
- @attention This method does not lock the SolarMutex,
- leaving that to the calling code. This is because only
- there potential deadlock situations can be resolved. Thus,
- make sure SolarMutex is locked when calling this.
- */
- void SetParagraphIndex( sal_Int32 nIndex );
-
- /** Query the current paragraph number (0 - nParas-1)
-
- @attention This method does not lock the SolarMutex,
- leaving that to the calling code. This is because only
- there potential deadlock situations can be resolved. Thus,
- make sure SolarMutex is locked when calling this.
- */
- sal_Int32 GetParagraphIndex() const SAL_THROW((::com::sun::star::uno::RuntimeException));
-
- /** Set the edit engine offset
-
- @attention This method does not lock the SolarMutex,
- leaving that to the calling code. This is because only
- there potential deadlock situations can be resolved. Thus,
- make sure SolarMutex is locked when calling this.
- */
- void SetEEOffset( const Point& rOffset );
-
- /** Set the EditEngine offset
-
- @attention This method does not lock the SolarMutex,
- leaving that to the calling code. This is because only
- there potential deadlock situations can be resolved. Thus,
- make sure SolarMutex is locked when calling this.
- */
- void SetEditSource( SvxEditSourceAdapter* pEditSource );
-
- /** Dispose this object
-
- Notifies and deregisters the listeners, drops all references.
- */
- void Dispose();
-
- /// Calls all Listener objects to tell them the change. Don't hold locks when calling this!
- virtual void FireEvent(const sal_Int16 nEventId, const ::com::sun::star::uno::Any& rNewValue = ::com::sun::star::uno::Any(), const ::com::sun::star::uno::Any& rOldValue = ::com::sun::star::uno::Any() ) const;
-
- /// Queries the given state on the internal state set
- bool HasState( const sal_Int16 nStateId );
- /// Sets the given state on the internal state set and fires STATE_CHANGE event. Don't hold locks when calling this!
- void SetState( const sal_Int16 nStateId );
- /// Unsets the given state on the internal state set and fires STATE_CHANGE event. Don't hold locks when calling this!
- void UnSetState( const sal_Int16 nStateId );
-
- static Rectangle LogicToPixel( const Rectangle& rRect, const MapMode& rMapMode, SvxViewForwarder& rForwarder );
-
- SvxEditSourceAdapter& GetEditSource() const SAL_THROW((::com::sun::star::uno::RuntimeException));
-
- /** Query the SvxTextForwarder for EditEngine access.
-
- @attention This method does not lock the SolarMutex,
- leaving that to the calling code. This is because only
- there potential deadlock situations can be resolved. Thus,
- make sure SolarMutex is locked when calling this.
- */
- SvxAccessibleTextAdapter& GetTextForwarder() const SAL_THROW((::com::sun::star::uno::RuntimeException));
-
- /** Query the SvxViewForwarder for EditEngine access.
-
- @attention This method does not lock the SolarMutex,
- leaving that to the calling code. This is because only
- there potential deadlock situations can be resolved. Thus,
- make sure SolarMutex is locked when calling this.
- */
- SvxViewForwarder& GetViewForwarder() const SAL_THROW((::com::sun::star::uno::RuntimeException));
-
- /** Query whether a GetEditViewForwarder( sal_False ) will return a forwarder
-
- @attention This method does not lock the SolarMutex,
- leaving that to the calling code. This is because only
- there potential deadlock situations can be resolved. Thus,
- make sure SolarMutex is locked when calling this.
- */
- sal_Bool HaveEditView() const;
-
- /** Query the SvxEditViewForwarder for EditEngine access.
-
- @attention This method does not lock the SolarMutex,
- leaving that to the calling code. This is because only
- there potential deadlock situations can be resolved. Thus,
- make sure SolarMutex is locked when calling this.
- */
- SvxAccessibleTextEditViewAdapter& GetEditViewForwarder( sal_Bool bCreate = sal_False ) const SAL_THROW((::com::sun::star::uno::RuntimeException));
-
- /** Send a TEXT_CHANGED event for this paragraph
-
- This method internally caters for calculating text
- differences, and sends the appropriate Anys in the
- Accessibility::TEXT_CHANGED event
- */
- void TextChanged();
-
- private:
-
- // declared, but not defined
- AccessibleEditableTextPara( const AccessibleEditableTextPara& );
- AccessibleEditableTextPara& operator= ( const AccessibleEditableTextPara& );
-
- /** Calculate character range of similar attributes
-
- @param nStartIndex
- Therein, the start of the character range with the same attributes is returned
-
- @param nEndIndex
- Therein, the end (exclusively) of the character range with the same attributes is returned
-
- @param nIndex
- The character index at where to look for similar character attributes
-
- @return sal_False, if the method was not able to determine the range
- */
- sal_Bool GetAttributeRun( USHORT& nStartIndex, USHORT& nEndIndex, sal_Int32 nIndex );
-
- // syntactic sugar for FireEvent
- void GotPropertyEvent( const ::com::sun::star::uno::Any& rNewValue, const sal_Int16 nEventId ) const;
- void LostPropertyEvent( const ::com::sun::star::uno::Any& rOldValue, const sal_Int16 nEventId ) const;
-
- /** Query the visibility state
-
- @attention This method does not lock the SolarMutex,
- leaving that to the calling code. This is because only
- there potential deadlock situations can be resolved. Thus,
- make sure SolarMutex is locked when calling this.
-
- @return the visibility state. Per definition, a defunc object is no longer visible
- */
- sal_Bool IsVisible() const;
-
- int getNotifierClientId() const;
-
- // retrieve text interface for given paragraph index
- ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleText > GetParaInterface( sal_Int32 nIndex );
-
- /// Do we have children? This is the case for image bullets
- sal_Bool HaveChildren();
-
- /// Is the underlying object in edit mode
- sal_Bool IsActive() const SAL_THROW((::com::sun::star::uno::RuntimeException));
-
- const Point& GetEEOffset() const;
-
- // Get text from forwarder
- String GetText( sal_Int32 nIndex ) SAL_THROW((::com::sun::star::uno::RuntimeException));
- String GetTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) SAL_THROW((::com::sun::star::uno::RuntimeException));
- USHORT GetTextLen() const SAL_THROW((::com::sun::star::uno::RuntimeException));
-
- /** Get the current selection of this paragraph
-
- @return sal_False, if nothing in this paragraph is selected
- */
- sal_Bool GetSelection( USHORT& nStartPos, USHORT& nEndPos ) SAL_THROW((::com::sun::star::uno::RuntimeException));
-
- /** create selection from Accessible selection.
-
- */
- ESelection MakeSelection( sal_Int32 nStartEEIndex, sal_Int32 nEndEEIndex );
- ESelection MakeSelection( sal_Int32 nEEIndex );
- ESelection MakeCursor( sal_Int32 nEEIndex );
-
- // check whether index value is within permitted range
-
- /// Check whether 0<=nIndex<=n-1
- void CheckIndex( sal_Int32 nIndex ) SAL_THROW((::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException));
- /// Check whether 0<=nIndex<=n
- void CheckPosition( sal_Int32 nIndex ) SAL_THROW((::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException));
- /// Check whether 0<=nStart<=n and 0<=nEnd<=n
- void CheckRange( sal_Int32 nStart, sal_Int32 nEnd ) SAL_THROW((::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException));
-
- // the paragraph index in the edit engine (guarded by solar mutex)
- sal_Int32 mnParagraphIndex;
-
- // our current index in the parent (guarded by solar mutex)
- sal_Int32 mnIndexInParent;
-
- // the current edit source (guarded by solar mutex)
- SvxEditSourceAdapter* mpEditSource;
-
- // the possible child (for image bullets, guarded by solar mutex)
- typedef WeakCppRef < ::com::sun::star::accessibility::XAccessible, AccessibleImageBullet > WeakBullet;
- WeakBullet maImageBullet;
-
- // the last string used for an Accessibility::TEXT_CHANGED event (guarded by solar mutex)
- ::rtl::OUString maLastTextString;
-
- // the offset of the underlying EditEngine from the shape/cell (guarded by solar mutex)
- Point maEEOffset;
-
- // the current state set (updated from SetState/UnSetState and guarded by solar mutex)
- ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > mxStateSet;
-
- /// The shape we're the accessible for (unguarded)
- ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > mxParent;
-
- /// Our listeners (guarded by maMutex)
- int mnNotifierClientId;
-
- // --> OD 2006-01-11 #i27138#
- // the paragraph manager, which created this instance - is NULL, if
- // instance isn't created by AccessibleParaManager.
- // Needed for method <getAccessibleRelationSet()> to retrieve predecessor
- // paragraph and the successor paragraph.
- const AccessibleParaManager* mpParaManager;
- };
-
-} // end of namespace accessibility
-
-#endif
-
diff --git a/svx/source/accessibility/AccessibleEmptyEditSource.cxx b/svx/source/accessibility/AccessibleEmptyEditSource.cxx
index 8bfc618dfbd9..e498acd0bdef 100644
--- a/svx/source/accessibility/AccessibleEmptyEditSource.cxx
+++ b/svx/source/accessibility/AccessibleEmptyEditSource.cxx
@@ -2,13 +2,10 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2008 by Sun Microsystems, Inc.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: AccessibleEmptyEditSource.cxx,v $
- * $Revision: 1.12 $
- *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
@@ -37,8 +34,8 @@
//
//------------------------------------------------------------------------
#include <svl/itemset.hxx>
-#include <svx/editdata.hxx>
-#include <svx/outliner.hxx>
+#include <editeng/editdata.hxx>
+#include <editeng/outliner.hxx>
#include <svx/svdmodel.hxx>
#include <svx/svdobj.hxx>
#include <svx/svdpool.hxx>
diff --git a/svx/source/accessibility/AccessibleEmptyEditSource.hxx b/svx/source/accessibility/AccessibleEmptyEditSource.hxx
index d2b775321dfe..93ff0383eab1 100644
--- a/svx/source/accessibility/AccessibleEmptyEditSource.hxx
+++ b/svx/source/accessibility/AccessibleEmptyEditSource.hxx
@@ -2,13 +2,10 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2008 by Sun Microsystems, Inc.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: AccessibleEmptyEditSource.hxx,v $
- * $Revision: 1.5 $
- *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
@@ -35,7 +32,7 @@
#include <svl/lstner.hxx>
#include <memory>
-#include <svx/unoedsrc.hxx>
+#include <editeng/unoedsrc.hxx>
class SdrObject;
class SdrView;
diff --git a/svx/source/accessibility/AccessibleFrameSelector.cxx b/svx/source/accessibility/AccessibleFrameSelector.cxx
index 1eae76689e76..82c522e1b0ff 100644
--- a/svx/source/accessibility/AccessibleFrameSelector.cxx
+++ b/svx/source/accessibility/AccessibleFrameSelector.cxx
@@ -2,13 +2,10 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2008 by Sun Microsystems, Inc.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: AccessibleFrameSelector.cxx,v $
- * $Revision: 1.10 $
- *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
@@ -51,7 +48,7 @@
#include <vcl/svapp.hxx>
#include <svx/frmsel.hxx>
#include <svx/dialmgr.hxx>
-#include "unolingu.hxx"
+#include "editeng/unolingu.hxx"
#ifndef _SVX_DIALOGS_HRC
#include <svx/dialogs.hrc>
diff --git a/svx/source/accessibility/AccessibleGraphicShape.cxx b/svx/source/accessibility/AccessibleGraphicShape.cxx
index e7518f90b6ca..f4e7f7747dda 100644
--- a/svx/source/accessibility/AccessibleGraphicShape.cxx
+++ b/svx/source/accessibility/AccessibleGraphicShape.cxx
@@ -2,13 +2,10 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2008 by Sun Microsystems, Inc.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: AccessibleGraphicShape.cxx,v $
- * $Revision: 1.15 $
- *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
diff --git a/svx/source/accessibility/AccessibleImageBullet.cxx b/svx/source/accessibility/AccessibleImageBullet.cxx
deleted file mode 100644
index 694043d69f4e..000000000000
--- a/svx/source/accessibility/AccessibleImageBullet.cxx
+++ /dev/null
@@ -1,654 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: AccessibleImageBullet.cxx,v $
- * $Revision: 1.22 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svx.hxx"
-#include <tools/gen.hxx>
-#include <vos/mutex.hxx>
-#include <vcl/svapp.hxx>
-#include <rtl/ustring.hxx>
-#include <com/sun/star/awt/Point.hpp>
-#include <com/sun/star/awt/Rectangle.hpp>
-#include <com/sun/star/lang/DisposedException.hpp>
-#include <com/sun/star/accessibility/AccessibleRole.hpp>
-#include <com/sun/star/accessibility/AccessibleTextType.hpp>
-#include <com/sun/star/accessibility/AccessibleStateType.hpp>
-#include <com/sun/star/accessibility/AccessibleEventId.hpp>
-#include <comphelper/accessibleeventnotifier.hxx>
-#include <unotools/accessiblestatesethelper.hxx>
-#include "unolingu.hxx"
-#include "AccessibleEditableTextPara.hxx"
-#include "AccessibleImageBullet.hxx"
-#include <svx/dialmgr.hxx>
-
-#include <svx/editdata.hxx>
-#include <svx/editeng.hxx>
-#include <svx/outliner.hxx>
-#include "accessibility.hrc"
-#include <svtools/colorcfg.hxx>
-
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::accessibility;
-
-namespace accessibility
-{
- DBG_NAME( AccessibleImageBullet )
-
- AccessibleImageBullet::AccessibleImageBullet ( const uno::Reference< XAccessible >& rParent ) :
- mnParagraphIndex( 0 ),
- mnIndexInParent( 0 ),
- mpEditSource( NULL ),
- maEEOffset( 0, 0 ),
- mxParent( rParent ),
- // well, that's strictly (UNO) exception safe, though not
- // really robust. We rely on the fact that this member is
- // constructed last, and that the constructor body catches
- // exceptions, thus no chance for exceptions once the Id is
- // fetched. Nevertheless, normally should employ RAII here...
- mnNotifierClientId(::comphelper::AccessibleEventNotifier::registerClient())
- {
-#ifdef DBG_UTIL
- DBG_CTOR( AccessibleImageBullet, NULL );
- OSL_TRACE( "Received ID: %d", mnNotifierClientId );
-#endif
-
- try
- {
- // Create the state set.
- ::utl::AccessibleStateSetHelper* pStateSet = new ::utl::AccessibleStateSetHelper ();
- mxStateSet = pStateSet;
-
- // these are always on
- pStateSet->AddState( AccessibleStateType::VISIBLE );
- pStateSet->AddState( AccessibleStateType::SHOWING );
- pStateSet->AddState( AccessibleStateType::ENABLED );
- pStateSet->AddState( AccessibleStateType::SENSITIVE );
- }
- catch( const uno::Exception& ) {}
- }
-
- AccessibleImageBullet::~AccessibleImageBullet()
- {
- DBG_DTOR( AccessibleImageBullet, NULL );
-
- // sign off from event notifier
- if( getNotifierClientId() != -1 )
- {
- try
- {
- ::comphelper::AccessibleEventNotifier::revokeClient( getNotifierClientId() );
-#ifdef DBG_UTIL
- OSL_TRACE( "AccessibleImageBullet revoked ID: %d\n", mnNotifierClientId );
-#endif
- }
- catch( const uno::Exception& ) {}
- }
- }
-
- uno::Any SAL_CALL AccessibleImageBullet::queryInterface (const uno::Type & rType) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- return AccessibleImageBulletInterfaceBase::queryInterface(rType);
- }
-
- uno::Reference< XAccessibleContext > SAL_CALL AccessibleImageBullet::getAccessibleContext( ) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- // We implement the XAccessibleContext interface in the same object
- return uno::Reference< XAccessibleContext > ( this );
- }
-
- sal_Int32 SAL_CALL AccessibleImageBullet::getAccessibleChildCount() throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- return 0;
- }
-
- uno::Reference< XAccessible > SAL_CALL AccessibleImageBullet::getAccessibleChild( sal_Int32 i ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
- (void)i;
-
- throw lang::IndexOutOfBoundsException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("No childs available")),
- uno::Reference< uno::XInterface >
- ( static_cast< ::cppu::OWeakObject* > (this) ) ); // static_cast: disambiguate hierarchy
- }
-
- uno::Reference< XAccessible > SAL_CALL AccessibleImageBullet::getAccessibleParent() throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- return mxParent;
- }
-
- sal_Int32 SAL_CALL AccessibleImageBullet::getAccessibleIndexInParent() throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- return mnIndexInParent;
- }
-
- sal_Int16 SAL_CALL AccessibleImageBullet::getAccessibleRole() throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- return AccessibleRole::GRAPHIC;
- }
-
- ::rtl::OUString SAL_CALL AccessibleImageBullet::getAccessibleDescription() throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- // Get the string from the resource for the specified id.
- return ::rtl::OUString( SVX_RESSTR (RID_SVXSTR_A11Y_IMAGEBULLET_DESCRIPTION) );
- }
-
- ::rtl::OUString SAL_CALL AccessibleImageBullet::getAccessibleName() throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- // Get the string from the resource for the specified id.
- return ::rtl::OUString( SVX_RESSTR (RID_SVXSTR_A11Y_IMAGEBULLET_NAME) );
- }
-
- uno::Reference< XAccessibleRelationSet > SAL_CALL AccessibleImageBullet::getAccessibleRelationSet() throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- // no relations, therefore empty
- return uno::Reference< XAccessibleRelationSet >();
- }
-
- uno::Reference< XAccessibleStateSet > SAL_CALL AccessibleImageBullet::getAccessibleStateSet() throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- // Create a copy of the state set and return it.
- ::utl::AccessibleStateSetHelper* pStateSet = static_cast< ::utl::AccessibleStateSetHelper*>(mxStateSet.get());
-
- if( !pStateSet )
- return uno::Reference<XAccessibleStateSet>();
-
- return uno::Reference<XAccessibleStateSet>( new ::utl::AccessibleStateSetHelper (*pStateSet) );
- }
-
- lang::Locale SAL_CALL AccessibleImageBullet::getLocale() throw (IllegalAccessibleComponentStateException, uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- lang::Locale aLocale;
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleImageBullet::getLocale: paragraph index value overflow");
-
- // return locale of first character in the paragraph
- return SvxLanguageToLocale(aLocale, GetTextForwarder().GetLanguage( static_cast< USHORT >( GetParagraphIndex() ), 0 ));
- }
-
- void SAL_CALL AccessibleImageBullet::addEventListener( const uno::Reference< XAccessibleEventListener >& xListener ) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- if( getNotifierClientId() != -1 )
- ::comphelper::AccessibleEventNotifier::addEventListener( getNotifierClientId(), xListener );
- }
-
- void SAL_CALL AccessibleImageBullet::removeEventListener( const uno::Reference< XAccessibleEventListener >& xListener ) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- if( getNotifierClientId() != -1 )
- ::comphelper::AccessibleEventNotifier::removeEventListener( getNotifierClientId(), xListener );
- }
-
- sal_Bool SAL_CALL AccessibleImageBullet::containsPoint( const awt::Point& rPoint ) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::contains: index value overflow");
-
- awt::Rectangle aTmpRect = getBounds();
- Rectangle aRect( Point(aTmpRect.X, aTmpRect.Y), Size(aTmpRect.Width, aTmpRect.Height) );
- Point aPoint( rPoint.X, rPoint.Y );
-
- return aRect.IsInside( aPoint );
- }
-
- uno::Reference< XAccessible > SAL_CALL AccessibleImageBullet::getAccessibleAtPoint( const awt::Point& /*aPoint*/ ) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- // as we have no children, empty reference
- return uno::Reference< XAccessible >();
- }
-
- awt::Rectangle SAL_CALL AccessibleImageBullet::getBounds( ) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- DBG_ASSERT(GetParagraphIndex() >= 0 && GetParagraphIndex() <= USHRT_MAX,
- "AccessibleEditableTextPara::getBounds: index value overflow");
-
- SvxTextForwarder& rCacheTF = GetTextForwarder();
- EBulletInfo aBulletInfo = rCacheTF.GetBulletInfo( static_cast< USHORT > (GetParagraphIndex()) );
- Rectangle aParentRect = rCacheTF.GetParaBounds( static_cast< USHORT >( GetParagraphIndex() ) );
-
- if( aBulletInfo.nParagraph != EE_PARA_NOT_FOUND &&
- aBulletInfo.bVisible &&
- aBulletInfo.nType == SVX_NUM_BITMAP )
- {
- Rectangle aRect = aBulletInfo.aBounds;
-
- // subtract paragraph position (bullet pos is absolute in EditEngine/Outliner)
- aRect.Move( -aParentRect.Left(), -aParentRect.Top() );
-
- // convert to screen coordinates
- Rectangle aScreenRect = AccessibleEditableTextPara::LogicToPixel( aRect,
- rCacheTF.GetMapMode(),
- GetViewForwarder() );
-
- // offset from shape/cell
- Point aOffset = GetEEOffset();
-
- return awt::Rectangle( aScreenRect.Left() + aOffset.X(),
- aScreenRect.Top() + aOffset.Y(),
- aScreenRect.GetSize().Width(),
- aScreenRect.GetSize().Height() );
- }
-
- return awt::Rectangle();
- }
-
- awt::Point SAL_CALL AccessibleImageBullet::getLocation( ) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- awt::Rectangle aRect = getBounds();
-
- return awt::Point( aRect.X, aRect.Y );
- }
-
- awt::Point SAL_CALL AccessibleImageBullet::getLocationOnScreen( ) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- // relate us to parent
- uno::Reference< XAccessible > xParent = getAccessibleParent();
- if( xParent.is() )
- {
- uno::Reference< XAccessibleComponent > xParentComponent( xParent, uno::UNO_QUERY );
- if( xParentComponent.is() )
- {
- awt::Point aRefPoint = xParentComponent->getLocationOnScreen();
- awt::Point aPoint = getLocation();
- aPoint.X += aRefPoint.X;
- aPoint.Y += aRefPoint.Y;
-
- return aPoint;
- }
- }
-
- throw uno::RuntimeException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Cannot access parent")),
- uno::Reference< uno::XInterface >
- ( static_cast< XAccessible* > (this) ) ); // disambiguate hierarchy
- }
-
- awt::Size SAL_CALL AccessibleImageBullet::getSize( ) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- awt::Rectangle aRect = getBounds();
-
- return awt::Size( aRect.Width, aRect.Height );
- }
-
- void SAL_CALL AccessibleImageBullet::grabFocus( ) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- throw uno::RuntimeException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Not focusable")),
- uno::Reference< uno::XInterface >
- ( static_cast< XAccessible* > (this) ) ); // disambiguate hierarchy
- }
-
- sal_Int32 SAL_CALL AccessibleImageBullet::getForeground( ) throw (::com::sun::star::uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- // #104444# Added to XAccessibleComponent interface
- svtools::ColorConfig aColorConfig;
- UINT32 nColor = aColorConfig.GetColorValue( svtools::FONTCOLOR ).nColor;
- return static_cast<sal_Int32>(nColor);
- }
-
- sal_Int32 SAL_CALL AccessibleImageBullet::getBackground( ) throw (::com::sun::star::uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- // #104444# Added to XAccessibleComponent interface
- Color aColor( Application::GetSettings().GetStyleSettings().GetWindowColor().GetColor() );
-
- // the background is transparent
- aColor.SetTransparency( 0xFF);
-
- return static_cast<sal_Int32>( aColor.GetColor() );
- }
-
- ::rtl::OUString SAL_CALL AccessibleImageBullet::getImplementationName (void) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM ("AccessibleImageBullet"));
- }
-
- sal_Bool SAL_CALL AccessibleImageBullet::supportsService (const ::rtl::OUString& sServiceName) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- // Iterate over all supported service names and return true if on of them
- // matches the given name.
- uno::Sequence< ::rtl::OUString> aSupportedServices (
- getSupportedServiceNames ());
- for (int i=0; i<aSupportedServices.getLength(); i++)
- if (sServiceName == aSupportedServices[i])
- return sal_True;
- return sal_False;
- }
-
- uno::Sequence< ::rtl::OUString> SAL_CALL AccessibleImageBullet::getSupportedServiceNames (void) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- const ::rtl::OUString sServiceName (RTL_CONSTASCII_USTRINGPARAM ("com.sun.star.accessibility.AccessibleContext"));
- return uno::Sequence< ::rtl::OUString > (&sServiceName, 1);
- }
-
- ::rtl::OUString SAL_CALL AccessibleImageBullet::getServiceName (void) throw (uno::RuntimeException)
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.accessibility.AccessibleContext"));
- }
-
- void AccessibleImageBullet::SetIndexInParent( sal_Int32 nIndex )
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- mnIndexInParent = nIndex;
- }
-
- sal_Int32 AccessibleImageBullet::GetIndexInParent() const
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- return mnIndexInParent;
- }
-
- void AccessibleImageBullet::SetEEOffset( const Point& rOffset )
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- maEEOffset = rOffset;
- }
-
- void AccessibleImageBullet::Dispose()
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- int nClientId( getNotifierClientId() );
-
- // #108212# drop all references before notifying dispose
- mxParent = NULL;
- mnNotifierClientId = -1;
- mpEditSource = NULL;
-
- // notify listeners
- if( nClientId != -1 )
- {
- try
- {
- uno::Reference < XAccessibleContext > xThis = getAccessibleContext();
-
- // #106234# Delegate to EventNotifier
- ::comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing( nClientId, xThis );
-#ifdef DBG_UTIL
- OSL_TRACE( "AccessibleImageBullet disposed ID: %d", nClientId );
-#endif
- }
- catch( const uno::Exception& ) {}
- }
- }
-
- void AccessibleImageBullet::SetEditSource( SvxEditSource* pEditSource )
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- mpEditSource = pEditSource;
-
- if( !mpEditSource )
- {
- // going defunc
- UnSetState( AccessibleStateType::SHOWING );
- UnSetState( AccessibleStateType::VISIBLE );
- SetState( AccessibleStateType::INVALID );
- SetState( AccessibleStateType::DEFUNC );
-
- Dispose();
- }
- }
-
- void AccessibleImageBullet::FireEvent(const sal_Int16 nEventId, const uno::Any& rNewValue, const uno::Any& rOldValue ) const
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- uno::Reference < XAccessibleContext > xThis( const_cast< AccessibleImageBullet* > (this)->getAccessibleContext() );
-
- AccessibleEventObject aEvent(xThis, nEventId, rNewValue, rOldValue);
-
- // #106234# Delegate to EventNotifier
- ::comphelper::AccessibleEventNotifier::addEvent( getNotifierClientId(),
- aEvent );
- }
-
- void AccessibleImageBullet::GotPropertyEvent( const uno::Any& rNewValue, const sal_Int16 nEventId ) const
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- FireEvent( nEventId, rNewValue );
- }
-
- void AccessibleImageBullet::LostPropertyEvent( const uno::Any& rOldValue, const sal_Int16 nEventId ) const
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- FireEvent( nEventId, uno::Any(), rOldValue );
- }
-
- void AccessibleImageBullet::SetState( const sal_Int16 nStateId )
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- ::utl::AccessibleStateSetHelper* pStateSet = static_cast< ::utl::AccessibleStateSetHelper*>(mxStateSet.get());
- if( pStateSet != NULL &&
- !pStateSet->contains(nStateId) )
- {
- pStateSet->AddState( nStateId );
- GotPropertyEvent( uno::makeAny( nStateId ), AccessibleEventId::STATE_CHANGED );
- }
- }
-
- void AccessibleImageBullet::UnSetState( const sal_Int16 nStateId )
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- ::utl::AccessibleStateSetHelper* pStateSet = static_cast< ::utl::AccessibleStateSetHelper*>(mxStateSet.get());
- if( pStateSet != NULL &&
- pStateSet->contains(nStateId) )
- {
- pStateSet->RemoveState( nStateId );
- LostPropertyEvent( uno::makeAny( nStateId ), AccessibleEventId::STATE_CHANGED );
- }
- }
-
- int AccessibleImageBullet::getNotifierClientId() const
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- return mnNotifierClientId;
- }
-
- void AccessibleImageBullet::SetParagraphIndex( sal_Int32 nIndex )
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- uno::Any aOldDesc;
- uno::Any aOldName;
-
- try
- {
- aOldDesc <<= getAccessibleDescription();
- aOldName <<= getAccessibleName();
- }
- catch( const uno::Exception& ) {} // optional behaviour
-
- sal_Int32 nOldIndex = mnParagraphIndex;
-
- mnParagraphIndex = nIndex;
-
- try
- {
- if( nOldIndex != nIndex )
- {
- // index and therefore description changed
- FireEvent( AccessibleEventId::DESCRIPTION_CHANGED, uno::makeAny( getAccessibleDescription() ), aOldDesc );
- FireEvent( AccessibleEventId::NAME_CHANGED, uno::makeAny( getAccessibleName() ), aOldName );
- }
- }
- catch( const uno::Exception& ) {} // optional behaviour
- }
-
- sal_Int32 AccessibleImageBullet::GetParagraphIndex() const SAL_THROW((uno::RuntimeException))
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- return mnParagraphIndex;
- }
-
- SvxEditSource& AccessibleImageBullet::GetEditSource() const SAL_THROW((uno::RuntimeException))
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- if( mpEditSource )
- return *mpEditSource;
- else
- throw uno::RuntimeException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("No edit source, object is defunct")),
- uno::Reference< uno::XInterface >
- ( static_cast< ::cppu::OWeakObject* >
- ( const_cast< AccessibleImageBullet* > (this) ) ) ); // disambiguate hierarchy
- }
-
- SvxTextForwarder& AccessibleImageBullet::GetTextForwarder() const SAL_THROW((uno::RuntimeException))
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- SvxEditSource& rEditSource = GetEditSource();
- SvxTextForwarder* pTextForwarder = rEditSource.GetTextForwarder();
-
- if( !pTextForwarder )
- throw uno::RuntimeException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Unable to fetch text forwarder, object is defunct")),
- uno::Reference< uno::XInterface >
- ( static_cast< ::cppu::OWeakObject* >
- ( const_cast< AccessibleImageBullet* > (this) ) ) ); // disambiguate hierarchy
-
- if( pTextForwarder->IsValid() )
- return *pTextForwarder;
- else
- throw uno::RuntimeException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Text forwarder is invalid, object is defunct")),
- uno::Reference< uno::XInterface >
- ( static_cast< ::cppu::OWeakObject* >
- ( const_cast< AccessibleImageBullet* > (this) ) ) ); // disambiguate hierarchy
- }
-
- SvxViewForwarder& AccessibleImageBullet::GetViewForwarder() const SAL_THROW((uno::RuntimeException))
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- SvxEditSource& rEditSource = GetEditSource();
- SvxViewForwarder* pViewForwarder = rEditSource.GetViewForwarder();
-
- if( !pViewForwarder )
- {
- throw uno::RuntimeException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Unable to fetch view forwarder, object is defunct")),
- uno::Reference< uno::XInterface >
- ( static_cast< ::cppu::OWeakObject* >
- ( const_cast< AccessibleImageBullet* > (this) ) ) ); // disambiguate hierarchy
- }
-
- if( pViewForwarder->IsValid() )
- return *pViewForwarder;
- else
- throw uno::RuntimeException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("View forwarder is invalid, object is defunct")),
- uno::Reference< uno::XInterface >
- ( static_cast< ::cppu::OWeakObject* >
- ( const_cast< AccessibleImageBullet* > (this) ) ) ); // disambiguate hierarchy
- }
-
- const Point& AccessibleImageBullet::GetEEOffset() const
- {
- DBG_CHKTHIS( AccessibleImageBullet, NULL );
-
- return maEEOffset;
- }
-
-} // end of namespace accessibility
-
diff --git a/svx/source/accessibility/AccessibleImageBullet.hxx b/svx/source/accessibility/AccessibleImageBullet.hxx
deleted file mode 100644
index ef400a05d784..000000000000
--- a/svx/source/accessibility/AccessibleImageBullet.hxx
+++ /dev/null
@@ -1,240 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: AccessibleImageBullet.hxx,v $
- * $Revision: 1.12 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SVX_ACCESSIBLE_IMAGE_BULLET_HXX
-#define _SVX_ACCESSIBLE_IMAGE_BULLET_HXX
-
-#include <tools/gen.hxx>
-#include <cppuhelper/weakref.hxx>
-#include <cppuhelper/implbase5.hxx>
-
-#ifndef _CPPUHELPER_INTERFACECONTAINER_H_
-#include <cppuhelper/interfacecontainer.hxx>
-#endif
-#include <com/sun/star/uno/Reference.hxx>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/accessibility/XAccessible.hpp>
-#include <com/sun/star/accessibility/XAccessibleContext.hpp>
-#include <com/sun/star/accessibility/XAccessibleComponent.hpp>
-#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
-#include "AccessibleParaManager.hxx"
-#include <svx/unoedsrc.hxx>
-
-namespace accessibility
-{
- typedef ::cppu::WeakImplHelper5< ::com::sun::star::accessibility::XAccessible,
- ::com::sun::star::accessibility::XAccessibleContext,
- ::com::sun::star::accessibility::XAccessibleComponent,
- ::com::sun::star::accessibility::XAccessibleEventBroadcaster,
- ::com::sun::star::lang::XServiceInfo > AccessibleImageBulletInterfaceBase;
-
- /** This class implements the image bullets for the EditEngine/Outliner UAA
- */
- class AccessibleImageBullet : public AccessibleImageBulletInterfaceBase
- {
-
- public:
- /// Create accessible object for given parent
- AccessibleImageBullet ( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rParent );
-
- virtual ~AccessibleImageBullet ();
-
- // XInterface
- virtual ::com::sun::star::uno::Any SAL_CALL queryInterface (const ::com::sun::star::uno::Type & rType) throw (::com::sun::star::uno::RuntimeException);
-
- // XAccessible
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) throw (::com::sun::star::uno::RuntimeException);
-
- // XAccessibleContext
- virtual sal_Int32 SAL_CALL getAccessibleChildCount() throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent() throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Int32 SAL_CALL getAccessibleIndexInParent() throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Int16 SAL_CALL getAccessibleRole() throw (::com::sun::star::uno::RuntimeException);
- /// Maximal length of text returned by getAccessibleDescription()
- enum { MaxDescriptionLen = 40 };
- virtual ::rtl::OUString SAL_CALL getAccessibleDescription() throw (::com::sun::star::uno::RuntimeException);
- virtual ::rtl::OUString SAL_CALL getAccessibleName() throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet() throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet() throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::lang::Locale SAL_CALL getLocale() throw (::com::sun::star::accessibility::IllegalAccessibleComponentStateException, ::com::sun::star::uno::RuntimeException);
-
- // XAccessibleEventBroadcaster
- virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
-
- // XAccessibleComponent
- virtual sal_Bool SAL_CALL containsPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::awt::Rectangle SAL_CALL getBounds( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::awt::Point SAL_CALL getLocation( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::awt::Size SAL_CALL getSize( ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL grabFocus( ) throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Int32 SAL_CALL getForeground( ) throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Int32 SAL_CALL getBackground( ) throw (::com::sun::star::uno::RuntimeException);
-
- // XServiceInfo
- virtual ::rtl::OUString SAL_CALL getImplementationName (void) throw (::com::sun::star::uno::RuntimeException);
- virtual sal_Bool SAL_CALL supportsService (const ::rtl::OUString& sServiceName) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< ::rtl::OUString> SAL_CALL getSupportedServiceNames (void) throw (::com::sun::star::uno::RuntimeException);
-
- // XServiceName
- virtual ::rtl::OUString SAL_CALL getServiceName (void) throw (::com::sun::star::uno::RuntimeException);
-
- /** Set the current index in the accessibility parent
-
- @attention This method does not lock the SolarMutex,
- leaving that to the calling code. This is because only
- there potential deadlock situations can be resolved. Thus,
- make sure SolarMutex is locked when calling this.
- */
- void SetIndexInParent( sal_Int32 nIndex );
-
- /** Get the current index in the accessibility parent
-
- @attention This method does not lock the SolarMutex,
- leaving that to the calling code. This is because only
- there potential deadlock situations can be resolved. Thus,
- make sure SolarMutex is locked when calling this.
- */
- sal_Int32 GetIndexInParent() const;
-
- /** Set the edit engine offset
-
- @attention This method does not lock the SolarMutex,
- leaving that to the calling code. This is because only
- there potential deadlock situations can be resolved. Thus,
- make sure SolarMutex is locked when calling this.
- */
- void SetEEOffset( const Point& rOffset );
-
- /** Set the EditEngine offset
-
- @attention This method does not lock the SolarMutex,
- leaving that to the calling code. This is because only
- there potential deadlock situations can be resolved. Thus,
- make sure SolarMutex is locked when calling this.
- */
- void SetEditSource( SvxEditSource* pEditSource );
-
- /** Dispose this object
-
- Notifies and deregisters the listeners, drops all references.
- */
- void Dispose();
-
- /** Set the current paragraph number
-
- @attention This method does not lock the SolarMutex,
- leaving that to the calling code. This is because only
- there potential deadlock situations can be resolved. Thus,
- make sure SolarMutex is locked when calling this.
- */
- void SetParagraphIndex( sal_Int32 nIndex );
-
- /** Query the current paragraph number (0 - nParas-1)
-
- @attention This method does not lock the SolarMutex,
- leaving that to the calling code. This is because only
- there potential deadlock situations can be resolved. Thus,
- make sure SolarMutex is locked when calling this.
- */
- sal_Int32 GetParagraphIndex() const SAL_THROW((::com::sun::star::uno::RuntimeException));
-
- /// Calls all Listener objects to tell them the change. Don't hold locks when calling this!
- virtual void FireEvent(const sal_Int16 nEventId, const ::com::sun::star::uno::Any& rNewValue = ::com::sun::star::uno::Any(), const ::com::sun::star::uno::Any& rOldValue = ::com::sun::star::uno::Any() ) const;
-
- private:
-
- // declared, but not defined
- AccessibleImageBullet( const AccessibleImageBullet& );
- AccessibleImageBullet& operator= ( const AccessibleImageBullet& );
-
- // syntactic sugar for FireEvent
- void GotPropertyEvent( const ::com::sun::star::uno::Any& rNewValue, const sal_Int16 nEventId ) const;
- void LostPropertyEvent( const ::com::sun::star::uno::Any& rOldValue, const sal_Int16 nEventId ) const;
-
- // maintain state set and send STATE_CHANGE events
- void SetState( const sal_Int16 nStateId );
- void UnSetState( const sal_Int16 nStateId );
-
- SvxEditSource& GetEditSource() const SAL_THROW((::com::sun::star::uno::RuntimeException));
-
- int getNotifierClientId() const;
-
- /** Query the SvxTextForwarder for EditEngine access.
-
- @attention This method does not lock the SolarMutex,
- leaving that to the calling code. This is because only
- there potential deadlock situations can be resolved. Thus,
- make sure SolarMutex is locked when calling this.
- */
- SvxTextForwarder& GetTextForwarder() const SAL_THROW((::com::sun::star::uno::RuntimeException));
-
- /** Query the SvxViewForwarder for EditEngine access.
-
- @attention This method does not lock the SolarMutex,
- leaving that to the calling code. This is because only
- there potential deadlock situations can be resolved. Thus,
- make sure SolarMutex is locked when calling this.
- */
- SvxViewForwarder& GetViewForwarder() const SAL_THROW((::com::sun::star::uno::RuntimeException));
-
- const Point& GetEEOffset() const;
-
- // the paragraph index in the edit engine (guarded by solar mutex)
- sal_Int32 mnParagraphIndex;
-
- // our current index in the parent (guarded by solar mutex)
- sal_Int32 mnIndexInParent;
-
- // the current edit source (guarded by solar mutex)
- SvxEditSource* mpEditSource;
-
- // the offset of the underlying EditEngine from the shape/cell (guarded by solar mutex)
- Point maEEOffset;
-
- // the current state set (updated from SetState/UnSetState and guarded by solar mutex)
- ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > mxStateSet;
-
- mutable osl::Mutex maMutex;
-
- /// The shape we're the accessible for (unguarded)
- ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > mxParent;
-
- /// Our listeners (guarded by maMutex)
- int mnNotifierClientId;
- };
-
-} // end of namespace accessibility
-
-#endif
-
diff --git a/svx/source/accessibility/AccessibleOLEShape.cxx b/svx/source/accessibility/AccessibleOLEShape.cxx
index 7f9ce9a0c4fb..8f7effb4d2b8 100644
--- a/svx/source/accessibility/AccessibleOLEShape.cxx
+++ b/svx/source/accessibility/AccessibleOLEShape.cxx
@@ -2,13 +2,10 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2008 by Sun Microsystems, Inc.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: AccessibleOLEShape.cxx,v $
- * $Revision: 1.20 $
- *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
diff --git a/svx/source/accessibility/AccessibleParaManager.cxx b/svx/source/accessibility/AccessibleParaManager.cxx
deleted file mode 100644
index 4f9b569f52de..000000000000
--- a/svx/source/accessibility/AccessibleParaManager.cxx
+++ /dev/null
@@ -1,423 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: AccessibleParaManager.cxx,v $
- * $Revision: 1.16 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svx.hxx"
-
-//------------------------------------------------------------------------
-//
-// Global header
-//
-//------------------------------------------------------------------------
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Reference.hxx>
-#include <cppuhelper/weakref.hxx>
-#include <com/sun/star/accessibility/XAccessible.hpp>
-#include <com/sun/star/accessibility/AccessibleStateType.hpp>
-
-//------------------------------------------------------------------------
-//
-// Project-local header
-//
-//------------------------------------------------------------------------
-
-#include "unoedhlp.hxx"
-#include "unopracc.hxx"
-#include <svx/unoedsrc.hxx>
-#include "AccessibleParaManager.hxx"
-#include "AccessibleEditableTextPara.hxx"
-
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::accessibility;
-
-
-
-namespace accessibility
-{
- AccessibleParaManager::AccessibleParaManager() :
- maChildren(1),
- maEEOffset( 0, 0 ),
- mnFocusedChild( -1 ),
- mbActive( sal_False )
- {
- }
-
- AccessibleParaManager::~AccessibleParaManager()
- {
- // owner is responsible for possible child defuncs
- }
-
- void AccessibleParaManager::SetAdditionalChildStates( const VectorOfStates& rChildStates )
- {
- maChildStates = rChildStates;
- }
-
- const AccessibleParaManager::VectorOfStates& AccessibleParaManager::GetAdditionalChildStates() const
- {
- return maChildStates;
- }
-
- void AccessibleParaManager::SetNum( sal_Int32 nNumParas )
- {
- if( (size_t)nNumParas < maChildren.size() )
- Release( nNumParas, maChildren.size() );
-
- maChildren.resize( nNumParas );
-
- if( mnFocusedChild >= nNumParas )
- mnFocusedChild = -1;
- }
-
- sal_uInt32 AccessibleParaManager::GetNum() const
- {
- return maChildren.size();
- }
-
- AccessibleParaManager::VectorOfChildren::iterator AccessibleParaManager::begin()
- {
- return maChildren.begin();
- }
-
- AccessibleParaManager::VectorOfChildren::iterator AccessibleParaManager::end()
- {
- return maChildren.end();
- }
-
- AccessibleParaManager::VectorOfChildren::const_iterator AccessibleParaManager::begin() const
- {
- return maChildren.begin();
- }
-
- AccessibleParaManager::VectorOfChildren::const_iterator AccessibleParaManager::end() const
- {
- return maChildren.end();
- }
-
- void AccessibleParaManager::Release( sal_uInt32 nPara )
- {
- DBG_ASSERT( maChildren.size() > nPara, "AccessibleParaManager::Release: invalid index" );
-
- if( maChildren.size() > nPara )
- {
- ShutdownPara( GetChild( nPara ) );
-
- // clear reference and rect
- maChildren[ nPara ] = WeakChild();
- }
- }
-
- void AccessibleParaManager::FireEvent( sal_uInt32 nPara,
- const sal_Int16 nEventId,
- const uno::Any& rNewValue,
- const uno::Any& rOldValue ) const
- {
- DBG_ASSERT( maChildren.size() > nPara, "AccessibleParaManager::FireEvent: invalid index" );
-
- if( maChildren.size() > nPara )
- {
- WeakPara::HardRefType maChild( GetChild( nPara ).first.get() );
- if( maChild.is() )
- maChild->FireEvent( nEventId, rNewValue, rOldValue );
- }
- }
-
- sal_Bool AccessibleParaManager::IsReferencable( WeakPara::HardRefType aChild )
- {
- return aChild.is();
- }
-
- sal_Bool AccessibleParaManager::IsReferencable( sal_uInt32 nChild ) const
- {
- DBG_ASSERT( maChildren.size() > nChild, "AccessibleParaManager::IsReferencable: invalid index" );
-
- if( maChildren.size() > nChild )
- {
- // retrieve hard reference from weak one
- return IsReferencable( GetChild( nChild ).first.get() );
- }
- else
- {
- return sal_False;
- }
- }
-
- AccessibleParaManager::WeakChild AccessibleParaManager::GetChild( sal_uInt32 nParagraphIndex ) const
- {
- DBG_ASSERT( maChildren.size() > nParagraphIndex, "AccessibleParaManager::GetChild: invalid index" );
-
- if( maChildren.size() > nParagraphIndex )
- {
- return maChildren[ nParagraphIndex ];
- }
- else
- {
- return WeakChild();
- }
- }
-
- AccessibleParaManager::Child AccessibleParaManager::CreateChild( sal_Int32 nChild,
- const uno::Reference< XAccessible >& xFrontEnd,
- SvxEditSourceAdapter& rEditSource,
- sal_uInt32 nParagraphIndex )
- {
- DBG_ASSERT( maChildren.size() > nParagraphIndex, "AccessibleParaManager::CreateChild: invalid index" );
-
- if( maChildren.size() > nParagraphIndex )
- {
- // retrieve hard reference from weak one
- WeakPara::HardRefType aChild( GetChild( nParagraphIndex ).first.get() );
-
- if( !IsReferencable( nParagraphIndex ) )
- {
- // there is no hard reference available, create object then
- // --> OD 2006-01-11 #i27138#
- AccessibleEditableTextPara* pChild = new AccessibleEditableTextPara( xFrontEnd, this );
- // <--
- uno::Reference< XAccessible > xChild( static_cast< ::cppu::OWeakObject* > (pChild), uno::UNO_QUERY );
-
- if( !xChild.is() )
- throw uno::RuntimeException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Child creation failed")), xFrontEnd);
-
- aChild = WeakPara::HardRefType( xChild, pChild );
-
- InitChild( *aChild, rEditSource, nChild, nParagraphIndex );
-
- maChildren[ nParagraphIndex ] = WeakChild( aChild, pChild->getBounds() );
- }
-
- return Child( aChild.getRef(), GetChild( nParagraphIndex ).second );
- }
- else
- {
- return Child();
- }
- }
-
- void AccessibleParaManager::SetEEOffset( const Point& rOffset )
- {
- maEEOffset = rOffset;
-
- MemFunAdapter< const Point& > aAdapter( &::accessibility::AccessibleEditableTextPara::SetEEOffset, rOffset );
- ::std::for_each( begin(), end(), aAdapter );
- }
-
- void AccessibleParaManager::SetActive( sal_Bool bActive )
- {
- mbActive = bActive;
-
- if( bActive )
- {
- SetState( AccessibleStateType::ACTIVE );
- SetState( AccessibleStateType::EDITABLE );
- }
- else
- {
- UnSetState( AccessibleStateType::ACTIVE );
- UnSetState( AccessibleStateType::EDITABLE );
- }
- }
-
- void AccessibleParaManager::SetFocus( sal_Int32 nChild )
- {
- if( mnFocusedChild != -1 )
- UnSetState( mnFocusedChild, AccessibleStateType::FOCUSED );
-
- mnFocusedChild = nChild;
-
- if( mnFocusedChild != -1 )
- SetState( mnFocusedChild, AccessibleStateType::FOCUSED );
- }
-
- void AccessibleParaManager::InitChild( AccessibleEditableTextPara& rChild,
- SvxEditSourceAdapter& rEditSource,
- sal_Int32 nChild,
- sal_uInt32 nParagraphIndex ) const
- {
- rChild.SetEditSource( &rEditSource );
- rChild.SetIndexInParent( nChild );
- rChild.SetParagraphIndex( nParagraphIndex );
-
- rChild.SetEEOffset( maEEOffset );
-
- if( mbActive )
- {
- rChild.SetState( AccessibleStateType::ACTIVE );
- rChild.SetState( AccessibleStateType::EDITABLE );
- }
-
- if( mnFocusedChild == static_cast<sal_Int32>(nParagraphIndex) )
- rChild.SetState( AccessibleStateType::FOCUSED );
-
- // add states passed from outside
- for( VectorOfStates::const_iterator aIt = maChildStates.begin(), aEnd = maChildStates.end(); aIt != aEnd; ++aIt )
- rChild.SetState( *aIt );
- }
-
- void AccessibleParaManager::SetState( sal_Int32 nChild, const sal_Int16 nStateId )
- {
- MemFunAdapter< const sal_Int16 > aFunc( &AccessibleEditableTextPara::SetState,
- nStateId );
- aFunc( GetChild(nChild) );
- }
-
- void AccessibleParaManager::SetState( const sal_Int16 nStateId )
- {
- ::std::for_each( begin(), end(),
- MemFunAdapter< const sal_Int16 >( &AccessibleEditableTextPara::SetState,
- nStateId ) );
- }
-
- void AccessibleParaManager::UnSetState( sal_Int32 nChild, const sal_Int16 nStateId )
- {
- MemFunAdapter< const sal_Int16 > aFunc( &AccessibleEditableTextPara::UnSetState,
- nStateId );
- aFunc( GetChild(nChild) );
- }
-
- void AccessibleParaManager::UnSetState( const sal_Int16 nStateId )
- {
- ::std::for_each( begin(), end(),
- MemFunAdapter< const sal_Int16 >( &AccessibleEditableTextPara::UnSetState,
- nStateId ) );
- }
-
- void AccessibleParaManager::SetEditSource( SvxEditSourceAdapter* pEditSource )
- {
- MemFunAdapter< SvxEditSourceAdapter* > aAdapter( &::accessibility::AccessibleEditableTextPara::SetEditSource, pEditSource );
- ::std::for_each( begin(), end(), aAdapter );
- }
-
- // not generic yet, no arguments...
- class AccessibleParaManager_DisposeChildren : public ::std::unary_function< ::accessibility::AccessibleEditableTextPara&, void >
- {
- public:
- AccessibleParaManager_DisposeChildren() {}
- void operator()( ::accessibility::AccessibleEditableTextPara& rPara )
- {
- rPara.Dispose();
- }
- };
-
- void AccessibleParaManager::Dispose()
- {
- AccessibleParaManager_DisposeChildren aFunctor;
-
- ::std::for_each( begin(), end(),
- WeakChildAdapter< AccessibleParaManager_DisposeChildren > (aFunctor) );
- }
-
- // not generic yet, too many method arguments...
- class StateChangeEvent : public ::std::unary_function< ::accessibility::AccessibleEditableTextPara&, void >
- {
- public:
- typedef void return_type;
- StateChangeEvent( const sal_Int16 nEventId,
- const uno::Any& rNewValue,
- const uno::Any& rOldValue ) :
- mnEventId( nEventId ),
- mrNewValue( rNewValue ),
- mrOldValue( rOldValue ) {}
- void operator()( ::accessibility::AccessibleEditableTextPara& rPara )
- {
- rPara.FireEvent( mnEventId, mrNewValue, mrOldValue );
- }
-
- private:
- const sal_Int16 mnEventId;
- const uno::Any& mrNewValue;
- const uno::Any& mrOldValue;
- };
-
- void AccessibleParaManager::FireEvent( sal_uInt32 nStartPara,
- sal_uInt32 nEndPara,
- const sal_Int16 nEventId,
- const uno::Any& rNewValue,
- const uno::Any& rOldValue ) const
- {
- DBG_ASSERT( maChildren.size() > nStartPara &&
- maChildren.size() >= nEndPara , "AccessibleParaManager::FireEvent: invalid index" );
-
- if( maChildren.size() > nStartPara &&
- maChildren.size() >= nEndPara )
- {
- VectorOfChildren::const_iterator front = maChildren.begin();
- VectorOfChildren::const_iterator back = front;
-
- ::std::advance( front, nStartPara );
- ::std::advance( back, nEndPara );
-
- StateChangeEvent aFunctor( nEventId, rNewValue, rOldValue );
-
- ::std::for_each( front, back, AccessibleParaManager::WeakChildAdapter< StateChangeEvent >( aFunctor ) );
- }
- }
-
- class ReleaseChild : public ::std::unary_function< const AccessibleParaManager::WeakChild&, AccessibleParaManager::WeakChild >
- {
- public:
- AccessibleParaManager::WeakChild operator()( const AccessibleParaManager::WeakChild& rPara )
- {
- AccessibleParaManager::ShutdownPara( rPara );
-
- // clear reference
- return AccessibleParaManager::WeakChild();
- }
- };
-
- void AccessibleParaManager::Release( sal_uInt32 nStartPara, sal_uInt32 nEndPara )
- {
- DBG_ASSERT( maChildren.size() > nStartPara &&
- maChildren.size() >= nEndPara, "AccessibleParaManager::Release: invalid index" );
-
- if( maChildren.size() > nStartPara &&
- maChildren.size() >= nEndPara )
- {
- VectorOfChildren::iterator front = maChildren.begin();
- VectorOfChildren::iterator back = front;
-
- ::std::advance( front, nStartPara );
- ::std::advance( back, nEndPara );
-
- ::std::transform( front, back, front, ReleaseChild() );
- }
- }
-
- void AccessibleParaManager::ShutdownPara( const WeakChild& rChild )
- {
- WeakPara::HardRefType aChild( rChild.first.get() );
-
- if( IsReferencable( aChild ) )
- aChild->SetEditSource( NULL );
- }
-
-}
-
-//------------------------------------------------------------------------
diff --git a/svx/source/accessibility/AccessibleParaManager.hxx b/svx/source/accessibility/AccessibleParaManager.hxx
deleted file mode 100644
index bf50b97d32fb..000000000000
--- a/svx/source/accessibility/AccessibleParaManager.hxx
+++ /dev/null
@@ -1,349 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: AccessibleParaManager.hxx,v $
- * $Revision: 1.12 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SVX_ACCESSIBLE_PARA_MANAGER_HXX
-#define _SVX_ACCESSIBLE_PARA_MANAGER_HXX
-
-#include <vector>
-#include <algorithm>
-#include <functional>
-#include <utility>
-#include <tools/gen.hxx>
-#include <com/sun/star/awt/Rectangle.hpp>
-#include <com/sun/star/uno/Reference.hxx>
-#include <cppuhelper/weakref.hxx>
-#include <com/sun/star/accessibility/XAccessibleContext.hpp>
-
-class SvxEditSourceAdapter;
-
-namespace accessibility
-{
- class AccessibleEditableTextPara;
-
- /** Helper class for WeakCppRef
-
- This class is returned by WeakChild::get() and contains a hard
- reference and a reference to the c++ object. This combination
- prevents the c++ object from destruction during usage. Hold
- this object only as long as absolutely necessary, prevents
- referenced object from vanishing otherwise
- */
- template < class UnoType, class CppType > class HardCppRef
- {
- public:
-
- typedef UnoType UnoInterfaceType;
- typedef CppType InterfaceType;
-
- HardCppRef( const ::com::sun::star::uno::WeakReference< UnoInterfaceType >& xRef, InterfaceType* rImpl ) :
- mxRef( xRef ),
- mpImpl( rImpl )
- {
- }
-
- /** Query whether the reference is still valid.
-
- Hands off also from the implementation pointer if this
- returns sal_False!
- */
- sal_Bool is() const { return mxRef.is(); }
- InterfaceType* operator->() const { return mpImpl; }
- InterfaceType& operator*() const { return *mpImpl; }
- ::com::sun::star::uno::Reference< UnoInterfaceType >& getRef() { return mxRef; }
- const ::com::sun::star::uno::Reference< UnoInterfaceType >& getRef() const { return mxRef; }
-
- // default copy constructor and assignment will do
- // HardCppRef( const HardCppRef& );
- // HardCppRef& operator= ( const HardCppRef& );
-
- private:
-
- // the interface, hard reference to prevent object from vanishing
- ::com::sun::star::uno::Reference< UnoInterfaceType > mxRef;
-
- // the c++ object, for our internal stuff
- InterfaceType* mpImpl;
-
- };
-
- /** Helper class for weak object references plus implementation
-
- This class combines a weak reference (to facilitate automatic
- object disposal if user drops last reference) and hard
- reference to the c++ class (for fast access and bypassing of
- the UNO interface)
- */
- template < class UnoType, class CppType > class WeakCppRef
- {
- public:
-
- typedef UnoType UnoInterfaceType;
- typedef CppType InterfaceType;
- typedef HardCppRef< UnoInterfaceType, InterfaceType > HardRefType;
-
- WeakCppRef() : maWeakRef(), maUnsafeRef( NULL ) {}
- WeakCppRef( InterfaceType& rImpl ) :
- maWeakRef( ::com::sun::star::uno::Reference< UnoInterfaceType >( rImpl, ::com::sun::star::uno::UNO_QUERY ) ),
- maUnsafeRef( &rImpl )
- {
- }
-
- WeakCppRef( HardRefType& rImpl ) :
- maWeakRef( rImpl.getRef() ),
- maUnsafeRef( rImpl.operator->() )
- {
- }
-
- // get object with c++ object and hard reference (which
- // prevents the c++ object from destruction during use)
- HardRefType get() const { return HardRefType( maWeakRef, maUnsafeRef ); }
-
- // default copy constructor and assignment will do
- // WeakCppRef( const WeakCppRef& );
- // WeakCppRef& operator= ( const WeakCppRef& );
-
- private:
-
- // the interface, hold weakly
- ::com::sun::star::uno::WeakReference< UnoInterfaceType > maWeakRef;
-
- // hard ref to c++ class, _only_ valid if maWeakRef.is() is true
- InterfaceType* maUnsafeRef;
- };
-
-
- /** This class manages the paragraphs of an AccessibleTextHelper
-
- To facilitate automatic deletion of paragraphs no longer used,
- this class uses the WeakCppRef helper to hold the objects weakly.
- */
- class AccessibleParaManager
- {
- public:
- typedef WeakCppRef < ::com::sun::star::accessibility::XAccessible, AccessibleEditableTextPara > WeakPara;
- typedef ::std::pair< WeakPara, ::com::sun::star::awt::Rectangle > WeakChild;
- typedef ::std::pair< ::com::sun::star::uno::Reference<
- ::com::sun::star::accessibility::XAccessible > , ::com::sun::star::awt::Rectangle > Child;
- typedef ::std::vector< WeakChild > VectorOfChildren;
- typedef ::std::vector< sal_Int16 > VectorOfStates;
-
- AccessibleParaManager();
- ~AccessibleParaManager();
-
- /** Sets a vector of additional accessible states.
-
- The states are passed to every created child object
- (text paragraph). The state values are defined in
- com::sun::star::accessibility::AccessibleStateType.
- */
- void SetAdditionalChildStates( const VectorOfStates& rChildStates );
-
- /** Returns the additional accessible states for children.
- */
- const VectorOfStates& GetAdditionalChildStates() const;
-
- /** Set the number of paragraphs
-
- @param nNumPara
- The total number of paragraphs the EditEngine currently
- has (_not_ the number of currently visible children)
- */
- void SetNum( sal_Int32 nNumParas );
-
- /** Get the number of paragraphs currently possible */
- sal_uInt32 GetNum() const;
-
- // iterators
- VectorOfChildren::iterator begin();
- VectorOfChildren::iterator end();
- VectorOfChildren::const_iterator begin() const;
- VectorOfChildren::const_iterator end() const;
-
- // dealing with single paragraphs (release reference, return reference etc)
- void Release( sal_uInt32 nPara );
- /// Set focus to given child
- void SetFocus( sal_Int32 nChild );
-
- void FireEvent( sal_uInt32 nPara,
- const sal_Int16 nEventId,
- const ::com::sun::star::uno::Any& rNewValue = ::com::sun::star::uno::Any(),
- const ::com::sun::star::uno::Any& rOldValue = ::com::sun::star::uno::Any() ) const;
-
- static sal_Bool IsReferencable( WeakPara::HardRefType aChild );
- sal_Bool IsReferencable( sal_uInt32 nChild ) const;
- static void ShutdownPara( const WeakChild& rChild );
-
- Child CreateChild( sal_Int32 nChild,
- const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& xFrontEnd,
- SvxEditSourceAdapter& rEditSource,
- sal_uInt32 nParagraphIndex );
-
- WeakChild GetChild( sal_uInt32 nParagraphIndex ) const;
-
- // forwarder to all paragraphs
- /// Make all children active and editable (or off)
- void SetActive( sal_Bool bActive = sal_True );
- /// Set state of all children
- void SetState( const sal_Int16 nStateId );
- /// Unset state of all children
- void UnSetState( const sal_Int16 nStateId );
- /// Set offset to edit engine for all children
- void SetEEOffset ( const Point& rOffset );
- /// Change edit source on all living children
- void SetEditSource ( SvxEditSourceAdapter* pEditSource );
- /// Dispose all living children
- void Dispose ();
-
- // forwarder to given paragraphs
- //------------------------------------------------------------------------
- /** Release the given range of paragraphs
-
- All ranges have the meaning [start,end), similar to STL
-
- @param nStartPara
- Index of paragraph to start with releasing
-
- @param nEndPara
- Index of first paragraph to stop with releasing
- */
- void Release( sal_uInt32 nStartPara, sal_uInt32 nEndPara );
-
- /** Fire event for the given range of paragraphs
-
- All ranges have the meaning [start,end), similar to STL
-
- @param nStartPara
- Index of paragraph to start with event firing
-
- @param nEndPara
- Index of first paragraph to stop with event firing
- */
- void FireEvent( sal_uInt32 nStartPara,
- sal_uInt32 nEndPara,
- const sal_Int16 nEventId,
- const ::com::sun::star::uno::Any& rNewValue = ::com::sun::star::uno::Any(),
- const ::com::sun::star::uno::Any& rOldValue = ::com::sun::star::uno::Any() ) const;
-
- /** Functor adapter for ForEach template
-
- Adapts giving functor such that only the paragraph objects
- are accessed and the fact that our children are held
- weakly is hidden
-
- The functor must provide the following method:
- void operator() ( AccessibleEditablePara& )
-
- */
- template < typename Functor > class WeakChildAdapter : public ::std::unary_function< const WeakChild&, void >
- {
- public:
- WeakChildAdapter( Functor& rFunctor ) : mrFunctor(rFunctor) {}
- void operator()( const WeakChild& rPara )
- {
- // retrieve hard reference from weak one
- WeakPara::HardRefType aHardRef( rPara.first.get() );
-
- if( aHardRef.is() )
- mrFunctor( *aHardRef );
- }
-
- private:
- Functor& mrFunctor;
- };
-
- /** Adapter for unary member functions
-
- Since STL's binder don't work with const& arguments (and
- BOOST's neither, at least on MSVC), have to provide our
- own adapter for unary member functions.
-
- Create with pointer to member function of
- AccessibleEditableTextPara and the corresponding argument.
- */
- template < typename Argument > class MemFunAdapter : public ::std::unary_function< const WeakChild&, void >
- {
- public:
- typedef void (::accessibility::AccessibleEditableTextPara::*FunctionPointer)( Argument );
-
- MemFunAdapter( FunctionPointer aFunPtr, Argument aArg ) : maFunPtr(aFunPtr), maArg(aArg) {}
- void operator()( const WeakChild& rPara )
- {
- // retrieve hard reference from weak one
- WeakPara::HardRefType aHardRef( rPara.first.get() );
-
- if( aHardRef.is() )
- (*aHardRef.*maFunPtr)( maArg );
- }
-
- private:
- FunctionPointer maFunPtr;
- Argument maArg;
- };
-
- /** Generic algorithm on given paragraphs
-
- Convenience method, that already adapts the given functor with WeakChildAdapter
- */
- template < typename Functor > void ForEach( Functor& rFunctor )
- {
- ::std::for_each( begin(), end(), WeakChildAdapter< Functor >(rFunctor) );
- }
-
- private:
- /// Set state on given child
- void SetState( sal_Int32 nChild, const sal_Int16 nStateId );
- /// Unset state on given child
- void UnSetState( sal_Int32 nChild, const sal_Int16 nStateId );
- /// Init child with default state (as stored in previous SetFocus and SetActive calls)
- void InitChild( AccessibleEditableTextPara& rChild,
- SvxEditSourceAdapter& rEditSource,
- sal_Int32 nChild,
- sal_uInt32 nParagraphIndex ) const;
-
- // vector the size of the paragraph number of the underlying EditEngine
- VectorOfChildren maChildren;
-
- /// Additional states that will be set at every created child object.
- VectorOfStates maChildStates;
-
- // cache EE offset for child creation
- Point maEEOffset;
-
- // which child currently has the focus (-1 for none)
- sal_Int32 mnFocusedChild;
-
- // whether children are active and editable
- sal_Bool mbActive;
- };
-
-} // end of namespace accessibility
-
-#endif
-
diff --git a/svx/source/accessibility/AccessibleSelectionBase.cxx b/svx/source/accessibility/AccessibleSelectionBase.cxx
deleted file mode 100644
index f3a4585504ca..000000000000
--- a/svx/source/accessibility/AccessibleSelectionBase.cxx
+++ /dev/null
@@ -1,111 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: AccessibleSelectionBase.cxx,v $
- * $Revision: 1.7 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svx.hxx"
-
-#include "AccessibleSelectionBase.hxx"
-
-using namespace ::rtl;
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::accessibility;
-
-namespace accessibility
-{
- // ---------------------------
- // - AccessibleSelectionBase -
- // ---------------------------
-
- AccessibleSelectionBase::AccessibleSelectionBase()
- {
- }
-
- //--------------------------------------------------------------------
-
- AccessibleSelectionBase::~AccessibleSelectionBase()
- {
- }
-
- //--------------------------------------------------------------------
-
- void SAL_CALL AccessibleSelectionBase::selectAccessibleChild( sal_Int32 nChildIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- ::osl::MutexGuard aGuard( implGetMutex() );
- OCommonAccessibleSelection::selectAccessibleChild( nChildIndex );
- }
-
- //--------------------------------------------------------------------
-
- sal_Bool SAL_CALL AccessibleSelectionBase::isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- ::osl::MutexGuard aGuard( implGetMutex() );
- return( OCommonAccessibleSelection::isAccessibleChildSelected( nChildIndex ) );
- }
-
- //--------------------------------------------------------------------
-
- void SAL_CALL AccessibleSelectionBase::clearAccessibleSelection( ) throw (uno::RuntimeException)
- {
- ::osl::MutexGuard aGuard( implGetMutex() );
- OCommonAccessibleSelection::clearAccessibleSelection();
- }
-
- //--------------------------------------------------------------------
-
- void SAL_CALL AccessibleSelectionBase::selectAllAccessibleChildren( ) throw (uno::RuntimeException)
- {
- ::osl::MutexGuard aGuard( implGetMutex() );
- OCommonAccessibleSelection::selectAllAccessibleChildren();
- }
-
- //--------------------------------------------------------------------
-
- sal_Int32 SAL_CALL AccessibleSelectionBase::getSelectedAccessibleChildCount( ) throw (uno::RuntimeException)
- {
- ::osl::MutexGuard aGuard( implGetMutex() );
- return( OCommonAccessibleSelection::getSelectedAccessibleChildCount() );
- }
-
- //--------------------------------------------------------------------
-
- uno::Reference< XAccessible > SAL_CALL AccessibleSelectionBase::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- ::osl::MutexGuard aGuard( implGetMutex() );
- return( OCommonAccessibleSelection::getSelectedAccessibleChild( nSelectedChildIndex ) );
- }
-
- //--------------------------------------------------------------------
-
- void SAL_CALL AccessibleSelectionBase::deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- ::osl::MutexGuard aGuard( implGetMutex() );
- OCommonAccessibleSelection::deselectAccessibleChild( nSelectedChildIndex );
- }
-}
diff --git a/svx/source/accessibility/AccessibleShape.cxx b/svx/source/accessibility/AccessibleShape.cxx
index eec143cb4f64..28cdb8b0882b 100755
--- a/svx/source/accessibility/AccessibleShape.cxx
+++ b/svx/source/accessibility/AccessibleShape.cxx
@@ -2,13 +2,10 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2008 by Sun Microsystems, Inc.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: AccessibleShape.cxx,v $
- * $Revision: 1.54 $
- *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
@@ -48,9 +45,9 @@
#include <com/sun/star/lang/IndexOutOfBoundsException.hpp>
#include <com/sun/star/drawing/FillStyle.hpp>
#include <com/sun/star/text/XText.hpp>
-#include <svx/outlobj.hxx>
+#include <editeng/outlobj.hxx>
#include <rtl/ref.hxx>
-#include <svx/unoedsrc.hxx>
+#include <editeng/unoedsrc.hxx>
#include <svx/unoshtxt.hxx>
#include <svx/svdobj.hxx>
#include <svx/svdmodel.hxx>
diff --git a/svx/source/accessibility/AccessibleShapeInfo.cxx b/svx/source/accessibility/AccessibleShapeInfo.cxx
index 990f01a38b14..7d6eb8f4c50f 100644
--- a/svx/source/accessibility/AccessibleShapeInfo.cxx
+++ b/svx/source/accessibility/AccessibleShapeInfo.cxx
@@ -2,13 +2,10 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2008 by Sun Microsystems, Inc.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: AccessibleShapeInfo.cxx,v $
- * $Revision: 1.7 $
- *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
diff --git a/svx/source/accessibility/AccessibleShapeTreeInfo.cxx b/svx/source/accessibility/AccessibleShapeTreeInfo.cxx
index 68aed32c1fb7..5241fa5abbf1 100644
--- a/svx/source/accessibility/AccessibleShapeTreeInfo.cxx
+++ b/svx/source/accessibility/AccessibleShapeTreeInfo.cxx
@@ -2,13 +2,10 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2008 by Sun Microsystems, Inc.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: AccessibleShapeTreeInfo.cxx,v $
- * $Revision: 1.13 $
- *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
diff --git a/svx/source/accessibility/AccessibleStaticTextBase.cxx b/svx/source/accessibility/AccessibleStaticTextBase.cxx
deleted file mode 100644
index ddc77e9e0ba4..000000000000
--- a/svx/source/accessibility/AccessibleStaticTextBase.cxx
+++ /dev/null
@@ -1,1050 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: AccessibleStaticTextBase.cxx,v $
- * $Revision: 1.27 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svx.hxx"
-
-//------------------------------------------------------------------------
-//
-// Global header
-//
-//------------------------------------------------------------------------
-
-#include <limits.h>
-#include <vector>
-#include <algorithm>
-#include <boost/bind.hpp>
-#include <vos/mutex.hxx>
-#include <vcl/window.hxx>
-#include <vcl/svapp.hxx>
-#include <comphelper/sequenceasvector.hxx>
-#include <com/sun/star/uno/Any.hxx>
-#include <com/sun/star/uno/Reference.hxx>
-#include <com/sun/star/awt/Point.hpp>
-#include <com/sun/star/awt/Rectangle.hpp>
-#include <com/sun/star/accessibility/AccessibleTextType.hpp>
-
-//------------------------------------------------------------------------
-//
-// Project-local header
-//
-//------------------------------------------------------------------------
-
-#include <svx/editdata.hxx>
-#include "unopracc.hxx"
-#include "unoedprx.hxx"
-#include "AccessibleStaticTextBase.hxx"
-#include "AccessibleEditableTextPara.hxx"
-
-
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::accessibility;
-
-/* TODO:
- =====
-
- - separate adapter functionality from AccessibleStaticText class
-
- - refactor common loops into templates, using mem_fun
-
- */
-
-namespace accessibility
-{
- typedef ::comphelper::SequenceAsVector< beans::PropertyValue > PropertyValueVector;
-
- class PropertyValueEqualFunctor : public ::std::binary_function< beans::PropertyValue, beans::PropertyValue, bool >
- {
- public:
- PropertyValueEqualFunctor()
- {}
- bool operator() ( const beans::PropertyValue& lhs, const beans::PropertyValue& rhs ) const
- {
- return ( lhs.Name == rhs.Name && lhs.Value == rhs.Value );
- }
- };
-
- //------------------------------------------------------------------------
- //
- // Static Helper
- //
- //------------------------------------------------------------------------
- ESelection MakeSelection( sal_Int32 nStartPara, sal_Int32 nStartIndex,
- sal_Int32 nEndPara, sal_Int32 nEndIndex )
- {
- DBG_ASSERT(nStartPara >= 0 && nStartPara <= USHRT_MAX &&
- nStartIndex >= 0 && nStartIndex <= USHRT_MAX &&
- nEndPara >= 0 && nEndPara <= USHRT_MAX &&
- nEndIndex >= 0 && nEndIndex <= USHRT_MAX ,
- "AccessibleStaticTextBase_Impl::MakeSelection: index value overflow");
-
- return ESelection( static_cast< USHORT >(nStartPara), static_cast< USHORT >(nStartIndex),
- static_cast< USHORT >(nEndPara), static_cast< USHORT >(nEndIndex) );
- }
-
- //------------------------------------------------------------------------
- //
- // AccessibleStaticTextBase_Impl declaration
- //
- //------------------------------------------------------------------------
-
- DBG_NAME( AccessibleStaticTextBase_Impl );
-
- /** AccessibleStaticTextBase_Impl
-
- This class implements the AccessibleStaticTextBase
- functionality, mainly by forwarding the calls to an aggregated
- AccessibleEditableTextPara. As this is a therefore non-trivial
- adapter, factoring out the common functionality from
- AccessibleEditableTextPara might be a profitable future task.
- */
- class AccessibleStaticTextBase_Impl
- {
-
- public:
-
- // receive pointer to our frontend class and view window
- AccessibleStaticTextBase_Impl();
- ~AccessibleStaticTextBase_Impl();
-
- SvxEditSourceAdapter& GetEditSource() const SAL_THROW((uno::RuntimeException))
- {
- DBG_CHKTHIS( AccessibleStaticTextBase_Impl, NULL );
-
- return maEditSource;
- }
- void SetEditSource( ::std::auto_ptr< SvxEditSource > pEditSource ) SAL_THROW((uno::RuntimeException));
-
- void SetEventSource( const uno::Reference< XAccessible >& rInterface )
- {
- DBG_CHKTHIS( AccessibleStaticTextBase_Impl, NULL );
-
- mxThis = rInterface;
- }
- uno::Reference< XAccessible > GetEventSource() const
- {
- DBG_CHKTHIS( AccessibleStaticTextBase_Impl, NULL );
-
- return mxThis;
- }
-
- void SetOffset( const Point& );
- Point GetOffset() const
- {
- DBG_CHKTHIS( AccessibleStaticTextBase_Impl, NULL );
-
- ::osl::MutexGuard aGuard( maMutex ); Point aPoint( maOffset );
- return aPoint;
- }
-
- void UpdateChildren();
- void Dispose();
-
-#ifdef DBG_UTIL
- void CheckInvariants() const;
-#endif
-
- AccessibleEditableTextPara& GetParagraph( sal_Int32 nPara ) const;
- sal_Int32 GetParagraphCount() const;
- sal_Int32 GetParagraphIndex() const;
- sal_Int32 GetLineCount( sal_Int32 nParagraph ) const;
-
- EPosition Index2Internal( sal_Int32 nFlatIndex ) const
- {
- DBG_CHKTHIS( AccessibleStaticTextBase_Impl, NULL );
-
- return ImpCalcInternal( nFlatIndex, false );
- }
-
- EPosition Range2Internal( sal_Int32 nFlatIndex ) const
- {
- DBG_CHKTHIS( AccessibleStaticTextBase_Impl, NULL );
-
- return ImpCalcInternal( nFlatIndex, true );
- }
-
- sal_Int32 Internal2Index( EPosition nEEIndex ) const;
-
- void CorrectTextSegment( TextSegment& aTextSegment,
- int nPara ) const;
-
- sal_Bool SetSelection( sal_Int32 nStartPara, sal_Int32 nStartIndex,
- sal_Int32 nEndPara, sal_Int32 nEndIndex );
- sal_Bool CopyText( sal_Int32 nStartPara, sal_Int32 nStartIndex,
- sal_Int32 nEndPara, sal_Int32 nEndIndex );
-
- Rectangle GetParagraphBoundingBox() const;
-
- private:
-
- EPosition ImpCalcInternal( sal_Int32 nFlatIndex, bool bExclusive ) const;
-
- // our frontend class (the one implementing the actual
- // interface). That's not necessarily the one containing the impl
- // pointer
- uno::Reference< XAccessible > mxThis;
-
- // implements our functionality, we're just an adapter (guarded by solar mutex)
- mutable AccessibleEditableTextPara* mpTextParagraph;
-
- uno::Reference< XAccessible > mxParagraph;
-
- // a wrapper for the text forwarders (guarded by solar mutex)
- mutable SvxEditSourceAdapter maEditSource;
-
- // guard for maOffset
- mutable ::osl::Mutex maMutex;
-
- /// our current offset to the containing shape/cell (guarded by maMutex)
- Point maOffset;
-
- };
-
- //------------------------------------------------------------------------
- //
- // AccessibleStaticTextBase_Impl implementation
- //
- //------------------------------------------------------------------------
-
- AccessibleStaticTextBase_Impl::AccessibleStaticTextBase_Impl() :
- mxThis( NULL ),
- mpTextParagraph( new AccessibleEditableTextPara(NULL) ),
- mxParagraph( mpTextParagraph ),
- maEditSource(),
- maMutex(),
- maOffset(0,0)
- {
- DBG_CTOR( AccessibleStaticTextBase_Impl, NULL );
-
- // TODO: this is still somewhat of a hack, all the more since
- // now the maTextParagraph has an empty parent reference set
- }
-
- AccessibleStaticTextBase_Impl::~AccessibleStaticTextBase_Impl()
- {
- DBG_DTOR( AccessibleStaticTextBase_Impl, NULL );
- }
-
- void AccessibleStaticTextBase_Impl::SetEditSource( ::std::auto_ptr< SvxEditSource > pEditSource ) SAL_THROW((uno::RuntimeException))
- {
- DBG_CHKTHIS( AccessibleStaticTextBase_Impl, NULL );
-
- maEditSource.SetEditSource( pEditSource );
- if( mpTextParagraph )
- mpTextParagraph->SetEditSource( &maEditSource );
- }
-
- void AccessibleStaticTextBase_Impl::SetOffset( const Point& rPoint )
- {
- DBG_CHKTHIS( AccessibleStaticTextBase_Impl, NULL );
-
- // guard against non-atomic access to maOffset data structure
- {
- ::osl::MutexGuard aGuard( maMutex );
- maOffset = rPoint;
- }
-
- if( mpTextParagraph )
- mpTextParagraph->SetEEOffset( rPoint );
-
- // in all cases, check visibility afterwards.
- UpdateChildren();
- }
-
- void AccessibleStaticTextBase_Impl::UpdateChildren()
- {
- DBG_CHKTHIS( AccessibleStaticTextBase_Impl, NULL );
-
- // currently no children
- }
-
- void AccessibleStaticTextBase_Impl::Dispose()
- {
- DBG_CHKTHIS( AccessibleStaticTextBase_Impl, NULL );
-
- // we're the owner of the paragraph, so destroy it, too
- if( mpTextParagraph )
- mpTextParagraph->Dispose();
-
- // drop references
- mxParagraph = NULL;
- mxThis = NULL;
- mpTextParagraph = NULL;
- }
-
-#ifdef DBG_UTIL
- void AccessibleStaticTextBase_Impl::CheckInvariants() const
- {
- // TODO
- }
-#endif
-
- AccessibleEditableTextPara& AccessibleStaticTextBase_Impl::GetParagraph( sal_Int32 nPara ) const
- {
- DBG_CHKTHIS( AccessibleStaticTextBase_Impl, NULL );
-
- if( !mpTextParagraph )
- throw lang::DisposedException (
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("object has been already disposed")), mxThis );
-
- // TODO: Have a differnt method on AccessibleEditableTextPara
- // that does not care about state changes
- mpTextParagraph->SetParagraphIndex( nPara );
-
- return *mpTextParagraph;
- }
-
- sal_Int32 AccessibleStaticTextBase_Impl::GetParagraphCount() const
- {
- DBG_CHKTHIS( AccessibleStaticTextBase_Impl, NULL );
-
- if( !mpTextParagraph )
- return 0;
- else
- return mpTextParagraph->GetTextForwarder().GetParagraphCount();
- }
-
- sal_Int32 AccessibleStaticTextBase_Impl::GetParagraphIndex() const
- {
- DBG_CHKTHIS( AccessibleStaticTextBase_Impl, NULL );
-
- sal_Int32 nIndex = -1;
- if( mpTextParagraph )
- nIndex = mpTextParagraph->GetParagraphIndex();
- return nIndex;
- }
-
- sal_Int32 AccessibleStaticTextBase_Impl::GetLineCount( sal_Int32 nParagraph ) const
- {
- DBG_CHKTHIS( AccessibleStaticTextBase_Impl, NULL );
-
- sal_Int32 nIndex = 0;
- if( mpTextParagraph )
- nIndex = mpTextParagraph->GetTextForwarder().GetLineCount( static_cast< USHORT >(nParagraph) );
- return nIndex;
- }
-
- sal_Int32 AccessibleStaticTextBase_Impl::Internal2Index( EPosition nEEIndex ) const
- {
- sal_Int32 aRes(0);
- int i;
- for(i=0; i<nEEIndex.nPara; ++i)
- aRes += GetParagraph(i).getCharacterCount();
-
- return aRes + nEEIndex.nIndex;
- }
-
- void AccessibleStaticTextBase_Impl::CorrectTextSegment( TextSegment& aTextSegment,
- int nPara ) const
- {
- // Keep 'invalid' values at the TextSegment
- if( aTextSegment.SegmentStart != -1 &&
- aTextSegment.SegmentStart != -1 )
- {
- // #112814# Correct TextSegment by paragraph offset
- sal_Int32 nOffset(0);
- int i;
- for(i=0; i<nPara; ++i)
- nOffset += GetParagraph(i).getCharacterCount();
-
- aTextSegment.SegmentStart += nOffset;
- aTextSegment.SegmentEnd += nOffset;
- }
- }
-
- EPosition AccessibleStaticTextBase_Impl::ImpCalcInternal( sal_Int32 nFlatIndex, bool bExclusive ) const
- {
- DBG_CHKTHIS( AccessibleStaticTextBase_Impl, NULL );
-
- if( nFlatIndex < 0 )
- throw lang::IndexOutOfBoundsException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AccessibleStaticTextBase_Impl::Index2Internal: character index out of bounds")),
- mxThis);
- // gratuitously accepting larger indices here, AccessibleEditableTextPara will throw eventually
-
- sal_Int32 nCurrPara, nCurrIndex, nParas, nCurrCount;
- for( nCurrPara=0, nParas=GetParagraphCount(), nCurrCount=0, nCurrIndex=0; nCurrPara<nParas; ++nCurrPara )
- {
- nCurrCount = GetParagraph( nCurrPara ).getCharacterCount();
- nCurrIndex += nCurrCount;
-
- if( nCurrIndex > nFlatIndex )
- {
- // check overflow
- DBG_ASSERT(nCurrPara >= 0 && nCurrPara <= USHRT_MAX &&
- nFlatIndex - nCurrIndex + nCurrCount >= 0 && nFlatIndex - nCurrIndex + nCurrCount <= USHRT_MAX ,
- "AccessibleStaticTextBase_Impl::Index2Internal: index value overflow");
-
- return EPosition( static_cast< USHORT >(nCurrPara), static_cast< USHORT >(nFlatIndex - nCurrIndex + nCurrCount) );
- }
- }
-
- // #102170# Allow one-past the end for ranges
- if( bExclusive && nCurrIndex == nFlatIndex )
- {
- // check overflow
- DBG_ASSERT(nCurrPara >= 0 && nCurrPara <= USHRT_MAX &&
- nFlatIndex - nCurrIndex + nCurrCount >= 0 && nFlatIndex - nCurrIndex + nCurrCount <= USHRT_MAX ,
- "AccessibleStaticTextBase_Impl::Index2Internal: index value overflow");
-
- return EPosition( static_cast< USHORT >(nCurrPara-1), static_cast< USHORT >(nFlatIndex - nCurrIndex + nCurrCount) );
- }
-
- // not found? Out of bounds
- throw lang::IndexOutOfBoundsException(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AccessibleStaticTextBase_Impl::Index2Internal: character index out of bounds")),
- mxThis);
- }
-
- sal_Bool AccessibleStaticTextBase_Impl::SetSelection( sal_Int32 nStartPara, sal_Int32 nStartIndex,
- sal_Int32 nEndPara, sal_Int32 nEndIndex )
- {
- DBG_CHKTHIS( AccessibleStaticTextBase_Impl, NULL );
-
- if( !mpTextParagraph )
- return sal_False;
-
- try
- {
- SvxEditViewForwarder& rCacheVF = mpTextParagraph->GetEditViewForwarder( sal_True );
- return rCacheVF.SetSelection( MakeSelection(nStartPara, nStartIndex, nEndPara, nEndIndex) );
- }
- catch( const uno::RuntimeException& )
- {
- return sal_False;
- }
- }
-
- sal_Bool AccessibleStaticTextBase_Impl::CopyText( sal_Int32 nStartPara, sal_Int32 nStartIndex,
- sal_Int32 nEndPara, sal_Int32 nEndIndex )
- {
- DBG_CHKTHIS( AccessibleStaticTextBase_Impl, NULL );
-
- if( !mpTextParagraph )
- return sal_False;
-
- try
- {
- SvxEditViewForwarder& rCacheVF = mpTextParagraph->GetEditViewForwarder( sal_True );
- mpTextParagraph->GetTextForwarder(); // MUST be after GetEditViewForwarder(), see method docs
- sal_Bool aRetVal;
-
- // save current selection
- ESelection aOldSelection;
-
- rCacheVF.GetSelection( aOldSelection );
- rCacheVF.SetSelection( MakeSelection(nStartPara, nStartIndex, nEndPara, nEndIndex) );
- aRetVal = rCacheVF.Copy();
- rCacheVF.SetSelection( aOldSelection ); // restore
-
- return aRetVal;
- }
- catch( const uno::RuntimeException& )
- {
- return sal_False;
- }
- }
-
- Rectangle AccessibleStaticTextBase_Impl::GetParagraphBoundingBox() const
- {
- Rectangle aRect;
- if( mpTextParagraph )
- {
- awt::Rectangle aAwtRect = mpTextParagraph->getBounds();
- aRect = Rectangle( Point( aAwtRect.X, aAwtRect.Y ), Size( aAwtRect.Width, aAwtRect.Height ) );
- }
- else
- {
- aRect.SetEmpty();
- }
- return aRect;
- }
-
- //------------------------------------------------------------------------
- //
- // AccessibleStaticTextBase implementation
- //
- //------------------------------------------------------------------------
-
- AccessibleStaticTextBase::AccessibleStaticTextBase( ::std::auto_ptr< SvxEditSource > pEditSource ) :
- mpImpl( new AccessibleStaticTextBase_Impl() )
- {
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- SetEditSource( pEditSource );
- }
-
- AccessibleStaticTextBase::~AccessibleStaticTextBase()
- {
- }
-
- const SvxEditSource& AccessibleStaticTextBase::GetEditSource() const SAL_THROW((::com::sun::star::uno::RuntimeException))
- {
-#ifdef DBG_UTIL
- mpImpl->CheckInvariants();
-
- const SvxEditSource& aEditSource = mpImpl->GetEditSource();
-
- mpImpl->CheckInvariants();
-
- return aEditSource;
-#else
- return mpImpl->GetEditSource();
-#endif
- }
-
- void AccessibleStaticTextBase::SetEditSource( ::std::auto_ptr< SvxEditSource > pEditSource ) SAL_THROW((::com::sun::star::uno::RuntimeException))
- {
-#ifdef DBG_UTIL
- // precondition: solar mutex locked
- DBG_TESTSOLARMUTEX();
-
- mpImpl->CheckInvariants();
-
- mpImpl->SetEditSource( pEditSource );
-
- mpImpl->CheckInvariants();
-#else
- mpImpl->SetEditSource( pEditSource );
-#endif
- }
-
- void AccessibleStaticTextBase::SetEventSource( const uno::Reference< XAccessible >& rInterface )
- {
-#ifdef DBG_UTIL
- mpImpl->CheckInvariants();
-#endif
-
- mpImpl->SetEventSource( rInterface );
-
-#ifdef DBG_UTIL
- mpImpl->CheckInvariants();
-#endif
- }
-
- uno::Reference< XAccessible > AccessibleStaticTextBase::GetEventSource() const
- {
-#ifdef DBG_UTIL
- mpImpl->CheckInvariants();
-
- uno::Reference< XAccessible > xRet( mpImpl->GetEventSource() );
-
- mpImpl->CheckInvariants();
-
- return xRet;
-#else
- return mpImpl->GetEventSource();
-#endif
- }
-
- void AccessibleStaticTextBase::SetOffset( const Point& rPoint )
- {
-#ifdef DBG_UTIL
- // precondition: solar mutex locked
- DBG_TESTSOLARMUTEX();
-
- mpImpl->CheckInvariants();
-
- mpImpl->SetOffset( rPoint );
-
- mpImpl->CheckInvariants();
-#else
- mpImpl->SetOffset( rPoint );
-#endif
- }
-
- Point AccessibleStaticTextBase::GetOffset() const
- {
-#ifdef DBG_UTIL
- mpImpl->CheckInvariants();
-
- Point aPoint( mpImpl->GetOffset() );
-
- mpImpl->CheckInvariants();
-
- return aPoint;
-#else
- return mpImpl->GetOffset();
-#endif
- }
-
- void AccessibleStaticTextBase::UpdateChildren() SAL_THROW((::com::sun::star::uno::RuntimeException))
- {
-#ifdef DBG_UTIL
- // precondition: solar mutex locked
- DBG_TESTSOLARMUTEX();
-
- mpImpl->CheckInvariants();
-
- mpImpl->UpdateChildren();
-
- mpImpl->CheckInvariants();
-#else
- mpImpl->UpdateChildren();
-#endif
- }
-
- void AccessibleStaticTextBase::Dispose()
- {
-#ifdef DBG_UTIL
- mpImpl->CheckInvariants();
-#endif
-
- mpImpl->Dispose();
-
-#ifdef DBG_UTIL
- mpImpl->CheckInvariants();
-#endif
- }
-
- // XAccessibleContext
- sal_Int32 SAL_CALL AccessibleStaticTextBase::getAccessibleChildCount() throw (uno::RuntimeException)
- {
- // no children at all
- return 0;
- }
-
- uno::Reference< XAccessible > SAL_CALL AccessibleStaticTextBase::getAccessibleChild( sal_Int32 /*i*/ ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- // no children at all
- return uno::Reference< XAccessible >();
- }
-
- uno::Reference< XAccessible > SAL_CALL AccessibleStaticTextBase::getAccessibleAtPoint( const awt::Point& /*_aPoint*/ ) throw (uno::RuntimeException)
- {
- // no children at all
- return uno::Reference< XAccessible >();
- }
-
- // XAccessibleText
- sal_Int32 SAL_CALL AccessibleStaticTextBase::getCaretPosition() throw (uno::RuntimeException)
- {
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- sal_Int32 i, nPos, nParas;
- for( i=0, nPos=-1, nParas=mpImpl->GetParagraphCount(); i<nParas; ++i )
- {
- if( (nPos=mpImpl->GetParagraph(i).getCaretPosition()) != -1 )
- return nPos;
- }
-
- return nPos;
- }
-
- sal_Bool SAL_CALL AccessibleStaticTextBase::setCaretPosition( sal_Int32 nIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- return setSelection(nIndex, nIndex);
- }
-
- sal_Unicode SAL_CALL AccessibleStaticTextBase::getCharacter( sal_Int32 nIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- EPosition aPos( mpImpl->Index2Internal(nIndex) );
-
- return mpImpl->GetParagraph( aPos.nPara ).getCharacter( aPos.nIndex );
- }
-
- uno::Sequence< beans::PropertyValue > SAL_CALL AccessibleStaticTextBase::getCharacterAttributes( sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRequestedAttributes ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- EPosition aPos( mpImpl->Index2Internal(nIndex) );
-
- return mpImpl->GetParagraph( aPos.nPara ).getCharacterAttributes( aPos.nIndex, aRequestedAttributes );
- }
-
- awt::Rectangle SAL_CALL AccessibleStaticTextBase::getCharacterBounds( sal_Int32 nIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- // #108900# Allow ranges for nIndex, as one-past-the-end
- // values are now legal, too.
- EPosition aPos( mpImpl->Range2Internal(nIndex) );
-
- // #i70916# Text in spread sheet cells return the wrong extents
- AccessibleEditableTextPara& rPara = mpImpl->GetParagraph( aPos.nPara );
- awt::Rectangle aParaBounds( rPara.getBounds() );
- awt::Rectangle aBounds( rPara.getCharacterBounds( aPos.nIndex ) );
- aBounds.X += aParaBounds.X;
- aBounds.Y += aParaBounds.Y;
-
- return aBounds;
- }
-
- sal_Int32 SAL_CALL AccessibleStaticTextBase::getCharacterCount() throw (uno::RuntimeException)
- {
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- sal_Int32 i, nCount, nParas;
- for( i=0, nCount=0, nParas=mpImpl->GetParagraphCount(); i<nParas; ++i )
- nCount += mpImpl->GetParagraph(i).getCharacterCount();
-
- return nCount;
- }
-
- sal_Int32 SAL_CALL AccessibleStaticTextBase::getIndexAtPoint( const awt::Point& rPoint ) throw (uno::RuntimeException)
- {
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- const sal_Int32 nParas( mpImpl->GetParagraphCount() );
- sal_Int32 nIndex;
- int i;
- for( i=0; i<nParas; ++i )
- {
- // TODO: maybe exploit the fact that paragraphs are
- // ordered vertically for early exit
-
- // #i70916# Text in spread sheet cells return the wrong extents
- AccessibleEditableTextPara& rPara = mpImpl->GetParagraph( i );
- awt::Rectangle aParaBounds( rPara.getBounds() );
- awt::Point aPoint( rPoint );
- aPoint.X -= aParaBounds.X;
- aPoint.Y -= aParaBounds.Y;
-
- // #112814# Use correct index offset
- if ( ( nIndex = rPara.getIndexAtPoint( aPoint ) ) != -1 )
- return mpImpl->Internal2Index( EPosition(sal::static_int_cast<USHORT>(i),
- sal::static_int_cast<USHORT>(nIndex)) );
- }
-
- return -1;
- }
-
- ::rtl::OUString SAL_CALL AccessibleStaticTextBase::getSelectedText() throw (uno::RuntimeException)
- {
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- sal_Int32 nStart( getSelectionStart() );
- sal_Int32 nEnd( getSelectionEnd() );
-
- // #104481# Return the empty string for 'no selection'
- if( nStart < 0 || nEnd < 0 )
- return ::rtl::OUString();
-
- return getTextRange( nStart, nEnd );
- }
-
- sal_Int32 SAL_CALL AccessibleStaticTextBase::getSelectionStart() throw (uno::RuntimeException)
- {
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- sal_Int32 i, nPos, nParas;
- for( i=0, nPos=-1, nParas=mpImpl->GetParagraphCount(); i<nParas; ++i )
- {
- if( (nPos=mpImpl->GetParagraph(i).getSelectionStart()) != -1 )
- return nPos;
- }
-
- return nPos;
- }
-
- sal_Int32 SAL_CALL AccessibleStaticTextBase::getSelectionEnd() throw (uno::RuntimeException)
- {
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- sal_Int32 i, nPos, nParas;
- for( i=0, nPos=-1, nParas=mpImpl->GetParagraphCount(); i<nParas; ++i )
- {
- if( (nPos=mpImpl->GetParagraph(i).getSelectionEnd()) != -1 )
- return nPos;
- }
-
- return nPos;
- }
-
- sal_Bool SAL_CALL AccessibleStaticTextBase::setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- EPosition aStartIndex( mpImpl->Range2Internal(nStartIndex) );
- EPosition aEndIndex( mpImpl->Range2Internal(nEndIndex) );
-
- return mpImpl->SetSelection( aStartIndex.nPara, aStartIndex.nIndex,
- aEndIndex.nPara, aEndIndex.nIndex );
- }
-
- ::rtl::OUString SAL_CALL AccessibleStaticTextBase::getText() throw (uno::RuntimeException)
- {
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- sal_Int32 i, nParas;
- ::rtl::OUString aRes;
- for( i=0, nParas=mpImpl->GetParagraphCount(); i<nParas; ++i )
- aRes += mpImpl->GetParagraph(i).getText();
-
- return aRes;
- }
-
- ::rtl::OUString SAL_CALL AccessibleStaticTextBase::getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- if( nStartIndex > nEndIndex )
- ::std::swap(nStartIndex, nEndIndex);
-
- EPosition aStartIndex( mpImpl->Range2Internal(nStartIndex) );
- EPosition aEndIndex( mpImpl->Range2Internal(nEndIndex) );
-
- // #102170# Special case: start and end paragraph are identical
- if( aStartIndex.nPara == aEndIndex.nPara )
- {
- return mpImpl->GetParagraph( aStartIndex.nPara ).getTextRange( aStartIndex.nIndex, aEndIndex.nIndex );
- }
- else
- {
- sal_Int32 i( aStartIndex.nPara );
- ::rtl::OUString aRes( mpImpl->GetParagraph(i).getTextRange( aStartIndex.nIndex,
- mpImpl->GetParagraph(i).getCharacterCount()-1) );
- ++i;
-
- // paragraphs inbetween are fully included
- for( ; i<aEndIndex.nPara; ++i )
- aRes += mpImpl->GetParagraph(i).getText();
-
- if( i<=aEndIndex.nPara )
- aRes += mpImpl->GetParagraph(i).getTextRange( 0, aEndIndex.nIndex );
-
- return aRes;
- }
- }
-
- ::com::sun::star::accessibility::TextSegment SAL_CALL AccessibleStaticTextBase::getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
- {
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- EPosition aPos( mpImpl->Range2Internal(nIndex) );
-
- ::com::sun::star::accessibility::TextSegment aResult;
-
- if( AccessibleTextType::PARAGRAPH == aTextType )
- {
- // #106393# Special casing one behind last paragraph is
- // not necessary, since then, we return the content and
- // boundary of that last paragraph. Range2Internal is
- // tolerant against that, and returns the last paragraph
- // in aPos.nPara.
-
- // retrieve full text of the paragraph
- aResult.SegmentText = mpImpl->GetParagraph( aPos.nPara ).getText();
-
- // #112814# Adapt the start index with the paragraph offset
- aResult.SegmentStart = mpImpl->Internal2Index( EPosition( aPos.nPara, 0 ) );
- aResult.SegmentEnd = aResult.SegmentStart + aResult.SegmentText.getLength();
- }
- else
- {
- // No special handling required, forward to wrapped class
- aResult = mpImpl->GetParagraph( aPos.nPara ).getTextAtIndex( aPos.nIndex, aTextType );
-
- // #112814# Adapt the start index with the paragraph offset
- mpImpl->CorrectTextSegment( aResult, aPos.nPara );
- }
-
- return aResult;
- }
-
- ::com::sun::star::accessibility::TextSegment SAL_CALL AccessibleStaticTextBase::getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
- {
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- EPosition aPos( mpImpl->Range2Internal(nIndex) );
-
- ::com::sun::star::accessibility::TextSegment aResult;
-
- if( AccessibleTextType::PARAGRAPH == aTextType )
- {
- if( aPos.nIndex == mpImpl->GetParagraph( aPos.nPara ).getCharacterCount() )
- {
- // #103589# Special casing one behind the last paragraph
- aResult.SegmentText = mpImpl->GetParagraph( aPos.nPara ).getText();
-
- // #112814# Adapt the start index with the paragraph offset
- aResult.SegmentStart = mpImpl->Internal2Index( EPosition( aPos.nPara, 0 ) );
- }
- else if( aPos.nPara > 0 )
- {
- aResult.SegmentText = mpImpl->GetParagraph( aPos.nPara - 1 ).getText();
-
- // #112814# Adapt the start index with the paragraph offset
- aResult.SegmentStart = mpImpl->Internal2Index( EPosition( aPos.nPara - 1, 0 ) );
- }
-
- aResult.SegmentEnd = aResult.SegmentStart + aResult.SegmentText.getLength();
- }
- else
- {
- // No special handling required, forward to wrapped class
- aResult = mpImpl->GetParagraph( aPos.nPara ).getTextBeforeIndex( aPos.nIndex, aTextType );
-
- // #112814# Adapt the start index with the paragraph offset
- mpImpl->CorrectTextSegment( aResult, aPos.nPara );
- }
-
- return aResult;
- }
-
- ::com::sun::star::accessibility::TextSegment SAL_CALL AccessibleStaticTextBase::getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
- {
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- EPosition aPos( mpImpl->Range2Internal(nIndex) );
-
- ::com::sun::star::accessibility::TextSegment aResult;
-
- if( AccessibleTextType::PARAGRAPH == aTextType )
- {
- // Special casing one behind the last paragraph is not
- // necessary, this case is invalid here for
- // getTextBehindIndex
- if( aPos.nPara + 1 < mpImpl->GetParagraphCount() )
- {
- aResult.SegmentText = mpImpl->GetParagraph( aPos.nPara + 1 ).getText();
-
- // #112814# Adapt the start index with the paragraph offset
- aResult.SegmentStart = mpImpl->Internal2Index( EPosition( aPos.nPara + 1, 0 ) );
- aResult.SegmentEnd = aResult.SegmentStart + aResult.SegmentText.getLength();
- }
- }
- else
- {
- // No special handling required, forward to wrapped class
- aResult = mpImpl->GetParagraph( aPos.nPara ).getTextBehindIndex( aPos.nIndex, aTextType );
-
- // #112814# Adapt the start index with the paragraph offset
- mpImpl->CorrectTextSegment( aResult, aPos.nPara );
- }
-
- return aResult;
- }
-
- sal_Bool SAL_CALL AccessibleStaticTextBase::copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- if( nStartIndex > nEndIndex )
- ::std::swap(nStartIndex, nEndIndex);
-
- EPosition aStartIndex( mpImpl->Range2Internal(nStartIndex) );
- EPosition aEndIndex( mpImpl->Range2Internal(nEndIndex) );
-
- return mpImpl->CopyText( aStartIndex.nPara, aStartIndex.nIndex,
- aEndIndex.nPara, aEndIndex.nIndex );
- }
-
- // XAccessibleTextAttributes
- uno::Sequence< beans::PropertyValue > AccessibleStaticTextBase::getDefaultAttributes( const uno::Sequence< ::rtl::OUString >& RequestedAttributes ) throw (uno::RuntimeException)
- {
- // get the intersection of the default attributes of all paragraphs
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- PropertyValueVector aDefAttrVec( mpImpl->GetParagraph( 0 ).getDefaultAttributes( RequestedAttributes ) );
-
- const sal_Int32 nParaCount = mpImpl->GetParagraphCount();
- for ( sal_Int32 nPara = 1; nPara < nParaCount; ++nPara )
- {
- uno::Sequence< beans::PropertyValue > aSeq = mpImpl->GetParagraph( nPara ).getDefaultAttributes( RequestedAttributes );
- PropertyValueVector aIntersectionVec;
-
- PropertyValueVector::const_iterator aEnd = aDefAttrVec.end();
- for ( PropertyValueVector::const_iterator aItr = aDefAttrVec.begin(); aItr != aEnd; ++aItr )
- {
- const beans::PropertyValue* pItr = aSeq.getConstArray();
- const beans::PropertyValue* pEnd = pItr + aSeq.getLength();
- const beans::PropertyValue* pFind = ::std::find_if( pItr, pEnd, ::std::bind2nd( PropertyValueEqualFunctor(), boost::cref( *aItr ) ) );
- if ( pFind != pEnd )
- {
- aIntersectionVec.push_back( *pFind );
- }
- }
-
- aDefAttrVec.swap( aIntersectionVec );
-
- if ( aDefAttrVec.empty() )
- {
- break;
- }
- }
-
- return aDefAttrVec.getAsConstList();
- }
-
- uno::Sequence< beans::PropertyValue > SAL_CALL AccessibleStaticTextBase::getRunAttributes( sal_Int32 nIndex, const uno::Sequence< ::rtl::OUString >& RequestedAttributes ) throw (lang::IndexOutOfBoundsException, uno::RuntimeException)
- {
- // get those default attributes of the paragraph, which are not part
- // of the intersection of all paragraphs and add them to the run attributes
-
- ::vos::OGuard aGuard( Application::GetSolarMutex() );
-
- EPosition aPos( mpImpl->Index2Internal( nIndex ) );
- AccessibleEditableTextPara& rPara = mpImpl->GetParagraph( aPos.nPara );
- uno::Sequence< beans::PropertyValue > aDefAttrSeq = rPara.getDefaultAttributes( RequestedAttributes );
- uno::Sequence< beans::PropertyValue > aRunAttrSeq = rPara.getRunAttributes( aPos.nIndex, RequestedAttributes );
- uno::Sequence< beans::PropertyValue > aIntersectionSeq = getDefaultAttributes( RequestedAttributes );
- PropertyValueVector aDiffVec;
-
- const beans::PropertyValue* pDefAttr = aDefAttrSeq.getConstArray();
- const sal_Int32 nLength = aDefAttrSeq.getLength();
- for ( sal_Int32 i = 0; i < nLength; ++i )
- {
- const beans::PropertyValue* pItr = aIntersectionSeq.getConstArray();
- const beans::PropertyValue* pEnd = pItr + aIntersectionSeq.getLength();
- const beans::PropertyValue* pFind = ::std::find_if( pItr, pEnd, ::std::bind2nd( PropertyValueEqualFunctor(), boost::cref( pDefAttr[i] ) ) );
- if ( pFind == pEnd && pDefAttr[i].Handle != 0)
- {
- aDiffVec.push_back( pDefAttr[i] );
- }
- }
-
- return ::comphelper::concatSequences( aRunAttrSeq, aDiffVec.getAsConstList() );
- }
-
- Rectangle AccessibleStaticTextBase::GetParagraphBoundingBox() const
- {
- return mpImpl->GetParagraphBoundingBox();
- }
-
- sal_Int32 AccessibleStaticTextBase::GetParagraphIndex() const
- {
- return mpImpl->GetParagraphIndex();
- }
-
- sal_Int32 AccessibleStaticTextBase::GetParagraphCount() const
- {
- return mpImpl->GetParagraphCount();
- }
-
- sal_Int32 AccessibleStaticTextBase::GetLineCount( sal_Int32 nParagraph ) const
- {
- return mpImpl->GetLineCount( nParagraph );
- }
-
-} // end of namespace accessibility
-
-//------------------------------------------------------------------------
diff --git a/svx/source/accessibility/AccessibleStringWrap.cxx b/svx/source/accessibility/AccessibleStringWrap.cxx
deleted file mode 100644
index a1ef3c264ecd..000000000000
--- a/svx/source/accessibility/AccessibleStringWrap.cxx
+++ /dev/null
@@ -1,104 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: AccessibleStringWrap.cxx,v $
- * $Revision: 1.8 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org 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 Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_svx.hxx"
-
-#include <algorithm>
-#include <tools/debug.hxx>
-#include <vcl/outdev.hxx>
-
-#include <svx/svxfont.hxx>
-#include "AccessibleStringWrap.hxx"
-
-
-//------------------------------------------------------------------------
-//
-// AccessibleStringWrap implementation
-//
-//------------------------------------------------------------------------
-
-AccessibleStringWrap::AccessibleStringWrap( OutputDevice& rDev, SvxFont& rFont, const String& rText ) :
- mrDev( rDev ),
- mrFont( rFont ),
- maText( rText )
-{
-}
-
-sal_Bool AccessibleStringWrap::GetCharacterBounds( sal_Int32 nIndex, Rectangle& rRect )
-{
- DBG_ASSERT(nIndex >= 0 && nIndex <= USHRT_MAX,
- "SvxAccessibleStringWrap::GetCharacterBounds: index value overflow");
-
- mrFont.SetPhysFont( &mrDev );
-
- // #108900# Handle virtual position one-past-the end of the string
- if( nIndex >= maText.Len() )
- {
- // create a caret bounding rect that has the height of the
- // current font and is one pixel wide.
- rRect.Left() = mrDev.GetTextWidth(maText);
- rRect.Top() = 0;
- rRect.SetSize( Size(mrDev.GetTextHeight(), 1) );
- }
- else
- {
- sal_Int32 aXArray[2];
- mrDev.GetCaretPositions( maText, aXArray, static_cast< USHORT >(nIndex), 1 );
- rRect.Left() = 0;
- rRect.Top() = 0;
- rRect.SetSize( Size(mrDev.GetTextHeight(), labs(aXArray[0] - aXArray[1])) );
- rRect.Move( ::std::min(aXArray[0], aXArray[1]), 0 );
- }
-
- if( mrFont.IsVertical() )
- {
- // #101701# Rotate to vertical
- rRect = Rectangle( Point(-rRect.Top(), rRect.Left()),
- Point(-rRect.Bottom(), rRect.Right()));
- }
-
- return sal_True;
-}
-
-sal_Int32 AccessibleStringWrap::GetIndexAtPoint( const Point& rPoint )
-{
- // search for character bounding box containing given point
- Rectangle aRect;
- sal_Int32 i, nLen = maText.Len();
- for( i=0; i<nLen; ++i )
- {
- GetCharacterBounds(i, aRect);
- if( aRect.IsInside(rPoint) )
- return i;
- }
-
- return -1;
-}
diff --git a/svx/source/accessibility/AccessibleTextEventQueue.cxx b/svx/source/accessibility/AccessibleTextEventQueue.cxx
index 37ed65cd40a1..fa34e6d0cc17 100644
--- a/svx/source/accessibility/AccessibleTextEventQueue.cxx
+++ b/svx/source/accessibility/AccessibleTextEventQueue.cxx
@@ -2,13 +2,10 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2008 by Sun Microsystems, Inc.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: AccessibleTextEventQueue.cxx,v $
- * $Revision: 1.6 $
- *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
@@ -32,16 +29,16 @@
#include "precompiled_svx.hxx"
#include "AccessibleTextEventQueue.hxx"
#include <svx/unoshape.hxx>
-#include "unolingu.hxx"
-#include <svx/unotext.hxx>
+#include "editeng/unolingu.hxx"
+#include <editeng/unotext.hxx>
-#include "unoedhlp.hxx"
-#include "unopracc.hxx"
+#include "editeng/unoedhlp.hxx"
+#include "editeng/unopracc.hxx"
#include <svx/svdmodel.hxx>
#include <svx/svdpntv.hxx>
-#include <svx/editdata.hxx>
-#include <svx/editeng.hxx>
-#include <svx/editview.hxx>
+#include <editeng/editdata.hxx>
+#include <editeng/editeng.hxx>
+#include <editeng/editview.hxx>
namespace accessibility
{
diff --git a/svx/source/accessibility/AccessibleTextEventQueue.hxx b/svx/source/accessibility/AccessibleTextEventQueue.hxx
index ff319287f249..8f508858108a 100644
--- a/svx/source/accessibility/AccessibleTextEventQueue.hxx
+++ b/svx/source/accessibility/AccessibleTextEventQueue.hxx
@@ -2,13 +2,10 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2008 by Sun Microsystems, Inc.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: AccessibleTextEventQueue.hxx,v $
- * $Revision: 1.6 $
- *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
diff --git a/svx/source/accessibility/AccessibleTextHelper.cxx b/svx/source/accessibility/AccessibleTextHelper.cxx
index 5b632115c93c..48eb2ba6a884 100644
--- a/svx/source/accessibility/AccessibleTextHelper.cxx
+++ b/svx/source/accessibility/AccessibleTextHelper.cxx
@@ -2,13 +2,10 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2008 by Sun Microsystems, Inc.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: AccessibleTextHelper.cxx,v $
- * $Revision: 1.48 $
- *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
@@ -70,18 +67,18 @@
#include "AccessibleTextEventQueue.hxx"
#include <svx/AccessibleTextHelper.hxx>
#include <svx/unoshape.hxx>
-#include "unolingu.hxx"
-#include <svx/unotext.hxx>
+#include "editeng/unolingu.hxx"
+#include <editeng/unotext.hxx>
-#include "unoedhlp.hxx"
-#include "unopracc.hxx"
-#include "AccessibleParaManager.hxx"
-#include "AccessibleEditableTextPara.hxx"
+#include "editeng/unoedhlp.hxx"
+#include "editeng/unopracc.hxx"
+#include "editeng/AccessibleParaManager.hxx"
+#include "editeng/AccessibleEditableTextPara.hxx"
#include <svx/svdmodel.hxx>
#include <svx/svdpntv.hxx>
-#include <svx/editdata.hxx>
-#include <svx/editeng.hxx>
-#include <svx/editview.hxx>
+#include <editeng/editdata.hxx>
+#include <editeng/editeng.hxx>
+#include <editeng/editview.hxx>
using namespace ::com::sun::star;
using namespace ::com::sun::star::accessibility;
diff --git a/svx/source/accessibility/ChildrenManager.cxx b/svx/source/accessibility/ChildrenManager.cxx
index e7c2416b0094..89afa1ae073f 100644
--- a/svx/source/accessibility/ChildrenManager.cxx
+++ b/svx/source/accessibility/ChildrenManager.cxx
@@ -2,13 +2,10 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2008 by Sun Microsystems, Inc.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: ChildrenManager.cxx,v $
- * $Revision: 1.18 $
- *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
diff --git a/svx/source/accessibility/ChildrenManagerImpl.cxx b/svx/source/accessibility/ChildrenManagerImpl.cxx
index ff5555184c87..803388414451 100644
--- a/svx/source/accessibility/ChildrenManagerImpl.cxx
+++ b/svx/source/accessibility/ChildrenManagerImpl.cxx
@@ -2,13 +2,10 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2008 by Sun Microsystems, Inc.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: ChildrenManagerImpl.cxx,v $
- * $Revision: 1.41 $
- *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
diff --git a/svx/source/accessibility/ChildrenManagerImpl.hxx b/svx/source/accessibility/ChildrenManagerImpl.hxx
index 77dd60808dc2..9e82a96434db 100644
--- a/svx/source/accessibility/ChildrenManagerImpl.hxx
+++ b/svx/source/accessibility/ChildrenManagerImpl.hxx
@@ -2,13 +2,10 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2008 by Sun Microsystems, Inc.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: ChildrenManagerImpl.hxx,v $
- * $Revision: 1.24 $
- *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
@@ -33,21 +30,16 @@
#include <svx/IAccessibleViewForwarderListener.hxx>
#include <svx/IAccessibleParent.hxx>
#include <svx/AccessibleShapeTreeInfo.hxx>
-#include <svx/AccessibleContextBase.hxx>
+#include <editeng/AccessibleContextBase.hxx>
#include <cppuhelper/compbase2.hxx>
#include <vos/mutex.hxx>
#include <vector>
+#include <memory>
#include <com/sun/star/drawing/XShape.hpp>
#include <com/sun/star/drawing/XShapes.hpp>
#include <com/sun/star/document/XEventListener.hpp>
-#ifndef _COM_SUN_STAR_DOCUMENT_XSELECTIONCHANGELISTENER_HPP_
#include <com/sun/star/view/XSelectionChangeListener.hpp>
-#endif
-#ifndef _COM_SUN_STAR_ACCESSIBLE_XACCESSIBLE_HPP_
#include <com/sun/star/accessibility/XAccessible.hpp>
-#endif
-#include <vector>
-
using namespace ::com::sun::star;
diff --git a/svx/source/accessibility/DGColorNameLookUp.cxx b/svx/source/accessibility/DGColorNameLookUp.cxx
index eaae4a8913d6..8c8e0e403654 100644
--- a/svx/source/accessibility/DGColorNameLookUp.cxx
+++ b/svx/source/accessibility/DGColorNameLookUp.cxx
@@ -2,13 +2,10 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2008 by Sun Microsystems, Inc.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: DGColorNameLookUp.cxx,v $
- * $Revision: 1.6 $
- *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
diff --git a/svx/source/accessibility/DescriptionGenerator.cxx b/svx/source/accessibility/DescriptionGenerator.cxx
index 2c8d66b9d28d..010bc5decfeb 100644
--- a/svx/source/accessibility/DescriptionGenerator.cxx
+++ b/svx/source/accessibility/DescriptionGenerator.cxx
@@ -2,13 +2,10 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2008 by Sun Microsystems, Inc.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: DescriptionGenerator.cxx,v $
- * $Revision: 1.13 $
- *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
diff --git a/svx/source/accessibility/GraphCtlAccessibleContext.cxx b/svx/source/accessibility/GraphCtlAccessibleContext.cxx
index 7a51543b23ec..b0523bda67e1 100644
--- a/svx/source/accessibility/GraphCtlAccessibleContext.cxx
+++ b/svx/source/accessibility/GraphCtlAccessibleContext.cxx
@@ -2,13 +2,10 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2008 by Sun Microsystems, Inc.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: GraphCtlAccessibleContext.cxx,v $
- * $Revision: 1.26 $
- *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
diff --git a/svx/source/accessibility/ShapeTypeHandler.cxx b/svx/source/accessibility/ShapeTypeHandler.cxx
index 1d8fef6a7568..228f2ed50492 100755
--- a/svx/source/accessibility/ShapeTypeHandler.cxx
+++ b/svx/source/accessibility/ShapeTypeHandler.cxx
@@ -2,13 +2,10 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2008 by Sun Microsystems, Inc.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: ShapeTypeHandler.cxx,v $
- * $Revision: 1.18 $
- *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
diff --git a/svx/source/accessibility/SvxShapeTypes.cxx b/svx/source/accessibility/SvxShapeTypes.cxx
index d3dea52a5aea..afdec80872b1 100644
--- a/svx/source/accessibility/SvxShapeTypes.cxx
+++ b/svx/source/accessibility/SvxShapeTypes.cxx
@@ -2,13 +2,10 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2008 by Sun Microsystems, Inc.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: SvxShapeTypes.cxx,v $
- * $Revision: 1.17 $
- *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
diff --git a/svx/source/accessibility/accessibility.src b/svx/source/accessibility/accessibility.src
index 418236a0107d..f9784833cc3b 100644
--- a/svx/source/accessibility/accessibility.src
+++ b/svx/source/accessibility/accessibility.src
@@ -2,13 +2,10 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2008 by Sun Microsystems, Inc.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: accessibility.src,v $
- * $Revision: 1.34 $
- *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
@@ -196,16 +193,6 @@ String RID_SVXSTR_GRAPHCTRL_ACC_DESCRIPTION
Text [ en-US ] = "This is where you can edit the contour." ;
};
-String RID_SVXSTR_A11Y_IMAGEBULLET_DESCRIPTION
-{
- Text [ en-US ] = "Image bullet in paragraph" ;
-};
-
-String RID_SVXSTR_A11Y_IMAGEBULLET_NAME
-{
- Text [ en-US ] = "Image bullet" ;
-};
-
String RID_SVXSTR_CHARACTER_SELECTION
{
Text [ en-US ] = "Special character selection";
diff --git a/svx/source/accessibility/charmapacc.cxx b/svx/source/accessibility/charmapacc.cxx
index f130e9f71759..c1509eacc843 100644
--- a/svx/source/accessibility/charmapacc.cxx
+++ b/svx/source/accessibility/charmapacc.cxx
@@ -2,13 +2,10 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2008 by Sun Microsystems, Inc.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: charmapacc.cxx,v $
- * $Revision: 1.15 $
- *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
diff --git a/svx/source/accessibility/makefile.mk b/svx/source/accessibility/makefile.mk
index 8b1802bf1a25..9ac9cff08a1d 100755
--- a/svx/source/accessibility/makefile.mk
+++ b/svx/source/accessibility/makefile.mk
@@ -2,14 +2,10 @@
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
-# Copyright 2008 by Sun Microsystems, Inc.
+# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
#
-# $RCSfile: makefile.mk,v $
-#
-# $Revision: 1.25 $
-#
# This file is part of OpenOffice.org.
#
# OpenOffice.org is free software: you can redistribute it and/or modify
@@ -33,7 +29,6 @@ PRJ=..$/..
PRJNAME=svx
TARGET=accessibility
-LIBTARGET=NO
ENABLE_EXCEPTIONS=TRUE
# --- Settings -----------------------------------------------------
@@ -43,21 +38,13 @@ ENABLE_EXCEPTIONS=TRUE
# --- Files --------------------------------------------------------
-LIB1TARGET= $(SLB)$/$(TARGET)-core.lib
-LIB1OBJFILES= \
- $(SLO)$/AccessibleStringWrap.obj
-
-LIB2TARGET= $(SLB)$/$(TARGET).lib
-LIB2OBJFILES= \
+SLOFILES= \
$(SLO)$/charmapacc.obj \
$(SLO)$/svxrectctaccessiblecontext.obj \
$(SLO)$/GraphCtlAccessibleContext.obj \
$(SLO)$/ChildrenManager.obj \
$(SLO)$/ChildrenManagerImpl.obj \
$(SLO)$/DescriptionGenerator.obj \
- $(SLO)$/AccessibleContextBase.obj \
- $(SLO)$/AccessibleComponentBase.obj \
- $(SLO)$/AccessibleSelectionBase.obj \
$(SLO)$/AccessibleShape.obj \
$(SLO)$/AccessibleGraphicShape.obj \
$(SLO)$/AccessibleOLEShape.obj \
@@ -66,18 +53,12 @@ LIB2OBJFILES= \
$(SLO)$/AccessibleTextHelper.obj \
$(SLO)$/AccessibleEmptyEditSource.obj \
$(SLO)$/AccessibleTextEventQueue.obj \
- $(SLO)$/AccessibleStaticTextBase.obj \
- $(SLO)$/AccessibleParaManager.obj \
- $(SLO)$/AccessibleEditableTextPara.obj \
- $(SLO)$/AccessibleImageBullet.obj \
$(SLO)$/ShapeTypeHandler.obj \
$(SLO)$/SvxShapeTypes.obj \
$(SLO)$/AccessibleControlShape.obj \
$(SLO)$/DGColorNameLookUp.obj \
$(SLO)$/AccessibleFrameSelector.obj
-SLOFILES = $(LIB1OBJFILES) $(LIB2OBJFILES)
-
SRS2NAME = accessibility
SRC2FILES = accessibility.src
diff --git a/svx/source/accessibility/svxrectctaccessiblecontext.cxx b/svx/source/accessibility/svxrectctaccessiblecontext.cxx
index a3890ccc9738..9dfb97dff4ac 100644
--- a/svx/source/accessibility/svxrectctaccessiblecontext.cxx
+++ b/svx/source/accessibility/svxrectctaccessiblecontext.cxx
@@ -2,13 +2,10 @@
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
- * Copyright 2008 by Sun Microsystems, Inc.
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
*
* OpenOffice.org - a multi-platform office productivity suite
*
- * $RCSfile: svxrectctaccessiblecontext.cxx,v $
- * $Revision: 1.24 $
- *
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify