summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatúš Kukan <matus.kukan@collabora.com>2014-01-09 17:32:35 +0100
committerMatúš Kukan <matus.kukan@collabora.com>2014-01-30 10:48:25 +0100
commita8f9feb9c13722509d052583e252e875638aaf1b (patch)
tree55227238635cc6fbd6f8868901e18dedc82e7d2c
parent6c15ca4d9d4a7b3116330dd0a17f7fadaed2eff4 (diff)
fwk: Constructor feature for single-instance TaskCreatorService.
Change-Id: I9e994ebb4822458039709690aa5dd0a7f75735ac
-rw-r--r--framework/inc/helper/persistentwindowstate.hxx1
-rw-r--r--framework/inc/services/taskcreatorsrv.hxx148
-rw-r--r--framework/inc/taskcreatordefs.hxx58
-rw-r--r--framework/source/classes/taskcreator.cxx2
-rw-r--r--framework/source/register/registerservices.cxx2
-rw-r--r--framework/source/services/taskcreatorsrv.cxx168
-rw-r--r--framework/util/fwk.component3
-rwxr-xr-xsolenv/bin/native-code.py1
8 files changed, 172 insertions, 211 deletions
diff --git a/framework/inc/helper/persistentwindowstate.hxx b/framework/inc/helper/persistentwindowstate.hxx
index bc042f7b7d25..09ede334a785 100644
--- a/framework/inc/helper/persistentwindowstate.hxx
+++ b/framework/inc/helper/persistentwindowstate.hxx
@@ -30,6 +30,7 @@
#include <com/sun/star/frame/XFrame.hpp>
#include <com/sun/star/frame/XFrameActionListener.hpp>
#include <com/sun/star/lang/XEventListener.hpp>
+#include <com/sun/star/uno/XComponentContext.hpp>
#include <unotools/moduleoptions.hxx>
#include <cppuhelper/implbase2.hxx>
diff --git a/framework/inc/services/taskcreatorsrv.hxx b/framework/inc/services/taskcreatorsrv.hxx
deleted file mode 100644
index 4fc9642e59d2..000000000000
--- a/framework/inc/services/taskcreatorsrv.hxx
+++ /dev/null
@@ -1,148 +0,0 @@
-/* -*- 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 INCLUDED_FRAMEWORK_INC_SERVICES_TASKCREATORSRV_HXX
-#define INCLUDED_FRAMEWORK_INC_SERVICES_TASKCREATORSRV_HXX
-
-#include <threadhelp/threadhelpbase.hxx>
-#include <macros/xinterface.hxx>
-#include <macros/xtypeprovider.hxx>
-#include <macros/xserviceinfo.hxx>
-#include <general.h>
-#include <stdtypes.h>
-
-#include <com/sun/star/uno/XInterface.hpp>
-#include <com/sun/star/frame/XFrame2.hpp>
-#include <com/sun/star/lang/XTypeProvider.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/lang/XSingleServiceFactory.hpp>
-#include <com/sun/star/awt/Rectangle.hpp>
-
-#include <cppuhelper/implbase2.hxx>
-#include <comphelper/sequenceashashmap.hxx>
-
-//_______________________________________________
-// definition
-
-/// [XFrame] if it's set, it will be used as parent frame for the new created frame.
-const char ARGUMENT_PARENTFRAME[] = "ParentFrame"; // XFrame
-
-/** [OUString] if it's not a special name (beginning with "_" ... which are not allowed here!)
- it will be set as the API name of the new created frame.
- */
-const char ARGUMENT_FRAMENAME[] = "FrameName"; // OUString
-
-/// [sal_Bool] If its set to sal_True we will make the new created frame visible.
-const char ARGUMENT_MAKEVISIBLE[] = "MakeVisible"; // sal_Bool
-
-/** [sal_Bool] If not "ContainerWindow" property is set it force creation of a
- top level window as new container window.
- */
-const char ARGUMENT_CREATETOPWINDOW[] = "CreateTopWindow"; // sal_Bool
-
-/// [Rectangle] Place the new created frame on this place and resize the container window.
-const char ARGUMENT_POSSIZE[] = "PosSize"; // Rectangle
-
-/// [XWindow] an outside created window, used as container window of the new created frame.
-const char ARGUMENT_CONTAINERWINDOW[] = "ContainerWindow"; // XWindow
-
-/** [sal_Bool] enable/disable special mode, where this frame will be part of
- the persistent window state feature suitable for any office module window
- */
-const char ARGUMENT_SUPPORTPERSISTENTWINDOWSTATE[] = "SupportPersistentWindowState"; // sal_Bool
-
-/** [sal_Bool] enable/disable special mode, where the title bar of our
- the new created frame will be updated automaticly.
- Default = ON !
- */
-const char ARGUMENT_ENABLE_TITLEBARUPDATE[] = "EnableTitleBarUpdate"; // sal_Bool
-
-
-namespace framework
-{
-
-//_______________________________________________
-/**
- * TODO document me
- */
-class TaskCreatorService : // attention! Must be the first base class to guarentee right initialize lock ...
- private ThreadHelpBase,
- public ::cppu::WeakImplHelper2<
- css::lang::XServiceInfo,
- css::lang::XSingleServiceFactory>
-{
- //___________________________________________
- // member
-
- private:
-
- //---------------------------------------
- /** @short the global uno service manager.
- @descr Must be used to create own needed services.
- */
- css::uno::Reference< css::uno::XComponentContext > m_xContext;
-
- //___________________________________________
- // interface
-
- public:
-
- TaskCreatorService(const css::uno::Reference< css::uno::XComponentContext >& xContext);
- virtual ~TaskCreatorService( );
-
- // XInterface, XTypeProvider, XServiceInfo
- DECLARE_XSERVICEINFO
-
- // XSingleServiceFactory
- virtual css::uno::Reference< css::uno::XInterface > SAL_CALL createInstance()
- throw(css::uno::Exception ,
- css::uno::RuntimeException);
-
- virtual css::uno::Reference< css::uno::XInterface > SAL_CALL createInstanceWithArguments(const css::uno::Sequence< css::uno::Any >& lArguments)
- throw(css::uno::Exception ,
- css::uno::RuntimeException);
- //___________________________________________
- // helper
-
- private:
-
- css::uno::Reference< css::awt::XWindow > implts_createContainerWindow( const css::uno::Reference< css::awt::XWindow >& xParentWindow ,
- const css::awt::Rectangle& aPosSize ,
- sal_Bool bTopWindow );
-
- void implts_applyDocStyleToWindow(const css::uno::Reference< css::awt::XWindow >& xWindow) const;
-
- css::uno::Reference< css::frame::XFrame2 > implts_createFrame( const css::uno::Reference< css::frame::XFrame >& xParentFrame ,
- const css::uno::Reference< css::awt::XWindow >& xContainerWindow ,
- const OUString& sName );
-
- void implts_establishWindowStateListener( const css::uno::Reference< css::frame::XFrame2 >& xFrame );
- void implts_establishTitleBarUpdate( const css::uno::Reference< css::frame::XFrame2 >& xFrame );
-
- void implts_establishDocModifyListener( const css::uno::Reference< css::frame::XFrame2 >& xFrame );
-
- OUString impl_filterNames( const OUString& sName );
-};
-
-} // namespace framework
-
-#endif // INCLUDED_FRAMEWORK_INC_SERVICES_TASKCREATORSRV_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/framework/inc/taskcreatordefs.hxx b/framework/inc/taskcreatordefs.hxx
new file mode 100644
index 000000000000..7da077237e25
--- /dev/null
+++ b/framework/inc/taskcreatordefs.hxx
@@ -0,0 +1,58 @@
+/* -*- 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 INCLUDED_FRAMEWORK_INC_TASKCREATORDEFS_HXX
+#define INCLUDED_FRAMEWORK_INC_TASKCREATORDEFS_HXX
+
+/// [XFrame] if it's set, it will be used as parent frame for the new created frame.
+const char ARGUMENT_PARENTFRAME[] = "ParentFrame"; // XFrame
+
+/** [OUString] if it's not a special name (beginning with "_" ... which are not allowed here!)
+ it will be set as the API name of the new created frame.
+ */
+const char ARGUMENT_FRAMENAME[] = "FrameName"; // OUString
+
+/// [sal_Bool] If its set to sal_True we will make the new created frame visible.
+const char ARGUMENT_MAKEVISIBLE[] = "MakeVisible"; // sal_Bool
+
+/** [sal_Bool] If not "ContainerWindow" property is set it force creation of a
+ top level window as new container window.
+ */
+const char ARGUMENT_CREATETOPWINDOW[] = "CreateTopWindow"; // sal_Bool
+
+/// [Rectangle] Place the new created frame on this place and resize the container window.
+const char ARGUMENT_POSSIZE[] = "PosSize"; // Rectangle
+
+/// [XWindow] an outside created window, used as container window of the new created frame.
+const char ARGUMENT_CONTAINERWINDOW[] = "ContainerWindow"; // XWindow
+
+/** [sal_Bool] enable/disable special mode, where this frame will be part of
+ the persistent window state feature suitable for any office module window
+ */
+const char ARGUMENT_SUPPORTPERSISTENTWINDOWSTATE[] = "SupportPersistentWindowState"; // sal_Bool
+
+/** [sal_Bool] enable/disable special mode, where the title bar of our
+ the new created frame will be updated automaticly.
+ Default = ON !
+ */
+const char ARGUMENT_ENABLE_TITLEBARUPDATE[] = "EnableTitleBarUpdate"; // sal_Bool
+
+#endif // INCLUDED_FRAMEWORK_INC_TASKCREATORDEFS_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/framework/source/classes/taskcreator.cxx b/framework/source/classes/taskcreator.cxx
index 410aa0ad06a8..b425aaa538bf 100644
--- a/framework/source/classes/taskcreator.cxx
+++ b/framework/source/classes/taskcreator.cxx
@@ -18,10 +18,10 @@
*/
#include <classes/taskcreator.hxx>
-#include "services/taskcreatorsrv.hxx"
#include <threadhelp/readguard.hxx>
#include <loadenv/targethelper.hxx>
#include <services.h>
+#include <taskcreatordefs.hxx>
#include <com/sun/star/frame/Desktop.hpp>
#include <com/sun/star/frame/TaskCreator.hpp>
diff --git a/framework/source/register/registerservices.cxx b/framework/source/register/registerservices.cxx
index c30226780ca6..5e5040d119e1 100644
--- a/framework/source/register/registerservices.cxx
+++ b/framework/source/register/registerservices.cxx
@@ -40,7 +40,6 @@
#include "uiconfiguration/windowstateconfiguration.hxx"
#include <uifactory/statusbarfactory.hxx>
#include <services/sessionlistener.hxx>
-#include <services/taskcreatorsrv.hxx>
#include <services/ContextChangeEventMultiplexer.hxx>
@@ -53,7 +52,6 @@ COMPONENTGETFACTORY ( fwk,
IFFACTORY( ::framework::StatusBarFactory ) else
IFFACTORY( ::framework::SessionListener ) else
IFFACTORY( ::framework::SessionListener ) else
- IFFACTORY( ::framework::TaskCreatorService ) else
IFFACTORY( ::framework::ContextChangeEventMultiplexer )
)
diff --git a/framework/source/services/taskcreatorsrv.cxx b/framework/source/services/taskcreatorsrv.cxx
index 6ce88a996e63..a45a72afd362 100644
--- a/framework/source/services/taskcreatorsrv.cxx
+++ b/framework/source/services/taskcreatorsrv.cxx
@@ -17,58 +17,107 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-#include "services/taskcreatorsrv.hxx"
-
#include <helper/persistentwindowstate.hxx>
#include <helper/tagwindowasmodified.hxx>
#include <helper/titlebarupdate.hxx>
-#include <threadhelp/readguard.hxx>
-#include <threadhelp/writeguard.hxx>
#include <loadenv/targethelper.hxx>
-#include <services.h>
+#include <taskcreatordefs.hxx>
#include <com/sun/star/frame/Frame.hpp>
-#include <com/sun/star/frame/XController.hpp>
-#include <com/sun/star/frame/XModel.hpp>
+#include <com/sun/star/frame/XFrame2.hpp>
#include <com/sun/star/frame/XDesktop.hpp>
+#include <com/sun/star/awt/Rectangle.hpp>
#include <com/sun/star/awt/Toolkit.hpp>
-#include <com/sun/star/awt/XTopWindow.hpp>
#include <com/sun/star/awt/WindowDescriptor.hpp>
#include <com/sun/star/awt/WindowAttribute.hpp>
#include <com/sun/star/awt/VclWindowPeerAttribute.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/lang/XSingleServiceFactory.hpp>
+#include <comphelper/sequenceashashmap.hxx>
+#include <cppuhelper/compbase2.hxx>
+#include <cppuhelper/supportsservice.hxx>
#include <svtools/colorcfg.hxx>
-#include <vcl/svapp.hxx>
-
#include <toolkit/helper/vclunohelper.hxx>
+#include <vcl/svapp.hxx>
#include <vcl/window.hxx>
-//_______________________________________________
-// namespaces
+using namespace framework;
+
+namespace {
+
+typedef ::cppu::WeakComponentImplHelper2<
+ css::lang::XServiceInfo,
+ css::lang::XSingleServiceFactory> TaskCreatorService_BASE;
-namespace framework
+class TaskCreatorService : private osl::Mutex,
+ public TaskCreatorService_BASE
{
-//-----------------------------------------------
-DEFINE_XSERVICEINFO_ONEINSTANCESERVICE_2(TaskCreatorService ,
- ::cppu::OWeakObject ,
- "com.sun.star.frame.TaskCreator",
- IMPLEMENTATIONNAME_FWK_TASKCREATOR)
+private:
-//-----------------------------------------------
-DEFINE_INIT_SERVICE(
- TaskCreatorService,
- {
- /*Attention
- I think we don't need any mutex or lock here ... because we are called by our own static method impl_createInstance()
- to create a new instance of this class by our own supported service factory.
- see macro DEFINE_XSERVICEINFO_MULTISERVICE and "impl_initService()" for further information!
- */
- }
- )
+ //---------------------------------------
+ /** @short the global uno service manager.
+ @descr Must be used to create own needed services.
+ */
+ css::uno::Reference< css::uno::XComponentContext > m_xContext;
+
+public:
+
+ TaskCreatorService(const css::uno::Reference< css::uno::XComponentContext >& xContext);
+ virtual ~TaskCreatorService( );
+
+ virtual OUString SAL_CALL getImplementationName()
+ throw (css::uno::RuntimeException)
+ {
+ return OUString("com.sun.star.comp.framework.TaskCreator");
+ }
+
+ virtual sal_Bool SAL_CALL supportsService(OUString const & ServiceName)
+ throw (css::uno::RuntimeException)
+ {
+ return cppu::supportsService(this, ServiceName);
+ }
+
+ virtual css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames()
+ throw (css::uno::RuntimeException)
+ {
+ css::uno::Sequence< OUString > aSeq(1);
+ aSeq[0] = OUString("com.sun.star.frame.TaskCreator");
+ return aSeq;
+ }
+
+ // XSingleServiceFactory
+ virtual css::uno::Reference< css::uno::XInterface > SAL_CALL createInstance()
+ throw(css::uno::Exception ,
+ css::uno::RuntimeException);
+
+ virtual css::uno::Reference< css::uno::XInterface > SAL_CALL createInstanceWithArguments(const css::uno::Sequence< css::uno::Any >& lArguments)
+ throw(css::uno::Exception ,
+ css::uno::RuntimeException);
+
+private:
+
+ css::uno::Reference< css::awt::XWindow > implts_createContainerWindow( const css::uno::Reference< css::awt::XWindow >& xParentWindow ,
+ const css::awt::Rectangle& aPosSize ,
+ sal_Bool bTopWindow );
+
+ void implts_applyDocStyleToWindow(const css::uno::Reference< css::awt::XWindow >& xWindow) const;
+
+ css::uno::Reference< css::frame::XFrame2 > implts_createFrame( const css::uno::Reference< css::frame::XFrame >& xParentFrame ,
+ const css::uno::Reference< css::awt::XWindow >& xContainerWindow ,
+ const OUString& sName );
+
+ void implts_establishWindowStateListener( const css::uno::Reference< css::frame::XFrame2 >& xFrame );
+ void implts_establishTitleBarUpdate( const css::uno::Reference< css::frame::XFrame2 >& xFrame );
+
+ void implts_establishDocModifyListener( const css::uno::Reference< css::frame::XFrame2 >& xFrame );
+
+ OUString impl_filterNames( const OUString& sName );
+};
//-----------------------------------------------
TaskCreatorService::TaskCreatorService(const css::uno::Reference< css::uno::XComponentContext >& xContext)
- : ThreadHelpBase (&Application::GetSolarMutex())
+ : TaskCreatorService_BASE(*static_cast<osl::Mutex *>(this))
, m_xContext (xContext )
{
}
@@ -185,14 +234,8 @@ css::uno::Reference< css::awt::XWindow > TaskCreatorService::implts_createContai
const css::awt::Rectangle& aPosSize ,
sal_Bool bTopWindow )
{
- // SAFE ->
- ReadGuard aReadLock( m_aLock );
- css::uno::Reference< css::uno::XComponentContext > xContext = m_xContext;
- aReadLock.unlock();
- // <- SAFE
-
// get toolkit to create task container window
- css::uno::Reference< css::awt::XToolkit2 > xToolkit = css::awt::Toolkit::create( xContext );
+ css::uno::Reference< css::awt::XToolkit2 > xToolkit = css::awt::Toolkit::create( m_xContext );
// Check if child frames can be created really. We need at least a valid window at the parent frame ...
css::uno::Reference< css::awt::XWindowPeer > xParentWindowPeer;
@@ -248,14 +291,8 @@ css::uno::Reference< css::frame::XFrame2 > TaskCreatorService::implts_createFram
const css::uno::Reference< css::awt::XWindow >& xContainerWindow,
const OUString& sName )
{
- // SAFE ->
- ReadGuard aReadLock( m_aLock );
- css::uno::Reference< css::uno::XComponentContext > xContext = m_xContext;
- aReadLock.unlock();
- // <- SAFE
-
// create new frame.
- css::uno::Reference< css::frame::XFrame2 > xNewFrame = css::frame::Frame::create( xContext );
+ css::uno::Reference< css::frame::XFrame2 > xNewFrame = css::frame::Frame::create( m_xContext );
// Set window on frame.
// Do it before calling any other interface methods ...
@@ -281,17 +318,11 @@ css::uno::Reference< css::frame::XFrame2 > TaskCreatorService::implts_createFram
//-----------------------------------------------
void TaskCreatorService::implts_establishWindowStateListener( const css::uno::Reference< css::frame::XFrame2 >& xFrame )
{
- // SAFE ->
- ReadGuard aReadLock( m_aLock );
- css::uno::Reference< css::uno::XComponentContext > xContext = m_xContext;
- aReadLock.unlock();
- // <- SAFE
-
// Special feature: It's allowed for frames using a top level window only!
// We must create a special listener service and couple it with the new created task frame.
// He will restore or save the window state of it ...
// See used classes for further information too.
- PersistentWindowState* pPersistentStateHandler = new PersistentWindowState( xContext );
+ PersistentWindowState* pPersistentStateHandler = new PersistentWindowState( m_xContext );
css::uno::Reference< css::lang::XInitialization > xInit(static_cast< ::cppu::OWeakObject* >(pPersistentStateHandler), css::uno::UNO_QUERY_THROW);
css::uno::Sequence< css::uno::Any > lInitData(1);
@@ -316,13 +347,7 @@ void TaskCreatorService::implts_establishDocModifyListener( const css::uno::Refe
//-----------------------------------------------
void TaskCreatorService::implts_establishTitleBarUpdate( const css::uno::Reference< css::frame::XFrame2 >& xFrame )
{
- // SAFE ->
- ReadGuard aReadLock( m_aLock );
- css::uno::Reference< css::uno::XComponentContext > xContext = m_xContext;
- aReadLock.unlock();
- // <- SAFE
-
- TitleBarUpdate* pHelper = new TitleBarUpdate (xContext);
+ TitleBarUpdate* pHelper = new TitleBarUpdate (m_xContext);
css::uno::Reference< css::lang::XInitialization > xInit(static_cast< ::cppu::OWeakObject* >(pHelper), css::uno::UNO_QUERY_THROW);
css::uno::Sequence< css::uno::Any > lInitData(1);
@@ -338,6 +363,31 @@ OUString TaskCreatorService::impl_filterNames( const OUString& sName )
return sFiltered;
}
-} // namespace framework
+struct Instance {
+ explicit Instance(
+ css::uno::Reference<css::uno::XComponentContext> const & context):
+ instance(
+ static_cast<cppu::OWeakObject *>(new TaskCreatorService(context)))
+ {
+ }
+
+ css::uno::Reference<css::uno::XInterface> instance;
+};
+
+struct Singleton:
+ public rtl::StaticWithArg<
+ Instance, css::uno::Reference<css::uno::XComponentContext>, Singleton>
+{};
+
+}
+
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+com_sun_star_comp_framework_TaskCreator_get_implementation(
+ css::uno::XComponentContext *context,
+ css::uno::Sequence<css::uno::Any> const &)
+{
+ return cppu::acquire(static_cast<cppu::OWeakObject *>(
+ Singleton::get(context).instance.get()));
+}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/framework/util/fwk.component b/framework/util/fwk.component
index d53c75d03c35..5e9296cd1fef 100644
--- a/framework/util/fwk.component
+++ b/framework/util/fwk.component
@@ -121,7 +121,8 @@
constructor="com_sun_star_comp_framework_StatusIndicatorFactory_get_implementation">
<service name="com.sun.star.task.StatusIndicatorFactory"/>
</implementation>
- <implementation name="com.sun.star.comp.framework.TaskCreator">
+ <implementation name="com.sun.star.comp.framework.TaskCreator"
+ constructor="com_sun_star_comp_framework_TaskCreator_get_implementation">
<service name="com.sun.star.frame.TaskCreator"/>
</implementation>
<implementation name="com.sun.star.comp.framework.ToolBarControllerFactory"
diff --git a/solenv/bin/native-code.py b/solenv/bin/native-code.py
index 468e328667ce..8dd033b71399 100755
--- a/solenv/bin/native-code.py
+++ b/solenv/bin/native-code.py
@@ -59,6 +59,7 @@ core_constructor_list = [
"com_sun_star_comp_framework_PathSettings_get_implementation",
"com_sun_star_comp_framework_PathSubstitution_get_implementation",
"com_sun_star_comp_framework_StatusIndicatorFactory_get_implementation",
+ "com_sun_star_comp_framework_TaskCreator_get_implementation",
"com_sun_star_comp_framework_ToolBarControllerFactory_get_implementation",
"com_sun_star_comp_framework_UIConfigurationManager_get_implementation",
"com_sun_star_comp_framework_UIElementFactoryManager_get_implementation",