summaryrefslogtreecommitdiff
path: root/svx/source/unoedit/unotext.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'svx/source/unoedit/unotext.cxx')
-rw-r--r--svx/source/unoedit/unotext.cxx2702
1 files changed, 0 insertions, 2702 deletions
diff --git a/svx/source/unoedit/unotext.cxx b/svx/source/unoedit/unotext.cxx
deleted file mode 100644
index a4d8c36462e6..000000000000
--- a/svx/source/unoedit/unotext.cxx
+++ /dev/null
@@ -1,2702 +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: unotext.cxx,v $
- * $Revision: 1.66 $
- *
- * 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 <vcl/svapp.hxx>
-#include <com/sun/star/style/LineSpacing.hpp>
-#include <com/sun/star/text/ControlCharacter.hpp>
-#include <com/sun/star/text/ControlCharacter.hpp>
-#ifndef _COM_SUN_STAR_TEXT_XTEXTFIELD_HDL_
-#include <com/sun/star/text/XTextField.hdl>
-#endif
-#include <vos/mutex.hxx>
-#include <svl/itemset.hxx>
-
-#include <svx/eeitem.hxx>
-#include <svl/itempool.hxx>
-#include <fontitem.hxx>
-#include <svx/tstpitem.hxx>
-#include <svx/svdobj.hxx>
-#include <svl/intitem.hxx>
-
-#include <svl/eitem.hxx>
-
-#include <rtl/uuid.h>
-#include <rtl/memory.h>
-
-#include <svx/unoshtxt.hxx>
-#include <svx/unoprnms.hxx>
-#include <svx/unotext.hxx>
-#include <svx/unoedsrc.hxx>
-#include <svx/unomid.hxx>
-#include "unonrule.hxx"
-#include "unofdesc.hxx"
-#include "unoapi.hxx"
-#include <svx/unofield.hxx>
-#include <svx/flditem.hxx>
-#include <svx/unoshprp.hxx>
-#include <svx/numitem.hxx>
-#include <svx/editeng.hxx>
-
-using namespace ::rtl;
-using namespace ::vos;
-using namespace ::cppu;
-using namespace ::com::sun::star;
-
-#define QUERYINT( xint ) \
- if( rType == ::getCppuType((const uno::Reference< xint >*)0) ) \
- return uno::makeAny(uno::Reference< xint >(this))
-
-
-extern const SfxItemPropertySet* ImplGetSvxUnoOutlinerTextCursorSfxPropertySet();
-const SfxItemPropertyMapEntry* ImplGetSvxTextPortionPropertyMap()
-{
- // Propertymap fuer einen Outliner Text
- static const SfxItemPropertyMapEntry aSvxTextPortionPropertyMap[] =
- {
- SVX_UNOEDIT_CHAR_PROPERTIES,
- SVX_UNOEDIT_FONT_PROPERTIES,
- SVX_UNOEDIT_OUTLINER_PROPERTIES,
- SVX_UNOEDIT_PARA_PROPERTIES,
- {MAP_CHAR_LEN("TextField"), EE_FEATURE_FIELD, &::getCppuType((const uno::Reference< text::XTextField >*)0), beans::PropertyAttribute::READONLY, 0 },
- {MAP_CHAR_LEN("TextPortionType"), WID_PORTIONTYPE, &::getCppuType((const ::rtl::OUString*)0), beans::PropertyAttribute::READONLY, 0 },
- {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}
- };
- return aSvxTextPortionPropertyMap;
-}
-const SvxItemPropertySet* ImplGetSvxTextPortionSvxPropertySet()
-{
- static SvxItemPropertySet aSvxTextPortionPropertySet( ImplGetSvxTextPortionPropertyMap() );
- return &aSvxTextPortionPropertySet;
-}
-
-const SfxItemPropertySet* ImplGetSvxTextPortionSfxPropertySet()
-{
- static SfxItemPropertySet aSvxTextPortionSfxPropertySet( ImplGetSvxTextPortionPropertyMap() );
- return &aSvxTextPortionSfxPropertySet;
-}
-
-// ====================================================================
-// helper fuer Item/Property Konvertierung
-// ====================================================================
-
-void GetSelection( struct ESelection& rSel, SvxTextForwarder* pForwarder ) throw()
-{
- DBG_ASSERT( pForwarder, "I need a valid SvxTextForwarder!" );
- if( pForwarder )
- {
- sal_Int16 nParaCount = pForwarder->GetParagraphCount();
- if(nParaCount>0)
- nParaCount--;
-
- rSel = ESelection( 0,0, nParaCount, pForwarder->GetTextLen( nParaCount ));
- }
-}
-
-void CheckSelection( struct ESelection& rSel, SvxTextForwarder* pForwarder ) throw()
-{
- DBG_ASSERT( pForwarder, "I need a valid SvxTextForwarder!" );
- if( pForwarder )
- {
- if( rSel.nStartPara == 0xffff )
- {
- ::GetSelection( rSel, pForwarder );
- }
- else
- {
- ESelection aMaxSelection;
- GetSelection( aMaxSelection, pForwarder );
-
- // check start position
- if( rSel.nStartPara < aMaxSelection.nStartPara )
- {
- rSel.nStartPara = aMaxSelection.nStartPara;
- rSel.nStartPos = aMaxSelection.nStartPos;
- }
- else if( rSel.nStartPara > aMaxSelection.nEndPara )
- {
- rSel.nStartPara = aMaxSelection.nEndPara;
- rSel.nStartPos = aMaxSelection.nEndPos;
- }
- else if( rSel.nStartPos > pForwarder->GetTextLen( rSel.nStartPara ) )
- {
- rSel.nStartPos = pForwarder->GetTextLen( rSel.nStartPara );
- }
-
- // check end position
- if( rSel.nEndPara < aMaxSelection.nStartPara )
- {
- rSel.nEndPara = aMaxSelection.nStartPara;
- rSel.nEndPos = aMaxSelection.nStartPos;
- }
- else if( rSel.nEndPara > aMaxSelection.nEndPara )
- {
- rSel.nEndPara = aMaxSelection.nEndPara;
- rSel.nEndPos = aMaxSelection.nEndPos;
- }
- else if( rSel.nEndPos > pForwarder->GetTextLen( rSel.nEndPara ) )
- {
- rSel.nEndPos = pForwarder->GetTextLen( rSel.nEndPara );
- }
- }
- }
-}
-
-// ====================================================================
-// class SvxUnoTextRangeBase
-// ====================================================================
-
-#ifdef DEBUG
-class check_me
-{
-public:
- check_me() : mnAllocNum(0) {};
- ~check_me();
-
- void add( SvxUnoTextRangeBase* pRange );
- void remove( SvxUnoTextRangeBase* pRange );
-
- std::list< std::pair< sal_uInt32, SvxUnoTextRangeBase* > > maRanges;
- sal_uInt32 mnAllocNum;
-};
-
-void check_me::add( SvxUnoTextRangeBase* pRange )
-{
- maRanges.push_back( std::pair< sal_uInt32, SvxUnoTextRangeBase* >( mnAllocNum++, pRange ) );
-}
-
-void check_me::remove( SvxUnoTextRangeBase* pRange )
-{
- std::list< std::pair< sal_uInt32, SvxUnoTextRangeBase* > >::iterator aIter;
- for( aIter = maRanges.begin(); aIter != maRanges.end(); aIter++ )
- {
- if( pRange == (*aIter).second )
- {
- maRanges.erase( aIter );
- break;
- }
- }
-}
-
-check_me::~check_me()
-{
- if( !maRanges.empty() )
- {
- DBG_ERROR("living text range detected!");
- std::list< std::pair< sal_uInt32, SvxUnoTextRangeBase* > >::iterator aIter;
- for( aIter = maRanges.begin(); aIter != maRanges.end(); aIter++ )
- {
- sal_Int32 nAllocNum;
- SvxUnoTextRangeBase* pRange;
- nAllocNum = (*aIter).first;
- pRange = (*aIter).second;
- }
- }
-}
-
-static check_me gNumRanges;
-#endif
-
-UNO3_GETIMPLEMENTATION_IMPL( SvxUnoTextRangeBase );
-
-SvxUnoTextRangeBase::SvxUnoTextRangeBase( const SvxItemPropertySet* _pSet ) throw()
-: mpEditSource(NULL) , mpPropSet(_pSet)
-{
-#ifdef DEBUG
- gNumRanges.add(this);
-#endif
-}
-
-SvxUnoTextRangeBase::SvxUnoTextRangeBase( const SvxEditSource* pSource, const SvxItemPropertySet* _pSet ) throw()
-: mpPropSet(_pSet)
-{
- OGuard aGuard( Application::GetSolarMutex() );
-
- DBG_ASSERT(pSource,"SvxUnoTextRangeBase: I need a valid SvxEditSource!");
-
- mpEditSource = pSource->Clone();
- ESelection aSelection;
- ::GetSelection( aSelection, mpEditSource->GetTextForwarder() );
- SetSelection( aSelection );
-
- if( mpEditSource )
- mpEditSource->addRange( this );
-#ifdef DEBUG
- gNumRanges.add(this);
-#endif
-}
-
-SvxUnoTextRangeBase::SvxUnoTextRangeBase( const SvxUnoTextRangeBase& rRange ) throw()
-: text::XTextRange()
-, beans::XPropertySet()
-, beans::XMultiPropertySet()
-, beans::XMultiPropertyStates()
-, beans::XPropertyState()
-, lang::XServiceInfo()
-, text::XTextRangeCompare()
-, lang::XUnoTunnel()
-, mpPropSet(rRange.getPropertySet())
-{
- OGuard aGuard( Application::GetSolarMutex() );
-
- mpEditSource = rRange.mpEditSource ? rRange.mpEditSource->Clone() : NULL;
-
- SvxTextForwarder* pForwarder = mpEditSource ? mpEditSource->GetTextForwarder() : NULL;
- if( pForwarder )
- {
- maSelection = rRange.maSelection;
- CheckSelection( maSelection, pForwarder );
- }
-
- if( mpEditSource )
- mpEditSource->addRange( this );
-
-#ifdef DEBUG
- gNumRanges.add(this);
-#endif
-}
-
-SvxUnoTextRangeBase::~SvxUnoTextRangeBase() throw()
-{
-#ifdef DEBUG
- gNumRanges.remove(this);
-#endif
-
- if( mpEditSource )
- mpEditSource->removeRange( this );
-
- delete mpEditSource;
-}
-
-void SvxUnoTextRangeBase::SetEditSource( SvxEditSource* pSource ) throw()
-{
- DBG_ASSERT(pSource,"SvxUnoTextRangeBase: I need a valid SvxEditSource!");
- DBG_ASSERT(mpEditSource==NULL,"SvxUnoTextRangeBase::SetEditSource called while SvxEditSource already set" );
-
- mpEditSource = pSource;
-
- maSelection.nStartPara = 0xffff;
-
- if( mpEditSource )
- mpEditSource->addRange( this );
-}
-
-/** puts a field item with a copy of the given FieldData into the itemset
- corresponding with this range */
-void SvxUnoTextRangeBase::attachField( const SvxFieldData* pData ) throw()
-{
- OGuard aGuard( Application::GetSolarMutex() );
-
- if( pData )
- {
- SvxTextForwarder* pForwarder = mpEditSource ? mpEditSource->GetTextForwarder() : NULL;
- if( pForwarder )
- {
- SvxFieldItem aField( *pData, EE_FEATURE_FIELD );
- pForwarder->QuickInsertField( aField, maSelection );
- }
- }
-}
-
-void SvxUnoTextRangeBase::SetSelection( const ESelection& rSelection ) throw()
-{
- OGuard aGuard( Application::GetSolarMutex() );
-
- maSelection = rSelection;
- CheckSelection( maSelection, mpEditSource->GetTextForwarder() );
-}
-
-// Interface XTextRange ( XText )
-
-uno::Reference< text::XTextRange > SAL_CALL SvxUnoTextRangeBase::getStart(void)
- throw( uno::RuntimeException )
-{
- OGuard aGuard( Application::GetSolarMutex() );
-
- uno::Reference< text::XTextRange > xRange;
-
- SvxTextForwarder* pForwarder = mpEditSource ? mpEditSource->GetTextForwarder() : NULL;
- if( pForwarder )
- {
-
- CheckSelection( maSelection, pForwarder );
-
- SvxUnoTextBase* pText = SvxUnoTextBase::getImplementation( getText() );
-
- if(pText == NULL)
- throw uno::RuntimeException();
-
- SvxUnoTextRange* pRange = new SvxUnoTextRange( *pText );
- xRange = pRange;
-
- ESelection aNewSel = maSelection;
- aNewSel.nEndPara = aNewSel.nStartPara;
- aNewSel.nEndPos = aNewSel.nStartPos;
- pRange->SetSelection( aNewSel );
- }
-
- return xRange;
-}
-
-uno::Reference< text::XTextRange > SAL_CALL SvxUnoTextRangeBase::getEnd(void)
- throw( uno::RuntimeException )
-{
- OGuard aGuard( Application::GetSolarMutex() );
-
- uno::Reference< text::XTextRange > xRet;
-
- SvxTextForwarder* pForwarder = mpEditSource ? mpEditSource->GetTextForwarder() : NULL;
- if( pForwarder )
- {
- CheckSelection( maSelection, pForwarder );
-
- SvxUnoTextBase* pText = SvxUnoTextBase::getImplementation( getText() );
-
- if(pText == NULL)
- throw uno::RuntimeException();
-
- SvxUnoTextRange* pNew = new SvxUnoTextRange( *pText );
- xRet = pNew;
-
- ESelection aNewSel = maSelection;
- aNewSel.nStartPara = aNewSel.nEndPara;
- aNewSel.nStartPos = aNewSel.nEndPos;
- pNew->SetSelection( aNewSel );
- }
- return xRet;
-}
-
-OUString SAL_CALL SvxUnoTextRangeBase::getString(void)
- throw( uno::RuntimeException )
-{
- OGuard aGuard( Application::GetSolarMutex() );
-
- SvxTextForwarder* pForwarder = mpEditSource ? mpEditSource->GetTextForwarder() : NULL;
- if( pForwarder )
- {
- CheckSelection( maSelection, pForwarder );
-
- return pForwarder->GetText( maSelection );
- }
- else
- {
- const OUString aEmpty;
- return aEmpty;
- }
-}
-
-void SAL_CALL SvxUnoTextRangeBase::setString(const OUString& aString)
- throw( uno::RuntimeException )
-{
- OGuard aGuard( Application::GetSolarMutex() );
-
- SvxTextForwarder* pForwarder = mpEditSource ? mpEditSource->GetTextForwarder() : NULL;
- if( pForwarder )
- {
- CheckSelection( maSelection, pForwarder );
-
- String aConverted( aString );
- aConverted.ConvertLineEnd( LINEEND_LF ); // Zeilenenden nur einfach zaehlen
-
- pForwarder->QuickInsertText( aConverted, maSelection );
- mpEditSource->UpdateData();
-
- // Selektion anpassen
- //! Wenn die EditEngine bei QuickInsertText die Selektion zurueckgeben wuerde,
- //! waer's einfacher...
- CollapseToStart();
-
- sal_uInt16 nLen = aConverted.Len();
- if (nLen)
- GoRight( nLen, sal_True );
- }
-}
-
-// Interface beans::XPropertySet
-uno::Reference< beans::XPropertySetInfo > SAL_CALL SvxUnoTextRangeBase::getPropertySetInfo(void)
- throw( uno::RuntimeException )
-{
- return mpPropSet->getPropertySetInfo();
-}
-
-void SAL_CALL SvxUnoTextRangeBase::setPropertyValue(const OUString& PropertyName, const uno::Any& aValue)
- throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException )
-{
- _setPropertyValue( PropertyName, aValue, -1 );
-}
-
-void SAL_CALL SvxUnoTextRangeBase::_setPropertyValue( const OUString& PropertyName, const uno::Any& aValue, sal_Int32 nPara )
- throw( beans::UnknownPropertyException, beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException )
-{
- OGuard aGuard( Application::GetSolarMutex() );
-
- SvxTextForwarder* pForwarder = mpEditSource ? mpEditSource->GetTextForwarder() : NULL;
- if( pForwarder )
- {
-
- CheckSelection( maSelection, pForwarder );
-
- const SfxItemPropertySimpleEntry* pMap = mpPropSet->getPropertyMapEntry(PropertyName );
- if ( pMap )
- {
- ESelection aSel( GetSelection() );
- sal_Bool bParaAttrib = (pMap->nWID >= EE_PARA_START) && ( pMap->nWID <= EE_PARA_END );
-
- if( nPara == -1 && !bParaAttrib )
- {
- SfxItemSet aOldSet( pForwarder->GetAttribs( aSel ) );
- // we have a selection and no para attribute
- SfxItemSet aNewSet( *aOldSet.GetPool(), aOldSet.GetRanges() );
-
- setPropertyValue( pMap, aValue, maSelection, aOldSet, aNewSet );
-
-
- pForwarder->QuickSetAttribs( aNewSet, GetSelection() );
- }
- else
- {
- sal_Int32 nEndPara;
-
- if( nPara == -1 )
- {
- nPara = aSel.nStartPara;
- nEndPara = aSel.nEndPara;
- }
- else
- {
- // only one paragraph
- nEndPara = nPara;
- }
-
- while( nPara <= nEndPara )
- {
- // we have a paragraph
- SfxItemSet aSet( pForwarder->GetParaAttribs( (USHORT)nPara ) );
- setPropertyValue( pMap, aValue, maSelection, aSet, aSet );
- pForwarder->SetParaAttribs( (USHORT)nPara, aSet );
- nPara++;
- }
- }
-
- GetEditSource()->UpdateData();
- return;
- }
- }
-
- throw beans::UnknownPropertyException();
-}
-
-void SvxUnoTextRangeBase::setPropertyValue( const SfxItemPropertySimpleEntry* pMap, const uno::Any& rValue, const ESelection& rSelection, const SfxItemSet& rOldSet, SfxItemSet& rNewSet ) throw( beans::UnknownPropertyException, lang::IllegalArgumentException )
-{
- if(!SetPropertyValueHelper( rOldSet, pMap, rValue, rNewSet, &rSelection, (SvxTextEditSource*)GetEditSource() ))
- {
- // Fuer Teile von zusammengesetzten Items mit mehreren Properties (z.B. Hintergrund)
- // muss vorher das alte Item aus dem Dokument geholt werden
- rNewSet.Put(rOldSet.Get(pMap->nWID)); // altes Item in neuen Set
- mpPropSet->setPropertyValue(pMap, rValue, rNewSet);
- }
-}
-
-sal_Bool SvxUnoTextRangeBase::SetPropertyValueHelper( const SfxItemSet&, const SfxItemPropertySimpleEntry* pMap, const uno::Any& aValue, SfxItemSet& rNewSet, const ESelection* pSelection /* = NULL */, SvxTextEditSource* pEditSource /* = NULL*/ ) throw( uno::RuntimeException )
-{
- switch( pMap->nWID )
- {
- case WID_FONTDESC:
- {
- awt::FontDescriptor aDesc;
- if(aValue >>= aDesc)
- {
- SvxUnoFontDescriptor::FillItemSet( aDesc, rNewSet );
- return sal_True;
- }
- }
- break;
-
- case EE_PARA_NUMBULLET:
- {
- uno::Reference< container::XIndexReplace > xRule;
- if( !aValue.hasValue() || ((aValue >>= xRule) && !xRule.is()) )
- return sal_True;
-
- return sal_False;
- }
-
- case WID_NUMLEVEL:
- {
- SvxTextForwarder* pForwarder = pEditSource? pEditSource->GetTextForwarder() : NULL;
- if(pForwarder && pSelection)
- {
- sal_Int16 nLevel = sal_Int16();
- if( aValue >>= nLevel )
- {
- // #101004# Call interface method instead of unsafe cast
- if(! pForwarder->SetDepth( pSelection->nStartPara, nLevel ) )
- throw lang::IllegalArgumentException();
-
- return sal_True;
- }
- }
- }
- break;
- case WID_NUMBERINGSTARTVALUE:
- {
- SvxTextForwarder* pForwarder = pEditSource? pEditSource->GetTextForwarder() : NULL;
- if(pForwarder && pSelection)
- {
- sal_Int16 nStartValue = -1;
- if( aValue >>= nStartValue )
- {
- pForwarder->SetNumberingStartValue( pSelection->nStartPara, nStartValue );
- return sal_True;
- }
- }
- }
- break;
- case WID_PARAISNUMBERINGRESTART:
- {
- SvxTextForwarder* pForwarder = pEditSource? pEditSource->GetTextForwarder() : NULL;
- if(pForwarder && pSelection)
- {
- sal_Bool bParaIsNumberingRestart = sal_False;
- if( aValue >>= bParaIsNumberingRestart )
- {
- pForwarder->SetParaIsNumberingRestart( pSelection->nStartPara, bParaIsNumberingRestart );
- return sal_True;
- }
- }
- }
- break;
- case EE_PARA_BULLETSTATE:
- {
- sal_Bool bBullet = sal_True;
- if( aValue >>= bBullet )
- {
- SfxBoolItem aItem( EE_PARA_BULLETSTATE, bBullet );
- rNewSet.Put(aItem);
- return sal_True;
- }
- }
- break;
-
- default:
- return sal_False;
- }
-
- throw lang::IllegalArgumentException();
-}
-
-uno::Any SAL_CALL SvxUnoTextRangeBase::getPropertyValue(const OUString& PropertyName)
- throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
-{
- return _getPropertyValue( PropertyName, -1 );
-}
-
-uno::Any SAL_CALL SvxUnoTextRangeBase::_getPropertyValue(const OUString& PropertyName, sal_Int32 nPara )
- throw( beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException )
-{
- OGuard aGuard( Application::GetSolarMutex() );
-
- uno::Any aAny;
-
- SvxTextForwarder* pForwarder = mpEditSource ? mpEditSource->GetTextForwarder() : NULL;
- if( pForwarder )
- {
- const SfxItemPropertySimpleEntry* pMap = mpPropSet->getPropertyMapEntry(PropertyName );
- if( pMap )
- {
- SfxItemSet* pAttribs = NULL;
- if( nPara != -1 )
- pAttribs = pForwarder->GetParaAttribs( (USHORT)nPara ).Clone();
- else
- pAttribs = pForwarder->GetAttribs( GetSelection() ).Clone();
-
- // Dontcare durch Default ersetzen, damit man immer eine Reflection hat
- pAttribs->ClearInvalidItems();
-
- getPropertyValue( pMap, aAny, *pAttribs );
-
- delete pAttribs;
- return aAny;
- }
- }
-
- throw beans::UnknownPropertyException();
-}
-
-void SvxUnoTextRangeBase::getPropertyValue( const SfxItemPropertySimpleEntry* pMap, uno::Any& rAny, const SfxItemSet& rSet ) throw( beans::UnknownPropertyException )
-{
- switch( pMap->nWID )
- {
- case EE_FEATURE_FIELD:
- if ( rSet.GetItemState( EE_FEATURE_FIELD, sal_False ) == SFX_ITEM_SET )
- {
- SvxFieldItem* pItem = (SvxFieldItem*)rSet.GetItem( EE_FEATURE_FIELD );
- const SvxFieldData* pData = pItem->GetField();
- uno::Reference< text::XTextRange > xAnchor( this );
-
- // get presentation string for field
- Color* pTColor = NULL;
- Color* pFColor = NULL;
-
- SvxTextForwarder* pForwarder = mpEditSource->GetTextForwarder();
- OUString aPresentation( pForwarder->CalcFieldValue( SvxFieldItem(*pData, EE_FEATURE_FIELD), maSelection.nStartPara, maSelection.nStartPos, pTColor, pFColor ) );
-
- delete pTColor;
- delete pFColor;
-
- uno::Reference< text::XTextField > xField( new SvxUnoTextField( xAnchor, aPresentation, pData ) );
- rAny <<= xField;
- }
- break;
-
- case WID_PORTIONTYPE:
- if ( rSet.GetItemState( EE_FEATURE_FIELD, sal_False ) == SFX_ITEM_SET )
- {
- OUString aType( RTL_CONSTASCII_USTRINGPARAM("TextField") );
- rAny <<= aType;
- }
- else
- {
- OUString aType( RTL_CONSTASCII_USTRINGPARAM("Text") );
- rAny <<= aType;
- }
- break;
-
- default:
- if(!GetPropertyValueHelper( *((SfxItemSet*)(&rSet)), pMap, rAny, &maSelection, (SvxTextEditSource*)GetEditSource() ))
- rAny = mpPropSet->getPropertyValue(pMap, rSet);
- }
-}
-
-sal_Bool SvxUnoTextRangeBase::GetPropertyValueHelper( SfxItemSet& rSet, const SfxItemPropertySimpleEntry* pMap, uno::Any& aAny, const ESelection* pSelection /* = NULL */, SvxTextEditSource* pEditSource /* = NULL */ )
- throw( uno::RuntimeException )
-{
- switch( pMap->nWID )
- {
- case WID_FONTDESC:
- {
- awt::FontDescriptor aDesc;
- SvxUnoFontDescriptor::FillFromItemSet( rSet, aDesc );
- aAny <<= aDesc;
- }
- break;
-
- case EE_PARA_NUMBULLET:
- {
- if((rSet.GetItemState( EE_PARA_NUMBULLET, sal_True ) & (SFX_ITEM_SET|SFX_ITEM_DEFAULT)) == 0)
- throw uno::RuntimeException();
-
- SvxNumBulletItem* pBulletItem = (SvxNumBulletItem*)rSet.GetItem( EE_PARA_NUMBULLET, sal_True );
-
- if( pBulletItem == NULL )
- throw uno::RuntimeException();
-
- aAny <<= SvxCreateNumRule( pBulletItem->GetNumRule() );
- }
- break;
-
- case WID_NUMLEVEL:
- {
- SvxTextForwarder* pForwarder = pEditSource? pEditSource->GetTextForwarder() : NULL;
- if(pForwarder && pSelection)
- {
- sal_Int16 nLevel = pForwarder->GetDepth( pSelection->nStartPara );
- if( nLevel >= 0 )
- aAny <<= nLevel;
- }
- }
- break;
- case WID_NUMBERINGSTARTVALUE:
- {
- SvxTextForwarder* pForwarder = pEditSource? pEditSource->GetTextForwarder() : NULL;
- if(pForwarder && pSelection)
- aAny <<= pForwarder->GetNumberingStartValue( pSelection->nStartPara );
- }
- break;
- case WID_PARAISNUMBERINGRESTART:
- {
- SvxTextForwarder* pForwarder = pEditSource? pEditSource->GetTextForwarder() : NULL;
- if(pForwarder && pSelection)
- aAny <<= pForwarder->IsParaIsNumberingRestart( pSelection->nStartPara );
- }
- break;
-
- case EE_PARA_BULLETSTATE:
- {
- sal_Bool bState = sal_False;
- if( rSet.GetItemState( EE_PARA_BULLETSTATE, sal_True ) & (SFX_ITEM_SET|SFX_ITEM_DEFAULT))
- {
- SfxBoolItem* pItem = (SfxBoolItem*)rSet.GetItem( EE_PARA_BULLETSTATE, sal_True );
- bState = pItem->GetValue() ? sal_True : sal_False;
- }
-
- aAny <<= bState;
- }
- break;
- default:
-
- return sal_False;
- }
-
- return sal_True;
-}
-
-// wird (noch) nicht unterstuetzt
-void SAL_CALL SvxUnoTextRangeBase::addPropertyChangeListener( const OUString& , const uno::Reference< beans::XPropertyChangeListener >& ) throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException) {}
-void SAL_CALL SvxUnoTextRangeBase::removePropertyChangeListener( const OUString& , const uno::Reference< beans::XPropertyChangeListener >& ) throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException) {}
-void SAL_CALL SvxUnoTextRangeBase::addVetoableChangeListener( const OUString& , const uno::Reference< beans::XVetoableChangeListener >& ) throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException) {}
-void SAL_CALL SvxUnoTextRangeBase::removeVetoableChangeListener( const OUString& , const uno::Reference< beans::XVetoableChangeListener >& ) throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException) {}
-
-// XMultiPropertySet
-void SAL_CALL SvxUnoTextRangeBase::setPropertyValues( const uno::Sequence< ::rtl::OUString >& aPropertyNames, const uno::Sequence< uno::Any >& aValues ) throw (beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
-{
- _setPropertyValues( aPropertyNames, aValues, -1 );
-}
-
-void SAL_CALL SvxUnoTextRangeBase::_setPropertyValues( const uno::Sequence< ::rtl::OUString >& aPropertyNames, const uno::Sequence< uno::Any >& aValues, sal_Int32 nPara ) throw (beans::PropertyVetoException, lang::IllegalArgumentException, lang::WrappedTargetException, uno::RuntimeException)
-{
- OGuard aGuard( Application::GetSolarMutex() );
-
- SvxTextForwarder* pForwarder = mpEditSource ? mpEditSource->GetTextForwarder() : NULL;
- if( pForwarder )
- {
- CheckSelection( maSelection, pForwarder );
-
- ESelection aSel( GetSelection() );
-
- const OUString* pPropertyNames = aPropertyNames.getConstArray();
- const uno::Any* pValues = aValues.getConstArray();
- sal_Int32 nCount = aPropertyNames.getLength();
-
- sal_Int32 nEndPara = nPara;
- sal_Int32 nTempPara = nPara;
-
- if( nTempPara == -1 )
- {
- nTempPara = aSel.nStartPara;
- nEndPara = aSel.nEndPara;
- }
-
- SfxItemSet* pOldAttrSet = NULL;
- SfxItemSet* pNewAttrSet = NULL;
-
- SfxItemSet* pOldParaSet = NULL;
- SfxItemSet* pNewParaSet = NULL;
-
- for( ; nCount; nCount--, pPropertyNames++, pValues++ )
- {
- const SfxItemPropertySimpleEntry* pMap = mpPropSet->getPropertyMapEntry( *pPropertyNames );
-
- if( pMap )
- {
- sal_Bool bParaAttrib = (pMap->nWID >= EE_PARA_START) && ( pMap->nWID <= EE_PARA_END );
-
- if( (nPara == -1) && !bParaAttrib )
- {
- if( NULL == pNewAttrSet )
- {
- const SfxItemSet aSet( pForwarder->GetAttribs( aSel ) );
- pOldAttrSet = new SfxItemSet( aSet );
- pNewAttrSet = new SfxItemSet( *pOldAttrSet->GetPool(), pOldAttrSet->GetRanges() );
- }
-
- setPropertyValue( pMap, *pValues, GetSelection(), *pOldAttrSet, *pNewAttrSet );
-
- if( pMap->nWID >= EE_ITEMS_START && pMap->nWID <= EE_ITEMS_END )
- {
- const SfxPoolItem* pItem;
- if( pNewAttrSet->GetItemState( pMap->nWID, sal_True, &pItem ) == SFX_ITEM_SET )
- {
- pOldAttrSet->Put( *pItem );
- }
- }
- }
- else
- {
- if( NULL == pNewParaSet )
- {
- const SfxItemSet aSet( pForwarder->GetParaAttribs( (USHORT)nTempPara ) );
- pOldParaSet = new SfxItemSet( aSet );
- pNewParaSet = new SfxItemSet( *pOldParaSet->GetPool(), pOldParaSet->GetRanges() );
- }
-
- setPropertyValue( pMap, *pValues, GetSelection(), *pOldParaSet, *pNewParaSet );
-
- if( pMap->nWID >= EE_ITEMS_START && pMap->nWID <= EE_ITEMS_END )
- {
- const SfxPoolItem* pItem;
- if( pNewParaSet->GetItemState( pMap->nWID, sal_True, &pItem ) == SFX_ITEM_SET )
- {
- pOldParaSet->Put( *pItem );
- }
- }
-
- }
- }
- }
-
- sal_Bool bNeedsUpdate = sal_False;
-
- if( pNewParaSet )
- {
- if( pNewParaSet->Count() )
- {
- while( nTempPara <= nEndPara )
- {
- SfxItemSet aSet( pForwarder->GetParaAttribs( (USHORT)nTempPara ) );
- aSet.Put( *pNewParaSet );
- pForwarder->SetParaAttribs( (USHORT)nTempPara, aSet );
- nTempPara++;
- }
- bNeedsUpdate = sal_True;
- }
-
- delete pNewParaSet;
- delete pOldParaSet;
- }
-
- if( pNewAttrSet )
- {
- if( pNewAttrSet->Count() )
- {
- pForwarder->QuickSetAttribs( *pNewAttrSet, GetSelection() );
- bNeedsUpdate = sal_True;
- }
- delete pNewAttrSet;
- delete pOldAttrSet;
-
- }
-
- if( bNeedsUpdate )
- GetEditSource()->UpdateData();
- }
-}
-
-uno::Sequence< uno::Any > SAL_CALL SvxUnoTextRangeBase::getPropertyValues( const uno::Sequence< ::rtl::OUString >& aPropertyNames ) throw (uno::RuntimeException)
-{
- return _getPropertyValues( aPropertyNames, -1 );
-}
-
-uno::Sequence< uno::Any > SAL_CALL SvxUnoTextRangeBase::_getPropertyValues( const uno::Sequence< ::rtl::OUString >& aPropertyNames, sal_Int32 nPara ) throw (uno::RuntimeException)
-{
- OGuard aGuard( Application::GetSolarMutex() );
-
- sal_Int32 nCount = aPropertyNames.getLength();
-
-
- uno::Sequence< uno::Any > aValues( nCount );
-
- SvxTextForwarder* pForwarder = mpEditSource ? mpEditSource->GetTextForwarder() : NULL;
- if( pForwarder )
- {
- SfxItemSet* pAttribs = NULL;
- if( nPara != -1 )
- pAttribs = pForwarder->GetParaAttribs( (USHORT)nPara ).Clone();
- else
- pAttribs = pForwarder->GetAttribs( GetSelection() ).Clone();
-
- pAttribs->ClearInvalidItems();
-
- const OUString* pPropertyNames = aPropertyNames.getConstArray();
- uno::Any* pValues = aValues.getArray();
-
- for( ; nCount; nCount--, pPropertyNames++, pValues++ )
- {
- const SfxItemPropertySimpleEntry* pMap = mpPropSet->getPropertyMapEntry( *pPropertyNames );
- if( pMap )
- {
- getPropertyValue( pMap, *pValues, *pAttribs );
- }
- }
-
- delete pAttribs;
-
- }
-
- return aValues;
-}
-
-void SAL_CALL SvxUnoTextRangeBase::addPropertiesChangeListener( const uno::Sequence< ::rtl::OUString >& , const uno::Reference< beans::XPropertiesChangeListener >& ) throw (uno::RuntimeException)
-{
-}
-
-void SAL_CALL SvxUnoTextRangeBase::removePropertiesChangeListener( const uno::Reference< beans::XPropertiesChangeListener >& ) throw (uno::RuntimeException)
-{
-}
-
-void SAL_CALL SvxUnoTextRangeBase::firePropertiesChangeEvent( const uno::Sequence< ::rtl::OUString >& , const uno::Reference< beans::XPropertiesChangeListener >& ) throw (uno::RuntimeException)
-{
-}
-
-// beans::XPropertyState
-beans::PropertyState SAL_CALL SvxUnoTextRangeBase::getPropertyState( const OUString& PropertyName )
- throw(beans::UnknownPropertyException, uno::RuntimeException)
-{
- return _getPropertyState( PropertyName, -1 );
-}
-
-static sal_uInt16 aSvxUnoFontDescriptorWhichMap[] = { EE_CHAR_FONTINFO, EE_CHAR_FONTHEIGHT, EE_CHAR_ITALIC,
- EE_CHAR_UNDERLINE, EE_CHAR_WEIGHT, EE_CHAR_STRIKEOUT,
- EE_CHAR_WLM, 0 };
-
-beans::PropertyState SAL_CALL SvxUnoTextRangeBase::_getPropertyState(const SfxItemPropertySimpleEntry* pMap, sal_Int32 nPara)
- throw( beans::UnknownPropertyException, uno::RuntimeException )
-{
- if ( pMap )
- {
- SvxTextForwarder* pForwarder = mpEditSource ? mpEditSource->GetTextForwarder() : NULL;
- if( pForwarder )
- {
- SfxItemState eItemState = SFX_ITEM_UNKNOWN;
- sal_uInt16 nWID = 0;
-
- switch( pMap->nWID )
- {
- case WID_FONTDESC:
- {
- sal_uInt16* pWhichId = aSvxUnoFontDescriptorWhichMap;
- SfxItemState eTempItemState;
- while( *pWhichId )
- {
- if(nPara != -1)
- eTempItemState = pForwarder->GetItemState( (USHORT)nPara, *pWhichId );
- else
- eTempItemState = pForwarder->GetItemState( GetSelection(), *pWhichId );
-
- switch( eTempItemState )
- {
- case SFX_ITEM_DISABLED:
- case SFX_ITEM_DONTCARE:
- eItemState = SFX_ITEM_DONTCARE;
- break;
-
- case SFX_ITEM_DEFAULT:
- if( eItemState != SFX_ITEM_DEFAULT )
- {
- if( eItemState == SFX_ITEM_UNKNOWN )
- eItemState = SFX_ITEM_DEFAULT;
- }
- break;
-
- case SFX_ITEM_READONLY:
- case SFX_ITEM_SET:
- if( eItemState != SFX_ITEM_SET )
- {
- if( eItemState == SFX_ITEM_UNKNOWN )
- eItemState = SFX_ITEM_SET;
- }
- break;
- default:
- throw beans::UnknownPropertyException();
- }
-
- pWhichId++;
- }
- }
- break;
-
- case WID_NUMLEVEL:
- case WID_NUMBERINGSTARTVALUE:
- case WID_PARAISNUMBERINGRESTART:
- eItemState = SFX_ITEM_SET;
- break;
-
- default:
- nWID = pMap->nWID;
- }
-
- if( nWID != 0 )
- {
- if( nPara != -1 )
- eItemState = pForwarder->GetItemState( (USHORT)nPara, nWID );
- else
- eItemState = pForwarder->GetItemState( GetSelection(), nWID );
- }
-
- switch( eItemState )
- {
- case SFX_ITEM_DONTCARE:
- case SFX_ITEM_DISABLED:
- return beans::PropertyState_AMBIGUOUS_VALUE;
- case SFX_ITEM_READONLY:
- case SFX_ITEM_SET:
- return beans::PropertyState_DIRECT_VALUE;
- case SFX_ITEM_DEFAULT:
- return beans::PropertyState_DEFAULT_VALUE;
-// case SFX_ITEM_UNKNOWN:
- }
- }
- }
- throw beans::UnknownPropertyException();
-}
-
-beans::PropertyState SAL_CALL SvxUnoTextRangeBase::_getPropertyState(const OUString& PropertyName, sal_Int32 nPara /* = -1 */)
- throw( beans::UnknownPropertyException, uno::RuntimeException )
-{
- OGuard aGuard( Application::GetSolarMutex() );
-
- return _getPropertyState( mpPropSet->getPropertyMapEntry( PropertyName ), nPara);
-}
-
-uno::Sequence< beans::PropertyState > SAL_CALL SvxUnoTextRangeBase::getPropertyStates( const uno::Sequence< OUString >& aPropertyName )
- throw(beans::UnknownPropertyException, uno::RuntimeException)
-{
- return _getPropertyStates( aPropertyName, -1 );
-}
-
-uno::Sequence< beans::PropertyState > SvxUnoTextRangeBase::_getPropertyStates(const uno::Sequence< OUString >& PropertyName, sal_Int32 nPara /* = -1 */)
- throw( beans::UnknownPropertyException, uno::RuntimeException )
-{
- const sal_Int32 nCount = PropertyName.getLength();
- const OUString* pNames = PropertyName.getConstArray();
-
- uno::Sequence< beans::PropertyState > aRet( nCount );
- beans::PropertyState* pState = aRet.getArray();
-
- SvxTextForwarder* pForwarder = mpEditSource ? mpEditSource->GetTextForwarder() : NULL;
- if( pForwarder )
- {
- SfxItemSet* pSet = NULL;
- if( nPara != -1 )
- {
- pSet = new SfxItemSet( pForwarder->GetParaAttribs( (USHORT)nPara ) );
- }
- else
- {
- ESelection aSel( GetSelection() );
- CheckSelection( aSel, pForwarder );
- pSet = new SfxItemSet( pForwarder->GetAttribs( aSel, EditEngineAttribs_OnlyHard ) );
- }
-
- sal_Bool bUnknownPropertyFound = sal_False;
- for( sal_Int32 nIdx = 0; nIdx < nCount; nIdx++ )
- {
- const SfxItemPropertySimpleEntry* pMap = mpPropSet->getPropertyMapEntry( *pNames++ );
- if( NULL == pMap )
- {
- bUnknownPropertyFound = sal_True;
- break;
- }
- bUnknownPropertyFound = !_getOnePropertyStates(pSet, pMap, *pState++);
- }
-
- delete pSet;
-
- if( bUnknownPropertyFound )
- throw beans::UnknownPropertyException();
- }
-
- return aRet;
-}
-
-sal_Bool SvxUnoTextRangeBase::_getOnePropertyStates(const SfxItemSet* pSet, const SfxItemPropertySimpleEntry* pMap, beans::PropertyState& rState)
-{
- sal_Bool bUnknownPropertyFound = sal_False;
- if(pSet && pMap)
- {
- SfxItemState eItemState = SFX_ITEM_UNKNOWN;
- sal_uInt16 nWID = 0;
-
- switch( pMap->nWID )
- {
- case WID_FONTDESC:
- {
- sal_uInt16* pWhichId = aSvxUnoFontDescriptorWhichMap;
- SfxItemState eTempItemState;
- while( *pWhichId )
- {
- eTempItemState = pSet->GetItemState( *pWhichId );
-
- switch( eTempItemState )
- {
- case SFX_ITEM_DISABLED:
- case SFX_ITEM_DONTCARE:
- eItemState = SFX_ITEM_DONTCARE;
- break;
-
- case SFX_ITEM_DEFAULT:
- if( eItemState != SFX_ITEM_DEFAULT )
- {
- if( eItemState == SFX_ITEM_UNKNOWN )
- eItemState = SFX_ITEM_DEFAULT;
- }
- break;
-
- case SFX_ITEM_READONLY:
- case SFX_ITEM_SET:
- if( eItemState != SFX_ITEM_SET )
- {
- if( eItemState == SFX_ITEM_UNKNOWN )
- eItemState = SFX_ITEM_SET;
- }
- break;
- default:
- bUnknownPropertyFound = sal_True;
- break;
- }
-
- pWhichId++;
- }
- }
- break;
-
- case WID_NUMLEVEL:
- case WID_NUMBERINGSTARTVALUE:
- case WID_PARAISNUMBERINGRESTART:
- eItemState = SFX_ITEM_SET;
- break;
-
- default:
- nWID = pMap->nWID;
- }
-
- if( bUnknownPropertyFound )
- return !bUnknownPropertyFound;
-
- if( nWID != 0 )
- eItemState = pSet->GetItemState( nWID, sal_False );
-
- switch( eItemState )
- {
- case SFX_ITEM_READONLY:
- case SFX_ITEM_SET:
- rState = beans::PropertyState_DIRECT_VALUE;
- break;
- case SFX_ITEM_DEFAULT:
- rState = beans::PropertyState_DEFAULT_VALUE;
- break;
-// case SFX_ITEM_UNKNOWN:
-// case SFX_ITEM_DONTCARE:
-// case SFX_ITEM_DISABLED:
- default:
- rState = beans::PropertyState_AMBIGUOUS_VALUE;
- }
- }
- return !bUnknownPropertyFound;
-}
-
-void SAL_CALL SvxUnoTextRangeBase::setPropertyToDefault( const OUString& PropertyName )
- throw(beans::UnknownPropertyException, uno::RuntimeException)
-{
- _setPropertyToDefault( PropertyName, -1 );
-}
-
-void SvxUnoTextRangeBase::_setPropertyToDefault(const OUString& PropertyName, sal_Int32 nPara /* = -1 */)
- throw( beans::UnknownPropertyException, uno::RuntimeException )
-{
- OGuard aGuard( Application::GetSolarMutex() );
-
- SvxTextForwarder* pForwarder = mpEditSource ? mpEditSource->GetTextForwarder() : NULL;
-
- if( pForwarder )
- {
- const SfxItemPropertySimpleEntry* pMap = mpPropSet->getPropertyMapEntry( PropertyName );
- if ( pMap )
- {
- CheckSelection( maSelection, mpEditSource->GetTextForwarder() );
- _setPropertyToDefault( pForwarder, pMap, nPara );
- return;
- }
- }
-
- throw beans::UnknownPropertyException();
-}
-
-void SvxUnoTextRangeBase::_setPropertyToDefault(SvxTextForwarder* pForwarder, const SfxItemPropertySimpleEntry* pMap, sal_Int32 nPara )
- throw( beans::UnknownPropertyException, uno::RuntimeException )
-{
- do
- {
- SfxItemSet aSet( *pForwarder->GetPool(), TRUE );
-
- if( pMap->nWID == WID_FONTDESC )
- {
- SvxUnoFontDescriptor::setPropertyToDefault( aSet );
- }
- else if( pMap->nWID == WID_NUMLEVEL )
- {
- // #101004# Call interface method instead of unsafe cast
- pForwarder->SetDepth( maSelection.nStartPara, -1 );
- return;
- }
- else if( pMap->nWID == WID_NUMBERINGSTARTVALUE )
- {
- pForwarder->SetNumberingStartValue( maSelection.nStartPara, -1 );
- }
- else if( pMap->nWID == WID_PARAISNUMBERINGRESTART )
- {
- pForwarder->SetParaIsNumberingRestart( maSelection.nStartPara, sal_False );
- }
- else
- {
- aSet.InvalidateItem( pMap->nWID );
- }
-
- if(nPara != -1)
- pForwarder->SetParaAttribs( (USHORT)nPara, aSet );
- else
- pForwarder->QuickSetAttribs( aSet, GetSelection() );
-
- GetEditSource()->UpdateData();
-
- return;
- }
- while(0);
-}
-
-uno::Any SAL_CALL SvxUnoTextRangeBase::getPropertyDefault( const OUString& aPropertyName )
- throw(beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
-{
- OGuard aGuard( Application::GetSolarMutex() );
-
- SvxTextForwarder* pForwarder = mpEditSource ? mpEditSource->GetTextForwarder() : NULL;
- if( pForwarder )
- {
- const SfxItemPropertySimpleEntry* pMap = mpPropSet->getPropertyMapEntry( aPropertyName );
- if( pMap )
- {
- SfxItemPool* pPool = pForwarder->GetPool();
-
- switch( pMap->nWID )
- {
- case WID_FONTDESC:
- return SvxUnoFontDescriptor::getPropertyDefault( pPool );
-
- case WID_NUMLEVEL:
- {
- uno::Any aAny;
- return aAny;
- }
-
- case WID_NUMBERINGSTARTVALUE:
- return uno::Any( (sal_Int16)-1 );
-
- case WID_PARAISNUMBERINGRESTART:
- return uno::Any( (sal_Bool)sal_False );
-
- default:
- {
- // Default aus ItemPool holen
- if(pPool->IsWhich(pMap->nWID))
- {
- SfxItemSet aSet( *pPool, pMap->nWID, pMap->nWID);
- aSet.Put(pPool->GetDefaultItem(pMap->nWID));
- return mpPropSet->getPropertyValue(pMap, aSet);
- }
- }
- }
- }
- }
- throw beans::UnknownPropertyException();
-}
-
-// beans::XMultiPropertyStates
-void SAL_CALL SvxUnoTextRangeBase::setAllPropertiesToDefault( ) throw (uno::RuntimeException)
-{
- OGuard aGuard( Application::GetSolarMutex() );
-
- SvxTextForwarder* pForwarder = mpEditSource ? mpEditSource->GetTextForwarder() : NULL;
-
- if( pForwarder )
- {
- PropertyEntryVector_t aEntries = mpPropSet->getPropertyMap()->getPropertyEntries();
- PropertyEntryVector_t::const_iterator aIt = aEntries.begin();
- while( aIt != aEntries.end() )
- {
- _setPropertyToDefault( pForwarder, &(*aIt), -1 );
- ++aIt;
- }
- }
-}
-
-void SAL_CALL SvxUnoTextRangeBase::setPropertiesToDefault( const uno::Sequence< OUString >& aPropertyNames ) throw (beans::UnknownPropertyException, uno::RuntimeException)
-{
- sal_Int32 nCount = aPropertyNames.getLength();
- for( const OUString* pName = aPropertyNames.getConstArray(); nCount; pName++, nCount-- )
- {
- setPropertyToDefault( *pName );
- }
-}
-
-uno::Sequence< uno::Any > SAL_CALL SvxUnoTextRangeBase::getPropertyDefaults( const uno::Sequence< OUString >& aPropertyNames ) throw (beans::UnknownPropertyException, lang::WrappedTargetException, uno::RuntimeException)
-{
- sal_Int32 nCount = aPropertyNames.getLength();
- uno::Sequence< uno::Any > ret( nCount );
- uno::Any* pDefaults = ret.getArray();
-
- for( const OUString* pName = aPropertyNames.getConstArray(); nCount; pName++, nCount--, pDefaults++ )
- {
- *pDefaults = getPropertyDefault( *pName );
- }
-
- return ret;
-}
-
-// internal
-void SvxUnoTextRangeBase::CollapseToStart(void) throw()
-{
- CheckSelection( maSelection, mpEditSource->GetTextForwarder() );
-
- maSelection.nEndPara = maSelection.nStartPara;
- maSelection.nEndPos = maSelection.nStartPos;
-}
-
-void SvxUnoTextRangeBase::CollapseToEnd(void) throw()
-{
- CheckSelection( maSelection, mpEditSource->GetTextForwarder() );
-
- maSelection.nStartPara = maSelection.nEndPara;
- maSelection.nStartPos = maSelection.nEndPos;
-}
-
-sal_Bool SvxUnoTextRangeBase::IsCollapsed(void) throw()
-{
- CheckSelection( maSelection, mpEditSource->GetTextForwarder() );
-
- return ( maSelection.nStartPara == maSelection.nEndPara &&
- maSelection.nStartPos == maSelection.nEndPos );
-}
-
-sal_Bool SvxUnoTextRangeBase::GoLeft(sal_Int16 nCount, sal_Bool Expand) throw()
-{
- CheckSelection( maSelection, mpEditSource->GetTextForwarder() );
-
- // #75098# use end position, as in Writer (start is anchor, end is cursor)
- sal_uInt16 nNewPos = maSelection.nEndPos;
- sal_uInt16 nNewPar = maSelection.nEndPara;
-
- sal_Bool bOk = sal_True;
- SvxTextForwarder* pForwarder = NULL;
- while ( nCount > nNewPos && bOk )
- {
- if ( nNewPar == 0 )
- bOk = sal_False;
- else
- {
- if ( !pForwarder )
- pForwarder = mpEditSource->GetTextForwarder(); // erst hier, wenn's noetig ist...
-
- --nNewPar;
- nCount -= nNewPos + 1;
- nNewPos = pForwarder->GetTextLen( nNewPar );
- }
- }
-
- if ( bOk )
- {
- nNewPos = nNewPos - nCount;
- maSelection.nStartPara = nNewPar;
- maSelection.nStartPos = nNewPos;
- }
-
- if (!Expand)
- CollapseToStart();
-
- return bOk;
-}
-
-sal_Bool SvxUnoTextRangeBase::GoRight(sal_Int16 nCount, sal_Bool Expand) throw()
-{
- SvxTextForwarder* pForwarder = mpEditSource ? mpEditSource->GetTextForwarder() : NULL;
- if( pForwarder )
- {
- CheckSelection( maSelection, pForwarder );
-
-
- sal_uInt16 nNewPos = maSelection.nEndPos + nCount; //! Ueberlauf ???
- sal_uInt16 nNewPar = maSelection.nEndPara;
-
- sal_Bool bOk = sal_True;
- sal_uInt16 nParCount = pForwarder->GetParagraphCount();
- sal_uInt16 nThisLen = pForwarder->GetTextLen( nNewPar );
- while ( nNewPos > nThisLen && bOk )
- {
- if ( nNewPar + 1 >= nParCount )
- bOk = sal_False;
- else
- {
- nNewPos -= nThisLen+1;
- ++nNewPar;
- nThisLen = pForwarder->GetTextLen( nNewPar );
- }
- }
-
- if (bOk)
- {
- maSelection.nEndPara = nNewPar;
- maSelection.nEndPos = nNewPos;
- }
-
- if (!Expand)
- CollapseToEnd();
-
- return bOk;
- }
- return sal_False;
-}
-
-void SvxUnoTextRangeBase::GotoStart(sal_Bool Expand) throw()
-{
- maSelection.nStartPara = 0;
- maSelection.nStartPos = 0;
-
- if (!Expand)
- CollapseToStart();
-}
-
-void SvxUnoTextRangeBase::GotoEnd(sal_Bool Expand) throw()
-{
- CheckSelection( maSelection, mpEditSource->GetTextForwarder() );
-
- SvxTextForwarder* pForwarder = mpEditSource ? mpEditSource->GetTextForwarder() : NULL;
- if( pForwarder )
- {
-
- sal_uInt16 nPar = pForwarder->GetParagraphCount();
- if (nPar)
- --nPar;
-
- maSelection.nEndPara = nPar;
- maSelection.nEndPos = pForwarder->GetTextLen( nPar );
-
- if (!Expand)
- CollapseToEnd();
- }
-}
-
-// lang::XServiceInfo
-sal_Bool SAL_CALL SvxUnoTextRangeBase::supportsService( const OUString& ServiceName )
- throw(uno::RuntimeException)
-{
- return SvxServiceInfoHelper::supportsService( ServiceName, getSupportedServiceNames() );
-}
-
-uno::Sequence< OUString > SAL_CALL SvxUnoTextRangeBase::getSupportedServiceNames()
- throw(uno::RuntimeException)
-{
- return getSupportedServiceNames_Static();
-}
-
-uno::Sequence< OUString > SAL_CALL SvxUnoTextRangeBase::getSupportedServiceNames_Static()
- SAL_THROW(())
-{
- uno::Sequence< OUString > aSeq;
- SvxServiceInfoHelper::addToSequence( aSeq, 3, "com.sun.star.style.CharacterProperties",
- "com.sun.star.style.CharacterPropertiesComplex",
- "com.sun.star.style.CharacterPropertiesAsian");
- return aSeq;
-}
-
-// XTextRangeCompare
-sal_Int16 SAL_CALL SvxUnoTextRangeBase::compareRegionStarts( const uno::Reference< text::XTextRange >& xR1, const uno::Reference< text::XTextRange >& xR2 ) throw (lang::IllegalArgumentException, uno::RuntimeException)
-{
- SvxUnoTextRangeBase* pR1 = SvxUnoTextRangeBase::getImplementation( xR1 );
- SvxUnoTextRangeBase* pR2 = SvxUnoTextRangeBase::getImplementation( xR2 );
-
- if( (pR1 == 0) || (pR2 == 0) )
- throw lang::IllegalArgumentException();
-
- const ESelection& r1 = pR1->maSelection;
- const ESelection& r2 = pR2->maSelection;
-
- if( r1.nStartPara == r2.nStartPara )
- {
- if( r1.nStartPos == r2.nStartPos )
- return 0;
- else
- return r1.nStartPos < r2.nStartPos ? 1 : -1;
- }
- else
- {
- return r1.nStartPara < r2.nStartPara ? 1 : -1;
- }
-}
-
-sal_Int16 SAL_CALL SvxUnoTextRangeBase::compareRegionEnds( const uno::Reference< text::XTextRange >& xR1, const uno::Reference< text::XTextRange >& xR2 ) throw (lang::IllegalArgumentException, uno::RuntimeException)
-{
- SvxUnoTextRangeBase* pR1 = SvxUnoTextRangeBase::getImplementation( xR1 );
- SvxUnoTextRangeBase* pR2 = SvxUnoTextRangeBase::getImplementation( xR2 );
-
- if( (pR1 == 0) || (pR2 == 0) )
- throw lang::IllegalArgumentException();
-
- const ESelection& r1 = pR1->maSelection;
- const ESelection& r2 = pR2->maSelection;
-
- if( r1.nEndPara == r2.nEndPara )
- {
- if( r1.nEndPos == r2.nEndPos )
- return 0;
- else
- return r1.nEndPos < r2.nEndPos ? 1 : -1;
- }
- else
- {
- return r1.nEndPara < r2.nEndPara ? 1 : -1;
- }
-}
-
-// ====================================================================
-// class SvxUnoTextRange
-// ====================================================================
-
-uno::Sequence< uno::Type > SvxUnoTextRange::maTypeSequence;
-
-uno::Reference< uno::XInterface > SvxUnoTextRange_NewInstance()
-{
- SvxUnoText aText;
- uno::Reference< text::XTextRange > xRange( new SvxUnoTextRange( aText ) );
-#if (_MSC_VER < 1300)
- return xRange;
-#else
- return (uno::Reference< uno::XInterface >)xRange;
-#endif
-}
-
-SvxUnoTextRange::SvxUnoTextRange( const SvxUnoTextBase& rParent, sal_Bool bPortion /* = sal_False */ ) throw()
-:SvxUnoTextRangeBase( rParent.GetEditSource(), bPortion ? ImplGetSvxTextPortionSvxPropertySet() : rParent.getPropertySet() ),
- mbPortion( bPortion )
-{
- xParentText = (text::XText*)&rParent;
-}
-
-SvxUnoTextRange::~SvxUnoTextRange() throw()
-{
-}
-
-uno::Any SAL_CALL SvxUnoTextRange::queryAggregation( const uno::Type & rType )
- throw(uno::RuntimeException)
-{
- QUERYINT( text::XTextRange );
- else if( rType == ::getCppuType((const uno::Reference< beans::XMultiPropertyStates >*)0) )
- return uno::makeAny(uno::Reference< beans::XMultiPropertyStates >(this));
- else if( rType == ::getCppuType((const uno::Reference< beans::XPropertySet >*)0) )
- return uno::makeAny(uno::Reference< beans::XPropertySet >(this));
- else QUERYINT( beans::XPropertyState );
- else QUERYINT( text::XTextRangeCompare );
- else if( rType == ::getCppuType((const uno::Reference< beans::XMultiPropertySet >*)0) )
- return uno::makeAny(uno::Reference< beans::XMultiPropertySet >(this));
- else QUERYINT( lang::XServiceInfo );
- else QUERYINT( lang::XTypeProvider );
- else QUERYINT( lang::XUnoTunnel );
- else
- return OWeakAggObject::queryAggregation( rType );
-}
-
-uno::Any SAL_CALL SvxUnoTextRange::queryInterface( const uno::Type & rType )
- throw(uno::RuntimeException)
-{
- return OWeakAggObject::queryInterface(rType);
-}
-
-void SAL_CALL SvxUnoTextRange::acquire()
- throw( )
-{
- OWeakAggObject::acquire();
-}
-
-void SAL_CALL SvxUnoTextRange::release()
- throw( )
-{
- OWeakAggObject::release();
-}
-
-// XTypeProvider
-
-uno::Sequence< uno::Type > SAL_CALL SvxUnoTextRange::getTypes()
- throw (uno::RuntimeException)
-{
- if( maTypeSequence.getLength() == 0 )
- {
- maTypeSequence.realloc( 9 ); // !DANGER! keep this updated
- uno::Type* pTypes = maTypeSequence.getArray();
-
- *pTypes++ = ::getCppuType(( const uno::Reference< text::XTextRange >*)0);
- *pTypes++ = ::getCppuType(( const uno::Reference< beans::XPropertySet >*)0);
- *pTypes++ = ::getCppuType(( const uno::Reference< beans::XMultiPropertySet >*)0);
- *pTypes++ = ::getCppuType(( const uno::Reference< beans::XMultiPropertyStates >*)0);
- *pTypes++ = ::getCppuType(( const uno::Reference< beans::XPropertyState >*)0);
- *pTypes++ = ::getCppuType(( const uno::Reference< lang::XServiceInfo >*)0);
- *pTypes++ = ::getCppuType(( const uno::Reference< lang::XTypeProvider >*)0);
- *pTypes++ = ::getCppuType(( const uno::Reference< lang::XUnoTunnel >*)0);
- *pTypes++ = ::getCppuType(( const uno::Reference< text::XTextRangeCompare >*)0);
- }
- return maTypeSequence;
-}
-
-uno::Sequence< sal_Int8 > SAL_CALL SvxUnoTextRange::getImplementationId()
- throw (uno::RuntimeException)
-{
- static uno::Sequence< sal_Int8 > aId;
- if( aId.getLength() == 0 )
- {
- aId.realloc( 16 );
- rtl_createUuid( (sal_uInt8 *)aId.getArray(), 0, sal_True );
- }
- return aId;
-}
-
-// XTextRange
-uno::Reference< text::XText > SAL_CALL SvxUnoTextRange::getText()
- throw(uno::RuntimeException)
-{
- return xParentText;
-}
-
-// lang::XServiceInfo
-OUString SAL_CALL SvxUnoTextRange::getImplementationName()
- throw(uno::RuntimeException)
-{
- return OUString(RTL_CONSTASCII_USTRINGPARAM("SvxUnoTextRange"));
-}
-
-// ====================================================================
-// class SvxUnoText
-// ====================================================================
-
-// UNO3_GETIMPLEMENTATION2_IMPL( SvxUnoText, SvxUnoTextRangeBase );
-
-uno::Sequence< uno::Type > SvxUnoTextBase::maTypeSequence;
-
-SvxUnoTextBase::SvxUnoTextBase() throw()
-: SvxUnoTextRangeBase( NULL )
-{
-
-}
-
-SvxUnoTextBase::SvxUnoTextBase( const SvxItemPropertySet* _pSet ) throw()
-: SvxUnoTextRangeBase( _pSet )
-{
-}
-
-SvxUnoTextBase::SvxUnoTextBase( const SvxEditSource* pSource, const SvxItemPropertySet* _pSet ) throw()
-: SvxUnoTextRangeBase( pSource, _pSet )
-{
- ESelection aSelection;
- ::GetSelection( aSelection, GetEditSource()->GetTextForwarder() );
- SetSelection( aSelection );
-}
-
-SvxUnoTextBase::SvxUnoTextBase( const SvxEditSource* pSource, const SvxItemPropertySet* _pSet, uno::Reference < text::XText > xParent ) throw()
-: SvxUnoTextRangeBase( pSource, _pSet )
-{
- xParentText = xParent;
- ESelection aSelection;
- ::GetSelection( aSelection, GetEditSource()->GetTextForwarder() );
- SetSelection( aSelection );
-}
-
-SvxUnoTextBase::SvxUnoTextBase( const SvxUnoTextBase& rText ) throw()
-: SvxUnoTextRangeBase( rText )
-, text::XTextAppend()
-, text::XTextCopy()
-, container::XEnumerationAccess()
-, text::XTextRangeMover()
-, lang::XTypeProvider()
-{
- xParentText = rText.xParentText;
-}
-
-SvxUnoTextBase::~SvxUnoTextBase() throw()
-{
-}
-
-// Internal
-ESelection SvxUnoTextBase::InsertField( const SvxFieldItem& rField ) throw()
-{
- SvxTextForwarder* pForwarder = GetEditSource() ? GetEditSource()->GetTextForwarder() : NULL;
- if( pForwarder )
- {
- pForwarder->QuickInsertField( rField, GetSelection() );
- GetEditSource()->UpdateData();
-
- // Selektion anpassen
- //! Wenn die EditEngine bei QuickInsertText die Selektion zurueckgeben wuerde,
- //! waer's einfacher...
-
- CollapseToStart();
- GoRight( 1, sal_True ); // Feld ist immer 1 Zeichen
- }
-
- return GetSelection(); // Selektion mit dem Feld
-}
-
-// XInterface
-uno::Any SAL_CALL SvxUnoTextBase::queryAggregation( const uno::Type & rType )
- throw(uno::RuntimeException)
-{
- QUERYINT( text::XText );
- QUERYINT( text::XSimpleText );
- if( rType == ::getCppuType((const uno::Reference< text::XTextRange >*)0) )
- return uno::makeAny(uno::Reference< text::XTextRange >((text::XText*)(this)));
- QUERYINT(container::XEnumerationAccess );
- QUERYINT( container::XElementAccess );
- QUERYINT( beans::XMultiPropertyStates );
- QUERYINT( beans::XPropertySet );
- QUERYINT( beans::XMultiPropertySet );
- QUERYINT( beans::XPropertyState );
- QUERYINT( text::XTextRangeCompare );
- QUERYINT( lang::XServiceInfo );
- QUERYINT( text::XTextRangeMover );
- QUERYINT( text::XTextCopy );
- QUERYINT( text::XTextAppend );
- QUERYINT( text::XParagraphAppend );
- QUERYINT( text::XTextPortionAppend );
- QUERYINT( lang::XTypeProvider );
- QUERYINT( lang::XUnoTunnel );
-
- return uno::Any();
-}
-
-// XTypeProvider
-
-uno::Sequence< uno::Type > SAL_CALL SvxUnoTextBase::getStaticTypes() throw()
-{
- if( maTypeSequence.getLength() == 0 )
- {
- maTypeSequence.realloc( 15 ); // !DANGER! keep this updated
- uno::Type* pTypes = maTypeSequence.getArray();
-
- *pTypes++ = ::getCppuType(( const uno::Reference< text::XText >*)0);
- *pTypes++ = ::getCppuType(( const uno::Reference< container::XEnumerationAccess >*)0);
- *pTypes++ = ::getCppuType(( const uno::Reference< beans::XPropertySet >*)0);
- *pTypes++ = ::getCppuType(( const uno::Reference< beans::XMultiPropertySet >*)0);
- *pTypes++ = ::getCppuType(( const uno::Reference< beans::XMultiPropertyStates >*)0);
- *pTypes++ = ::getCppuType(( const uno::Reference< beans::XPropertyState >*)0);
- *pTypes++ = ::getCppuType(( const uno::Reference< text::XTextRangeMover >*)0);
- *pTypes++ = ::getCppuType(( const uno::Reference< text::XTextAppend >*)0);
- *pTypes++ = ::getCppuType(( const uno::Reference< text::XTextCopy >*)0);
- *pTypes++ = ::getCppuType(( const uno::Reference< text::XParagraphAppend >*)0);
- *pTypes++ = ::getCppuType(( const uno::Reference< text::XTextPortionAppend >*)0);
- *pTypes++ = ::getCppuType(( const uno::Reference< lang::XServiceInfo >*)0);
- *pTypes++ = ::getCppuType(( const uno::Reference< lang::XTypeProvider >*)0);
- *pTypes++ = ::getCppuType(( const uno::Reference< lang::XUnoTunnel >*)0);
- *pTypes++ = ::getCppuType(( const uno::Reference< text::XTextRangeCompare >*)0);
- }
- return maTypeSequence;
-}
-
-uno::Sequence< uno::Type > SAL_CALL SvxUnoTextBase::getTypes()
- throw (uno::RuntimeException)
-{
- return getStaticTypes();
-}
-
-uno::Sequence< sal_Int8 > SAL_CALL SvxUnoTextBase::getImplementationId()
- throw (uno::RuntimeException)
-{
- static uno::Sequence< sal_Int8 > aId;
- if( aId.getLength() == 0 )
- {
- aId.realloc( 16 );
- rtl_createUuid( (sal_uInt8 *)aId.getArray(), 0, sal_True );
- }
- return aId;
-}
-
-uno::Reference< text::XTextCursor > SvxUnoTextBase::createTextCursorBySelection( const ESelection& rSel )
-{
- SvxUnoTextCursor* pCursor = new SvxUnoTextCursor( *this );
- uno::Reference< text::XTextCursor > xCursor( pCursor );
- pCursor->SetSelection( rSel );
- return xCursor;
-}
-
-// XSimpleText
-
-uno::Reference< text::XTextCursor > SAL_CALL SvxUnoTextBase::createTextCursor()
- throw(uno::RuntimeException)
-{
- OGuard aGuard( Application::GetSolarMutex() );
- return new SvxUnoTextCursor( *this );
-}
-
-uno::Reference< text::XTextCursor > SAL_CALL SvxUnoTextBase::createTextCursorByRange( const uno::Reference< text::XTextRange >& aTextPosition )
- throw(uno::RuntimeException)
-{
- OGuard aGuard( Application::GetSolarMutex() );
-
- uno::Reference< text::XTextCursor > xCursor;
-
- if( aTextPosition.is() )
- {
- SvxUnoTextRangeBase* pRange = SvxUnoTextRangeBase::getImplementation( aTextPosition );
- if(pRange)
- xCursor = createTextCursorBySelection( pRange->GetSelection() );
- }
-
- return xCursor;
-}
-
-void SAL_CALL SvxUnoTextBase::insertString( const uno::Reference< text::XTextRange >& xRange, const OUString& aString, sal_Bool bAbsorb )
- throw(uno::RuntimeException)
-{
- OGuard aGuard( Application::GetSolarMutex() );
-
- if( !xRange.is() )
- return;
-
- ESelection aSelection;
- ::GetSelection( aSelection, GetEditSource()->GetTextForwarder() );
- SetSelection( aSelection );
-
- SvxUnoTextRangeBase* pRange = SvxUnoTextRange::getImplementation( xRange );
- if(pRange)
- {
- // setString am SvxUnoTextRangeBase statt selber QuickInsertText und UpdateData,
- // damit die Selektion am SvxUnoTextRangeBase angepasst wird.
- //! Eigentlich muessten alle Cursor-Objekte dieses Textes angepasst werden!
-
- if (!bAbsorb) // nicht ersetzen -> hinten anhaengen
- pRange->CollapseToEnd();
-
- pRange->setString( aString );
-
- pRange->CollapseToEnd();
- }
-}
-
-void SAL_CALL SvxUnoTextBase::insertControlCharacter( const uno::Reference< text::XTextRange >& xRange, sal_Int16 nControlCharacter, sal_Bool bAbsorb )
- throw(lang::IllegalArgumentException, uno::RuntimeException)
-{
- OGuard aGuard( Application::GetSolarMutex() );
-
- SvxTextForwarder* pForwarder = GetEditSource() ? GetEditSource()->GetTextForwarder() : NULL;
-
- if( pForwarder )
- {
- ESelection aSelection;
- ::GetSelection( aSelection, pForwarder );
- SetSelection( aSelection );
-
- switch( nControlCharacter )
- {
- case text::ControlCharacter::PARAGRAPH_BREAK:
- {
- const String aText( (sal_Unicode)13 ); // '\r' geht auf'm Mac nicht
- insertString( xRange, aText, bAbsorb );
-
- return;
- }
- case text::ControlCharacter::LINE_BREAK:
- {
- SvxUnoTextRangeBase* pRange = SvxUnoTextRange::getImplementation( xRange );
- if(pRange)
- {
- ESelection aRange = pRange->GetSelection();
-
- if( bAbsorb )
- {
- const String aEmpty;
- pForwarder->QuickInsertText( aEmpty, aRange );
-
- aRange.nEndPos = aRange.nStartPos;
- aRange.nEndPara = aRange.nStartPara;
- }
- else
- {
- aRange.nStartPos = aRange.nEndPos;
- aRange.nStartPara = aRange.nStartPara;
- }
-
- pForwarder->QuickInsertLineBreak( aRange );
- GetEditSource()->UpdateData();
-
- aRange.nEndPos += 1;
- if( !bAbsorb )
- aRange.nStartPos += 1;
-
- pRange->SetSelection( aRange );
- }
- return;
- }
- case text::ControlCharacter::APPEND_PARAGRAPH:
- {
- SvxUnoTextRangeBase* pRange = SvxUnoTextRange::getImplementation( xRange );
- if(pRange)
- {
- ESelection aRange = pRange->GetSelection();
-// ESelection aOldSelection = aRange;
-
- aRange.nStartPos = pForwarder->GetTextLen( aRange.nStartPara );
-
- aRange.nEndPara = aRange.nStartPara;
- aRange.nEndPos = aRange.nStartPos;
-
- pRange->SetSelection( aRange );
- const String aText( (sal_Unicode)13 ); // '\r' geht auf'm Mac nicht
- pRange->setString( aText );
-
- aRange.nStartPos = 0;
- aRange.nStartPara += 1;
- aRange.nEndPos = 0;
- aRange.nEndPara += 1;
-
- pRange->SetSelection( aRange );
-
- return;
- }
- }
- }
- }
-
- throw lang::IllegalArgumentException();
-}
-
-// XText
-void SAL_CALL SvxUnoTextBase::insertTextContent( const uno::Reference< text::XTextRange >& xRange, const uno::Reference< text::XTextContent >& xContent, sal_Bool bAbsorb )
- throw(lang::IllegalArgumentException, uno::RuntimeException)
-{
- OGuard aGuard( Application::GetSolarMutex() );
-
- SvxTextForwarder* pForwarder = GetEditSource() ? GetEditSource()->GetTextForwarder() : NULL;
- if( pForwarder )
- {
-
- SvxUnoTextRangeBase* pRange = SvxUnoTextRange::getImplementation( xRange );
- SvxUnoTextField* pField = SvxUnoTextField::getImplementation( xContent );
-
- if( pRange == NULL || pField == NULL )
- throw lang::IllegalArgumentException();
-
- ESelection aSelection = pRange->GetSelection();
- if( !bAbsorb )
- {
- aSelection.nStartPara = aSelection.nEndPara;
- aSelection.nStartPos = aSelection.nEndPos;
- }
-
- SvxFieldData* pFieldData = pField->CreateFieldData();
- if( pFieldData == NULL )
- throw lang::IllegalArgumentException();
-
- SvxFieldItem aField( *pFieldData, EE_FEATURE_FIELD );
- pForwarder->QuickInsertField( aField, aSelection );
- GetEditSource()->UpdateData();
-
- pField->SetAnchor( uno::Reference< text::XTextRange >::query( (cppu::OWeakObject*)this ) );
-
- aSelection.nEndPos += 1;
- aSelection.nStartPos = aSelection.nEndPos;
- //maSelection = aSelection; //???
- pRange->SetSelection( aSelection );
-
- delete pFieldData;
- }
-}
-
-void SAL_CALL SvxUnoTextBase::removeTextContent( const uno::Reference< text::XTextContent >& ) throw(container::NoSuchElementException, uno::RuntimeException)
-{
-}
-
-// XTextRange
-
-uno::Reference< text::XText > SAL_CALL SvxUnoTextBase::getText()
- throw(uno::RuntimeException)
-{
- OGuard aGuard( Application::GetSolarMutex() );
-
- if (GetEditSource())
- {
- ESelection aSelection;
- ::GetSelection( aSelection, GetEditSource()->GetTextForwarder() );
- ((SvxUnoTextBase*)this)->SetSelection( aSelection );
- }
-
- return (text::XText*)this;
-}
-
-uno::Reference< text::XTextRange > SAL_CALL SvxUnoTextBase::getStart()
- throw(uno::RuntimeException)
-{
- return SvxUnoTextRangeBase::getStart();
-}
-
-uno::Reference< text::XTextRange > SAL_CALL SvxUnoTextBase::getEnd()
- throw(uno::RuntimeException)
-{
- return SvxUnoTextRangeBase::getEnd();
-}
-
-OUString SAL_CALL SvxUnoTextBase::getString() throw( uno::RuntimeException )
-{
- return SvxUnoTextRangeBase::getString();
-}
-
-void SAL_CALL SvxUnoTextBase::setString( const OUString& aString ) throw(uno::RuntimeException)
-{
- SvxUnoTextRangeBase::setString(aString);
-}
-
-
-// XEnumerationAccess
-uno::Reference< container::XEnumeration > SAL_CALL SvxUnoTextBase::createEnumeration()
- throw(uno::RuntimeException)
-{
- OGuard aGuard( Application::GetSolarMutex() );
-
- ESelection aSelection;
- ::GetSelection( aSelection, GetEditSource()->GetTextForwarder() );
- SetSelection( aSelection );
-
- uno::Reference< container::XEnumeration > xEnum( (container::XEnumeration*) new SvxUnoTextContentEnumeration( *this ) );
- return xEnum;
-}
-
-// XElementAccess ( container::XEnumerationAccess )
-uno::Type SAL_CALL SvxUnoTextBase::getElementType( ) throw(uno::RuntimeException)
-{
- return ::getCppuType((const uno::Reference< text::XTextRange >*)0 );
-}
-
-sal_Bool SAL_CALL SvxUnoTextBase::hasElements( ) throw(uno::RuntimeException)
-{
- OGuard aGuard( Application::GetSolarMutex() );
-
- if(GetEditSource())
- {
- SvxTextForwarder* pForwarder = GetEditSource()->GetTextForwarder();
- if(pForwarder)
- return pForwarder->GetParagraphCount() != 0;
- }
-
- return sal_False;
-}
-
-// text::XTextRangeMover
-void SAL_CALL SvxUnoTextBase::moveTextRange( const uno::Reference< text::XTextRange >&, sal_Int16 )
- throw(uno::RuntimeException)
-{
-}
-
-void SvxPropertyValuesToItemSet(
- SfxItemSet &rItemSet,
- const uno::Sequence< beans::PropertyValue > rPropertyVaules,
- const SfxItemPropertySet *pPropSet,
- SvxTextForwarder *pForwarder /*needed for WID_NUMLEVEL*/,
- USHORT nPara /*needed for WID_NUMLEVEL*/)
- throw(lang::IllegalArgumentException, beans::UnknownPropertyException, uno::RuntimeException)
-{
- sal_Int32 nProps = rPropertyVaules.getLength();
- const beans::PropertyValue *pProps = rPropertyVaules.getConstArray();
- for (sal_Int32 i = 0; i < nProps; ++i)
- {
- const SfxItemPropertySimpleEntry *pEntry = pPropSet->getPropertyMap()->getByName( pProps[i].Name );
- if (pEntry)
- {
- // Note: there is no need to take special care of the properties
- // TextField (EE_FEATURE_FIELD) and
- // TextPortionType (WID_PORTIONTYPE)
- // since they are read-only and thus are already taken care of below.
-
- if (pEntry->nFlags & beans::PropertyAttribute::READONLY)
- // should be PropertyVetoException which is not yet defined for the new import API's functions
- throw uno::RuntimeException( OUString ( RTL_CONSTASCII_USTRINGPARAM ( "Property is read-only: " ) ) + pProps[i].Name, static_cast < cppu::OWeakObject * > ( 0 ) );
- //throw PropertyVetoException ( OUString ( RTL_CONSTASCII_USTRINGPARAM ( "Property is read-only: " ) ) + pProps[i].Name, static_cast < cppu::OWeakObject * > ( 0 ) );
-
- if (pEntry->nWID == WID_FONTDESC)
- {
- awt::FontDescriptor aDesc;
- if (pProps[i].Value >>= aDesc)
- SvxUnoFontDescriptor::FillItemSet( aDesc, rItemSet );
- }
- else if (pEntry->nWID == WID_NUMLEVEL)
- {
- if (pForwarder)
- {
- sal_Int16 nLevel = -1;
- pProps[i].Value >>= nLevel;
-
- // #101004# Call interface method instead of unsafe cast
- if (!pForwarder->SetDepth( nPara, nLevel ))
- throw lang::IllegalArgumentException();
- }
- }
- else if (pEntry->nWID == WID_NUMBERINGSTARTVALUE )
- {
- if( pForwarder )
- {
- sal_Int16 nStartValue = -1;
- if( !(pProps[i].Value >>= nStartValue) )
- throw lang::IllegalArgumentException();
-
- pForwarder->SetNumberingStartValue( nPara, nStartValue );
- }
- }
- else if (pEntry->nWID == WID_PARAISNUMBERINGRESTART )
- {
- if( pForwarder )
- {
- sal_Bool bParaIsNumberingRestart = sal_False;
- if( !(pProps[i].Value >>= bParaIsNumberingRestart) )
- throw lang::IllegalArgumentException();
-
- pForwarder->SetParaIsNumberingRestart( nPara, bParaIsNumberingRestart );
- }
- }
- else
- pPropSet->setPropertyValue( pProps[i].Name, pProps[i].Value, rItemSet );
- }
- else
- throw beans::UnknownPropertyException(OUString ( RTL_CONSTASCII_USTRINGPARAM ( "Unknown property: " ) ) + pProps[i].Name, static_cast < cppu::OWeakObject * > ( 0 ) );
- }
-}
-
-// com::sun::star::text::XParagraphAppend (new import API)
-uno::Reference< text::XTextRange > SAL_CALL SvxUnoTextBase::appendParagraph(
- const uno::Sequence< beans::PropertyValue >& rCharAndParaProps )
- throw (lang::IllegalArgumentException, beans::UnknownPropertyException, uno::RuntimeException)
-{
- OGuard aGuard( Application::GetSolarMutex() );
- uno::Reference< text::XTextRange > xRet;
- SvxEditSource *pEditSource = GetEditSource();
- SvxTextForwarder *pTextForwarder = pEditSource ? pEditSource->GetTextForwarder() : 0;
- if (pTextForwarder)
- {
- USHORT nParaCount = pTextForwarder->GetParagraphCount();
- DBG_ASSERT( nParaCount > 0, "paragraph count is 0 or negative" );
- pTextForwarder->AppendParagraph();
-
- // set properties for new appended (now last) paragraph
- ESelection aSel( nParaCount, 0, nParaCount, 0 );
- SfxItemSet aItemSet( *pTextForwarder->GetEmptyItemSetPtr() );
- SvxPropertyValuesToItemSet( aItemSet, rCharAndParaProps,
- ImplGetSvxUnoOutlinerTextCursorSfxPropertySet(),
- pTextForwarder,
- nParaCount );
- pTextForwarder->QuickSetAttribs( aItemSet, aSel );
- pEditSource->UpdateData();
- SvxUnoTextRange* pRange = new SvxUnoTextRange( *this );
- xRet = pRange;
- pRange->SetSelection( aSel );
- }
- return xRet;
-}
-
-uno::Reference< text::XTextRange > SAL_CALL SvxUnoTextBase::finishParagraph(
- const uno::Sequence< beans::PropertyValue >& rCharAndParaProps )
- throw (lang::IllegalArgumentException, beans::UnknownPropertyException, uno::RuntimeException)
-{
- OGuard aGuard( Application::GetSolarMutex() );
-
- uno::Reference< text::XTextRange > xRet;
- SvxEditSource *pEditSource = GetEditSource();
- SvxTextForwarder *pTextForwarder = pEditSource ? pEditSource->GetTextForwarder() : 0;
- if (pTextForwarder)
- {
- USHORT nParaCount = pTextForwarder->GetParagraphCount();
- DBG_ASSERT( nParaCount > 0, "paragraph count is 0 or negative" );
- pTextForwarder->AppendParagraph();
-
- // set properties for the previously last paragraph
- USHORT nPara = nParaCount - 1;
- ESelection aSel( nPara, 0, nPara, 0 );
- SfxItemSet aItemSet( *pTextForwarder->GetEmptyItemSetPtr() );
- SvxPropertyValuesToItemSet( aItemSet, rCharAndParaProps,
- ImplGetSvxUnoOutlinerTextCursorSfxPropertySet(), pTextForwarder, nPara );
- pTextForwarder->QuickSetAttribs( aItemSet, aSel );
- pEditSource->UpdateData();
- SvxUnoTextRange* pRange = new SvxUnoTextRange( *this );
- xRet = pRange;
- pRange->SetSelection( aSel );
- }
- return xRet;
-}
-
-// com::sun::star::text::XTextPortionAppend (new import API)
-uno::Reference< text::XTextRange > SAL_CALL SvxUnoTextBase::appendTextPortion(
- const ::rtl::OUString& rText,
- const uno::Sequence< beans::PropertyValue >& rCharAndParaProps )
- throw (lang::IllegalArgumentException, beans::UnknownPropertyException, uno::RuntimeException)
-{
- OGuard aGuard( Application::GetSolarMutex() );
-
- SvxEditSource *pEditSource = GetEditSource();
- SvxTextForwarder *pTextForwarder = pEditSource ? pEditSource->GetTextForwarder() : 0;
- uno::Reference< text::XTextRange > xRet;
- if (pTextForwarder)
- {
- USHORT nParaCount = pTextForwarder->GetParagraphCount();
- DBG_ASSERT( nParaCount > 0, "paragraph count is 0 or negative" );
- USHORT nPara = nParaCount - 1;
- SfxItemSet aSet( pTextForwarder->GetParaAttribs( nPara ) );
- xub_StrLen nStart = pTextForwarder->AppendTextPortion( nPara, rText, aSet );
- pEditSource->UpdateData();
- xub_StrLen nEnd = pTextForwarder->GetTextLen( nPara );
-
- // set properties for the new text portion
- ESelection aSel( nPara, nStart, nPara, nEnd );
- pTextForwarder->RemoveAttribs( aSel, sal_False, 0 );
- pEditSource->UpdateData();
-
- SfxItemSet aItemSet( *pTextForwarder->GetEmptyItemSetPtr() );
- SvxPropertyValuesToItemSet( aItemSet, rCharAndParaProps,
- ImplGetSvxTextPortionSfxPropertySet(), pTextForwarder, nPara );
- pTextForwarder->QuickSetAttribs( aItemSet, aSel );
- SvxUnoTextRange* pRange = new SvxUnoTextRange( *this );
- xRet = pRange;
- pRange->SetSelection( aSel );
- const beans::PropertyValue* pProps = rCharAndParaProps.getConstArray();
- for( sal_Int32 nProp = 0; nProp < rCharAndParaProps.getLength(); ++nProp )
- pRange->setPropertyValue( pProps[nProp].Name, pProps[nProp].Value );
- }
- return xRet;
-}
-/*-- 25.03.2008 08:16:09---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-void SvxUnoTextBase::copyText(
- const uno::Reference< text::XTextCopy >& xSource ) throw ( uno::RuntimeException )
-{
- OGuard aGuard( Application::GetSolarMutex() );
- uno::Reference< lang::XUnoTunnel > xUT( xSource, uno::UNO_QUERY );
- SvxEditSource *pEditSource = GetEditSource();
- SvxTextForwarder *pTextForwarder = pEditSource ? pEditSource->GetTextForwarder() : 0;
- if( !pTextForwarder )
- return;
- if( xUT.is() )
- {
- SvxUnoTextBase* pSource = reinterpret_cast<SvxUnoTextBase*>(sal::static_int_cast<sal_uIntPtr>(
- xUT->getSomething( SvxUnoTextBase::getUnoTunnelId())));
- SvxEditSource *pSourceEditSource = pSource->GetEditSource();
- SvxTextForwarder *pSourceTextForwarder = pSourceEditSource ? pSourceEditSource->GetTextForwarder() : 0;
- if( pSourceTextForwarder )
- {
- pTextForwarder->CopyText( *pSourceTextForwarder );
- pEditSource->UpdateData();
- }
- }
- else
- {
- uno::Reference< text::XText > xSourceText( xSource, uno::UNO_QUERY );
- if( xSourceText.is() )
- {
- setString( xSourceText->getString() );
- }
- }
-}
-
-// lang::XServiceInfo
-OUString SAL_CALL SvxUnoTextBase::getImplementationName()
- throw(uno::RuntimeException)
-{
- return OUString(RTL_CONSTASCII_USTRINGPARAM("SvxUnoTextBase"));
-}
-
-uno::Sequence< OUString > SAL_CALL SvxUnoTextBase::getSupportedServiceNames( )
- throw(uno::RuntimeException)
-{
- return getSupportedServiceNames_Static();
-}
-
-uno::Sequence< OUString > SAL_CALL SvxUnoTextBase::getSupportedServiceNames_Static( )
- SAL_THROW(())
-{
- uno::Sequence< OUString > aSeq( SvxUnoTextRangeBase::getSupportedServiceNames_Static() );
- SvxServiceInfoHelper::addToSequence( aSeq, 1, "com.sun.star.text.Text" );
- return aSeq;
-}
-
-const uno::Sequence< sal_Int8 > & SvxUnoTextBase::getUnoTunnelId() throw()
-{
- static uno::Sequence< sal_Int8 > * pSeq = 0;
- if( !pSeq )
- {
- ::osl::Guard< ::osl::Mutex > aGuard( ::osl::Mutex::getGlobalMutex() );
- if( !pSeq )
- {
- static uno::Sequence< sal_Int8 > aSeq( 16 );
- rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True );
- pSeq = &aSeq;
- }
- }
- return *pSeq;
-}
-
-SvxUnoTextBase* SvxUnoTextBase::getImplementation( const uno::Reference< uno::XInterface >& xInt )
-{
- uno::Reference< lang::XUnoTunnel > xUT( xInt, uno::UNO_QUERY );
- if( xUT.is() )
- return reinterpret_cast<SvxUnoTextBase*>(sal::static_int_cast<sal_uIntPtr>(xUT->getSomething( SvxUnoTextBase::getUnoTunnelId())));
- else
- return NULL;
-}
-
-sal_Int64 SAL_CALL SvxUnoTextBase::getSomething( const uno::Sequence< sal_Int8 >& rId ) throw(uno::RuntimeException) \
-{
- if( rId.getLength() == 16 && 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(),
- rId.getConstArray(), 16 ) )
- {
- return sal::static_int_cast<sal_Int64>(reinterpret_cast<sal_uIntPtr>(this));
- }
- else
- {
- return SvxUnoTextRangeBase::getSomething( rId );
- }
-}
-
-// --------------------------------------------------------------------
-
-SvxUnoText::SvxUnoText( ) throw()
-{
-}
-
-SvxUnoText::SvxUnoText( const SvxItemPropertySet* _pSet ) throw()
-: SvxUnoTextBase( _pSet )
-{
-}
-
-SvxUnoText::SvxUnoText( const SvxEditSource* pSource, const SvxItemPropertySet* _pSet, uno::Reference < text::XText > xParent ) throw()
-: SvxUnoTextBase( pSource, _pSet, xParent )
-{
-}
-
-SvxUnoText::SvxUnoText( const SvxUnoText& rText ) throw()
-: SvxUnoTextBase( rText )
-, cppu::OWeakAggObject()
-{
-}
-
-SvxUnoText::~SvxUnoText() throw()
-{
-}
-
-uno::Sequence< uno::Type > SAL_CALL getStaticTypes() throw()
-{
- return SvxUnoTextBase::getStaticTypes();
-}
-
-// uno::XInterface
-uno::Any SAL_CALL SvxUnoText::queryAggregation( const uno::Type & rType ) throw( uno::RuntimeException )
-{
- uno::Any aAny( SvxUnoTextBase::queryAggregation( rType ) );
- if( !aAny.hasValue() )
- aAny = OWeakAggObject::queryAggregation( rType );
-
- return aAny;
-}
-
-uno::Any SAL_CALL SvxUnoText::queryInterface( const uno::Type & rType ) throw( uno::RuntimeException )
-{
- return OWeakAggObject::queryInterface( rType );
-}
-
-void SAL_CALL SvxUnoText::acquire() throw( )
-{
- OWeakAggObject::acquire();
-}
-
-void SAL_CALL SvxUnoText::release() throw( )
-{
- OWeakAggObject::release();
-}
-
-// lang::XTypeProvider
-uno::Sequence< uno::Type > SAL_CALL SvxUnoText::getTypes( ) throw( uno::RuntimeException )
-{
- return SvxUnoTextBase::getTypes();
-}
-
-uno::Sequence< sal_Int8 > SAL_CALL SvxUnoText::getImplementationId( ) throw( uno::RuntimeException )
-{
- static uno::Sequence< sal_Int8 > aId;
- if( aId.getLength() == 0 )
- {
- aId.realloc( 16 );
- rtl_createUuid( (sal_uInt8 *)aId.getArray(), 0, sal_True );
- }
- return aId;
-}
-
-SvxUnoText* SvxUnoText::getImplementation( const uno::Reference< uno::XInterface >& xInt )
-{
- uno::Reference< lang::XUnoTunnel > xUT( xInt, uno::UNO_QUERY );
- if( xUT.is() )
- return reinterpret_cast<SvxUnoText*>(sal::static_int_cast<sal_uIntPtr>(xUT->getSomething( SvxUnoText::getUnoTunnelId())));
- else
- return NULL;
-}
-
-const uno::Sequence< sal_Int8 > & SvxUnoText::getUnoTunnelId() throw()
-{
- static uno::Sequence< sal_Int8 > * pSeq = 0;
- if( !pSeq )
- {
- ::osl::Guard< ::osl::Mutex > aGuard( ::osl::Mutex::getGlobalMutex() );
- if( !pSeq )
- {
- static uno::Sequence< sal_Int8 > aSeq( 16 );
- rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True );
- pSeq = &aSeq;
- }
- }
- return *pSeq;
-}
-
-sal_Int64 SAL_CALL SvxUnoText::getSomething( const uno::Sequence< sal_Int8 >& rId ) throw(uno::RuntimeException) \
-{
- if( rId.getLength() == 16 && 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(),
- rId.getConstArray(), 16 ) )
- {
- return sal::static_int_cast<sal_Int64>(reinterpret_cast<sal_uIntPtr>(this));
- }
- else
- {
- return SvxUnoTextBase::getSomething( rId );
- }
-}
-
-
-// --------------------------------------------------------------------
-
-SvxDummyTextSource::~SvxDummyTextSource()
-{
-};
-
-SvxEditSource* SvxDummyTextSource::Clone() const
-{
- return new SvxDummyTextSource();
-}
-
-SvxTextForwarder* SvxDummyTextSource::GetTextForwarder()
-{
- return this;
-}
-
-void SvxDummyTextSource::UpdateData()
-{
-}
-
-sal_uInt16 SvxDummyTextSource::GetParagraphCount() const
-{
- return 0;
-}
-
-sal_uInt16 SvxDummyTextSource::GetTextLen( sal_uInt16 ) const
-{
- return 0;
-}
-
-String SvxDummyTextSource::GetText( const ESelection& ) const
-{
- return String();
-}
-
-SfxItemSet SvxDummyTextSource::GetAttribs( const ESelection&, BOOL ) const
-{
- // AW: Very dangerous: The former implementation used a SfxItemPool created on the
- // fly which of course was deleted again ASAP. Thus, the returned SfxItemSet was using
- // a deleted Pool by design.
- return SfxItemSet(SdrObject::GetGlobalDrawObjectItemPool());
-}
-
-SfxItemSet SvxDummyTextSource::GetParaAttribs( sal_uInt16 ) const
-{
- return GetAttribs(ESelection());
-}
-
-void SvxDummyTextSource::SetParaAttribs( sal_uInt16, const SfxItemSet& )
-{
-}
-
-void SvxDummyTextSource::RemoveAttribs( const ESelection& , sal_Bool , sal_uInt16 )
-{
-}
-
-void SvxDummyTextSource::GetPortions( sal_uInt16, SvUShorts& ) const
-{
-}
-
-sal_uInt16 SvxDummyTextSource::GetItemState( const ESelection&, sal_uInt16 ) const
-{
- return 0;
-}
-
-sal_uInt16 SvxDummyTextSource::GetItemState( sal_uInt16, sal_uInt16 ) const
-{
- return 0;
-}
-
-SfxItemPool* SvxDummyTextSource::GetPool() const
-{
- return NULL;
-}
-
-void SvxDummyTextSource::QuickInsertText( const String&, const ESelection& )
-{
-}
-
-void SvxDummyTextSource::QuickInsertField( const SvxFieldItem&, const ESelection& )
-{
-}
-
-void SvxDummyTextSource::QuickSetAttribs( const SfxItemSet&, const ESelection& )
-{
-}
-
-void SvxDummyTextSource::QuickInsertLineBreak( const ESelection& )
-{
-};
-
-XubString SvxDummyTextSource::CalcFieldValue( const SvxFieldItem&, sal_uInt16, sal_uInt16, Color*&, Color*& )
-{
- return XubString();
-}
-
-sal_Bool SvxDummyTextSource::IsValid() const
-{
- return sal_False;
-}
-
-void SvxDummyTextSource::SetNotifyHdl( const Link& )
-{
-}
-
-LanguageType SvxDummyTextSource::GetLanguage( USHORT, USHORT ) const
-{
- return LANGUAGE_DONTKNOW;
-}
-
-USHORT SvxDummyTextSource::GetFieldCount( USHORT ) const
-{
- return 0;
-}
-
-EFieldInfo SvxDummyTextSource::GetFieldInfo( USHORT, USHORT ) const
-{
- return EFieldInfo();
-}
-
-EBulletInfo SvxDummyTextSource::GetBulletInfo( USHORT ) const
-{
- return EBulletInfo();
-}
-
-Rectangle SvxDummyTextSource::GetCharBounds( USHORT, USHORT ) const
-{
- return Rectangle();
-}
-
-Rectangle SvxDummyTextSource::GetParaBounds( USHORT ) const
-{
- return Rectangle();
-}
-
-MapMode SvxDummyTextSource::GetMapMode() const
-{
- return MapMode();
-}
-
-OutputDevice* SvxDummyTextSource::GetRefDevice() const
-{
- return NULL;
-}
-
-sal_Bool SvxDummyTextSource::GetIndexAtPoint( const Point&, USHORT&, USHORT& ) const
-{
- return sal_False;
-}
-
-sal_Bool SvxDummyTextSource::GetWordIndices( USHORT, USHORT, USHORT&, USHORT& ) const
-{
- return sal_False;
-}
-
-sal_Bool SvxDummyTextSource::GetAttributeRun( USHORT&, USHORT&, USHORT, USHORT ) const
-{
- return sal_False;
-}
-
-USHORT SvxDummyTextSource::GetLineCount( USHORT ) const
-{
- return 0;
-}
-
-USHORT SvxDummyTextSource::GetLineLen( USHORT, USHORT ) const
-{
- return 0;
-}
-
-void SvxDummyTextSource::GetLineBoundaries( /*out*/USHORT &rStart, /*out*/USHORT &rEnd, USHORT /*nParagraph*/, USHORT /*nLine*/ ) const
-{
- rStart = rEnd = 0;
-}
-
-USHORT SvxDummyTextSource::GetLineNumberAtIndex( USHORT /*nPara*/, USHORT /*nIndex*/ ) const
-{
- return 0;
-}
-
-sal_Bool SvxDummyTextSource::QuickFormatDoc( BOOL )
-{
- return sal_False;
-}
-
-sal_Int16 SvxDummyTextSource::GetDepth( USHORT ) const
-{
- return -1;
-}
-
-sal_Bool SvxDummyTextSource::SetDepth( USHORT, sal_Int16 nNewDepth )
-{
- return nNewDepth == 0 ? sal_True : sal_False;
-}
-
-sal_Bool SvxDummyTextSource::Delete( const ESelection& )
-{
- return sal_False;
-}
-
-sal_Bool SvxDummyTextSource::InsertText( const String&, const ESelection& )
-{
- return sal_False;
-}
-
-const SfxItemSet * SvxDummyTextSource::GetEmptyItemSetPtr()
-{
- return 0;
-}
-
-void SvxDummyTextSource::AppendParagraph()
-{
-}
-
-xub_StrLen SvxDummyTextSource::AppendTextPortion( USHORT, const String &, const SfxItemSet & )
-{
- return 0;
-}
-
-void SvxDummyTextSource::CopyText(const SvxTextForwarder& )
-{
-}
-