diff options
Diffstat (limited to 'editeng/source/accessibility')
7 files changed, 7 insertions, 1010 deletions
diff --git a/editeng/source/accessibility/AccessibleEditableTextPara.cxx b/editeng/source/accessibility/AccessibleEditableTextPara.cxx index 065102c58534..141dc19af7c1 100644 --- a/editeng/source/accessibility/AccessibleEditableTextPara.cxx +++ b/editeng/source/accessibility/AccessibleEditableTextPara.cxx @@ -75,7 +75,7 @@ #include <com/sun/star/beans/PropertyState.hpp> #include <editeng/unolingu.hxx> #include <editeng/unopracc.hxx> -#include "AccessibleEditableTextPara.hxx" +#include "editeng/AccessibleEditableTextPara.hxx" #include <svtools/colorcfg.hxx> diff --git a/editeng/source/accessibility/AccessibleEditableTextPara.hxx b/editeng/source/accessibility/AccessibleEditableTextPara.hxx deleted file mode 100644 index 4e297f44c3b5..000000000000 --- a/editeng/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/editeng/source/accessibility/AccessibleImageBullet.cxx b/editeng/source/accessibility/AccessibleImageBullet.cxx index 5ab0d25b7994..91aff356db6d 100644 --- a/editeng/source/accessibility/AccessibleImageBullet.cxx +++ b/editeng/source/accessibility/AccessibleImageBullet.cxx @@ -44,8 +44,8 @@ #include <comphelper/accessibleeventnotifier.hxx> #include <unotools/accessiblestatesethelper.hxx> #include <editeng/unolingu.hxx> -#include "AccessibleEditableTextPara.hxx" -#include "AccessibleImageBullet.hxx" +#include "editeng/AccessibleEditableTextPara.hxx" +#include "editeng/AccessibleImageBullet.hxx" #include <editeng/eerdll.hxx> #include <editeng/editdata.hxx> diff --git a/editeng/source/accessibility/AccessibleImageBullet.hxx b/editeng/source/accessibility/AccessibleImageBullet.hxx deleted file mode 100644 index 72b20b8b2d42..000000000000 --- a/editeng/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 <editeng/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/editeng/source/accessibility/AccessibleParaManager.cxx b/editeng/source/accessibility/AccessibleParaManager.cxx index 876c844b4460..6953c5922ccf 100644 --- a/editeng/source/accessibility/AccessibleParaManager.cxx +++ b/editeng/source/accessibility/AccessibleParaManager.cxx @@ -51,8 +51,8 @@ #include <editeng/unoedhlp.hxx> #include <editeng/unopracc.hxx> #include <editeng/unoedsrc.hxx> -#include "AccessibleParaManager.hxx" -#include "AccessibleEditableTextPara.hxx" +#include "editeng/AccessibleParaManager.hxx" +#include "editeng/AccessibleEditableTextPara.hxx" using namespace ::com::sun::star; diff --git a/editeng/source/accessibility/AccessibleParaManager.hxx b/editeng/source/accessibility/AccessibleParaManager.hxx deleted file mode 100644 index bf50b97d32fb..000000000000 --- a/editeng/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/editeng/source/accessibility/AccessibleStaticTextBase.cxx b/editeng/source/accessibility/AccessibleStaticTextBase.cxx index 1b880aec4328..c74b44904252 100644 --- a/editeng/source/accessibility/AccessibleStaticTextBase.cxx +++ b/editeng/source/accessibility/AccessibleStaticTextBase.cxx @@ -59,9 +59,9 @@ #include <editeng/editdata.hxx> #include <editeng/unopracc.hxx> -#include "unoedprx.hxx" +#include "editeng/unoedprx.hxx" #include <editeng/AccessibleStaticTextBase.hxx> -#include "AccessibleEditableTextPara.hxx" +#include "editeng/AccessibleEditableTextPara.hxx" using namespace ::com::sun::star; |