[Libreoffice-commits] core.git: 10 commits - include/toolkit solenv/bin toolkit/Library_tk.mk toolkit/source toolkit/util

Matúš Kukan matus.kukan at collabora.com
Fri Jan 24 03:22:18 PST 2014


 include/toolkit/awt/vclxtoolkit.hxx                  |  206 -------------------
 solenv/bin/native-code.py                            |    1 
 toolkit/Library_tk.mk                                |    1 
 toolkit/source/awt/vclxmenu.cxx                      |   15 +
 toolkit/source/awt/vclxpointer.cxx                   |    9 
 toolkit/source/awt/vclxprinter.cxx                   |    7 
 toolkit/source/awt/vclxtoolkit.cxx                   |  182 +++++++++++++++-
 toolkit/source/controls/dialogcontrol.cxx            |   56 +++++
 toolkit/source/controls/formattedcontrol.cxx         |   16 +
 toolkit/source/controls/roadmapcontrol.cxx           |   17 +
 toolkit/source/controls/stdtabcontroller.cxx         |    8 
 toolkit/source/controls/stdtabcontrollermodel.cxx    |   11 -
 toolkit/source/controls/tkscrollbar.cxx              |   16 +
 toolkit/source/controls/tree/treedatamodel.cxx       |   12 -
 toolkit/source/controls/unocontrolcontainer.cxx      |    8 
 toolkit/source/controls/unocontrolcontainermodel.cxx |    9 
 toolkit/source/helper/registerservices.cxx           |  170 ---------------
 toolkit/util/tk.component                            |   75 ++++--
 18 files changed, 388 insertions(+), 431 deletions(-)

New commits:
commit 2dd9ec8a3addd62e5a42560a6284ac23280a39f4
Author: Matúš Kukan <matus.kukan at collabora.com>
Date:   Fri Jan 24 12:18:28 2014 +0100

    tk: Implementation com.sun.star.comp.awt.Layout does not exist.
    
    Change-Id: Ifbeef19ae7e4986b8f530ce4987ebd27f87ed9bf

diff --git a/toolkit/util/tk.component b/toolkit/util/tk.component
index c7b1d4f..f4b425a 100644
--- a/toolkit/util/tk.component
+++ b/toolkit/util/tk.component
@@ -23,10 +23,6 @@
       constructor="com_sun_star_awt_comp_AsyncCallback_get_implementation">
     <service name="com.sun.star.awt.AsyncCallback"/>
   </implementation>
-  <implementation name="com.sun.star.comp.awt.Layout">
-    <service name="com.sun.star.awt.Layout"/>
-    <service name="com.sun.star.comp.awt.Layout"/>
-  </implementation>
   <implementation name="stardiv.Toolkit.UnoControlTabPage"
       constructor="stardiv_Toolkit_UnoControlTabPage_get_implementation">
     <service name="com.sun.star.awt.tab.UnoControlTabPage"/>
commit e515b8b1217cb60046738573742cd38aca4c8499
Author: Matúš Kukan <matus.kukan at collabora.com>
Date:   Fri Jan 24 11:29:54 2014 +0100

    tk: Constructor feature for last tk_ implementations.
    
    Change-Id: I55fee30e64cdb591d73cfcadfd7a9efb10485ba9

diff --git a/solenv/bin/native-code.py b/solenv/bin/native-code.py
index ee8f5d5..28162e2 100755
--- a/solenv/bin/native-code.py
+++ b/solenv/bin/native-code.py
@@ -36,7 +36,6 @@ core_factory_list = [
     ("libsotlo.a", "sot_component_getFactory"),
     ("libspelllo.a", "spell_component_getFactory"),
     ("libsrtrs1.a", "srtrs1_component_getFactory"),
-    ("libtklo.a", "tk_component_getFactory"),
     ("libucb1.a", "ucb_component_getFactory"),
     ("libucpfile1.a", "ucpfile_component_getFactory"),
     ("libucphier1.a", "ucphier1_component_getFactory"),
diff --git a/toolkit/Library_tk.mk b/toolkit/Library_tk.mk
index 14d84ee..0fca554 100644
--- a/toolkit/Library_tk.mk
+++ b/toolkit/Library_tk.mk
@@ -105,7 +105,6 @@ $(eval $(call gb_Library_add_exception_objects,tk,\
     toolkit/source/helper/imagealign \
     toolkit/source/helper/listenermultiplexer \
     toolkit/source/helper/property \
-    toolkit/source/helper/registerservices \
     toolkit/source/helper/servicenames \
     toolkit/source/helper/tkresmgr \
     toolkit/source/helper/unopropertyarrayhelper \
diff --git a/toolkit/source/controls/formattedcontrol.cxx b/toolkit/source/controls/formattedcontrol.cxx
index 9aa143b5..57d1d0e 100644
--- a/toolkit/source/controls/formattedcontrol.cxx
+++ b/toolkit/source/controls/formattedcontrol.cxx
@@ -456,4 +456,20 @@ namespace toolkit
 }   // namespace toolkit
 //........................................................................
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+stardiv_Toolkit_UnoControlFormattedFieldModel_get_implementation(
+    css::uno::XComponentContext *context,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new toolkit::UnoControlFormattedFieldModel(context));
+}
+
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+stardiv_Toolkit_UnoFormattedFieldControl_get_implementation(
+    css::uno::XComponentContext *,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new toolkit::UnoFormattedFieldControl());
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/helper/registerservices.cxx b/toolkit/source/helper/registerservices.cxx
deleted file mode 100644
index a3a805a..0000000
--- a/toolkit/source/helper/registerservices.cxx
+++ /dev/null
@@ -1,126 +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 .
- */
-
-#include <com/sun/star/lang/XSingleServiceFactory.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/registry/XRegistryKey.hpp>
-#include <toolkit/controls/geometrycontrolmodel.hxx>
-#include <comphelper/processfactory.hxx>
-#include <cppuhelper/factory.hxx>
-#include <cppuhelper/weak.hxx>
-#include <osl/mutex.hxx>
-#include <toolkit/helper/servicenames.hxx>
-#include <toolkit/helper/macros.hxx>
-#include <toolkit/awt/vclxmenu.hxx>
-#include <toolkit/awt/vclxpointer.hxx>
-#include <toolkit/awt/vclxprinter.hxx>
-#include <toolkit/controls/dialogcontrol.hxx>
-#include <toolkit/controls/unocontrolcontainer.hxx>
-#include <toolkit/controls/unocontrolcontainermodel.hxx>
-#include <toolkit/controls/stdtabcontroller.hxx>
-#include <toolkit/controls/stdtabcontrollermodel.hxx>
-#include <toolkit/controls/formattedcontrol.hxx>
-#include <toolkit/controls/roadmapcontrol.hxx>
-#include <toolkit/controls/tkscrollbar.hxx>
-#include "toolkit/dllapi.h"
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/uno/XComponentContext.hpp>
-
-namespace toolkit
-{
-    using namespace ::com::sun::star::uno;
-    using namespace ::com::sun::star::lang;
-    using namespace ::com::sun::star::registry;
-
-    //.........................................................................
-    void* tryCreateFactory( const sal_Char* _pRequiredImplName, const sal_Char* _pComponentImplName,
-        const sal_Char* _pAsciiServiceName1, const sal_Char* _pAsciiServiceName2,
-        ::cppu::ComponentInstantiation _pInstantiation, const Reference< XMultiServiceFactory >& _rxServiceFactory )
-    {
-        void* pReturn = NULL;
-
-        if ( rtl_str_compare( _pRequiredImplName, _pComponentImplName ) == 0 )
-        {
-            Sequence< OUString > aServiceNames( _pAsciiServiceName2 ? 2 : 1 );
-            aServiceNames.getArray()[ 0 ] = OUString::createFromAscii( _pAsciiServiceName1 );
-            if ( _pAsciiServiceName2 )
-                aServiceNames.getArray()[ 1 ] = OUString::createFromAscii( _pAsciiServiceName2 );
-            Reference< XSingleServiceFactory > xFactory( ::cppu::createSingleFactory(
-                _rxServiceFactory, OUString::createFromAscii( _pComponentImplName ),
-                _pInstantiation, aServiceNames
-            ) );
-            if ( xFactory.is() )
-            {
-                xFactory->acquire();
-                pReturn = xFactory.get();
-            }
-        }
-
-        return pReturn;
-    }
-
-
-}
-
-#define IMPL_CREATEINSTANCE( ImplName ) \
-    ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL ImplName##_CreateInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& ) \
-    { return ::com::sun::star::uno::Reference < ::com::sun::star::uno::XInterface >( ( ::cppu::OWeakObject* ) new ImplName ); }
-
-#define IMPL_CREATEINSTANCE_CTX( ImplName ) \
-    ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL ImplName##_CreateInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& i_factory ) \
-    { return ::com::sun::star::uno::Reference < ::com::sun::star::uno::XInterface >( ( ::cppu::OWeakObject* ) new ImplName( comphelper::getComponentContext(i_factory) ) ); }
-
-#define GET_FACTORY_WITH_IMPL_PREFIX( ClassName, ImplNamePrefix, ServiceName1, ServiceName2 ) \
-    pRet = tryCreateFactory( sImplementationName, ImplNamePrefix "." #ClassName, \
-                ServiceName1, ServiceName2, \
-                ClassName##_CreateInstance, xServiceFactory \
-            ); \
-    if ( pRet ) \
-        return pRet; \
-
-#define GET_FACTORY( ImplName, ServiceName1, ServiceName2 ) \
-    GET_FACTORY_WITH_IMPL_PREFIX( ImplName, "stardiv.Toolkit", ServiceName1, ServiceName2 )
-
-using namespace toolkit;
-
-IMPL_CREATEINSTANCE_CTX( UnoControlFormattedFieldModel )
-IMPL_CREATEINSTANCE( UnoFormattedFieldControl )
-
-extern "C"
-{
-
-TOOLKIT_DLLPUBLIC void* SAL_CALL tk_component_getFactory( const sal_Char* sImplementationName, void* _pServiceManager, void* )
-{
-
-    void* pRet = NULL;
-
-    if ( _pServiceManager )
-    {
-        ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xServiceFactory =
-            static_cast< ::com::sun::star::lang::XMultiServiceFactory* >( _pServiceManager );
-        GET_FACTORY( UnoFormattedFieldControl, szServiceName_UnoControlFormattedField, szServiceName2_UnoControlFormattedField )
-        GET_FACTORY( UnoControlFormattedFieldModel, szServiceName_UnoControlFormattedFieldModel, szServiceName2_UnoControlFormattedFieldModel )
-    }
-    return pRet;
-}
-}
-
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/util/tk.component b/toolkit/util/tk.component
index 1d34d5e..c7b1d4f 100644
--- a/toolkit/util/tk.component
+++ b/toolkit/util/tk.component
@@ -18,7 +18,7 @@
  -->
 
 <component loader="com.sun.star.loader.SharedLibrary" environment="@CPPU_ENV@"
-    prefix="tk" xmlns="http://openoffice.org/2010/uno-components">
+    xmlns="http://openoffice.org/2010/uno-components">
   <implementation name="com.sun.star.awt.comp.AsyncCallback"
       constructor="com_sun_star_awt_comp_AsyncCallback_get_implementation">
     <service name="com.sun.star.awt.AsyncCallback"/>
@@ -168,7 +168,8 @@
     <service name="com.sun.star.awt.UnoControlFixedTextModel"/>
     <service name="stardiv.vcl.controlmodel.FixedText"/>
   </implementation>
-  <implementation name="stardiv.Toolkit.UnoControlFormattedFieldModel">
+  <implementation name="stardiv.Toolkit.UnoControlFormattedFieldModel"
+      constructor="stardiv_Toolkit_UnoControlFormattedFieldModel_get_implementation">
     <service name="com.sun.star.awt.UnoControlFormattedFieldModel"/>
     <service name="stardiv.vcl.controlmodel.FormattedField"/>
   </implementation>
@@ -263,7 +264,8 @@
     <service name="com.sun.star.awt.UnoControlFixedText"/>
     <service name="stardiv.vcl.control.FixedText"/>
   </implementation>
-  <implementation name="stardiv.Toolkit.UnoFormattedFieldControl">
+  <implementation name="stardiv.Toolkit.UnoFormattedFieldControl"
+      constructor="stardiv_Toolkit_UnoFormattedFieldControl_get_implementation">
     <service name="com.sun.star.awt.UnoControlFormattedField"/>
     <service name="stardiv.vcl.control.FormattedField"/>
   </implementation>
commit b7e51c20770c99e43162c366ff665f8df1da732e
Author: Matúš Kukan <matus.kukan at collabora.com>
Date:   Fri Jan 24 11:21:06 2014 +0100

    tk: Ctor feature for the rest of dialogcontrol.cxx classes.
    
    Change-Id: Ic96abfe99112b78244e4318aed5b36b5af1dd679

diff --git a/toolkit/source/controls/dialogcontrol.cxx b/toolkit/source/controls/dialogcontrol.cxx
index 491ec62..d8c0af4 100644
--- a/toolkit/source/controls/dialogcontrol.cxx
+++ b/toolkit/source/controls/dialogcontrol.cxx
@@ -1237,4 +1237,60 @@ stardiv_Toolkit_UnoControlDialogModel_get_implementation(
     return cppu::acquire(new OGeometryControlModel<UnoControlDialogModel>(context));
 }
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+stardiv_Toolkit_UnoDialogControl_get_implementation(
+    css::uno::XComponentContext *context,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new UnoDialogControl(context));
+}
+
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+stardiv_Toolkit_UnoMultiPageControl_get_implementation(
+    css::uno::XComponentContext *context,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new UnoMultiPageControl(context));
+}
+
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+stardiv_Toolkit_UnoMultiPageModel_get_implementation(
+    css::uno::XComponentContext *context,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new UnoMultiPageModel(context));
+}
+
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+stardiv_Toolkit_UnoPageControl_get_implementation(
+    css::uno::XComponentContext *context,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new UnoPageControl(context));
+}
+
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+stardiv_Toolkit_UnoPageModel_get_implementation(
+    css::uno::XComponentContext *context,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new UnoPageModel(context));
+}
+
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+stardiv_Toolkit_UnoFrameControl_get_implementation(
+    css::uno::XComponentContext *context,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new UnoFrameControl(context));
+}
+
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+stardiv_Toolkit_UnoFrameModel_get_implementation(
+    css::uno::XComponentContext *context,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new UnoFrameModel(context));
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/helper/registerservices.cxx b/toolkit/source/helper/registerservices.cxx
index 2662ebd..a3a805a 100644
--- a/toolkit/source/helper/registerservices.cxx
+++ b/toolkit/source/helper/registerservices.cxx
@@ -100,14 +100,7 @@ namespace toolkit
 using namespace toolkit;
 
 IMPL_CREATEINSTANCE_CTX( UnoControlFormattedFieldModel )
-IMPL_CREATEINSTANCE_CTX( UnoMultiPageModel )
-IMPL_CREATEINSTANCE_CTX( UnoPageModel )
-IMPL_CREATEINSTANCE_CTX( UnoFrameModel )
-IMPL_CREATEINSTANCE_CTX( UnoDialogControl )
 IMPL_CREATEINSTANCE( UnoFormattedFieldControl )
-IMPL_CREATEINSTANCE_CTX( UnoMultiPageControl )
-IMPL_CREATEINSTANCE_CTX( UnoPageControl )
-IMPL_CREATEINSTANCE_CTX( UnoFrameControl )
 
 extern "C"
 {
@@ -121,15 +114,8 @@ TOOLKIT_DLLPUBLIC void* SAL_CALL tk_component_getFactory( const sal_Char* sImple
     {
         ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xServiceFactory =
             static_cast< ::com::sun::star::lang::XMultiServiceFactory* >( _pServiceManager );
-        GET_FACTORY( UnoDialogControl, szServiceName_UnoControlDialog, szServiceName2_UnoControlDialog )
         GET_FACTORY( UnoFormattedFieldControl, szServiceName_UnoControlFormattedField, szServiceName2_UnoControlFormattedField )
         GET_FACTORY( UnoControlFormattedFieldModel, szServiceName_UnoControlFormattedFieldModel, szServiceName2_UnoControlFormattedFieldModel )
-        GET_FACTORY( UnoMultiPageModel, szServiceName_UnoMultiPageModel, NULL )
-        GET_FACTORY( UnoMultiPageControl, szServiceName_UnoMultiPageControl, NULL )
-        GET_FACTORY( UnoPageModel, szServiceName_UnoPageModel, NULL )
-        GET_FACTORY( UnoPageControl, szServiceName_UnoPageControl, NULL )
-        GET_FACTORY( UnoFrameModel, szServiceName_UnoFrameModel, NULL )
-        GET_FACTORY( UnoFrameControl, szServiceName_UnoFrameControl, NULL )
     }
     return pRet;
 }
diff --git a/toolkit/util/tk.component b/toolkit/util/tk.component
index 8ca92f0..1d34d5e 100644
--- a/toolkit/util/tk.component
+++ b/toolkit/util/tk.component
@@ -234,7 +234,8 @@
     <service name="com.sun.star.awt.UnoControlDateField"/>
     <service name="stardiv.vcl.control.DateField"/>
   </implementation>
-  <implementation name="stardiv.Toolkit.UnoDialogControl">
+  <implementation name="stardiv.Toolkit.UnoDialogControl"
+      constructor="stardiv_Toolkit_UnoDialogControl_get_implementation">
     <service name="com.sun.star.awt.UnoControlDialog"/>
     <service name="stardiv.vcl.control.Dialog"/>
   </implementation>
@@ -363,22 +364,28 @@
     <service name="com.sun.star.awt.Toolkit"/>
     <service name="stardiv.vcl.VclToolkit"/>
   </implementation>
-  <implementation name="stardiv.Toolkit.UnoMultiPageModel">
+  <implementation name="stardiv.Toolkit.UnoMultiPageModel"
+      constructor="stardiv_Toolkit_UnoMultiPageModel_get_implementation">
     <service name="com.sun.star.awt.UnoMultiPageModel"/>
   </implementation>
-  <implementation name="stardiv.Toolkit.UnoMultiPageControl">
+  <implementation name="stardiv.Toolkit.UnoMultiPageControl"
+      constructor="stardiv_Toolkit_UnoMultiPageControl_get_implementation">
     <service name="com.sun.star.awt.UnoControlMultiPage"/>
   </implementation>
-  <implementation name="stardiv.Toolkit.UnoPageModel">
+  <implementation name="stardiv.Toolkit.UnoPageModel"
+      constructor="stardiv_Toolkit_UnoPageModel_get_implementation">
     <service name="com.sun.star.awt.UnoPageModel"/>
   </implementation>
-  <implementation name="stardiv.Toolkit.UnoPageControl">
+  <implementation name="stardiv.Toolkit.UnoPageControl"
+      constructor="stardiv_Toolkit_UnoPageControl_get_implementation">
     <service name="com.sun.star.awt.UnoControlPage"/>
   </implementation>
-  <implementation name="stardiv.Toolkit.UnoFrameModel">
+  <implementation name="stardiv.Toolkit.UnoFrameModel"
+      constructor="stardiv_Toolkit_UnoFrameModel_get_implementation">
     <service name="com.sun.star.awt.UnoFrameModel"/>
   </implementation>
-  <implementation name="stardiv.Toolkit.UnoFrameControl">
+  <implementation name="stardiv.Toolkit.UnoFrameControl"
+      constructor="stardiv_Toolkit_UnoFrameControl_get_implementation">
     <service name="com.sun.star.awt.UnoControlFrame"/>
   </implementation>
 </component>
commit c1fa1962ec165dca73e1ec3154ce8e8c90a5c16b
Author: Matúš Kukan <matus.kukan at collabora.com>
Date:   Fri Jan 24 11:01:14 2014 +0100

    tk: Ctor feature for VCLX classes.
    
    Change-Id: I717638a3df4d6ed71d19f7bf4c2e574b37260739

diff --git a/toolkit/source/awt/vclxmenu.cxx b/toolkit/source/awt/vclxmenu.cxx
index 48d52dc..ab25dfd 100644
--- a/toolkit/source/awt/vclxmenu.cxx
+++ b/toolkit/source/awt/vclxmenu.cxx
@@ -936,6 +936,13 @@ VCLXMenuBar::VCLXMenuBar( MenuBar* pMenuBar ) : VCLXMenu( (Menu *)pMenuBar )
     DBG_CTOR( VCLXMenuBar, 0 );
 }
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+stardiv_Toolkit_VCLXMenuBar_get_implementation(
+    css::uno::XComponentContext *,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new VCLXMenuBar());
+}
 
 DBG_NAME(VCLXPopupMenu);
 
@@ -950,4 +957,12 @@ VCLXPopupMenu::VCLXPopupMenu( PopupMenu* pPopMenu ) : VCLXMenu( (Menu *)pPopMenu
     DBG_CTOR( VCLXPopupMenu, 0 );
 }
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+stardiv_Toolkit_VCLXPopupMenu_get_implementation(
+    css::uno::XComponentContext *,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new VCLXPopupMenu());
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/awt/vclxpointer.cxx b/toolkit/source/awt/vclxpointer.cxx
index 316e446..b556d1b 100644
--- a/toolkit/source/awt/vclxpointer.cxx
+++ b/toolkit/source/awt/vclxpointer.cxx
@@ -17,6 +17,7 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
+#include <com/sun/star/uno/XComponentContext.hpp>
 #include <toolkit/awt/vclxpointer.hxx>
 #include <toolkit/helper/macros.hxx>
 #include <cppuhelper/typeprovider.hxx>
@@ -64,6 +65,12 @@ sal_Int32 VCLXPointer::getType() throw(::com::sun::star::uno::RuntimeException)
     return (sal_Int32)maPointer.GetStyle();
 }
 
-
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+stardiv_Toolkit_VCLXPointer_get_implementation(
+    css::uno::XComponentContext *,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new VCLXPointer());
+}
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/awt/vclxprinter.cxx b/toolkit/source/awt/vclxprinter.cxx
index 0532e62..9e452a6 100644
--- a/toolkit/source/awt/vclxprinter.cxx
+++ b/toolkit/source/awt/vclxprinter.cxx
@@ -380,5 +380,12 @@ VCLXInfoPrinter::~VCLXInfoPrinter()
     return xP;
 }
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+stardiv_Toolkit_VCLXPrinterServer_get_implementation(
+    css::uno::XComponentContext *,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new VCLXPrinterServer());
+}
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/helper/registerservices.cxx b/toolkit/source/helper/registerservices.cxx
index ebf9384..2662ebd 100644
--- a/toolkit/source/helper/registerservices.cxx
+++ b/toolkit/source/helper/registerservices.cxx
@@ -108,10 +108,6 @@ IMPL_CREATEINSTANCE( UnoFormattedFieldControl )
 IMPL_CREATEINSTANCE_CTX( UnoMultiPageControl )
 IMPL_CREATEINSTANCE_CTX( UnoPageControl )
 IMPL_CREATEINSTANCE_CTX( UnoFrameControl )
-IMPL_CREATEINSTANCE( VCLXMenuBar )
-IMPL_CREATEINSTANCE( VCLXPointer )
-IMPL_CREATEINSTANCE( VCLXPopupMenu )
-IMPL_CREATEINSTANCE( VCLXPrinterServer )
 
 extern "C"
 {
@@ -125,13 +121,9 @@ TOOLKIT_DLLPUBLIC void* SAL_CALL tk_component_getFactory( const sal_Char* sImple
     {
         ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xServiceFactory =
             static_cast< ::com::sun::star::lang::XMultiServiceFactory* >( _pServiceManager );
-        GET_FACTORY( VCLXPopupMenu, szServiceName_PopupMenu, szServiceName2_PopupMenu )
-        GET_FACTORY( VCLXMenuBar, szServiceName_MenuBar, szServiceName2_MenuBar )
-        GET_FACTORY( VCLXPointer, szServiceName_Pointer, szServiceName2_Pointer )
         GET_FACTORY( UnoDialogControl, szServiceName_UnoControlDialog, szServiceName2_UnoControlDialog )
         GET_FACTORY( UnoFormattedFieldControl, szServiceName_UnoControlFormattedField, szServiceName2_UnoControlFormattedField )
         GET_FACTORY( UnoControlFormattedFieldModel, szServiceName_UnoControlFormattedFieldModel, szServiceName2_UnoControlFormattedFieldModel )
-        GET_FACTORY( VCLXPrinterServer, szServiceName_PrinterServer, szServiceName2_PrinterServer )
         GET_FACTORY( UnoMultiPageModel, szServiceName_UnoMultiPageModel, NULL )
         GET_FACTORY( UnoMultiPageControl, szServiceName_UnoMultiPageControl, NULL )
         GET_FACTORY( UnoPageModel, szServiceName_UnoPageModel, NULL )
diff --git a/toolkit/util/tk.component b/toolkit/util/tk.component
index 9d5b21c..8ca92f0 100644
--- a/toolkit/util/tk.component
+++ b/toolkit/util/tk.component
@@ -338,19 +338,23 @@
     <service name="com.sun.star.awt.UnoControlTimeField"/>
     <service name="stardiv.vcl.control.TimeField"/>
   </implementation>
-  <implementation name="stardiv.Toolkit.VCLXMenuBar">
+  <implementation name="stardiv.Toolkit.VCLXMenuBar"
+      constructor="stardiv_Toolkit_VCLXMenuBar_get_implementation">
     <service name="com.sun.star.awt.MenuBar"/>
     <service name="stardiv.vcl.MenuBar"/>
   </implementation>
-  <implementation name="stardiv.Toolkit.VCLXPointer">
+  <implementation name="stardiv.Toolkit.VCLXPointer"
+      constructor="stardiv_Toolkit_VCLXPointer_get_implementation">
     <service name="com.sun.star.awt.Pointer"/>
     <service name="stardiv.vcl.Pointer"/>
   </implementation>
-  <implementation name="stardiv.Toolkit.VCLXPopupMenu">
+  <implementation name="stardiv.Toolkit.VCLXPopupMenu"
+      constructor="stardiv_Toolkit_VCLXPopupMenu_get_implementation">
     <service name="com.sun.star.awt.PopupMenu"/>
     <service name="stardiv.vcl.PopupMenu"/>
   </implementation>
-  <implementation name="stardiv.Toolkit.VCLXPrinterServer">
+  <implementation name="stardiv.Toolkit.VCLXPrinterServer"
+      constructor="stardiv_Toolkit_VCLXPrinterServer_get_implementation">
     <service name="com.sun.star.awt.PrinterServer"/>
     <service name="stardiv.vcl.PrinterServer"/>
   </implementation>
commit cbdc2cfc1a7231234d5a5fc4855627c048b6fcea
Author: Matúš Kukan <matus.kukan at collabora.com>
Date:   Fri Jan 24 10:52:11 2014 +0100

    tk: Ctor feature for UnoControlContainer(Model).
    
    Change-Id: I7f0e457eaf5057d325226633936e544ace1f1620

diff --git a/toolkit/source/controls/unocontrolcontainer.cxx b/toolkit/source/controls/unocontrolcontainer.cxx
index 6927e98..8c3d99a 100644
--- a/toolkit/source/controls/unocontrolcontainer.cxx
+++ b/toolkit/source/controls/unocontrolcontainer.cxx
@@ -841,4 +841,12 @@ void UnoControlContainer::PrepareWindowDescriptor( ::com::sun::star::awt::Window
     }
 }
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+stardiv_Toolkit_UnoControlContainer_get_implementation(
+    css::uno::XComponentContext *,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new UnoControlContainer());
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/controls/unocontrolcontainermodel.cxx b/toolkit/source/controls/unocontrolcontainermodel.cxx
index 316d498..1f50502 100644
--- a/toolkit/source/controls/unocontrolcontainermodel.cxx
+++ b/toolkit/source/controls/unocontrolcontainermodel.cxx
@@ -75,7 +75,12 @@ OUString UnoControlContainerModel::getServiceName() throw(::com::sun::star::uno:
     return *pHelper;
 }
 
-
-
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+stardiv_Toolkit_UnoControlContainerModel_get_implementation(
+    css::uno::XComponentContext *context,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new UnoControlContainerModel(context));
+}
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/helper/registerservices.cxx b/toolkit/source/helper/registerservices.cxx
index d7e6e2a..ebf9384 100644
--- a/toolkit/source/helper/registerservices.cxx
+++ b/toolkit/source/helper/registerservices.cxx
@@ -99,8 +99,6 @@ namespace toolkit
 
 using namespace toolkit;
 
-IMPL_CREATEINSTANCE( UnoControlContainer )
-IMPL_CREATEINSTANCE_CTX( UnoControlContainerModel )
 IMPL_CREATEINSTANCE_CTX( UnoControlFormattedFieldModel )
 IMPL_CREATEINSTANCE_CTX( UnoMultiPageModel )
 IMPL_CREATEINSTANCE_CTX( UnoPageModel )
@@ -130,8 +128,6 @@ TOOLKIT_DLLPUBLIC void* SAL_CALL tk_component_getFactory( const sal_Char* sImple
         GET_FACTORY( VCLXPopupMenu, szServiceName_PopupMenu, szServiceName2_PopupMenu )
         GET_FACTORY( VCLXMenuBar, szServiceName_MenuBar, szServiceName2_MenuBar )
         GET_FACTORY( VCLXPointer, szServiceName_Pointer, szServiceName2_Pointer )
-        GET_FACTORY( UnoControlContainer, szServiceName_UnoControlContainer, szServiceName2_UnoControlContainer )
-        GET_FACTORY( UnoControlContainerModel, szServiceName_UnoControlContainerModel, szServiceName2_UnoControlContainerModel )
         GET_FACTORY( UnoDialogControl, szServiceName_UnoControlDialog, szServiceName2_UnoControlDialog )
         GET_FACTORY( UnoFormattedFieldControl, szServiceName_UnoControlFormattedField, szServiceName2_UnoControlFormattedField )
         GET_FACTORY( UnoControlFormattedFieldModel, szServiceName_UnoControlFormattedFieldModel, szServiceName2_UnoControlFormattedFieldModel )
diff --git a/toolkit/util/tk.component b/toolkit/util/tk.component
index 6448268..9d5b21c 100644
--- a/toolkit/util/tk.component
+++ b/toolkit/util/tk.component
@@ -119,11 +119,13 @@
     <service name="com.sun.star.awt.UnoControlComboBoxModel"/>
     <service name="stardiv.vcl.controlmodel.ComboBox"/>
   </implementation>
-  <implementation name="stardiv.Toolkit.UnoControlContainer">
+  <implementation name="stardiv.Toolkit.UnoControlContainer"
+      constructor="stardiv_Toolkit_UnoControlContainer_get_implementation">
     <service name="com.sun.star.awt.UnoControlContainer"/>
     <service name="stardiv.vcl.control.ControlContainer"/>
   </implementation>
-  <implementation name="stardiv.Toolkit.UnoControlContainerModel">
+  <implementation name="stardiv.Toolkit.UnoControlContainerModel"
+      constructor="stardiv_Toolkit_UnoControlContainerModel_get_implementation">
     <service name="com.sun.star.awt.UnoControlContainerModel"/>
     <service name="stardiv.vcl.controlmodel.ControlContainer"/>
   </implementation>
commit 60ec73ddeaaca8195fd12e072bd3dd58229ab8c5
Author: Matúš Kukan <matus.kukan at collabora.com>
Date:   Fri Jan 24 10:48:03 2014 +0100

    tk: Ctor feature for UnoScrollBarControl(Model).
    
    Change-Id: Ie37b81de21764186ab2ee9b19ac04d801880d2f9

diff --git a/toolkit/source/controls/tkscrollbar.cxx b/toolkit/source/controls/tkscrollbar.cxx
index 2f7f0dd..c541fea 100644
--- a/toolkit/source/controls/tkscrollbar.cxx
+++ b/toolkit/source/controls/tkscrollbar.cxx
@@ -283,4 +283,20 @@ namespace toolkit
 }  // namespace toolkit
 //........................................................................
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+stardiv_Toolkit_UnoControlScrollBarModel_get_implementation(
+    css::uno::XComponentContext *context,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new toolkit::UnoControlScrollBarModel(context));
+}
+
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+stardiv_Toolkit_UnoScrollBarControl_get_implementation(
+    css::uno::XComponentContext *,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new toolkit::UnoScrollBarControl());
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/helper/registerservices.cxx b/toolkit/source/helper/registerservices.cxx
index 5c78533..d7e6e2a 100644
--- a/toolkit/source/helper/registerservices.cxx
+++ b/toolkit/source/helper/registerservices.cxx
@@ -102,13 +102,11 @@ using namespace toolkit;
 IMPL_CREATEINSTANCE( UnoControlContainer )
 IMPL_CREATEINSTANCE_CTX( UnoControlContainerModel )
 IMPL_CREATEINSTANCE_CTX( UnoControlFormattedFieldModel )
-IMPL_CREATEINSTANCE_CTX( UnoControlScrollBarModel )
 IMPL_CREATEINSTANCE_CTX( UnoMultiPageModel )
 IMPL_CREATEINSTANCE_CTX( UnoPageModel )
 IMPL_CREATEINSTANCE_CTX( UnoFrameModel )
 IMPL_CREATEINSTANCE_CTX( UnoDialogControl )
 IMPL_CREATEINSTANCE( UnoFormattedFieldControl )
-IMPL_CREATEINSTANCE( UnoScrollBarControl )
 IMPL_CREATEINSTANCE_CTX( UnoMultiPageControl )
 IMPL_CREATEINSTANCE_CTX( UnoPageControl )
 IMPL_CREATEINSTANCE_CTX( UnoFrameControl )
@@ -137,8 +135,6 @@ TOOLKIT_DLLPUBLIC void* SAL_CALL tk_component_getFactory( const sal_Char* sImple
         GET_FACTORY( UnoDialogControl, szServiceName_UnoControlDialog, szServiceName2_UnoControlDialog )
         GET_FACTORY( UnoFormattedFieldControl, szServiceName_UnoControlFormattedField, szServiceName2_UnoControlFormattedField )
         GET_FACTORY( UnoControlFormattedFieldModel, szServiceName_UnoControlFormattedFieldModel, szServiceName2_UnoControlFormattedFieldModel )
-        GET_FACTORY( UnoScrollBarControl, szServiceName_UnoControlScrollBar, szServiceName2_UnoControlScrollBar )
-        GET_FACTORY( UnoControlScrollBarModel, szServiceName_UnoControlScrollBarModel, szServiceName2_UnoControlScrollBarModel )
         GET_FACTORY( VCLXPrinterServer, szServiceName_PrinterServer, szServiceName2_PrinterServer )
         GET_FACTORY( UnoMultiPageModel, szServiceName_UnoMultiPageModel, NULL )
         GET_FACTORY( UnoMultiPageControl, szServiceName_UnoMultiPageControl, NULL )
diff --git a/toolkit/util/tk.component b/toolkit/util/tk.component
index 32a4900..6448268 100644
--- a/toolkit/util/tk.component
+++ b/toolkit/util/tk.component
@@ -212,7 +212,8 @@
     <service name="com.sun.star.awt.UnoControlRoadmapModel"/>
     <service name="stardiv.vcl.controlmodel.Roadmap"/>
   </implementation>
-  <implementation name="stardiv.Toolkit.UnoControlScrollBarModel">
+  <implementation name="stardiv.Toolkit.UnoControlScrollBarModel"
+      constructor="stardiv_Toolkit_UnoControlScrollBarModel_get_implementation">
     <service name="com.sun.star.awt.UnoControlScrollBarModel"/>
     <service name="stardiv.vcl.controlmodel.ScrollBar"/>
   </implementation>
@@ -305,7 +306,8 @@
     <service name="com.sun.star.awt.UnoControlRoadmap"/>
     <service name="stardiv.vcl.control.Roadmap"/>
   </implementation>
-  <implementation name="stardiv.Toolkit.UnoScrollBarControl">
+  <implementation name="stardiv.Toolkit.UnoScrollBarControl"
+      constructor="stardiv_Toolkit_UnoScrollBarControl_get_implementation">
     <service name="com.sun.star.awt.UnoControlScrollBar"/>
     <service name="stardiv.vcl.control.ScrollBar"/>
   </implementation>
commit 68694f360f2c3f7957a7a4907b93d4d47d3900b6
Author: Matúš Kukan <matus.kukan at collabora.com>
Date:   Fri Jan 24 10:21:41 2014 +0100

    tk: Ctor feature for StdTabController(Model).
    
    Change-Id: I3792b8b4d240c212d332c676d53eaa1f5dca3902

diff --git a/toolkit/source/controls/stdtabcontroller.cxx b/toolkit/source/controls/stdtabcontroller.cxx
index e5c9dfb..b0bece5 100644
--- a/toolkit/source/controls/stdtabcontroller.cxx
+++ b/toolkit/source/controls/stdtabcontroller.cxx
@@ -384,4 +384,12 @@ Reference< XControl >  StdTabController::FindControl( Sequence< Reference< XCont
     return Reference< XControl > ();
 }
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+stardiv_Toolkit_StdTabController_get_implementation(
+    css::uno::XComponentContext *,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new StdTabController());
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/controls/stdtabcontrollermodel.cxx b/toolkit/source/controls/stdtabcontrollermodel.cxx
index 6857ae3..377c5fb 100644
--- a/toolkit/source/controls/stdtabcontrollermodel.cxx
+++ b/toolkit/source/controls/stdtabcontrollermodel.cxx
@@ -18,6 +18,7 @@
  */
 
 #include <com/sun/star/io/XMarkableStream.hpp>
+#include <com/sun/star/uno/XComponentContext.hpp>
 
 #include <toolkit/controls/stdtabcontrollermodel.hxx>
 #include <toolkit/helper/macros.hxx>
@@ -412,8 +413,12 @@ void StdTabControllerModel::read( const ::com::sun::star::uno::Reference< ::com:
     }
 }
 
-
-
-
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+stardiv_Toolkit_StdTabControllerModel_get_implementation(
+    css::uno::XComponentContext *,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new StdTabControllerModel());
+}
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/helper/registerservices.cxx b/toolkit/source/helper/registerservices.cxx
index 18c91ad..5c78533 100644
--- a/toolkit/source/helper/registerservices.cxx
+++ b/toolkit/source/helper/registerservices.cxx
@@ -99,8 +99,6 @@ namespace toolkit
 
 using namespace toolkit;
 
-IMPL_CREATEINSTANCE( StdTabController )
-IMPL_CREATEINSTANCE( StdTabControllerModel )
 IMPL_CREATEINSTANCE( UnoControlContainer )
 IMPL_CREATEINSTANCE_CTX( UnoControlContainerModel )
 IMPL_CREATEINSTANCE_CTX( UnoControlFormattedFieldModel )
@@ -136,8 +134,6 @@ TOOLKIT_DLLPUBLIC void* SAL_CALL tk_component_getFactory( const sal_Char* sImple
         GET_FACTORY( VCLXPointer, szServiceName_Pointer, szServiceName2_Pointer )
         GET_FACTORY( UnoControlContainer, szServiceName_UnoControlContainer, szServiceName2_UnoControlContainer )
         GET_FACTORY( UnoControlContainerModel, szServiceName_UnoControlContainerModel, szServiceName2_UnoControlContainerModel )
-        GET_FACTORY( StdTabController, szServiceName_TabController, szServiceName2_TabController )
-        GET_FACTORY( StdTabControllerModel, szServiceName_TabControllerModel, szServiceName2_TabControllerModel )
         GET_FACTORY( UnoDialogControl, szServiceName_UnoControlDialog, szServiceName2_UnoControlDialog )
         GET_FACTORY( UnoFormattedFieldControl, szServiceName_UnoControlFormattedField, szServiceName2_UnoControlFormattedField )
         GET_FACTORY( UnoControlFormattedFieldModel, szServiceName_UnoControlFormattedFieldModel, szServiceName2_UnoControlFormattedFieldModel )
diff --git a/toolkit/util/tk.component b/toolkit/util/tk.component
index e157bcd..32a4900 100644
--- a/toolkit/util/tk.component
+++ b/toolkit/util/tk.component
@@ -71,11 +71,13 @@
       constructor="stardiv_Toolkit_MutableTreeDataModel_get_implementation">
     <service name="com.sun.star.awt.tree.MutableTreeDataModel"/>
   </implementation>
-  <implementation name="stardiv.Toolkit.StdTabController">
+  <implementation name="stardiv.Toolkit.StdTabController"
+      constructor="stardiv_Toolkit_StdTabController_get_implementation">
     <service name="com.sun.star.awt.TabController"/>
     <service name="stardiv.vcl.control.TabController"/>
   </implementation>
-  <implementation name="stardiv.Toolkit.StdTabControllerModel">
+  <implementation name="stardiv.Toolkit.StdTabControllerModel"
+      constructor="stardiv_Toolkit_StdTabControllerModel_get_implementation">
     <service name="com.sun.star.awt.TabControllerModel"/>
     <service name="stardiv.vcl.controlmodel.TabController"/>
   </implementation>
commit 472b283666b271f8444903de0319e33a74dc7364
Author: Matúš Kukan <matus.kukan at collabora.com>
Date:   Fri Jan 24 09:51:09 2014 +0100

    tk: Ctor feature for toolkit::(UnoControlRoadmapModel|UnoRoadmapControl).
    
    Change-Id: Ic748e90e96285c394a3a2ac30ad1090b91ede160

diff --git a/toolkit/source/controls/roadmapcontrol.cxx b/toolkit/source/controls/roadmapcontrol.cxx
index 8b2e836..56bb561 100644
--- a/toolkit/source/controls/roadmapcontrol.cxx
+++ b/toolkit/source/controls/roadmapcontrol.cxx
@@ -22,7 +22,6 @@
 #include <toolkit/helper/unopropertyarrayhelper.hxx>
 #include <toolkit/helper/property.hxx>
 #include <com/sun/star/awt/XVclWindowPeer.hpp>
-#include <comphelper/processfactory.hxx>
 #include <osl/diagnose.h>
 
 //........................................................................
@@ -489,4 +488,20 @@ void SAL_CALL UnoRoadmapControl::propertyChange( const PropertyChangeEvent& evt
 
 }
 
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+stardiv_Toolkit_UnoControlRoadmapModel_get_implementation(
+    css::uno::XComponentContext *context,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new toolkit::UnoControlRoadmapModel(context));
+}
+
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+stardiv_Toolkit_UnoRoadmapControl_get_implementation(
+    css::uno::XComponentContext *,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new toolkit::UnoRoadmapControl());
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/helper/registerservices.cxx b/toolkit/source/helper/registerservices.cxx
index c6512ca..18c91ad 100644
--- a/toolkit/source/helper/registerservices.cxx
+++ b/toolkit/source/helper/registerservices.cxx
@@ -118,8 +118,6 @@ IMPL_CREATEINSTANCE( VCLXMenuBar )
 IMPL_CREATEINSTANCE( VCLXPointer )
 IMPL_CREATEINSTANCE( VCLXPopupMenu )
 IMPL_CREATEINSTANCE( VCLXPrinterServer )
-IMPL_CREATEINSTANCE( UnoRoadmapControl )
-IMPL_CREATEINSTANCE_CTX( UnoControlRoadmapModel )
 
 extern "C"
 {
@@ -146,8 +144,6 @@ TOOLKIT_DLLPUBLIC void* SAL_CALL tk_component_getFactory( const sal_Char* sImple
         GET_FACTORY( UnoScrollBarControl, szServiceName_UnoControlScrollBar, szServiceName2_UnoControlScrollBar )
         GET_FACTORY( UnoControlScrollBarModel, szServiceName_UnoControlScrollBarModel, szServiceName2_UnoControlScrollBarModel )
         GET_FACTORY( VCLXPrinterServer, szServiceName_PrinterServer, szServiceName2_PrinterServer )
-        GET_FACTORY( UnoRoadmapControl, szServiceName_UnoControlRoadmap, szServiceName2_UnoControlRoadmap )
-        GET_FACTORY( UnoControlRoadmapModel, szServiceName_UnoControlRoadmapModel, szServiceName2_UnoControlRoadmapModel )
         GET_FACTORY( UnoMultiPageModel, szServiceName_UnoMultiPageModel, NULL )
         GET_FACTORY( UnoMultiPageControl, szServiceName_UnoMultiPageControl, NULL )
         GET_FACTORY( UnoPageModel, szServiceName_UnoPageModel, NULL )
diff --git a/toolkit/util/tk.component b/toolkit/util/tk.component
index 896042b..e157bcd 100644
--- a/toolkit/util/tk.component
+++ b/toolkit/util/tk.component
@@ -205,7 +205,8 @@
     <service name="com.sun.star.awt.UnoControlRadioButtonModel"/>
     <service name="stardiv.vcl.controlmodel.RadioButton"/>
   </implementation>
-  <implementation name="stardiv.Toolkit.UnoControlRoadmapModel">
+  <implementation name="stardiv.Toolkit.UnoControlRoadmapModel"
+      constructor="stardiv_Toolkit_UnoControlRoadmapModel_get_implementation">
     <service name="com.sun.star.awt.UnoControlRoadmapModel"/>
     <service name="stardiv.vcl.controlmodel.Roadmap"/>
   </implementation>
@@ -297,7 +298,8 @@
     <service name="com.sun.star.awt.UnoControlRadioButton"/>
     <service name="stardiv.vcl.control.RadioButton"/>
   </implementation>
-  <implementation name="stardiv.Toolkit.UnoRoadmapControl">
+  <implementation name="stardiv.Toolkit.UnoRoadmapControl"
+      constructor="stardiv_Toolkit_UnoRoadmapControl_get_implementation">
     <service name="com.sun.star.awt.UnoControlRoadmap"/>
     <service name="stardiv.vcl.control.Roadmap"/>
   </implementation>
commit e626b730dfdd34a25bce1f0cd9b5889e2a8482af
Author: Matúš Kukan <matus.kukan at collabora.com>
Date:   Fri Jan 24 09:42:42 2014 +0100

    tk: Constructor feature for MutableTreeDataModel.
    
    Change-Id: I9cd12e3bdfc20d4305e3daec6d0a6cffa599e000

diff --git a/toolkit/source/controls/tree/treedatamodel.cxx b/toolkit/source/controls/tree/treedatamodel.cxx
index 01fb026..b9b77f0 100644
--- a/toolkit/source/controls/tree/treedatamodel.cxx
+++ b/toolkit/source/controls/tree/treedatamodel.cxx
@@ -20,8 +20,8 @@
 #include <com/sun/star/awt/tree/XMutableTreeDataModel.hpp>
 #include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/lang/XUnoTunnel.hpp>
+#include <com/sun/star/uno/XComponentContext.hpp>
 #include <cppuhelper/implbase2.hxx>
-#include <cppuhelper/implbase3.hxx>
 #include <rtl/ref.hxx>
 #include <toolkit/helper/mutexandbroadcasthelper.hxx>
 #include <toolkit/helper/servicenames.hxx>
@@ -32,8 +32,7 @@ using namespace ::com::sun::star::awt;
 using namespace ::com::sun::star::awt::tree;
 using namespace ::com::sun::star::lang;
 
-namespace toolkit
-{
+namespace {
 
     enum broadcast_type { nodes_changed, nodes_inserted, nodes_removed, structure_changed };
 
@@ -652,9 +651,12 @@ Sequence< OUString > SAL_CALL MutableTreeNode::getSupportedServiceNames(  ) thro
 
 }
 
-Reference< XInterface > SAL_CALL MutableTreeDataModel_CreateInstance( const Reference< XMultiServiceFactory >& )
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+stardiv_Toolkit_MutableTreeDataModel_get_implementation(
+    css::uno::XComponentContext *,
+    css::uno::Sequence<css::uno::Any> const &)
 {
-    return Reference < XInterface >( ( ::cppu::OWeakObject* ) new ::toolkit::MutableTreeDataModel );
+    return cppu::acquire(new MutableTreeDataModel());
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/helper/registerservices.cxx b/toolkit/source/helper/registerservices.cxx
index a4c1e85..c6512ca 100644
--- a/toolkit/source/helper/registerservices.cxx
+++ b/toolkit/source/helper/registerservices.cxx
@@ -121,8 +121,6 @@ IMPL_CREATEINSTANCE( VCLXPrinterServer )
 IMPL_CREATEINSTANCE( UnoRoadmapControl )
 IMPL_CREATEINSTANCE_CTX( UnoControlRoadmapModel )
 
-extern ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL MutableTreeDataModel_CreateInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& );
-
 extern "C"
 {
 
@@ -156,7 +154,6 @@ TOOLKIT_DLLPUBLIC void* SAL_CALL tk_component_getFactory( const sal_Char* sImple
         GET_FACTORY( UnoPageControl, szServiceName_UnoPageControl, NULL )
         GET_FACTORY( UnoFrameModel, szServiceName_UnoFrameModel, NULL )
         GET_FACTORY( UnoFrameControl, szServiceName_UnoFrameControl, NULL )
-        GET_FACTORY( MutableTreeDataModel, szServiceName_MutableTreeDataModel, NULL )
     }
     return pRet;
 }
diff --git a/toolkit/util/tk.component b/toolkit/util/tk.component
index cfaa1b7..896042b 100644
--- a/toolkit/util/tk.component
+++ b/toolkit/util/tk.component
@@ -67,7 +67,8 @@
       constructor="stardiv_Toolkit_GridControlModel_get_implementation">
     <service name="com.sun.star.awt.grid.UnoControlGridModel"/>
   </implementation>
-  <implementation name="stardiv.Toolkit.MutableTreeDataModel">
+  <implementation name="stardiv.Toolkit.MutableTreeDataModel"
+      constructor="stardiv_Toolkit_MutableTreeDataModel_get_implementation">
     <service name="com.sun.star.awt.tree.MutableTreeDataModel"/>
   </implementation>
   <implementation name="stardiv.Toolkit.StdTabController">
commit 3961bcb5f46331a1e6b4ce7f334ba6bbde11c899
Author: Matúš Kukan <matus.kukan at collabora.com>
Date:   Thu Jan 23 09:41:03 2014 +0100

    tk: Constructor feature for VCLXToolkit.
    
    Change-Id: I1575ea1b14342a5a64f13d39e409ed33151bcdf9

diff --git a/include/toolkit/awt/vclxtoolkit.hxx b/include/toolkit/awt/vclxtoolkit.hxx
deleted file mode 100644
index 5e0e124..0000000
--- a/include/toolkit/awt/vclxtoolkit.hxx
+++ /dev/null
@@ -1,206 +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_TOOLKIT_AWT_VCLXTOOLKIT_HXX
-#define INCLUDED_TOOLKIT_AWT_VCLXTOOLKIT_HXX
-
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/awt/XToolkitExperimental.hpp>
-#include <com/sun/star/lang/XTypeProvider.hpp>
-#include <com/sun/star/awt/XMessageBoxFactory.hpp>
-#include <cppuhelper/compbase2.hxx>
-#include <cppuhelper/interfacecontainer.hxx>
-#include <osl/mutex.hxx>
-#include <osl/module.h>
-#include <tools/link.hxx>
-#include <tools/wintypes.hxx>
-
-#include <toolkit/dllapi.h>
-
-TOOLKIT_DLLPUBLIC WinBits ImplGetWinBits( sal_uInt32 nComponentAttribs, sal_uInt16 nCompType );
-
-class Window;
-class VCLXWindow;
-class VclSimpleEvent;
-
-namespace com {
-namespace sun {
-namespace star {
-namespace lang {
-    struct EventObject;
-}
-namespace awt {
-    struct WindowDescriptor;
-} } } }
-
-extern "C" {
-    typedef Window* (SAL_CALL *FN_SvtCreateWindow)( VCLXWindow** ppNewComp, const ::com::sun::star::awt::WindowDescriptor* pDescriptor, Window* pParent, WinBits nWinBits );
-}
-
-
-//  ----------------------------------------------------
-//  class VCLXTOOLKIT
-//  ----------------------------------------------------
-
-class VCLXToolkit_Impl
-{
-protected:
-    ::osl::Mutex    maMutex;
-};
-
-class VCLXToolkit : public VCLXToolkit_Impl,
-                    public cppu::WeakComponentImplHelper2<
-                    ::com::sun::star::awt::XToolkitExperimental,
-                    ::com::sun::star::lang::XServiceInfo >
-{
-    ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::clipboard::XClipboard > mxClipboard;
-    ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::clipboard::XClipboard > mxSelection;
-
-    oslModule           hSvToolsLib;
-    FN_SvtCreateWindow  fnSvtCreateWindow;
-
-    ::cppu::OInterfaceContainerHelper m_aTopWindowListeners;
-    ::cppu::OInterfaceContainerHelper m_aKeyHandlers;
-    ::cppu::OInterfaceContainerHelper m_aFocusListeners;
-    ::Link m_aEventListenerLink;
-    ::Link m_aKeyListenerLink;
-    bool m_bEventListener;
-    bool m_bKeyListener;
-
-    DECL_LINK(eventListenerHandler, ::VclSimpleEvent const *);
-
-    DECL_LINK(keyListenerHandler, ::VclSimpleEvent const *);
-
-    void callTopWindowListeners(
-        ::VclSimpleEvent const * pEvent,
-        void (SAL_CALL ::com::sun::star::awt::XTopWindowListener::* pFn)(
-            ::com::sun::star::lang::EventObject const &));
-
-    long callKeyHandlers(::VclSimpleEvent const * pEvent, bool bPressed);
-
-    void callFocusListeners(::VclSimpleEvent const * pEvent, bool bGained);
-
-protected:
-    ::osl::Mutex&   GetMutex() { return maMutex; }
-
-    virtual void SAL_CALL disposing();
-
-    Window* ImplCreateWindow( VCLXWindow** ppNewComp, const ::com::sun::star::awt::WindowDescriptor& rDescriptor, Window* pParent, WinBits nWinBits );
-    ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > ImplCreateWindow( const ::com::sun::star::awt::WindowDescriptor& Descriptor, WinBits nWinBits );
-
-public:
-
-    VCLXToolkit();
-    ~VCLXToolkit();
-
-    // ::com::sun::star::awt::XToolkitExperimental
-    ::com::sun::star::uno::Reference< ::com::sun::star::awt::XDevice >      SAL_CALL createScreenCompatibleDeviceUsingBuffer( sal_Int32 Width, sal_Int32 Height, sal_Int32 ScaleNumerator, sal_Int32 ScaleDenominator, sal_Int32 XOffset, sal_Int32 YOffset, sal_Int64 AddressOfMemoryBufferForSharedArrayWrapper ) throw
-(::com::sun::star::uno::RuntimeException);
-
-    // ::com::sun::star::awt::XToolkit
-    ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer >  SAL_CALL getDesktopWindow(  ) throw(::com::sun::star::uno::RuntimeException);
-    ::com::sun::star::awt::Rectangle                                        SAL_CALL getWorkArea(  ) throw(::com::sun::star::uno::RuntimeException);
-    ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer >  SAL_CALL createWindow( const ::com::sun::star::awt::WindowDescriptor& Descriptor ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-    ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > > SAL_CALL createWindows( const ::com::sun::star::uno::Sequence< ::com::sun::star::awt::WindowDescriptor >& Descriptors ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
-    ::com::sun::star::uno::Reference< ::com::sun::star::awt::XDevice >      SAL_CALL createScreenCompatibleDevice( sal_Int32 Width, sal_Int32 Height ) throw
-(::com::sun::star::uno::RuntimeException);
-    ::com::sun::star::uno::Reference< ::com::sun::star::awt::XRegion >      SAL_CALL createRegion(  ) throw(::com::sun::star::uno::RuntimeException);
-
-    // ::com::sun::star::awt::XSystemChildFactory
-    ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer > SAL_CALL createSystemChild( const ::com::sun::star::uno::Any& Parent, const ::com::sun::star::uno::Sequence< sal_Int8 >& ProcessId, sal_Int16 SystemType ) throw(::com::sun::star::uno::RuntimeException);
-
-    // ::com::sun::star::awt::XMessageBoxFactory
-    virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMessageBox > SAL_CALL createMessageBox( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer >& aParent, ::com::sun::star::awt::MessageBoxType eType, ::sal_Int32 aButtons, const OUString& aTitle, const OUString& aMessage ) throw (::com::sun::star::uno::RuntimeException);
-
-    // ::com::sun::star::awt::XDataTransfer
-    ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::dnd::XDragGestureRecognizer > SAL_CALL getDragGestureRecognizer( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& window ) throw(::com::sun::star::uno::RuntimeException);
-    ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::dnd::XDragSource > SAL_CALL getDragSource( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& window ) throw(::com::sun::star::uno::RuntimeException);
-    ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::dnd::XDropTarget > SAL_CALL getDropTarget( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& window ) throw(::com::sun::star::uno::RuntimeException);
-    ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::clipboard::XClipboard > SAL_CALL getClipboard( const OUString& clipboardName ) throw(::com::sun::star::uno::RuntimeException);
-
-    // ::com::sun::star::lang::XServiceInfo
-    OUString SAL_CALL getImplementationName(  ) throw(::com::sun::star::uno::RuntimeException);
-    sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) throw(::com::sun::star::uno::RuntimeException);
-    ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames(  ) throw(::com::sun::star::uno::RuntimeException);
-
-    // ::com::sun::star::awt::XExtendedToolkit:
-
-    virtual ::sal_Int32 SAL_CALL getTopWindowCount()
-        throw (::com::sun::star::uno::RuntimeException);
-
-    virtual
-    ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTopWindow >
-    SAL_CALL getTopWindow(::sal_Int32 nIndex)
-        throw (::com::sun::star::uno::RuntimeException);
-
-    virtual
-    ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTopWindow >
-    SAL_CALL getActiveTopWindow()
-        throw (::com::sun::star::uno::RuntimeException);
-
-    virtual void SAL_CALL addTopWindowListener(
-        ::com::sun::star::uno::Reference<
-        ::com::sun::star::awt::XTopWindowListener > const & rListener)
-        throw (::com::sun::star::uno::RuntimeException);
-
-    virtual void SAL_CALL removeTopWindowListener(
-        ::com::sun::star::uno::Reference<
-        ::com::sun::star::awt::XTopWindowListener > const & rListener)
-        throw (::com::sun::star::uno::RuntimeException);
-
-    virtual void SAL_CALL addKeyHandler(
-        ::com::sun::star::uno::Reference<
-        ::com::sun::star::awt::XKeyHandler > const & rHandler)
-        throw (::com::sun::star::uno::RuntimeException);
-
-    virtual void SAL_CALL removeKeyHandler(
-        ::com::sun::star::uno::Reference<
-        ::com::sun::star::awt::XKeyHandler > const & rHandler)
-        throw (::com::sun::star::uno::RuntimeException);
-
-    virtual void SAL_CALL addFocusListener(
-        ::com::sun::star::uno::Reference<
-        ::com::sun::star::awt::XFocusListener > const & rListener)
-        throw (::com::sun::star::uno::RuntimeException);
-
-    virtual void SAL_CALL removeFocusListener(
-        ::com::sun::star::uno::Reference<
-        ::com::sun::star::awt::XFocusListener > const & rListener)
-        throw (::com::sun::star::uno::RuntimeException);
-
-    virtual void SAL_CALL fireFocusGained(
-        ::com::sun::star::uno::Reference<
-        ::com::sun::star::uno::XInterface > const & source)
-        throw (::com::sun::star::uno::RuntimeException);
-
-    virtual void SAL_CALL fireFocusLost(
-        ::com::sun::star::uno::Reference<
-        ::com::sun::star::uno::XInterface > const & source)
-        throw (::com::sun::star::uno::RuntimeException);
-
-    // ::com::sun::star::awt::XReschedule:
-    virtual void SAL_CALL reschedule()
-        throw (::com::sun::star::uno::RuntimeException);
-
-
-};
-
-#endif // INCLUDED_TOOLKIT_AWT_VCLXTOOLKIT_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/awt/vclxtoolkit.cxx b/toolkit/source/awt/vclxtoolkit.cxx
index 707700f..6d16cde 100644
--- a/toolkit/source/awt/vclxtoolkit.cxx
+++ b/toolkit/source/awt/vclxtoolkit.cxx
@@ -17,17 +17,11 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-
-#include <boost/ptr_container/ptr_vector.hpp>
-
-#include <com/sun/star/beans/PropertyAttribute.hpp>
-
 #include <stdio.h>
 #ifdef WNT
 #include <prewin.h>
 #include <postwin.h>
 #endif
-#include <com/sun/star/awt/ImageScaleMode.hpp>
 #include <com/sun/star/awt/WindowAttribute.hpp>
 #include <com/sun/star/awt/VclWindowPeerAttribute.hpp>
 #include <com/sun/star/awt/WindowClass.hpp>
@@ -43,11 +37,21 @@
 #include <com/sun/star/uno/XInterface.hpp>
 #include <com/sun/star/beans/NamedValue.hpp>
 #include <com/sun/star/datatransfer/clipboard/SystemClipboard.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/awt/XToolkitExperimental.hpp>
+#include <com/sun/star/awt/XMessageBoxFactory.hpp>
+
+#include <cppuhelper/compbase2.hxx>
+#include <cppuhelper/interfacecontainer.hxx>
 #include <cppuhelper/supportsservice.hxx>
 #include <cppuhelper/typeprovider.hxx>
 #include <osl/conditn.hxx>
+#include <osl/module.h>
+#include <osl/mutex.hxx>
 #include <rtl/uuid.h>
 #include <rtl/process.h>
+#include <tools/link.hxx>
+#include <tools/wintypes.hxx>
 
 #ifdef MACOSX
 #include "premac.h"
@@ -65,7 +69,6 @@ using org::libreoffice::touch::ByteBufferWrapper;
 #include <toolkit/awt/vclxwindows.hxx>
 #include <toolkit/awt/vclxsystemdependentwindow.hxx>
 #include <toolkit/awt/vclxregion.hxx>
-#include <toolkit/awt/vclxtoolkit.hxx>
 #include <toolkit/awt/vclxtabpagecontainer.hxx>
 #include <toolkit/awt/vclxtabpagemodel.hxx>
 
@@ -129,7 +132,154 @@ using org::libreoffice::touch::ByteBufferWrapper;
 #define SYSTEM_DEPENDENT_TYPE ::com::sun::star::lang::SystemDependent::SYSTEM_XWINDOW
 #endif
 
-TOOLKIT_DLLPUBLIC WinBits ImplGetWinBits( sal_uInt32 nComponentAttribs, sal_uInt16 nCompType )
+namespace {
+
+extern "C" typedef Window* (SAL_CALL *FN_SvtCreateWindow)(
+        VCLXWindow** ppNewComp,
+        const css::awt::WindowDescriptor* pDescriptor,
+        Window* pParent,
+        WinBits nWinBits );
+
+class VCLXToolkit_Impl
+{
+protected:
+    ::osl::Mutex    maMutex;
+};
+
+class VCLXToolkit : public VCLXToolkit_Impl,
+                    public cppu::WeakComponentImplHelper2<
+                    css::awt::XToolkitExperimental,
+                    css::lang::XServiceInfo >
+{
+    css::uno::Reference< css::datatransfer::clipboard::XClipboard > mxClipboard;
+    css::uno::Reference< css::datatransfer::clipboard::XClipboard > mxSelection;
+
+    oslModule           hSvToolsLib;
+    FN_SvtCreateWindow  fnSvtCreateWindow;
+
+    ::cppu::OInterfaceContainerHelper m_aTopWindowListeners;
+    ::cppu::OInterfaceContainerHelper m_aKeyHandlers;
+    ::cppu::OInterfaceContainerHelper m_aFocusListeners;
+    ::Link m_aEventListenerLink;
+    ::Link m_aKeyListenerLink;
+    bool m_bEventListener;
+    bool m_bKeyListener;
+
+    DECL_LINK(eventListenerHandler, ::VclSimpleEvent const *);
+
+    DECL_LINK(keyListenerHandler, ::VclSimpleEvent const *);
+
+    void callTopWindowListeners(
+        ::VclSimpleEvent const * pEvent,
+        void (SAL_CALL css::awt::XTopWindowListener::* pFn)(
+            css::lang::EventObject const &));
+
+    long callKeyHandlers(::VclSimpleEvent const * pEvent, bool bPressed);
+
+    void callFocusListeners(::VclSimpleEvent const * pEvent, bool bGained);
+
+protected:
+    ::osl::Mutex&   GetMutex() { return maMutex; }
+
+    virtual void SAL_CALL disposing();
+
+    Window* ImplCreateWindow( VCLXWindow** ppNewComp, const css::awt::WindowDescriptor& rDescriptor, Window* pParent, WinBits nWinBits );
+    css::uno::Reference< css::awt::XWindowPeer > ImplCreateWindow( const css::awt::WindowDescriptor& Descriptor, WinBits nWinBits );
+
+public:
+
+    VCLXToolkit();
+    ~VCLXToolkit();
+
+    // css::awt::XToolkitExperimental
+    css::uno::Reference< css::awt::XDevice >      SAL_CALL createScreenCompatibleDeviceUsingBuffer( sal_Int32 Width, sal_Int32 Height, sal_Int32 ScaleNumerator, sal_Int32 ScaleDenominator, sal_Int32 XOffset, sal_Int32 YOffset, sal_Int64 AddressOfMemoryBufferForSharedArrayWrapper ) throw
+(css::uno::RuntimeException);
+
+    // css::awt::XToolkit
+    css::uno::Reference< css::awt::XWindowPeer >  SAL_CALL getDesktopWindow(  ) throw(css::uno::RuntimeException);
+    css::awt::Rectangle                                        SAL_CALL getWorkArea(  ) throw(css::uno::RuntimeException);
+    css::uno::Reference< css::awt::XWindowPeer >  SAL_CALL createWindow( const css::awt::WindowDescriptor& Descriptor ) throw(css::lang::IllegalArgumentException, css::uno::RuntimeException);
+    css::uno::Sequence< css::uno::Reference< css::awt::XWindowPeer > > SAL_CALL createWindows( const css::uno::Sequence< css::awt::WindowDescriptor >& Descriptors ) throw(css::lang::IllegalArgumentException, css::uno::RuntimeException);
+    css::uno::Reference< css::awt::XDevice >      SAL_CALL createScreenCompatibleDevice( sal_Int32 Width, sal_Int32 Height ) throw
+(css::uno::RuntimeException);
+    css::uno::Reference< css::awt::XRegion >      SAL_CALL createRegion(  ) throw(css::uno::RuntimeException);
+
+    // css::awt::XSystemChildFactory
+    css::uno::Reference< css::awt::XWindowPeer > SAL_CALL createSystemChild( const css::uno::Any& Parent, const css::uno::Sequence< sal_Int8 >& ProcessId, sal_Int16 SystemType ) throw(css::uno::RuntimeException);
+
+    // css::awt::XMessageBoxFactory
+    virtual css::uno::Reference< css::awt::XMessageBox > SAL_CALL createMessageBox( const css::uno::Reference< css::awt::XWindowPeer >& aParent, css::awt::MessageBoxType eType, ::sal_Int32 aButtons, const OUString& aTitle, const OUString& aMessage ) throw (css::uno::RuntimeException);
+
+    // css::awt::XDataTransfer
+    css::uno::Reference< css::datatransfer::dnd::XDragGestureRecognizer > SAL_CALL getDragGestureRecognizer( const css::uno::Reference< css::awt::XWindow >& window ) throw(css::uno::RuntimeException);
+    css::uno::Reference< css::datatransfer::dnd::XDragSource > SAL_CALL getDragSource( const css::uno::Reference< css::awt::XWindow >& window ) throw(css::uno::RuntimeException);
+    css::uno::Reference< css::datatransfer::dnd::XDropTarget > SAL_CALL getDropTarget( const css::uno::Reference< css::awt::XWindow >& window ) throw(css::uno::RuntimeException);
+    css::uno::Reference< css::datatransfer::clipboard::XClipboard > SAL_CALL getClipboard( const OUString& clipboardName ) throw(css::uno::RuntimeException);
+
+    // css::lang::XServiceInfo
+    OUString SAL_CALL getImplementationName(  ) throw(css::uno::RuntimeException);
+    sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) throw(css::uno::RuntimeException);
+    css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames(  ) throw(css::uno::RuntimeException);
+
+    // css::awt::XExtendedToolkit:
+
+    virtual ::sal_Int32 SAL_CALL getTopWindowCount()
+        throw (css::uno::RuntimeException);
+
+    virtual css::uno::Reference< css::awt::XTopWindow >
+    SAL_CALL getTopWindow(::sal_Int32 nIndex)
+        throw (css::uno::RuntimeException);
+
+    virtual css::uno::Reference< css::awt::XTopWindow >
+    SAL_CALL getActiveTopWindow()
+        throw (css::uno::RuntimeException);
+
+    virtual void SAL_CALL addTopWindowListener(
+        css::uno::Reference<
+        css::awt::XTopWindowListener > const & rListener)
+        throw (css::uno::RuntimeException);
+
+    virtual void SAL_CALL removeTopWindowListener(
+        css::uno::Reference<
+        css::awt::XTopWindowListener > const & rListener)
+        throw (css::uno::RuntimeException);
+
+    virtual void SAL_CALL addKeyHandler(
+        css::uno::Reference<
+        css::awt::XKeyHandler > const & rHandler)
+        throw (css::uno::RuntimeException);
+
+    virtual void SAL_CALL removeKeyHandler(
+        css::uno::Reference<
+        css::awt::XKeyHandler > const & rHandler)
+        throw (css::uno::RuntimeException);
+
+    virtual void SAL_CALL addFocusListener(
+        css::uno::Reference<
+        css::awt::XFocusListener > const & rListener)
+        throw (css::uno::RuntimeException);
+
+    virtual void SAL_CALL removeFocusListener(
+        css::uno::Reference<
+        css::awt::XFocusListener > const & rListener)
+        throw (css::uno::RuntimeException);
+
+    virtual void SAL_CALL fireFocusGained(
+        css::uno::Reference<
+        css::uno::XInterface > const & source)
+        throw (css::uno::RuntimeException);
+
+    virtual void SAL_CALL fireFocusLost(
+        css::uno::Reference<
+        css::uno::XInterface > const & source)
+        throw (css::uno::RuntimeException);
+
+    // css::awt::XReschedule:
+    virtual void SAL_CALL reschedule()
+        throw (css::uno::RuntimeException);
+};
+
+WinBits ImplGetWinBits( sal_uInt32 nComponentAttribs, sal_uInt16 nCompType )
 {
     WinBits nWinBits = 0;
 
@@ -407,10 +557,6 @@ namespace
     }
 }
 
-//  ----------------------------------------------------
-//  class VCLXToolkit
-//  ----------------------------------------------------
-
 static sal_Int32                            nVCLToolkitInstanceCount = 0;
 static bool                                 bInitedByVCLToolkit = false;
 
@@ -1387,7 +1533,7 @@ sal_Bool VCLXToolkit::supportsService( const OUString& rServiceName ) throw(::co
 
 ::com::sun::star::uno::Sequence< OUString > VCLXToolkit::getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException)
 {
-    OUString aServiceName( OUString::createFromAscii( szServiceName2_Toolkit ) );
+    OUString aServiceName("com.sun.star.awt.Toolkit");
     return ::com::sun::star::uno::Sequence< OUString >( &aServiceName, 1);
 }
 
@@ -1743,4 +1889,14 @@ void SAL_CALL VCLXToolkit::reschedule()
     Application::Reschedule(true);
 }
 
+}
+
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+stardiv_Toolkit_VCLXToolkit_get_implementation(
+    css::uno::XComponentContext *,
+    css::uno::Sequence<css::uno::Any> const &)
+{
+    return cppu::acquire(new VCLXToolkit());
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/toolkit/source/helper/registerservices.cxx b/toolkit/source/helper/registerservices.cxx
index 64525d9..a4c1e85 100644
--- a/toolkit/source/helper/registerservices.cxx
+++ b/toolkit/source/helper/registerservices.cxx
@@ -27,7 +27,6 @@
 #include <osl/mutex.hxx>
 #include <toolkit/helper/servicenames.hxx>
 #include <toolkit/helper/macros.hxx>
-#include <toolkit/awt/vclxtoolkit.hxx>
 #include <toolkit/awt/vclxmenu.hxx>
 #include <toolkit/awt/vclxpointer.hxx>
 #include <toolkit/awt/vclxprinter.hxx>
@@ -100,7 +99,6 @@ namespace toolkit
 
 using namespace toolkit;
 
-IMPL_CREATEINSTANCE( VCLXToolkit )
 IMPL_CREATEINSTANCE( StdTabController )
 IMPL_CREATEINSTANCE( StdTabControllerModel )
 IMPL_CREATEINSTANCE( UnoControlContainer )
@@ -137,7 +135,6 @@ TOOLKIT_DLLPUBLIC void* SAL_CALL tk_component_getFactory( const sal_Char* sImple
     {
         ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xServiceFactory =
             static_cast< ::com::sun::star::lang::XMultiServiceFactory* >( _pServiceManager );
-        GET_FACTORY( VCLXToolkit, szServiceName_Toolkit, szServiceName2_Toolkit )
         GET_FACTORY( VCLXPopupMenu, szServiceName_PopupMenu, szServiceName2_PopupMenu )
         GET_FACTORY( VCLXMenuBar, szServiceName_MenuBar, szServiceName2_MenuBar )
         GET_FACTORY( VCLXPointer, szServiceName_Pointer, szServiceName2_Pointer )
diff --git a/toolkit/util/tk.component b/toolkit/util/tk.component
index 5a0fbaa..cfaa1b7 100644
--- a/toolkit/util/tk.component
+++ b/toolkit/util/tk.component
@@ -345,7 +345,8 @@
     <service name="com.sun.star.awt.PrinterServer"/>
     <service name="stardiv.vcl.PrinterServer"/>
   </implementation>
-  <implementation name="stardiv.Toolkit.VCLXToolkit">
+  <implementation name="stardiv.Toolkit.VCLXToolkit"
+      constructor="stardiv_Toolkit_VCLXToolkit_get_implementation">
     <service name="com.sun.star.awt.Toolkit"/>
     <service name="stardiv.vcl.VclToolkit"/>
   </implementation>


More information about the Libreoffice-commits mailing list