diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2011-09-09 14:03:27 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2011-09-09 17:46:37 +0200 |
commit | 21d97438e2944861e26e4984195f959a0cce1e41 (patch) | |
tree | 0a980fe781bae8aa564412165c17ebd6d4795749 /editeng | |
parent | 34e5e5ecec9779bae3ee48f698d52318f0be5f89 (diff) |
sb140: #i117082# avoid unncessary static class data members (which are destroyed too late)
plus
sb140: #i117082# extra indirections to apeace MSC
sb140: #i117082# avoid warnings about not intializing boost::noncopyable base in copy ctors
Diffstat (limited to 'editeng')
-rw-r--r-- | editeng/inc/editeng/unopracc.hxx | 14 | ||||
-rw-r--r-- | editeng/inc/editeng/unotext.hxx | 151 | ||||
-rw-r--r-- | editeng/source/uno/unopracc.cxx | 64 | ||||
-rw-r--r-- | editeng/source/uno/unotext.cxx | 258 | ||||
-rw-r--r-- | editeng/source/uno/unotext2.cxx | 199 |
5 files changed, 113 insertions, 573 deletions
diff --git a/editeng/inc/editeng/unopracc.hxx b/editeng/inc/editeng/unopracc.hxx index c1e57ed3944a..99b82cb89523 100644 --- a/editeng/inc/editeng/unopracc.hxx +++ b/editeng/inc/editeng/unopracc.hxx @@ -40,9 +40,7 @@ class SvxEditSource; XMultiPropertySet interfaces. Just set the selection to the required text range and return a reference to a XPropertySet. */ -class SvxAccessibleTextPropertySet : public SvxUnoTextRangeBase, - public ::com::sun::star::lang::XTypeProvider, - public ::cppu::OWeakObject +class SvxAccessibleTextPropertySet : public SvxUnoTextRangeBase { public: SvxAccessibleTextPropertySet( const SvxEditSource*, const SvxItemPropertySet* ); @@ -51,21 +49,11 @@ public: // XTextRange virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XText > SAL_CALL getText() throw (::com::sun::star::uno::RuntimeException); - // uno::XInterface - virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL acquire() throw(); - virtual void SAL_CALL release() throw(); - // lang::XServiceInfo virtual ::rtl::OUString SAL_CALL getImplementationName() throw(::com::sun::star::uno::RuntimeException); virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ) throw (::com::sun::star::uno::RuntimeException); virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException); - // lang::XTypeProvider - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes() throw(::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw(::com::sun::star::uno::RuntimeException); - // XServiceName ::rtl::OUString SAL_CALL getServiceName() throw (::com::sun::star::uno::RuntimeException); }; diff --git a/editeng/inc/editeng/unotext.hxx b/editeng/inc/editeng/unotext.hxx index bdf86be7591c..2db3bd267d0e 100644 --- a/editeng/inc/editeng/unotext.hxx +++ b/editeng/inc/editeng/unotext.hxx @@ -29,13 +29,15 @@ #ifndef _SVX_UNOTEXT_HXX #define _SVX_UNOTEXT_HXX +#include "sal/config.h" + #include <com/sun/star/container/XNameContainer.hpp> #include <com/sun/star/text/XTextRange.hpp> #include <com/sun/star/text/XText.hpp> #include <com/sun/star/container/XEnumerationAccess.hpp> #include <com/sun/star/text/XTextRangeMover.hpp> +#include <com/sun/star/text/XTextContent.hpp> #include <com/sun/star/text/XTextCursor.hpp> -#include <com/sun/star/lang/XTypeProvider.hpp> #include <com/sun/star/lang/XServiceInfo.hpp> #include <com/sun/star/beans/PropertyAttribute.hpp> #include <com/sun/star/beans/XPropertySet.hpp> @@ -53,6 +55,10 @@ #include <com/sun/star/style/TabStop.hpp> #include <com/sun/star/lang/XUnoTunnel.hpp> #include <com/sun/star/text/XTextRange.hpp> +#include <cppuhelper/implbase1.hxx> +#include <cppuhelper/implbase2.hxx> +#include <cppuhelper/implbase4.hxx> +#include <cppuhelper/implbase8.hxx> #include <cppuhelper/interfacecontainer.h> #include <cppuhelper/weak.hxx> #include <cppuhelper/weakagg.hxx> @@ -250,16 +256,20 @@ namespace accessibility } // ==================================================================== -class EDITENG_DLLPUBLIC SvxUnoTextRangeBase : public ::com::sun::star::text::XTextRange, - public ::com::sun::star::beans::XPropertySet, - public ::com::sun::star::beans::XMultiPropertySet, - public ::com::sun::star::beans::XMultiPropertyStates, - public ::com::sun::star::beans::XPropertyState, - public ::com::sun::star::lang::XServiceInfo, - public ::com::sun::star::text::XTextRangeCompare, - public ::com::sun::star::lang::XUnoTunnel, +typedef + cppu::WeakAggImplHelper8< + ::com::sun::star::text::XTextRange, + ::com::sun::star::beans::XPropertySet, + ::com::sun::star::beans::XMultiPropertySet, + ::com::sun::star::beans::XMultiPropertyStates, + ::com::sun::star::beans::XPropertyState, + ::com::sun::star::lang::XServiceInfo, + ::com::sun::star::text::XTextRangeCompare, + ::com::sun::star::lang::XUnoTunnel > + SvxUnoTextRangeBase_Base; + +class EDITENG_DLLPUBLIC SvxUnoTextRangeBase : public SvxUnoTextRangeBase_Base, private osl::DebugBase<SvxUnoTextRangeBase> - { friend class SvxUnoTextRangeEnumeration; friend class accessibility::AccessibleEditableTextPara; @@ -364,9 +374,7 @@ public: // ==================================================================== class SvxUnoTextBase; -class EDITENG_DLLPUBLIC SvxUnoTextRange : public SvxUnoTextRangeBase, - public ::com::sun::star::lang::XTypeProvider, - public ::cppu::OWeakAggObject +class EDITENG_DLLPUBLIC SvxUnoTextRange : public SvxUnoTextRangeBase { friend class SvxUnoTextRangeEnumeration; private: @@ -377,29 +385,37 @@ public: SvxUnoTextRange( const SvxUnoTextBase& rParent, sal_Bool bPortion = sal_False ) throw(); virtual ~SvxUnoTextRange() throw(); - // ::com::sun::star::uno::XInterface - virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL acquire() throw(); - virtual void SAL_CALL release() throw(); - // ::com::sun::star::text::XTextRange virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XText > SAL_CALL getText() throw(::com::sun::star::uno::RuntimeException); // ::com::sun::star::lang::XServiceInfo virtual ::rtl::OUString SAL_CALL getImplementationName() throw(::com::sun::star::uno::RuntimeException); +}; - // ::com::sun::star::lang::XTypeProvider - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) throw(::com::sun::star::uno::RuntimeException); +typedef + cppu::AggImplInheritanceHelper4< + SvxUnoTextRangeBase, + ::com::sun::star::text::XTextAppend, + ::com::sun::star::text::XTextCopy, + ::com::sun::star::container::XEnumerationAccess, + ::com::sun::star::text::XTextRangeMover > + SvxUnoTextBase_Base0; + +// Extra indirection to keep MSC from trying to (unsuccessfully) fully +// instantiate a non-DLLPUBLIC template base class of a DLLPUBLIC class: +class SvxUnoTextBase_Base: public SvxUnoTextBase_Base0 { +protected: + explicit SvxUnoTextBase_Base(SvxUnoTextBase_Base const &) throw (); + explicit SvxUnoTextBase_Base(SvxItemPropertySet const * set) throw (); + SvxUnoTextBase_Base( + SvxEditSource const * source, SvxItemPropertySet const * set) throw (); + virtual ~SvxUnoTextBase_Base() throw (); + +private: + void operator =(SvxUnoTextBase_Base const &); // not defined }; -class EDITENG_DLLPUBLIC SvxUnoTextBase : public SvxUnoTextRangeBase, - public ::com::sun::star::text::XTextAppend, - public ::com::sun::star::text::XTextCopy, - public ::com::sun::star::container::XEnumerationAccess, - public ::com::sun::star::text::XTextRangeMover, - public ::com::sun::star::lang::XTypeProvider +class EDITENG_DLLPUBLIC SvxUnoTextBase : public SvxUnoTextBase_Base { protected: ::com::sun::star::uno::Reference< ::com::sun::star::text::XText > xParentText; @@ -415,13 +431,9 @@ public: UNO3_GETIMPLEMENTATION_DECL( SvxUnoTextBase ) ESelection InsertField( const SvxFieldItem& rField ) throw(); - static ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getStaticTypes() throw(); ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor > createTextCursorBySelection( const ESelection& rSel ); - // ::com::sun::star::uno::XInterface - virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException); - // ::com::sun::star::text::XSimpleText virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor > SAL_CALL createTextCursor( ) throw(::com::sun::star::uno::RuntimeException); virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextCursor > SAL_CALL createTextCursorByRange( const ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange >& aTextPosition ) throw(::com::sun::star::uno::RuntimeException); @@ -463,15 +475,10 @@ public: virtual ::rtl::OUString SAL_CALL getImplementationName() throw(::com::sun::star::uno::RuntimeException); virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw(::com::sun::star::uno::RuntimeException); static ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames_Static( ) SAL_THROW(()); - - // ::com::sun::star::lang::XTypeProvider - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) throw(::com::sun::star::uno::RuntimeException); }; // ==================================================================== -class EDITENG_DLLPUBLIC SvxUnoText : public SvxUnoTextBase, - public ::cppu::OWeakAggObject +class EDITENG_DLLPUBLIC SvxUnoText : public SvxUnoTextBase { public: SvxUnoText( ) throw(); @@ -482,16 +489,6 @@ public: // Internal UNO3_GETIMPLEMENTATION_DECL( SvxUnoText ) - - // ::com::sun::star::uno::XInterface - virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL acquire() throw(); - virtual void SAL_CALL release() throw(); - - // ::com::sun::star::lang::XTypeProvider - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) throw(::com::sun::star::uno::RuntimeException); }; // ==================================================================== @@ -516,13 +513,15 @@ public: }; // ==================================================================== -#include <com/sun/star/text/XTextContent.hpp> -class SvxUnoTextContent : public SvxUnoTextRangeBase, - public ::com::sun::star::text::XTextContent, - public ::com::sun::star::container::XEnumerationAccess, - public ::com::sun::star::lang::XTypeProvider, - public ::cppu::OWeakAggObject +typedef + cppu::AggImplInheritanceHelper2< + SvxUnoTextRangeBase, + ::com::sun::star::text::XTextContent, + ::com::sun::star::container::XEnumerationAccess > + SvxUnoTextContent_Base; + +class SvxUnoTextContent : public SvxUnoTextContent_Base { friend class SvxUnoTextContentEnumeration; private: @@ -545,12 +544,6 @@ public: SvxUnoTextContent( const SvxUnoTextContent& rContent ) throw(); virtual ~SvxUnoTextContent() throw(); - // ::com::sun::star::uno::XInterface - virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL acquire() throw(); - virtual void SAL_CALL release() throw(); - // ::com::sun::star::text::XTextRange virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XText > SAL_CALL getText( ) throw(::com::sun::star::uno::RuntimeException); @@ -586,10 +579,6 @@ public: // ::com::sun::star::lang::XServiceInfo virtual ::rtl::OUString SAL_CALL getImplementationName() throw(::com::sun::star::uno::RuntimeException); virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames( ) throw(::com::sun::star::uno::RuntimeException); - - // ::com::sun::star::lang::XTypeProvider - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) throw(::com::sun::star::uno::RuntimeException); }; // ==================================================================== @@ -615,10 +604,25 @@ public: // ==================================================================== -class EDITENG_DLLPUBLIC SvxUnoTextCursor : public SvxUnoTextRangeBase, - public ::com::sun::star::text::XTextCursor, - public ::com::sun::star::lang::XTypeProvider, - public ::cppu::OWeakAggObject +typedef + cppu::AggImplInheritanceHelper1< + SvxUnoTextRangeBase, + ::com::sun::star::text::XTextCursor > + SvxUnoTextCursor_Base0; + +// Extra indirection to keep MSC from trying to (unsuccessfully) fully +// instantiate a non-DLLPUBLIC template base class of a DLLPUBLIC class: +class SvxUnoTextCursor_Base: public SvxUnoTextCursor_Base0 { +protected: + explicit SvxUnoTextCursor_Base(SvxUnoTextCursor_Base const & base) throw (); + explicit SvxUnoTextCursor_Base(SvxUnoTextRangeBase const & base) throw (); + virtual ~SvxUnoTextCursor_Base() throw (); + +private: + void operator =(SvxUnoTextCursor_Base const &); // not defined +}; + +class EDITENG_DLLPUBLIC SvxUnoTextCursor : public SvxUnoTextCursor_Base { private: ::com::sun::star::uno::Reference< ::com::sun::star::text::XText > mxParentText; @@ -628,12 +632,6 @@ public: SvxUnoTextCursor( const SvxUnoTextCursor& rCursor ) throw(); virtual ~SvxUnoTextCursor() throw(); - // ::com::sun::star::uno::XInterface - virtual ::com::sun::star::uno::Any SAL_CALL queryAggregation( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException); - virtual void SAL_CALL acquire() throw(); - virtual void SAL_CALL release() throw(); - // ::com::sun::star::text::XTextRange virtual ::com::sun::star::uno::Reference< ::com::sun::star::text::XText > SAL_CALL getText() throw(::com::sun::star::uno::RuntimeException); virtual ::rtl::OUString SAL_CALL getString() throw(::com::sun::star::uno::RuntimeException); @@ -655,11 +653,6 @@ public: virtual ::rtl::OUString SAL_CALL getImplementationName() throw(::com::sun::star::uno::RuntimeException); virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException); virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException); - - // ::com::sun::star::lang::XTypeProvider - virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId( ) throw(::com::sun::star::uno::RuntimeException); - }; EDITENG_DLLPUBLIC const SvxItemPropertySet* ImplGetSvxUnoOutlinerTextCursorSvxPropertySet(); diff --git a/editeng/source/uno/unopracc.cxx b/editeng/source/uno/unopracc.cxx index 088cdbbc3ff7..71ba24cec2a5 100644 --- a/editeng/source/uno/unopracc.cxx +++ b/editeng/source/uno/unopracc.cxx @@ -75,70 +75,6 @@ uno::Reference< text::XText > SAL_CALL SvxAccessibleTextPropertySet::getText() t return uno::Reference< text::XText > (); } -uno::Any SAL_CALL SvxAccessibleTextPropertySet::queryAggregation( const uno::Type & ) throw(uno::RuntimeException) -{ - // TODO (empty?) - return uno::Any(); -} - -uno::Any SAL_CALL SvxAccessibleTextPropertySet::queryInterface( const uno::Type & rType ) - throw(uno::RuntimeException) -{ - return OWeakObject::queryInterface(rType); -} - -void SAL_CALL SvxAccessibleTextPropertySet::acquire() - throw() -{ - OWeakObject::acquire(); -} - -void SAL_CALL SvxAccessibleTextPropertySet::release() - throw() -{ - OWeakObject::release(); -} - -// XTypeProvider -uno::Sequence< uno::Type > SAL_CALL SvxAccessibleTextPropertySet::getTypes() throw ( uno::RuntimeException ) -{ - static ::cppu::OTypeCollection* pTypeCollection = NULL ; - - // double-checked locking pattern. - if ( pTypeCollection == NULL ) - { - osl::MutexGuard aGuard( osl::Mutex::getGlobalMutex() ) ; - - // Control these pointer again ... it can be, that another instance will be faster then these! - if ( pTypeCollection == NULL ) - { - // Create a static typecollection ... - static ::cppu::OTypeCollection aTypeCollection( - ::getCppuType( static_cast< const uno::Reference< beans::XPropertySet >* > (0) ), - ::getCppuType( static_cast< const uno::Reference< beans::XMultiPropertySet >* > (0) ), - ::getCppuType( static_cast< const uno::Reference< beans::XPropertyState >* > (0) ), - ::getCppuType( static_cast< const uno::Reference< lang::XServiceInfo >* > (0) ), - ::getCppuType( static_cast< const uno::Reference< lang::XTypeProvider >* > (0) ) ); - - // ... and set his address to static pointer! - pTypeCollection = &aTypeCollection ; - } - } - - return pTypeCollection->getTypes() ; -} - -namespace -{ - class theSvxAccessibleTextPropertySetImplementationId : public rtl::Static< UnoTunnelIdInit, theSvxAccessibleTextPropertySetImplementationId > {}; -} - -uno::Sequence< sal_Int8 > SAL_CALL SvxAccessibleTextPropertySet::getImplementationId() - throw (uno::RuntimeException) -{ - return theSvxAccessibleTextPropertySetImplementationId::get().getSeq(); -} - // XServiceInfo ::rtl::OUString SAL_CALL SAL_CALL SvxAccessibleTextPropertySet::getImplementationName (void) throw (uno::RuntimeException) { 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 ); diff --git a/editeng/source/uno/unotext2.cxx b/editeng/source/uno/unotext2.cxx index 33fcf225eb2d..23f01936b693 100644 --- a/editeng/source/uno/unotext2.cxx +++ b/editeng/source/uno/unotext2.cxx @@ -43,10 +43,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)) - // ==================================================================== // SvxUnoTextContentEnumeration // ==================================================================== @@ -119,7 +115,7 @@ static SvxUnoText* getDummyText() throw() } SvxUnoTextContent::SvxUnoTextContent() throw() -: SvxUnoTextRangeBase(*getDummyText()) +: SvxUnoTextContent_Base(*getDummyText()) , mnParagraph(0) , mrParentText(*getDummyText()) , maDisposeListeners(maDisposeContainerMutex) @@ -128,7 +124,7 @@ SvxUnoTextContent::SvxUnoTextContent() throw() } SvxUnoTextContent::SvxUnoTextContent( const SvxUnoTextBase& rText, sal_uInt16 nPara ) throw() -: SvxUnoTextRangeBase(rText) +: SvxUnoTextContent_Base(rText) , mnParagraph(nPara) , mrParentText(rText) , maDisposeListeners(maDisposeContainerMutex) @@ -140,11 +136,7 @@ SvxUnoTextContent::SvxUnoTextContent( const SvxUnoTextBase& rText, sal_uInt16 nP } SvxUnoTextContent::SvxUnoTextContent( const SvxUnoTextContent& rContent ) throw() -: SvxUnoTextRangeBase(rContent) -, text::XTextContent() -, container::XEnumerationAccess() -, lang::XTypeProvider() -, cppu::OWeakAggObject() +: SvxUnoTextContent_Base(rContent) , mrParentText(rContent.mrParentText) , maDisposeListeners(maDisposeContainerMutex) , mbDisposing( false ) @@ -158,89 +150,6 @@ SvxUnoTextContent::~SvxUnoTextContent() throw() { } -// uno::XInterface -uno::Any SAL_CALL SvxUnoTextContent::queryAggregation( const uno::Type & rType ) throw( uno::RuntimeException ) -{ - QUERYINT( text::XTextRange ); - else QUERYINT( beans::XMultiPropertyStates ); - else QUERYINT( beans::XPropertySet ); - else QUERYINT( beans::XMultiPropertySet ); - else QUERYINT( beans::XPropertyState ); - else QUERYINT( text::XTextContent ); - else QUERYINT( text::XTextRangeCompare ); - else QUERYINT( lang::XComponent ); - else QUERYINT( container::XEnumerationAccess ); - else QUERYINT( container::XElementAccess ); - else QUERYINT( lang::XServiceInfo ); - else QUERYINT( lang::XTypeProvider ); - else QUERYINT( lang::XUnoTunnel ); - else - return OWeakAggObject::queryAggregation( rType ); -} - -uno::Any SAL_CALL SvxUnoTextContent::queryInterface( const uno::Type & rType ) throw( uno::RuntimeException ) -{ - return OWeakAggObject::queryInterface(rType); -} - -void SAL_CALL SvxUnoTextContent::acquire() throw( ) -{ - OWeakAggObject::acquire(); -} - -void SAL_CALL SvxUnoTextContent::release() throw( ) -{ - OWeakAggObject::release(); -} - -// XTypeProvider - -namespace -{ - struct theSvxUnoTextContentTypes : - public rtl::StaticWithInit<uno::Sequence<uno::Type>, theSvxUnoTextContentTypes> - { - uno::Sequence<uno::Type> operator () () - { - uno::Sequence< uno::Type > aTypeSequence; - - aTypeSequence.realloc( 11 ); // !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< text::XTextRangeCompare >*)0); - *pTypes++ = ::getCppuType(( const uno::Reference< text::XTextContent >*)0); - *pTypes++ = ::getCppuType(( const uno::Reference< container::XEnumerationAccess >*)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); - - return aTypeSequence; - } - }; -} - -uno::Sequence< uno::Type > SAL_CALL SvxUnoTextContent::getTypes() - throw (uno::RuntimeException) -{ - return theSvxUnoTextContentTypes::get(); -} - -namespace -{ - class theSvxUnoTextContentImplementationId : public rtl::Static< UnoTunnelIdInit, theSvxUnoTextContentImplementationId > {}; -} - -uno::Sequence< sal_Int8 > SAL_CALL SvxUnoTextContent::getImplementationId() - throw (uno::RuntimeException) -{ - return theSvxUnoTextContentImplementationId::get().getSeq(); -} - // text::XTextRange uno::Reference< text::XText > SAL_CALL SvxUnoTextContent::getText() @@ -493,6 +402,18 @@ uno::Any SAL_CALL SvxUnoTextRangeEnumeration::nextElement() // class SvxUnoTextCursor // ==================================================================== +SvxUnoTextCursor_Base::SvxUnoTextCursor_Base(SvxUnoTextCursor_Base const & base) + throw (): + SvxUnoTextCursor_Base0(base) +{} + +SvxUnoTextCursor_Base::SvxUnoTextCursor_Base(SvxUnoTextRangeBase const & base) + throw (): + SvxUnoTextCursor_Base0(base) +{} + +SvxUnoTextCursor_Base::~SvxUnoTextCursor_Base() throw () {} + uno::Reference< uno::XInterface > SvxUnoTextCursor_NewInstance() { SvxUnoText aText; @@ -502,16 +423,13 @@ uno::Reference< uno::XInterface > SvxUnoTextCursor_NewInstance() } SvxUnoTextCursor::SvxUnoTextCursor( const SvxUnoTextBase& rText ) throw() -: SvxUnoTextRangeBase(rText), +: SvxUnoTextCursor_Base(rText), mxParentText( const_cast<SvxUnoTextBase*>(&rText) ) { } SvxUnoTextCursor::SvxUnoTextCursor( const SvxUnoTextCursor& rCursor ) throw() -: SvxUnoTextRangeBase(rCursor) -, text::XTextCursor() -, lang::XTypeProvider() -, cppu::OWeakAggObject() +: SvxUnoTextCursor_Base(rCursor) , mxParentText(rCursor.mxParentText) { } @@ -520,89 +438,6 @@ SvxUnoTextCursor::~SvxUnoTextCursor() throw() { } -// Comment out automatically - [getIdlClass(es) or queryInterface] -// Please use the XTypeProvider! -//sal_Bool SvxUnoTextCursor::queryInterface( uno::Uik aUIK, Reference< uno::XInterface > & xRef) -uno::Any SAL_CALL SvxUnoTextCursor::queryAggregation( const uno::Type & rType ) - throw(uno::RuntimeException) -{ - if( rType == ::getCppuType((const uno::Reference< text::XTextRange >*)0) ) - return uno::makeAny(uno::Reference< text::XTextRange >((text::XText*)(this))); - else QUERYINT( text::XTextCursor ); - else QUERYINT( beans::XMultiPropertyStates ); - else QUERYINT( beans::XPropertySet ); - else QUERYINT( beans::XMultiPropertySet ); - else QUERYINT( beans::XPropertyState ); - else QUERYINT( text::XTextRangeCompare ); - else QUERYINT( lang::XServiceInfo ); - else QUERYINT( lang::XTypeProvider ); - else QUERYINT( lang::XUnoTunnel ); - else - return OWeakAggObject::queryAggregation( rType ); -} - -uno::Any SAL_CALL SvxUnoTextCursor::queryInterface( const uno::Type & rType ) - throw(uno::RuntimeException) -{ - return OWeakAggObject::queryInterface(rType); -} - -void SAL_CALL SvxUnoTextCursor::acquire() throw ( ) -{ - OWeakAggObject::acquire(); -} - -void SAL_CALL SvxUnoTextCursor::release() throw ( ) -{ - OWeakAggObject::release(); -} - -namespace -{ - struct theSvxUnoTextCursorTypes : - public rtl::StaticWithInit<uno::Sequence<uno::Type>, theSvxUnoTextCursorTypes> - { - uno::Sequence<uno::Type> operator () () - { - uno::Sequence< uno::Type > aTypeSequence; - - aTypeSequence.realloc( 10 ); // !DANGER! keep this updated - uno::Type* pTypes = aTypeSequence.getArray(); - - *pTypes++ = ::getCppuType(( const uno::Reference< text::XTextRange >*)0); - *pTypes++ = ::getCppuType(( const uno::Reference< text::XTextCursor >*)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::XTextRangeCompare >*)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); - - return aTypeSequence; - } - }; -} - -// XTypeProvider -uno::Sequence< uno::Type > SAL_CALL SvxUnoTextCursor::getTypes() - throw(uno::RuntimeException) -{ - return theSvxUnoTextCursorTypes::get(); -} - -namespace -{ - class theSvxUnoTextCursorImplementationId : public rtl::Static< UnoTunnelIdInit, theSvxUnoTextCursorImplementationId > {}; -} - -uno::Sequence< sal_Int8 > SAL_CALL SvxUnoTextCursor::getImplementationId() - throw (uno::RuntimeException) -{ - return theSvxUnoTextCursorImplementationId::get().getSeq(); -} - // text::XTextCursor void SAL_CALL SvxUnoTextCursor::collapseToStart() throw(uno::RuntimeException) |