summaryrefslogtreecommitdiff
path: root/sd/source/ui/unoidl/unosrch.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sd/source/ui/unoidl/unosrch.cxx')
-rw-r--r--sd/source/ui/unoidl/unosrch.cxx878
1 files changed, 0 insertions, 878 deletions
diff --git a/sd/source/ui/unoidl/unosrch.cxx b/sd/source/ui/unoidl/unosrch.cxx
deleted file mode 100644
index 58b8f2259..000000000
--- a/sd/source/ui/unoidl/unosrch.cxx
+++ /dev/null
@@ -1,878 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * 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_sd.hxx"
-#include <vcl/svapp.hxx>
-#include <osl/mutex.hxx>
-
-#include <svx/unoshape.hxx>
-#include <svx/svdpool.hxx>
-#include <svx/unoprov.hxx>
-#include <editeng/unotext.hxx>
-
-#include <comphelper/extract.hxx>
-#include <rtl/memory.h>
-
-#include "unohelp.hxx"
-#include "unoprnms.hxx"
-#include "unosrch.hxx"
-
-using namespace ::rtl;
-using namespace ::com::sun::star;
-
-#define WID_SEARCH_BACKWARDS 0
-#define WID_SEARCH_CASE 1
-#define WID_SEARCH_WORDS 2
-
-const SfxItemPropertyMapEntry* ImplGetSearchPropertyMap()
-{
- static const SfxItemPropertyMapEntry aSearchPropertyMap_Impl[] =
- {
- { MAP_CHAR_LEN(UNO_NAME_SEARCH_BACKWARDS), WID_SEARCH_BACKWARDS, &::getBooleanCppuType(), 0, 0 },
- { MAP_CHAR_LEN(UNO_NAME_SEARCH_CASE), WID_SEARCH_CASE, &::getBooleanCppuType(), 0, 0 },
- { MAP_CHAR_LEN(UNO_NAME_SEARCH_WORDS), WID_SEARCH_WORDS, &::getBooleanCppuType(), 0, 0 },
- { 0,0,0,0,0,0}
- };
-
- return aSearchPropertyMap_Impl;
-}
-
-class SearchContext_impl
-{
- uno::Reference< drawing::XShapes > mxShapes;
- sal_Int32 mnIndex;
- SearchContext_impl* mpParent;
-
-public:
- SearchContext_impl( uno::Reference< drawing::XShapes > xShapes, SearchContext_impl* pParent = NULL )
- : mxShapes( xShapes ), mnIndex( -1 ), mpParent( pParent ) {}
-
-
- uno::Reference< drawing::XShape > firstShape()
- {
- mnIndex = -1;
- return nextShape();
- }
-
- uno::Reference< drawing::XShape > nextShape()
- {
- uno::Reference< drawing::XShape > xShape;
- mnIndex++;
- if( mxShapes.is() && mxShapes->getCount() > mnIndex )
- {
- mxShapes->getByIndex( mnIndex ) >>= xShape;
- }
- return xShape;
- }
-
- SearchContext_impl* getParent() const { return mpParent; }
-};
-
-/* ================================================================= */
-/** this class implements a search or replace operation on a given
- page or a given sdrobj
- */
-
-SdUnoSearchReplaceShape::SdUnoSearchReplaceShape( drawing::XDrawPage* pPage ) throw()
-{
- mpPage = pPage;
-}
-
-SdUnoSearchReplaceShape::~SdUnoSearchReplaceShape() throw()
-{
-}
-
-// util::XReplaceable
-uno::Reference< util::XReplaceDescriptor > SAL_CALL SdUnoSearchReplaceShape::createReplaceDescriptor()
- throw( uno::RuntimeException )
-{
- return new SdUnoSearchReplaceDescriptor(sal_True);
-}
-
-sal_Int32 SAL_CALL SdUnoSearchReplaceShape::replaceAll( const uno::Reference< util::XSearchDescriptor >& xDesc )
- throw( uno::RuntimeException )
-{
- SdUnoSearchReplaceDescriptor* pDescr = SdUnoSearchReplaceDescriptor::getImplementation( xDesc );
- if( pDescr == NULL )
- return 0;
-
- sal_Int32 nFound = 0;
-
- uno::Reference< drawing::XShapes > xShapes;
- uno::Reference< drawing::XShape > xShape;
-
- SearchContext_impl* pContext = NULL;
- if(mpPage)
- {
- uno::Reference< drawing::XDrawPage > xPage( mpPage );
-
- xPage->queryInterface( ITYPE( drawing::XShapes ) ) >>= xShapes;
-
- if( xShapes.is() && (xShapes->getCount() > 0) )
- {
- pContext = new SearchContext_impl( xShapes );
- xShape = pContext->firstShape();
- }
- else
- {
- xShapes = NULL;
- }
- }
- else
- {
- xShape = mpShape;
- }
-
- while( xShape.is() )
- {
- // replace in xShape
- uno::Reference< text::XText > xText(xShape, uno::UNO_QUERY);
- uno::Reference< text::XTextRange > xRange(xText, uno::UNO_QUERY);
- uno::Reference< text::XTextRange > xFound;
-
- while( xRange.is() )
- {
- xFound = Search( xRange, pDescr );
- if( !xFound.is() )
- break;
-
- xFound->setString( pDescr->getReplaceString() );
- xRange = xFound->getEnd();
- nFound++;
- }
- // done with xShape -> get next shape
-
- // test if its a group
- uno::Reference< drawing::XShapes > xGroupShape( xShape, uno::UNO_QUERY );
- if( xGroupShape.is() && ( xGroupShape->getCount() > 0 ) )
- {
- pContext = new SearchContext_impl( xGroupShape, pContext );
- xShape = pContext->firstShape();
- }
- else
- {
- if( pContext )
- xShape = pContext->nextShape();
- else
- xShape = NULL;
- }
-
- // test parent contexts for next shape if none
- // is found in the current context
- while( pContext && !xShape.is() )
- {
- if( pContext->getParent() )
- {
- SearchContext_impl* pOldContext = pContext;
- pContext = pContext->getParent();
- delete pOldContext;
- xShape = pContext->nextShape();
- }
- else
- {
- delete pContext;
- pContext = NULL;
- xShape = NULL;
- }
- }
- }
-
- return nFound;
-}
-
-// XSearchable
-uno::Reference< ::com::sun::star::util::XSearchDescriptor > SAL_CALL SdUnoSearchReplaceShape::createSearchDescriptor( )
- throw(::com::sun::star::uno::RuntimeException)
-{
- return new SdUnoSearchReplaceDescriptor(sal_False);
-}
-
-uno::Reference< ::com::sun::star::container::XIndexAccess > SAL_CALL SdUnoSearchReplaceShape::findAll( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XSearchDescriptor >& xDesc )
- throw(::com::sun::star::uno::RuntimeException)
-{
- SdUnoSearchReplaceDescriptor* pDescr = SdUnoSearchReplaceDescriptor::getImplementation( xDesc );
- if( pDescr == NULL )
- return uno::Reference< container::XIndexAccess > ();
-
-
- sal_Int32 nSequence = 32;
- sal_Int32 nFound = 0;
-
- uno::Sequence < uno::Reference< uno::XInterface > > aSeq( nSequence );
-
- uno::Reference< uno::XInterface > * pArray = aSeq.getArray();
-
- uno::Reference< drawing::XShapes > xShapes;
- uno::Reference< drawing::XShape > xShape;
-
- SearchContext_impl* pContext = NULL;
- if(mpPage)
- {
- uno::Reference< drawing::XDrawPage > xPage( mpPage );
- xPage->queryInterface( ITYPE( drawing::XShapes ) ) >>= xShapes;
-
- if( xShapes.is() && xShapes->getCount() > 0 )
- {
- pContext = new SearchContext_impl( xShapes );
- xShape = pContext->firstShape();
- }
- else
- {
- xShapes = NULL;
- }
- }
- else
- {
- xShape = mpShape;
- }
- while( xShape.is() )
- {
- // find in xShape
- uno::Reference< text::XText > xText(xShape, uno::UNO_QUERY);
- uno::Reference< text::XTextRange > xRange(xText, uno::UNO_QUERY);
- uno::Reference< text::XTextRange > xFound;
-
- while( xRange.is() )
- {
- xFound = Search( xRange, pDescr );
- if( !xFound.is() )
- break;
-
- if( nFound >= nSequence )
- {
- nSequence += 32;
- aSeq.realloc( nSequence );
- pArray = aSeq.getArray();
- }
-
- pArray[nFound++] = xFound;
-
- xRange = xFound->getEnd();
- }
- // done with shape -> get next shape
-
- // test if its a group
- uno::Reference< drawing::XShapes > xGroupShape;
- uno::Any aAny( xShape->queryInterface( ITYPE( drawing::XShapes )));
-
- if( (aAny >>= xGroupShape ) && xGroupShape->getCount() > 0 )
- {
- pContext = new SearchContext_impl( xGroupShape, pContext );
- xShape = pContext->firstShape();
- }
- else
- {
- if( pContext )
- xShape = pContext->nextShape();
- else
- xShape = NULL;
- }
-
- // test parent contexts for next shape if none
- // is found in the current context
- while( pContext && !xShape.is() )
- {
- if( pContext->getParent() )
- {
- SearchContext_impl* pOldContext = pContext;
- pContext = pContext->getParent();
- delete pOldContext;
- xShape = pContext->nextShape();
- }
- else
- {
- delete pContext;
- pContext = NULL;
- xShape = NULL;
- }
- }
- }
-
- if( nFound != nSequence )
- aSeq.realloc( nFound );
-
- return (container::XIndexAccess*)new SdUnoFindAllAccess( aSeq );
-}
-
-uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL SdUnoSearchReplaceShape::findFirst( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XSearchDescriptor >& xDesc )
- throw(::com::sun::star::uno::RuntimeException)
-{
- uno::Reference< text::XTextRange > xRange( GetCurrentShape(), uno::UNO_QUERY );
- if( xRange.is() )
- return findNext( xRange, xDesc );
-
- return uno::Reference< uno::XInterface > ();
-}
-
-uno::Reference< drawing::XShape > SdUnoSearchReplaceShape::GetCurrentShape() const throw()
-{
- uno::Reference< drawing::XShape > xShape;
-
- if( mpPage )
- {
- uno::Reference< drawing::XDrawPage > xPage( mpPage );
- uno::Reference< container::XIndexAccess > xShapes( xPage, uno::UNO_QUERY );
- if( xShapes.is() )
- {
- if(xShapes->getCount() > 0)
- {
- xShapes->getByIndex(0) >>= xShape;
- }
- }
- }
- else if( mpShape )
- {
- xShape = mpShape;
- }
-
- return xShape;
-
-}
-
-uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL SdUnoSearchReplaceShape::findNext( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xStartAt, const ::com::sun::star::uno::Reference< ::com::sun::star::util::XSearchDescriptor >& xDesc )
- throw(::com::sun::star::uno::RuntimeException)
-{
- SdUnoSearchReplaceDescriptor* pDescr = SdUnoSearchReplaceDescriptor::getImplementation( xDesc );
-
- uno::Reference< uno::XInterface > xFound;
-
- uno::Reference< text::XTextRange > xRange( xStartAt, uno::UNO_QUERY );
- if(pDescr && xRange.is() )
- {
-
- uno::Reference< text::XTextRange > xCurrentRange( xStartAt, uno::UNO_QUERY );
-
- uno::Reference< drawing::XShape > xCurrentShape( GetShape( xCurrentRange ) );
-
- while(!xFound.is() && xRange.is())
- {
- xFound = Search( xRange, pDescr );
- if(!xFound.is())
- {
- // we need a new starting range now
- xRange = NULL;
-
- if(mpPage)
- {
- uno::Reference< drawing::XDrawPage > xPage( mpPage );
-
- // we do a page wide search, so skip to the next shape here
- uno::Reference< container::XIndexAccess > xShapes( xPage, uno::UNO_QUERY );
-
- // get next shape on our page
- if( xShapes.is() )
- {
- uno::Reference< drawing::XShape > xFound2( GetNextShape( xShapes, xCurrentShape ) );
- if( xFound2.is() && (xFound2.get() != xCurrentShape.get()) )
- xCurrentShape = xFound2;
- else
- xCurrentShape = NULL;
-
- xCurrentShape->queryInterface( ITYPE( text::XTextRange ) ) >>= xRange;
- if(!(xCurrentShape.is() && (xRange.is())))
- xRange = NULL;
- }
- }
- else
- {
- // we search only in this shape, so end search if we have
- // not found anything
- }
- }
- }
- }
- return xFound;
-}
-
-/** this method returns the shape that follows xCurrentShape in the shape collection xShapes.
- It steps recursive into groupshapes and returns the xCurrentShape if it is the last
- shape in this collection */
-uno::Reference< drawing::XShape > SdUnoSearchReplaceShape::GetNextShape( uno::Reference< container::XIndexAccess > xShapes, uno::Reference< drawing::XShape > xCurrentShape ) throw()
-{
- uno::Reference< drawing::XShape > xFound;
- uno::Any aAny;
-
- if(xShapes.is() && xCurrentShape.is())
- {
- const sal_Int32 nCount = xShapes->getCount();
- for( sal_Int32 i = 0; i < nCount; i++ )
- {
- uno::Reference< drawing::XShape > xSearchShape;
- xShapes->getByIndex(i) >>= xSearchShape;
-
- if( xSearchShape.is() )
- {
- uno::Reference< container::XIndexAccess > xGroup( xSearchShape, uno::UNO_QUERY );
-
- if( xCurrentShape.get() == xSearchShape.get() )
- {
- if( xGroup.is() && xGroup->getCount() > 0 )
- {
- xGroup->getByIndex( 0 ) >>= xFound;
- }
- else
- {
- i++;
- if( i < nCount )
- xShapes->getByIndex( i ) >>= xFound;
- else
- xFound = xCurrentShape;
- }
-
- break;
- }
- else if( xGroup.is() )
- {
- xFound = GetNextShape( xGroup, xCurrentShape );
- if( xFound.is() )
- {
- if( xFound.get() == xCurrentShape.get() )
- {
- // the current shape was found at the end of the group
- i++;
- if( i < nCount )
- {
- xShapes->getByIndex(i) >>= xFound;
- }
- }
- break;
- }
- }
- }
- }
- }
-
- return xFound;
-}
-
-uno::Reference< text::XTextRange > SdUnoSearchReplaceShape::Search( uno::Reference< text::XTextRange > xText, SdUnoSearchReplaceDescriptor* pDescr ) throw()
-{
- if(!xText.is())
- return uno::Reference< text::XTextRange > ();
-
- uno::Reference< text::XText > xParent( xText->getText() );
-
- if( !xParent.is() )
- {
- uno::Any aAny( xText->queryInterface( ITYPE( text::XText )) );
- aAny >>= xParent;
- }
-
- const OUString aText( xParent->getString() );
-
- const sal_Int32 nTextLen = aText.getLength();
-
- sal_Int32* pConvertPos = new sal_Int32[nTextLen+2];
- sal_Int32* pConvertPara = new sal_Int32[nTextLen+2];
-
- int ndbg = 0;
- const sal_Unicode* pText = aText.getStr();
-
- sal_Int32* pPos = pConvertPos;
- sal_Int32* pPara = pConvertPara;
-
- sal_Int32 nLastPos = 0, nLastPara = 0;
-
- uno::Reference< container::XEnumerationAccess > xEnumAccess( xParent, uno::UNO_QUERY );
-
- // first we fill the arrys with the position and paragraph for every character
- // inside the text
- if( xEnumAccess.is() )
- {
- uno::Reference< container::XEnumeration > xParaEnum( xEnumAccess->createEnumeration() );
-
- while(xParaEnum->hasMoreElements())
- {
- uno::Reference< text::XTextContent > xParagraph( xParaEnum->nextElement(), uno::UNO_QUERY );
- if( xParagraph.is() )
- xEnumAccess.query( xParagraph );
- else
- xEnumAccess.clear();
-
- if( xEnumAccess.is() )
- {
- uno::Reference< container::XEnumeration > xPortionEnum( xEnumAccess->createEnumeration() );
- if( xPortionEnum.is() )
- {
- while(xPortionEnum->hasMoreElements())
- {
- uno::Reference< text::XTextRange > xPortion( xPortionEnum->nextElement(), uno::UNO_QUERY );
- if( xPortion.is() )
- {
- const OUString aPortion( xPortion->getString() );
- const sal_Int32 nLen = aPortion.getLength();
-
- ESelection aStartSel( GetSelection( xPortion->getStart() ) );
- ESelection aEndSel( GetSelection( xPortion->getEnd() ) );
-
- // special case for empty portions with content or length one portions with content (fields)
- if( (aStartSel.nStartPos == aEndSel.nStartPos) || ( (aStartSel.nStartPos == (aEndSel.nStartPos - 1)) && (nLen > 1) ) )
- {
- for( sal_Int32 i = 0; i < nLen; i++ )
- {
- if( ndbg < (nTextLen+2) )
- {
- *pPos++ = aStartSel.nStartPos;
- *pPara++ = aStartSel.nStartPara;
-
- ndbg += 1;
- pText++;
- }
- else
- {
- OSL_FAIL( "array overflow while searching" );
- }
- }
-
- nLastPos = aStartSel.nStartPos;
- }
- // normal case
- else
- {
- for( sal_Int32 i = 0; i < nLen; i++ )
- {
- if( ndbg < (nTextLen+2) )
- {
- *pPos++ = aStartSel.nStartPos++;
- *pPara++ = aStartSel.nStartPara;
-
- ndbg += 1;
- pText++;
- }
- else
- {
- OSL_FAIL( "array overflow while searching" );
- }
- }
-
- nLastPos = aStartSel.nStartPos - 1;
- DBG_ASSERT( aEndSel.nStartPos == aStartSel.nStartPos, "Search is not working" );
- }
- nLastPara = aStartSel.nStartPara;
- }
- }
- }
- }
-
- if( ndbg < (nTextLen+2) )
- {
- *pPos++ = nLastPos + 1;
- *pPara++ = nLastPara;
-
- ndbg += 1;
- pText++;
- }
- else
- {
- OSL_FAIL( "array overflow while searching" );
- }
- }
- }
-
- uno::Reference< text::XText > xFound;
- ESelection aSel;
-
- uno::Reference< text::XTextRange > xRangeRef( xText, uno::UNO_QUERY );
- if( xRangeRef.is() )
- aSel = GetSelection( xRangeRef );
-
- sal_Int32 nStartPos;
- sal_Int32 nEndPos = 0;
- for( nStartPos = 0; nStartPos < nTextLen; nStartPos++ )
- {
- if( pConvertPara[nStartPos] == aSel.nStartPara && pConvertPos[nStartPos] == aSel.nStartPos )
- break;
- }
-
- if( Search( aText, nStartPos, nEndPos, pDescr ) )
- {
- if( nStartPos <= nTextLen && nEndPos <= nTextLen )
- {
- ESelection aSelection( (sal_uInt16)pConvertPara[nStartPos], (sal_uInt16)pConvertPos[nStartPos],
- (sal_uInt16)pConvertPara[nEndPos], (sal_uInt16)pConvertPos[nEndPos] );
- SvxUnoTextRange *pRange;
-
- SvxUnoTextBase* pParent = SvxUnoTextBase::getImplementation( xParent );
-
- if(pParent)
- {
- pRange = new SvxUnoTextRange( *pParent );
- xFound = (text::XText*)pRange;
- pRange->SetSelection(aSelection);
-
- }
- }
- else
- {
- OSL_FAIL("Array overflow while searching!");
- }
- }
-
- delete[] pConvertPos;
- delete[] pConvertPara;
-
- return uno::Reference< text::XTextRange > ( xFound, uno::UNO_QUERY );
-}
-
-sal_Bool SdUnoSearchReplaceShape::Search( const OUString& rText, sal_Int32& nStartPos, sal_Int32& nEndPos, SdUnoSearchReplaceDescriptor* pDescr ) throw()
-{
- OUString aSearchStr( pDescr->getSearchString() );
- OUString aText( rText );
-
- if( !pDescr->IsCaseSensitive() )
- {
- aText.toAsciiLowerCase();
- aSearchStr.toAsciiLowerCase();
- }
-
- sal_Int32 nFound = aText.indexOf( aSearchStr, nStartPos );
- if( nFound != -1 )
- {
- nStartPos = nFound;
- nEndPos = nFound + aSearchStr.getLength();
-
- if(pDescr->IsWords())
- {
- if( (nStartPos > 0 && aText.getStr()[nStartPos-1] > ' ') ||
- (nEndPos < aText.getLength() && aText.getStr()[nEndPos] > ' ') )
- {
- nStartPos++;
- return Search( aText, nStartPos, nEndPos, pDescr );
- }
- }
-
- return sal_True;
- }
- else
- return sal_False;
-}
-
-ESelection SdUnoSearchReplaceShape::GetSelection( uno::Reference< text::XTextRange > xTextRange ) throw()
-{
- ESelection aSel;
- SvxUnoTextRangeBase* pRange = SvxUnoTextRangeBase::getImplementation( xTextRange );
-
- if(pRange)
- aSel = pRange->GetSelection();
-
- return aSel;
-}
-
-uno::Reference< drawing::XShape > SdUnoSearchReplaceShape::GetShape( uno::Reference< text::XTextRange > xTextRange ) throw()
-{
- uno::Reference< drawing::XShape > xShape;
-
- if(xTextRange.is())
- {
- uno::Reference< text::XText > xText( xTextRange->getText() );
-
- if(xText.is())
- {
- do
- {
- xText->queryInterface( ITYPE( drawing::XShape )) >>= xShape;
- if(!xShape.is())
- {
- uno::Reference< text::XText > xParent( xText->getText() );
- if(!xParent.is() || xText.get() == xParent.get())
- return xShape;
-
- xText = xParent;
- }
- } while( !xShape.is() );
- }
- }
-
- return xShape;
-}
-
-/* ================================================================= */
-/** this class holds the parameters and status of a search or replace
- operation performed by class SdUnoSearchReplaceShape
- */
-
-UNO3_GETIMPLEMENTATION_IMPL( SdUnoSearchReplaceDescriptor );
-
-SdUnoSearchReplaceDescriptor::SdUnoSearchReplaceDescriptor( sal_Bool bReplace ) throw()
-{
- mpPropSet = new SvxItemPropertySet(ImplGetSearchPropertyMap(), SdrObject::GetGlobalDrawObjectItemPool());
-
- mbBackwards = sal_False;
- mbCaseSensitive = sal_False;
- mbWords = sal_False;
-
- mbReplace = bReplace;
-}
-
-SdUnoSearchReplaceDescriptor::~SdUnoSearchReplaceDescriptor() throw()
-{
- delete mpPropSet;
-}
-
-// XSearchDescriptor
-OUString SAL_CALL SdUnoSearchReplaceDescriptor::getSearchString()
- throw(::com::sun::star::uno::RuntimeException)
-{
- return maSearchStr;
-}
-
-void SAL_CALL SdUnoSearchReplaceDescriptor::setSearchString( const OUString& aString )
- throw(::com::sun::star::uno::RuntimeException)
-{
- maSearchStr = aString;
-}
-
-// XReplaceDescriptor
-OUString SAL_CALL SdUnoSearchReplaceDescriptor::getReplaceString()
- throw(::com::sun::star::uno::RuntimeException)
-{
- return maReplaceStr;
-}
-
-void SAL_CALL SdUnoSearchReplaceDescriptor::setReplaceString( const ::rtl::OUString& aReplaceString )
- throw(::com::sun::star::uno::RuntimeException)
-{
- maReplaceStr = aReplaceString;
-}
-
-// XPropertySet
-uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL SdUnoSearchReplaceDescriptor::getPropertySetInfo()
- throw(::com::sun::star::uno::RuntimeException)
-{
- SolarMutexGuard aGuard;
- return mpPropSet->getPropertySetInfo();
-}
-
-void SAL_CALL SdUnoSearchReplaceDescriptor::setPropertyValue( const ::rtl::OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue )
- throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException)
-{
- SolarMutexGuard aGuard;
-
- const SfxItemPropertySimpleEntry* pEntry = mpPropSet->getPropertyMapEntry(aPropertyName);
-
- sal_Bool bOk = sal_False;
-
- switch( pEntry ? pEntry->nWID : -1 )
- {
- case WID_SEARCH_BACKWARDS:
- bOk = (aValue >>= mbBackwards);
- break;
- case WID_SEARCH_CASE:
- bOk = (aValue >>= mbCaseSensitive);
- break;
- case WID_SEARCH_WORDS:
- bOk = (aValue >>= mbWords);
- break;
- default:
- throw beans::UnknownPropertyException();
- }
-
- if( !bOk )
- throw lang::IllegalArgumentException();
-}
-
-uno::Any SAL_CALL SdUnoSearchReplaceDescriptor::getPropertyValue( const ::rtl::OUString& PropertyName )
- throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException)
-{
- SolarMutexGuard aGuard;
-
- uno::Any aAny;
-
- const SfxItemPropertySimpleEntry* pEntry = mpPropSet->getPropertyMapEntry(PropertyName);
-
- switch( pEntry ? pEntry->nWID : -1 )
- {
- case WID_SEARCH_BACKWARDS:
- aAny <<= (sal_Bool)mbBackwards;
- break;
- case WID_SEARCH_CASE:
- aAny <<= (sal_Bool)mbCaseSensitive;
- break;
- case WID_SEARCH_WORDS:
- aAny <<= (sal_Bool)mbWords;
- break;
- default:
- throw beans::UnknownPropertyException();
- }
-
- return aAny;
-}
-
-void SAL_CALL SdUnoSearchReplaceDescriptor::addPropertyChangeListener( const ::rtl::OUString& , const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException) {}
-void SAL_CALL SdUnoSearchReplaceDescriptor::removePropertyChangeListener( const ::rtl::OUString& , const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener >& ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException) {}
-void SAL_CALL SdUnoSearchReplaceDescriptor::addVetoableChangeListener( const ::rtl::OUString& , const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException) {}
-void SAL_CALL SdUnoSearchReplaceDescriptor::removeVetoableChangeListener( const ::rtl::OUString& , const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener >& ) throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException) {}
-
-
-/* ================================================================= */
-
-SdUnoFindAllAccess::SdUnoFindAllAccess( uno::Sequence< uno::Reference< uno::XInterface > >& rSequence ) throw()
-:maSequence( rSequence )
-{
-}
-
-SdUnoFindAllAccess::~SdUnoFindAllAccess() throw()
-{
-}
-
-// XElementAccess
-uno::Type SAL_CALL SdUnoFindAllAccess::getElementType()
- throw(::com::sun::star::uno::RuntimeException)
-{
- return ITYPE( text::XTextRange );
-}
-
-sal_Bool SAL_CALL SdUnoFindAllAccess::hasElements()
- throw(::com::sun::star::uno::RuntimeException)
-{
- return maSequence.getLength() > 0;
-}
-
-// XIndexAccess
-sal_Int32 SAL_CALL SdUnoFindAllAccess::getCount()
- throw(::com::sun::star::uno::RuntimeException)
-{
- return maSequence.getLength();
-}
-
-uno::Any SAL_CALL SdUnoFindAllAccess::getByIndex( sal_Int32 Index )
- throw(::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException)
-{
- uno::Any aAny;
-
- if( Index < 0 || Index >= getCount() )
- throw lang::IndexOutOfBoundsException();
-
- const uno::Reference< uno::XInterface > *pRefs = maSequence.getConstArray();
- if(pRefs)
- aAny <<= pRefs[ Index ];
- return aAny;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */