[Libreoffice-commits] core.git: 2 commits - cppuhelper/inc cppuhelper/ZipPackage_cppuhelper_odk_headers.mk sw/inc sw/source

Michael Meeks michael.meeks at suse.com
Fri Mar 22 09:40:49 PDT 2013


 cppuhelper/ZipPackage_cppuhelper_odk_headers.mk |    1 
 cppuhelper/inc/cppuhelper/implbase13.hxx        |  299 ++++++++++++++++++++++++
 sw/inc/unotextcursor.hxx                        |   21 +
 sw/source/core/unocore/unoobj.cxx               |   62 ++++
 sw/source/core/unocore/unoparagraph.cxx         |    3 
 5 files changed, 384 insertions(+), 2 deletions(-)

New commits:
commit 1d0c1d4b8298c52b226e5c39b4dd98f9ec38a222
Author: Michael Meeks <michael.meeks at suse.com>
Date:   Thu Mar 21 21:44:14 2013 +0000

    implement part of XMultiPropertySet on SwXTextCursor.
    
    Change-Id: I903f049a3bdba96a8e1ac613ca8b9443a062fe8f

diff --git a/sw/inc/unotextcursor.hxx b/sw/inc/unotextcursor.hxx
index 485a4df..d0b0dde 100644
--- a/sw/inc/unotextcursor.hxx
+++ b/sw/inc/unotextcursor.hxx
@@ -24,6 +24,7 @@
 #include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/beans/XPropertySet.hpp>
 #include <com/sun/star/beans/XPropertyState.hpp>
+#include <com/sun/star/beans/XMultiPropertySet.hpp>
 #include <com/sun/star/beans/XMultiPropertyStates.hpp>
 #include <com/sun/star/container/XEnumerationAccess.hpp>
 #include <com/sun/star/container/XContentEnumerationAccess.hpp>
@@ -34,7 +35,7 @@
 #include <com/sun/star/text/XParagraphCursor.hpp>
 #include <com/sun/star/text/XRedline.hpp>
 
-#include <cppuhelper/implbase12.hxx>
+#include <cppuhelper/implbase13.hxx>
 
 #include <comphelper/uno3.hxx>
 
@@ -47,10 +48,11 @@ struct SwPosition;
 class SwUnoCrsr;
 
 
-typedef ::cppu::WeakImplHelper12
+typedef ::cppu::WeakImplHelper13
 <   ::com::sun::star::lang::XServiceInfo
 ,   ::com::sun::star::beans::XPropertySet
 ,   ::com::sun::star::beans::XPropertyState
+,   ::com::sun::star::beans::XMultiPropertySet
 ,   ::com::sun::star::beans::XMultiPropertyStates
 ,   ::com::sun::star::container::XEnumerationAccess
 ,   ::com::sun::star::container::XContentEnumerationAccess
@@ -191,6 +193,21 @@ public:
                 ::com::sun::star::lang::WrappedTargetException,
                 ::com::sun::star::uno::RuntimeException);
 
+    // XMultiPropertySet
+    virtual void SAL_CALL setPropertyValues(
+            const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames,
+            const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aValues );
+    virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > SAL_CALL
+        getPropertyValues( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames );
+    virtual void SAL_CALL addPropertiesChangeListener(
+        const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames,
+        const ::com::sun::star::uno::Reference< css::beans::XPropertiesChangeListener >& xListener );
+    virtual void SAL_CALL removePropertiesChangeListener(
+        const ::com::sun::star::uno::Reference< css::beans::XPropertiesChangeListener >& xListener );
+    virtual void SAL_CALL firePropertiesChangeEvent(
+        const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aPropertyNames,
+        const ::com::sun::star::uno::Reference< css::beans::XPropertiesChangeListener >& xListener );
+
     // XMultiPropertyStates
     virtual void SAL_CALL setAllPropertiesToDefault()
         throw (::com::sun::star::uno::RuntimeException);
diff --git a/sw/source/core/unocore/unoobj.cxx b/sw/source/core/unocore/unoobj.cxx
index 75b7f0b..91b30f5 100644
--- a/sw/source/core/unocore/unoobj.cxx
+++ b/sw/source/core/unocore/unoobj.cxx
@@ -2332,6 +2332,68 @@ throw (beans::UnknownPropertyException, lang::WrappedTargetException,
     return getPropertyDefaults ( aSequence ).getConstArray()[0];
 }
 
+void SAL_CALL SwXTextCursor::setPropertyValues(
+    const uno::Sequence< ::rtl::OUString >& aPropertyNames,
+    const uno::Sequence< uno::Any >& aValues )
+{
+    if( aValues.getLength() != aPropertyNames.getLength() )
+    {
+        OSL_FAIL( "mis-matched property value sequences" );
+        throw lang::IllegalArgumentException();
+    }
+
+    SolarMutexGuard aGuard;
+
+    SwUnoCrsr & rUnoCursor( m_pImpl->GetCursorOrThrow() );
+
+    // a little lame to have to copy into this.
+    uno::Sequence< beans::PropertyValue > aPropertyValues( aValues.getLength() );
+    for ( sal_Int32 i = 0; i < aPropertyNames.getLength(); i++ )
+    {
+        if ( aPropertyNames[ i ].equalsAsciiL(
+                SW_PROP_NAME(UNO_NAME_IS_SKIP_HIDDEN_TEXT)) ||
+             aPropertyNames[ i ].equalsAsciiL(
+                SW_PROP_NAME(UNO_NAME_IS_SKIP_PROTECTED_TEXT)) )
+        {
+            // the behaviour of these is hard to model in a group
+            OSL_ASSERT("invalid property name for batch setting");
+            throw lang::IllegalArgumentException();
+        }
+        aPropertyValues[ i ].Name = aPropertyNames[ i ];
+        aPropertyValues[ i ].Value = aValues[ i ];
+    }
+    SwUnoCursorHelper::SetPropertyValues( rUnoCursor, m_pImpl->m_rPropSet, aPropertyValues );
+}
+
+uno::Sequence< uno::Any > SAL_CALL
+SwXTextCursor::getPropertyValues( const uno::Sequence< ::rtl::OUString >& aPropertyNames )
+{
+    // a banal implementation for now
+    uno::Sequence< uno::Any > aValues( aPropertyNames.getLength() );
+    for (sal_Int32 i = 0; i < aPropertyNames.getLength(); i++)
+        aValues[i] = getPropertyValue( aPropertyNames[ i ] );
+    return aValues;
+}
+
+void SAL_CALL SwXTextCursor::addPropertiesChangeListener(
+        const uno::Sequence< ::rtl::OUString >& /* aPropertyNames */,
+        const uno::Reference< css::beans::XPropertiesChangeListener >& /* xListener */ )
+{
+    OSL_FAIL("SwXTextCursor::addPropertiesChangeListener(): not implemented");
+}
+void SAL_CALL SwXTextCursor::removePropertiesChangeListener(
+        const uno::Reference< css::beans::XPropertiesChangeListener >& /* xListener */ )
+{
+    OSL_FAIL("SwXTextCursor::removePropertiesChangeListener(): not implemented");
+}
+
+void SAL_CALL SwXTextCursor::firePropertiesChangeEvent(
+        const uno::Sequence< ::rtl::OUString >& /* aPropertyNames */,
+        const uno::Reference< css::beans::XPropertiesChangeListener >& /* xListener */ )
+{
+    OSL_FAIL("SwXTextCursor::firePropertiesChangeEvent(): not implemented");
+}
+
 // para specific attribut ranges
 static sal_uInt16 g_ParaResetableSetRange[] = {
     RES_FRMATR_BEGIN, RES_FRMATR_END-1,
diff --git a/sw/source/core/unocore/unoparagraph.cxx b/sw/source/core/unocore/unoparagraph.cxx
index 550b7b7..5382e1b 100644
--- a/sw/source/core/unocore/unoparagraph.cxx
+++ b/sw/source/core/unocore/unoparagraph.cxx
@@ -390,6 +390,9 @@ throw (beans::UnknownPropertyException, beans::PropertyVetoException,
     const uno::Any* pValues = rValues.getConstArray();
     const SfxItemPropertyMap &rMap = m_rPropSet.getPropertyMap();
     SwParaSelection aParaSel( aCursor );
+
+    // FIXME: this should be replaced with the significantly faster
+    // SwUnoCursorHelper::SetPropertyValues...
     for (sal_Int32 nProp = 0; nProp < rPropertyNames.getLength(); nProp++)
     {
         SfxItemPropertySimpleEntry const*const pEntry =
commit 7e9010735b62397c7eae87444aca3677a79f1223
Author: Michael Meeks <michael.meeks at suse.com>
Date:   Thu Mar 21 21:56:21 2013 +0000

    add implbase13 - another interface is needed.
    
    Change-Id: I98ee35ad6f3b86f94fe503debd2b1cf854101441

diff --git a/cppuhelper/ZipPackage_cppuhelper_odk_headers.mk b/cppuhelper/ZipPackage_cppuhelper_odk_headers.mk
index d696507..2a95b6b 100644
--- a/cppuhelper/ZipPackage_cppuhelper_odk_headers.mk
+++ b/cppuhelper/ZipPackage_cppuhelper_odk_headers.mk
@@ -54,6 +54,7 @@ $(eval $(call gb_ZipPackage_add_files,cppuhelper_odk_headers,inc/cppuhelper,incl
 	cppuhelper/implbase10.hxx \
 	cppuhelper/implbase11.hxx \
 	cppuhelper/implbase12.hxx \
+	cppuhelper/implbase13.hxx \
 	cppuhelper/implbase1.hxx \
 	cppuhelper/implbase2.hxx \
 	cppuhelper/implbase3.hxx \
diff --git a/cppuhelper/inc/cppuhelper/implbase13.hxx b/cppuhelper/inc/cppuhelper/implbase13.hxx
new file mode 100644
index 0000000..b50fb03
--- /dev/null
+++ b/cppuhelper/inc/cppuhelper/implbase13.hxx
@@ -0,0 +1,299 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#ifndef _CPPUHELPER_IMPLBASE13_HXX_
+#define _CPPUHELPER_IMPLBASE13_HXX_
+
+#include <cppuhelper/implbase_ex.hxx>
+#include <rtl/instance.hxx>
+
+namespace cppu
+{
+    /// @cond INTERNAL
+
+    struct class_data13
+    {
+        sal_Int16 m_nTypes;
+        sal_Bool m_storedTypeRefs;
+        sal_Bool m_storedId;
+        sal_Int8 m_id[ 16 ];
+        type_entry m_typeEntries[ 13 + 1 ];
+    };
+
+    template< typename Ifc1, typename Ifc2, typename Ifc3, typename Ifc4, typename Ifc5, typename Ifc6, typename Ifc7, typename Ifc8, typename Ifc9, typename Ifc10, typename Ifc11, typename Ifc12, typename Ifc13, typename Impl >
+    struct ImplClassData13
+    {
+        class_data* operator ()()
+        {
+            static class_data13 s_cd =
+            {
+                13 +1, sal_False, sal_False,
+                { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+                {
+                    { { Ifc1::static_type }, ((sal_IntPtr)(Ifc1 *) (Impl *) 16) - 16 },
+                    { { Ifc2::static_type }, ((sal_IntPtr)(Ifc2 *) (Impl *) 16) - 16 },
+                    { { Ifc3::static_type }, ((sal_IntPtr)(Ifc3 *) (Impl *) 16) - 16 },
+                    { { Ifc4::static_type }, ((sal_IntPtr)(Ifc4 *) (Impl *) 16) - 16 },
+                    { { Ifc5::static_type }, ((sal_IntPtr)(Ifc5 *) (Impl *) 16) - 16 },
+                    { { Ifc6::static_type }, ((sal_IntPtr)(Ifc6 *) (Impl *) 16) - 16 },
+                    { { Ifc7::static_type }, ((sal_IntPtr)(Ifc7 *) (Impl *) 16) - 16 },
+                    { { Ifc8::static_type }, ((sal_IntPtr)(Ifc8 *) (Impl *) 16) - 16 },
+                    { { Ifc9::static_type }, ((sal_IntPtr)(Ifc9 *) (Impl *) 16) - 16 },
+                    { { Ifc10::static_type }, ((sal_IntPtr)(Ifc10 *) (Impl *) 16) - 16 },
+                    { { Ifc11::static_type }, ((sal_IntPtr)(Ifc11 *) (Impl *) 16) - 16 },
+                    { { Ifc12::static_type }, ((sal_IntPtr)(Ifc12 *) (Impl *) 16) - 16 },
+                    { { Ifc13::static_type }, ((sal_IntPtr)(Ifc13 *) (Impl *) 16) - 16 },
+                    { { com::sun::star::lang::XTypeProvider::static_type }, ((sal_IntPtr)(com::sun::star::lang::XTypeProvider *) (Impl *) 16) - 16 }
+                }
+            };
+            return reinterpret_cast< class_data * >(&s_cd);
+        }
+    };
+
+    /// @endcond
+
+    /** Implementation helper implementing interface com::sun::star::lang::XTypeProvider
+        and method XInterface::queryInterface(), but no reference counting.
+
+        @derive
+        Inherit from this class giving your interface(s) to be implemented as template argument(s).
+        Your sub class defines method implementations for these interface(s) including acquire()/
+        release() and delegates incoming queryInterface() calls to this base class.
+    */
+    template< class Ifc1, class Ifc2, class Ifc3, class Ifc4, class Ifc5, class Ifc6, class Ifc7, class Ifc8, class Ifc9, class Ifc10, class Ifc11, class Ifc12, class Ifc13 >
+    class SAL_NO_VTABLE SAL_DLLPUBLIC_TEMPLATE ImplHelper13
+        : public com::sun::star::lang::XTypeProvider
+        , public Ifc1, public Ifc2, public Ifc3, public Ifc4, public Ifc5, public Ifc6, public Ifc7, public Ifc8, public Ifc9, public Ifc10, public Ifc11, public Ifc12, public Ifc13
+    {
+        struct cd : public rtl::StaticAggregate< class_data, ImplClassData13< Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6, Ifc7, Ifc8, Ifc9, Ifc10, Ifc11, Ifc12, Ifc13, ImplHelper13<Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6, Ifc7, Ifc8, Ifc9, Ifc10, Ifc11, Ifc12, Ifc13> > > {};
+    public:
+        virtual com::sun::star::uno::Any SAL_CALL queryInterface( com::sun::star::uno::Type const & rType ) throw (com::sun::star::uno::RuntimeException)
+            { return ImplHelper_query( rType, cd::get(), this ); }
+        virtual com::sun::star::uno::Sequence< com::sun::star::uno::Type > SAL_CALL getTypes() throw (com::sun::star::uno::RuntimeException)
+            { return ImplHelper_getTypes( cd::get() ); }
+        virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
+            { return ImplHelper_getImplementationId( cd::get() ); }
+
+#if !defined _MSC_VER // public -> protected changes mangled names there
+    protected:
+#endif
+        ~ImplHelper13() throw () {}
+    };
+    /** Implementation helper implementing interfaces com::sun::star::lang::XTypeProvider and
+        com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
+        (supporting com::sun::star::uno::XWeak thru ::cppu::OWeakObject).
+
+        @derive
+        Inherit from this class giving your interface(s) to be implemented as template argument(s).
+        Your sub class defines method implementations for these interface(s).
+    */
+    template< class Ifc1, class Ifc2, class Ifc3, class Ifc4, class Ifc5, class Ifc6, class Ifc7, class Ifc8, class Ifc9, class Ifc10, class Ifc11, class Ifc12, class Ifc13 >
+    class SAL_NO_VTABLE SAL_DLLPUBLIC_TEMPLATE WeakImplHelper13
+        : public OWeakObject
+        , public com::sun::star::lang::XTypeProvider
+        , public Ifc1, public Ifc2, public Ifc3, public Ifc4, public Ifc5, public Ifc6, public Ifc7, public Ifc8, public Ifc9, public Ifc10, public Ifc11, public Ifc12, public Ifc13
+    {
+        struct cd : public rtl::StaticAggregate< class_data, ImplClassData13< Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6, Ifc7, Ifc8, Ifc9, Ifc10, Ifc11, Ifc12, Ifc13, WeakImplHelper13<Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6, Ifc7, Ifc8, Ifc9, Ifc10, Ifc11, Ifc12, Ifc13> > > {};
+    public:
+        virtual com::sun::star::uno::Any SAL_CALL queryInterface( com::sun::star::uno::Type const & rType ) throw (com::sun::star::uno::RuntimeException)
+            { return WeakImplHelper_query( rType, cd::get(), this, (OWeakObject *)this ); }
+        virtual void SAL_CALL acquire() throw ()
+            { OWeakObject::acquire(); }
+        virtual void SAL_CALL release() throw ()
+            { OWeakObject::release(); }
+        virtual com::sun::star::uno::Sequence< com::sun::star::uno::Type > SAL_CALL getTypes() throw (com::sun::star::uno::RuntimeException)
+            { return WeakImplHelper_getTypes( cd::get() ); }
+        virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
+            { return ImplHelper_getImplementationId( cd::get() ); }
+    };
+    /** Implementation helper implementing interfaces com::sun::star::lang::XTypeProvider and
+        com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
+        (supporting com::sun::star::uno::XWeak thru ::cppu::OWeakAggObject).
+        In addition, it supports also aggregation meaning object of this class can be aggregated
+        (com::sun::star::uno::XAggregation thru ::cppu::OWeakAggObject).
+        If a delegator is set (this object is aggregated), then incoming queryInterface()
+        calls are delegated to the delegator object. If the delegator does not support the
+        demanded interface, it calls queryAggregation() on its aggregated objects.
+
+        @derive
+        Inherit from this class giving your interface(s) to be implemented as template argument(s).
+        Your sub class defines method implementations for these interface(s).
+    */
+    template< class Ifc1, class Ifc2, class Ifc3, class Ifc4, class Ifc5, class Ifc6, class Ifc7, class Ifc8, class Ifc9, class Ifc10, class Ifc11, class Ifc12, class Ifc13 >
+    class SAL_NO_VTABLE SAL_DLLPUBLIC_TEMPLATE WeakAggImplHelper13
+        : public OWeakAggObject
+        , public com::sun::star::lang::XTypeProvider
+        , public Ifc1, public Ifc2, public Ifc3, public Ifc4, public Ifc5, public Ifc6, public Ifc7, public Ifc8, public Ifc9, public Ifc10, public Ifc11, public Ifc12, public Ifc13
+    {
+        struct cd : public rtl::StaticAggregate< class_data, ImplClassData13< Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6, Ifc7, Ifc8, Ifc9, Ifc10, Ifc11, Ifc12, Ifc13, WeakAggImplHelper13<Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6, Ifc7, Ifc8, Ifc9, Ifc10, Ifc11, Ifc12, Ifc13> > > {};
+    public:
+        virtual com::sun::star::uno::Any SAL_CALL queryInterface( com::sun::star::uno::Type const & rType ) throw (com::sun::star::uno::RuntimeException)
+            { return OWeakAggObject::queryInterface( rType ); }
+        virtual com::sun::star::uno::Any SAL_CALL queryAggregation( com::sun::star::uno::Type const & rType ) throw (com::sun::star::uno::RuntimeException)
+            { return WeakAggImplHelper_queryAgg( rType, cd::get(), this, (OWeakAggObject *)this ); }
+        virtual void SAL_CALL acquire() throw ()
+            { OWeakAggObject::acquire(); }
+        virtual void SAL_CALL release() throw ()
+            { OWeakAggObject::release(); }
+        virtual com::sun::star::uno::Sequence< com::sun::star::uno::Type > SAL_CALL getTypes() throw (com::sun::star::uno::RuntimeException)
+            { return WeakAggImplHelper_getTypes( cd::get() ); }
+        virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
+            { return ImplHelper_getImplementationId( cd::get() ); }
+    };
+    /** Implementation helper implementing interfaces com::sun::star::lang::XTypeProvider and
+        com::sun::star::uno::XInterface inherting from a BaseClass.
+        All acquire() and release() calls are delegated to the BaseClass. Upon queryInterface(),
+        if a demanded interface is not supported by this class directly, the request is
+        delegated to the BaseClass.
+
+        @attention
+        The BaseClass has to be complete in a sense, that com::sun::star::uno::XInterface
+        and com::sun::star::lang::XTypeProvider are implemented properly.  The
+        BaseClass must have at least one ctor that can be called with six or
+        fewer arguments, of which none is of non-const reference type.
+
+        @derive
+        Inherit from this class giving your additional interface(s) to be implemented as
+        template argument(s). Your sub class defines method implementations for these interface(s).
+    */
+    template< class BaseClass, class Ifc1, class Ifc2, class Ifc3, class Ifc4, class Ifc5, class Ifc6, class Ifc7, class Ifc8, class Ifc9, class Ifc10, class Ifc11, class Ifc12, class Ifc13 >
+    class SAL_NO_VTABLE SAL_DLLPUBLIC_TEMPLATE ImplInheritanceHelper13
+        : public BaseClass
+        , public Ifc1, public Ifc2, public Ifc3, public Ifc4, public Ifc5, public Ifc6, public Ifc7, public Ifc8, public Ifc9, public Ifc10, public Ifc11, public Ifc12, public Ifc13
+    {
+        struct cd : public rtl::StaticAggregate< class_data, ImplClassData13< Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6, Ifc7, Ifc8, Ifc9, Ifc10, Ifc11, Ifc12, Ifc13, ImplInheritanceHelper13<BaseClass, Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6, Ifc7, Ifc8, Ifc9, Ifc10, Ifc11, Ifc12, Ifc13> > > {};
+    protected:
+        template< typename T1 >
+        explicit ImplInheritanceHelper13(T1 const & arg1): BaseClass(arg1) {}
+        template< typename T1, typename T2 >
+        ImplInheritanceHelper13(T1 const & arg1, T2 const & arg2):
+            BaseClass(arg1, arg2) {}
+        template< typename T1, typename T2, typename T3 >
+        ImplInheritanceHelper13(
+            T1 const & arg1, T2 const & arg2, T3 const & arg3):
+            BaseClass(arg1, arg2, arg3) {}
+        template< typename T1, typename T2, typename T3, typename T4 >
+        ImplInheritanceHelper13(
+            T1 const & arg1, T2 const & arg2, T3 const & arg3, T4 const & arg4):
+            BaseClass(arg1, arg2, arg3, arg4) {}
+        template<
+            typename T1, typename T2, typename T3, typename T4, typename T5 >
+        ImplInheritanceHelper13(
+            T1 const & arg1, T2 const & arg2, T3 const & arg3, T4 const & arg4,
+            T5 const & arg5):
+            BaseClass(arg1, arg2, arg3, arg4, arg5) {}
+        template<
+            typename T1, typename T2, typename T3, typename T4, typename T5,
+            typename T6 >
+        ImplInheritanceHelper13(
+            T1 const & arg1, T2 const & arg2, T3 const & arg3, T4 const & arg4,
+            T5 const & arg5, T6 const & arg6):
+            BaseClass(arg1, arg2, arg3, arg4, arg5, arg6) {}
+    public:
+        ImplInheritanceHelper13() {}
+        virtual com::sun::star::uno::Any SAL_CALL queryInterface( com::sun::star::uno::Type const & rType ) throw (com::sun::star::uno::RuntimeException)
+            {
+                com::sun::star::uno::Any aRet( ImplHelper_queryNoXInterface( rType, cd::get(), this ) );
+                if (aRet.hasValue())
+                    return aRet;
+                return BaseClass::queryInterface( rType );
+            }
+        virtual void SAL_CALL acquire() throw ()
+            { BaseClass::acquire(); }
+        virtual void SAL_CALL release() throw ()
+            { BaseClass::release(); }
+        virtual com::sun::star::uno::Sequence< com::sun::star::uno::Type > SAL_CALL getTypes() throw (com::sun::star::uno::RuntimeException)
+            { return ImplInhHelper_getTypes( cd::get(), BaseClass::getTypes() ); }
+        virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
+            { return ImplHelper_getImplementationId( cd::get() ); }
+    };
+    /** Implementation helper implementing interfaces com::sun::star::lang::XTypeProvider and
+        com::sun::star::uno::XInterface inherting from a BaseClass.
+        All acquire(),  release() and queryInterface() calls are delegated to the BaseClass.
+        Upon queryAggregation(), if a demanded interface is not supported by this class directly,
+        the request is delegated to the BaseClass.
+
+        @attention
+        The BaseClass has to be complete in a sense, that com::sun::star::uno::XInterface,
+        com::sun::star::uno::XAggregation and com::sun::star::lang::XTypeProvider
+        are implemented properly.  The BaseClass must have at least one ctor
+        that can be called with six or fewer arguments, of which none is of
+        non-const reference type.
+
+        @derive
+        Inherit from this class giving your additional interface(s) to be implemented as
+        template argument(s). Your sub class defines method implementations for these interface(s).
+    */
+    template< class BaseClass, class Ifc1, class Ifc2, class Ifc3, class Ifc4, class Ifc5, class Ifc6, class Ifc7, class Ifc8, class Ifc9, class Ifc10, class Ifc11, class Ifc12, class Ifc13 >
+    class SAL_NO_VTABLE SAL_DLLPUBLIC_TEMPLATE AggImplInheritanceHelper13
+        : public BaseClass
+        , public Ifc1, public Ifc2, public Ifc3, public Ifc4, public Ifc5, public Ifc6, public Ifc7, public Ifc8, public Ifc9, public Ifc10, public Ifc11, public Ifc12, public Ifc13
+    {
+        struct cd : public rtl::StaticAggregate< class_data, ImplClassData13< Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6, Ifc7, Ifc8, Ifc9, Ifc10, Ifc11, Ifc12, Ifc13, AggImplInheritanceHelper13<BaseClass, Ifc1, Ifc2, Ifc3, Ifc4, Ifc5, Ifc6, Ifc7, Ifc8, Ifc9, Ifc10, Ifc11, Ifc12, Ifc13> > > {};
+    protected:
+        template< typename T1 >
+        explicit AggImplInheritanceHelper13(T1 const & arg1): BaseClass(arg1) {}
+        template< typename T1, typename T2 >
+        AggImplInheritanceHelper13(T1 const & arg1, T2 const & arg2):
+            BaseClass(arg1, arg2) {}
+        template< typename T1, typename T2, typename T3 >
+        AggImplInheritanceHelper13(
+            T1 const & arg1, T2 const & arg2, T3 const & arg3):
+            BaseClass(arg1, arg2, arg3) {}
+        template< typename T1, typename T2, typename T3, typename T4 >
+        AggImplInheritanceHelper13(
+            T1 const & arg1, T2 const & arg2, T3 const & arg3, T4 const & arg4):
+            BaseClass(arg1, arg2, arg3, arg4) {}
+        template<
+            typename T1, typename T2, typename T3, typename T4, typename T5 >
+        AggImplInheritanceHelper13(
+            T1 const & arg1, T2 const & arg2, T3 const & arg3, T4 const & arg4,
+            T5 const & arg5):
+            BaseClass(arg1, arg2, arg3, arg4, arg5) {}
+        template<
+            typename T1, typename T2, typename T3, typename T4, typename T5,
+            typename T6 >
+        AggImplInheritanceHelper13(
+            T1 const & arg1, T2 const & arg2, T3 const & arg3, T4 const & arg4,
+            T5 const & arg5, T6 const & arg6):
+            BaseClass(arg1, arg2, arg3, arg4, arg5, arg6) {}
+    public:
+        AggImplInheritanceHelper13() {}
+        virtual com::sun::star::uno::Any SAL_CALL queryInterface( com::sun::star::uno::Type const & rType ) throw (com::sun::star::uno::RuntimeException)
+            { return BaseClass::queryInterface( rType ); }
+        virtual com::sun::star::uno::Any SAL_CALL queryAggregation( com::sun::star::uno::Type const & rType ) throw (com::sun::star::uno::RuntimeException)
+            {
+                com::sun::star::uno::Any aRet( ImplHelper_queryNoXInterface( rType, cd::get(), this ) );
+                if (aRet.hasValue())
+                    return aRet;
+                return BaseClass::queryAggregation( rType );
+            }
+        virtual void SAL_CALL acquire() throw ()
+            { BaseClass::acquire(); }
+        virtual void SAL_CALL release() throw ()
+            { BaseClass::release(); }
+        virtual com::sun::star::uno::Sequence< com::sun::star::uno::Type > SAL_CALL getTypes() throw (com::sun::star::uno::RuntimeException)
+            { return ImplInhHelper_getTypes( cd::get(), BaseClass::getTypes() ); }
+        virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
+            { return ImplHelper_getImplementationId( cd::get() ); }
+    };
+}
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list