diff options
Diffstat (limited to 'editeng/source/uno/unotext.cxx')
-rw-r--r-- | editeng/source/uno/unotext.cxx | 258 |
1 files changed, 23 insertions, 235 deletions
diff --git a/editeng/source/uno/unotext.cxx b/editeng/source/uno/unotext.cxx index 680b0f9f27fe..627f94b38575 100644 --- a/editeng/source/uno/unotext.cxx +++ b/editeng/source/uno/unotext.cxx @@ -60,10 +60,6 @@ using namespace ::rtl; 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)) - const SvxItemPropertySet* ImplGetSvxUnoOutlinerTextCursorSvxPropertySet() { static SvxItemPropertySet aTextCursorSvxPropertySet( ImplGetSvxUnoOutlinerTextCursorPropertyMap(), EditEngine::GetGlobalItemPool() ); @@ -217,14 +213,7 @@ SvxUnoTextRangeBase::SvxUnoTextRangeBase( const SvxEditSource* pSource, const Sv } SvxUnoTextRangeBase::SvxUnoTextRangeBase( const SvxUnoTextRangeBase& rRange ) throw() -: text::XTextRange() -, beans::XPropertySet() -, beans::XMultiPropertySet() -, beans::XMultiPropertyStates() -, beans::XPropertyState() -, lang::XServiceInfo() -, text::XTextRangeCompare() -, lang::XUnoTunnel() +: SvxUnoTextRangeBase_Base() , mpPropSet(rRange.getPropertySet()) { SolarMutexGuard aGuard; @@ -1545,89 +1534,6 @@ 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 - -namespace -{ - struct theSvxUnoTextRangeTypes : - public rtl::StaticWithInit<uno::Sequence<uno::Type>, theSvxUnoTextRangeTypes> - { - uno::Sequence<uno::Type> operator () () - { - uno::Sequence< uno::Type > aTypeSequence; - - aTypeSequence.realloc( 9 ); // !DANGER! keep this updated - uno::Type* pTypes = aTypeSequence.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 aTypeSequence; - } - }; -} - -uno::Sequence< uno::Type > SAL_CALL SvxUnoTextRange::getTypes() - throw (uno::RuntimeException) -{ - return theSvxUnoTextRangeTypes::get(); -} - -namespace -{ - class theSvxUnoTextRangeImplementationId : public rtl::Static< UnoTunnelIdInit, theSvxUnoTextRangeImplementationId > {}; -} - -uno::Sequence< sal_Int8 > SAL_CALL SvxUnoTextRange::getImplementationId() - throw (uno::RuntimeException) -{ - return theSvxUnoTextRangeImplementationId::get().getSeq(); -} - // XTextRange uno::Reference< text::XText > SAL_CALL SvxUnoTextRange::getText() throw(uno::RuntimeException) @@ -1646,19 +1552,36 @@ OUString SAL_CALL SvxUnoTextRange::getImplementationName() // class SvxUnoText // ==================================================================== +SvxUnoTextBase_Base::SvxUnoTextBase_Base(SvxUnoTextBase_Base const & base) + throw (): + SvxUnoTextBase_Base0(base) +{} + +SvxUnoTextBase_Base::SvxUnoTextBase_Base(SvxItemPropertySet const * set) + throw (): + SvxUnoTextBase_Base0(set) +{} + +SvxUnoTextBase_Base::SvxUnoTextBase_Base( + SvxEditSource const * source, SvxItemPropertySet const * set) throw (): + SvxUnoTextBase_Base0(source, set) +{} + +SvxUnoTextBase_Base::~SvxUnoTextBase_Base() throw () {} + SvxUnoTextBase::SvxUnoTextBase() throw() -: SvxUnoTextRangeBase( NULL ) +: SvxUnoTextBase_Base( static_cast< SvxItemPropertySet * >(NULL) ) { } SvxUnoTextBase::SvxUnoTextBase( const SvxItemPropertySet* _pSet ) throw() -: SvxUnoTextRangeBase( _pSet ) +: SvxUnoTextBase_Base( _pSet ) { } SvxUnoTextBase::SvxUnoTextBase( const SvxEditSource* pSource, const SvxItemPropertySet* _pSet ) throw() -: SvxUnoTextRangeBase( pSource, _pSet ) +: SvxUnoTextBase_Base( pSource, _pSet ) { ESelection aSelection; ::GetSelection( aSelection, GetEditSource()->GetTextForwarder() ); @@ -1666,7 +1589,7 @@ SvxUnoTextBase::SvxUnoTextBase( const SvxEditSource* pSource, const SvxItemPrope } SvxUnoTextBase::SvxUnoTextBase( const SvxEditSource* pSource, const SvxItemPropertySet* _pSet, uno::Reference < text::XText > xParent ) throw() -: SvxUnoTextRangeBase( pSource, _pSet ) +: SvxUnoTextBase_Base( pSource, _pSet ) { xParentText = xParent; ESelection aSelection; @@ -1675,12 +1598,7 @@ SvxUnoTextBase::SvxUnoTextBase( const SvxEditSource* pSource, const SvxItemPrope } SvxUnoTextBase::SvxUnoTextBase( const SvxUnoTextBase& rText ) throw() -: SvxUnoTextRangeBase( rText ) -, text::XTextAppend() -, text::XTextCopy() -, container::XEnumerationAccess() -, text::XTextRangeMover() -, lang::XTypeProvider() +: SvxUnoTextBase_Base( rText ) { xParentText = rText.xParentText; } @@ -1708,89 +1626,6 @@ ESelection SvxUnoTextBase::InsertField( const SvxFieldItem& rField ) throw() return GetSelection(); // Selection with the field } -// 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 - -namespace -{ - struct theSvxUnoTextBaseTypes : - public rtl::StaticWithInit<uno::Sequence<uno::Type>, theSvxUnoTextBaseTypes> - { - uno::Sequence<uno::Type> operator () () - { - uno::Sequence< uno::Type > aTypeSequence; - - aTypeSequence.realloc( 15 ); // !DANGER! keep this updated - uno::Type* pTypes = aTypeSequence.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 aTypeSequence; - } - }; -} -uno::Sequence< uno::Type > SAL_CALL SvxUnoTextBase::getStaticTypes() throw() -{ - return theSvxUnoTextBaseTypes::get(); -} - -uno::Sequence< uno::Type > SAL_CALL SvxUnoTextBase::getTypes() - throw (uno::RuntimeException) -{ - return getStaticTypes(); -} - -namespace -{ - class theSvxUnoTextBaseImplementationId : public rtl::Static< UnoTunnelIdInit, theSvxUnoTextBaseImplementationId > {}; -} - -uno::Sequence< sal_Int8 > SAL_CALL SvxUnoTextBase::getImplementationId() - throw (uno::RuntimeException) -{ - return theSvxUnoTextBaseImplementationId::get().getSeq(); -} - uno::Reference< text::XTextCursor > SvxUnoTextBase::createTextCursorBySelection( const ESelection& rSel ) { SvxUnoTextCursor* pCursor = new SvxUnoTextCursor( *this ); @@ -2343,7 +2178,6 @@ SvxUnoText::SvxUnoText( const SvxEditSource* pSource, const SvxItemPropertySet* SvxUnoText::SvxUnoText( const SvxUnoText& rText ) throw() : SvxUnoTextBase( rText ) -, cppu::OWeakAggObject() { } @@ -2351,52 +2185,6 @@ 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(); -} - -namespace -{ - class theSvxUnoTextImplementationId : public rtl::Static< UnoTunnelIdInit, theSvxUnoTextImplementationId > {}; -} - -uno::Sequence< sal_Int8 > SAL_CALL SvxUnoText::getImplementationId( ) throw( uno::RuntimeException ) -{ - return theSvxUnoTextImplementationId::get().getSeq(); -} - SvxUnoText* SvxUnoText::getImplementation( const uno::Reference< uno::XInterface >& xInt ) { uno::Reference< lang::XUnoTunnel > xUT( xInt, uno::UNO_QUERY ); |