summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatúš Kukan <matus.kukan@collabora.com>2014-01-08 17:30:34 +0100
committerMatúš Kukan <matus.kukan@collabora.com>2014-01-10 10:03:25 +0100
commitba9ddcd7b31163b896fe8e6eae8ce6f1662916bd (patch)
tree7299e52d61be9cb83d5229922d120b5fffded8c8
parent489a152aea904cf82101d13c4bd82cd6acd041b0 (diff)
svt: Use constructor feature for Wizard.
Change-Id: I25e31c57c58e26e4de9d0ccc63ae1f6f0c86505b
-rw-r--r--svtools/source/uno/miscservices.cxx20
-rw-r--r--svtools/source/uno/unowizard.hxx108
-rw-r--r--svtools/source/uno/wizard/unowizard.cxx117
-rw-r--r--svtools/util/svt.component3
4 files changed, 86 insertions, 162 deletions
diff --git a/svtools/source/uno/miscservices.cxx b/svtools/source/uno/miscservices.cxx
index 184146522470..90feccf47473 100644
--- a/svtools/source/uno/miscservices.cxx
+++ b/svtools/source/uno/miscservices.cxx
@@ -27,7 +27,6 @@
#include <osl/diagnose.h>
#include <uno/mapping.hxx>
#include "hatchwindow.hxx"
-#include "unowizard.hxx"
#include "comphelper/servicedecl.hxx"
@@ -51,20 +50,6 @@ extern sdecl::ServiceDecl const serviceDecl;
Reference< XInterface > SAL_CALL ImplName##_CreateInstance( const Reference< XMultiServiceFactory >& ); \
}
-namespace
-{
- static const struct ::cppu::ImplementationEntry s_aServiceEntries[] =
- {
- {
- ::svt::uno::Wizard::Create,
- ::svt::uno::Wizard::getImplementationName_static,
- ::svt::uno::Wizard::getSupportedServiceNames_static,
- ::cppu::createSingleComponentFactory, NULL, 0
- },
- { 0, 0, 0, 0, 0, 0 }
- };
-}
-
DECLARE_CREATEINSTANCE_NAMESPACE( svt, OAddressBookSourceDialogUno )
extern "C"
@@ -98,11 +83,6 @@ SAL_DLLPUBLIC_EXPORT void * SAL_CALL svt_component_getFactory (
static_cast<css::lang::XMultiServiceFactory *>(_pServiceManager),
static_cast<css::registry::XRegistryKey *>(pRegistryKey),
unographic::serviceDecl );
- if ( !pResult )
- pResult = cppu::component_getFactoryHelper(pImplementationName,
- _pServiceManager,
- pRegistryKey,
- s_aServiceEntries);
}
if ( xFactory.is() )
diff --git a/svtools/source/uno/unowizard.hxx b/svtools/source/uno/unowizard.hxx
deleted file mode 100644
index 2108fe2a45e2..000000000000
--- a/svtools/source/uno/unowizard.hxx
+++ /dev/null
@@ -1,108 +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_SVTOOLS_SOURCE_UNO_UNOWIZARD_HXX
-#define INCLUDED_SVTOOLS_SOURCE_UNO_UNOWIZARD_HXX
-
-#include "svtools/genericunodialog.hxx"
-
-#include <com/sun/star/ui/dialogs/XWizard.hpp>
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include <com/sun/star/ui/dialogs/XWizardController.hpp>
-
-#include <cppuhelper/implbase1.hxx>
-
-//......................................................................................................................
-namespace svt { namespace uno
-{
-//......................................................................................................................
-
- //==================================================================================================================
- //= Wizard - declaration
- //==================================================================================================================
- typedef ::cppu::ImplInheritanceHelper1 < ::svt::OGenericUnoDialog
- , ::com::sun::star::ui::dialogs::XWizard
- > Wizard_Base;
- class Wizard;
- typedef ::comphelper::OPropertyArrayUsageHelper< Wizard > Wizard_PBase;
- class Wizard : public Wizard_Base
- , public Wizard_PBase
- {
- public:
- Wizard( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& i_rContext );
-
- // ::com::sun::star::lang::XServiceInfo - static version
- static OUString SAL_CALL getImplementationName_static() throw(::com::sun::star::uno::RuntimeException);
- static ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames_static() throw(::com::sun::star::uno::RuntimeException);
- static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL Create( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& i_rContext );
-
- protected:
- // ::com::sun::star::lang::XServiceInfo
- virtual OUString SAL_CALL getImplementationName() throw(::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException);
-
- // ::com::sun::star::beans::XPropertySet
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() throw(::com::sun::star::uno::RuntimeException);
- virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper();
-
- // OPropertyArrayUsageHelper
- virtual ::cppu::IPropertyArrayHelper* createArrayHelper( ) const;
-
- // ::com::sun::star::ui::dialogs::XWizard
- virtual OUString SAL_CALL getHelpURL() throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL setHelpURL( const OUString& _helpurl ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > SAL_CALL getDialogWindow() throw (::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::ui::dialogs::XWizardPage > SAL_CALL getCurrentPage( ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL enableButton( ::sal_Int16 WizardButton, ::sal_Bool Enable ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL setDefaultButton( ::sal_Int16 WizardButton ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::sal_Bool SAL_CALL travelNext( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::sal_Bool SAL_CALL travelPrevious( ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL enablePage( ::sal_Int16 PageID, ::sal_Bool Enable ) throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::util::InvalidStateException, ::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL updateTravelUI( ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::sal_Bool SAL_CALL advanceTo( ::sal_Int16 PageId ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::sal_Bool SAL_CALL goBackTo( ::sal_Int16 PageId ) throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL activatePath( ::sal_Int16 PathIndex, ::sal_Bool Final ) throw (::com::sun::star::container::NoSuchElementException, ::com::sun::star::util::InvalidStateException, ::com::sun::star::uno::RuntimeException);
-
- // ::com::sun::star::ui::dialogs::XExecutableDialog
- virtual void SAL_CALL setTitle( const OUString& aTitle ) throw (::com::sun::star::uno::RuntimeException);
- virtual ::sal_Int16 SAL_CALL execute( ) throw (::com::sun::star::uno::RuntimeException);
-
- // ::com::sun::star::lang::XInitialization
- virtual void SAL_CALL initialize( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >& aArguments ) throw (::com::sun::star::uno::Exception, ::com::sun::star::uno::RuntimeException);
-
- protected:
- ~Wizard();
-
- protected:
- virtual Dialog* createDialog( Window* _pParent );
- virtual void destroyDialog();
-
- private:
- ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< sal_Int16 > > m_aWizardSteps;
- ::com::sun::star::uno::Reference< ::com::sun::star::ui::dialogs::XWizardController > m_xController;
- OUString m_sHelpURL;
- };
-
-//......................................................................................................................
-} } // namespace svt::uno
-//......................................................................................................................
-
-#endif // INCLUDED_SVTOOLS_SOURCE_UNO_UNOWIZARD_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svtools/source/uno/wizard/unowizard.cxx b/svtools/source/uno/wizard/unowizard.cxx
index 024d55596be7..5f8d00001b37 100644
--- a/svtools/source/uno/wizard/unowizard.cxx
+++ b/svtools/source/uno/wizard/unowizard.cxx
@@ -18,26 +18,29 @@
*/
-#include "../unowizard.hxx"
#include "wizardshell.hxx"
#include <com/sun/star/lang/XInitialization.hpp>
#include <com/sun/star/beans/XPropertySetInfo.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>
#include <com/sun/star/ucb/AlreadyInitializedException.hpp>
+#include <com/sun/star/ui/dialogs/XWizard.hpp>
#include <com/sun/star/ui/dialogs/XWizardController.hpp>
#include <com/sun/star/ui/dialogs/WizardButton.hpp>
+#include <cppuhelper/implbase1.hxx>
+#include <svtools/genericunodialog.hxx>
#include <tools/diagnose_ex.h>
+#include <rtl/ref.hxx>
#include <rtl/strbuf.hxx>
#include <osl/mutex.hxx>
#include <vcl/svapp.hxx>
#include <tools/urlobj.hxx>
-//......................................................................................................................
-namespace svt { namespace uno
-{
-//......................................................................................................................
+using namespace ::com::sun::star;
+using namespace ::svt::uno;
+
+namespace {
using ::com::sun::star::uno::Reference;
using ::com::sun::star::uno::XInterface;
@@ -85,10 +88,63 @@ namespace svt { namespace uno
}
}
- //==================================================================================================================
- //= Wizard - implementation
- //==================================================================================================================
- //------------------------------------------------------------------------------------------------------------------
+ typedef ::cppu::ImplInheritanceHelper1 < ::svt::OGenericUnoDialog
+ , ui::dialogs::XWizard
+ > Wizard_Base;
+ class Wizard;
+ typedef ::comphelper::OPropertyArrayUsageHelper< Wizard > Wizard_PBase;
+ class Wizard : public Wizard_Base
+ , public Wizard_PBase
+ {
+ public:
+ Wizard( const uno::Reference< uno::XComponentContext >& i_rContext );
+
+ // lang::XServiceInfo
+ virtual OUString SAL_CALL getImplementationName() throw(uno::RuntimeException);
+ virtual uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw(uno::RuntimeException);
+
+ // beans::XPropertySet
+ virtual uno::Reference< beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() throw(uno::RuntimeException);
+ virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper();
+
+ // OPropertyArrayUsageHelper
+ virtual ::cppu::IPropertyArrayHelper* createArrayHelper( ) const;
+
+ // ui::dialogs::XWizard
+ virtual OUString SAL_CALL getHelpURL() throw (uno::RuntimeException);
+ virtual void SAL_CALL setHelpURL( const OUString& _helpurl ) throw (uno::RuntimeException);
+ virtual uno::Reference< awt::XWindow > SAL_CALL getDialogWindow() throw (uno::RuntimeException);
+ virtual uno::Reference< ui::dialogs::XWizardPage > SAL_CALL getCurrentPage( ) throw (uno::RuntimeException);
+ virtual void SAL_CALL enableButton( ::sal_Int16 WizardButton, ::sal_Bool Enable ) throw (uno::RuntimeException);
+ virtual void SAL_CALL setDefaultButton( ::sal_Int16 WizardButton ) throw (uno::RuntimeException);
+ virtual ::sal_Bool SAL_CALL travelNext( ) throw (uno::RuntimeException);
+ virtual ::sal_Bool SAL_CALL travelPrevious( ) throw (uno::RuntimeException);
+ virtual void SAL_CALL enablePage( ::sal_Int16 PageID, ::sal_Bool Enable ) throw (container::NoSuchElementException, util::InvalidStateException, uno::RuntimeException);
+ virtual void SAL_CALL updateTravelUI( ) throw (uno::RuntimeException);
+ virtual ::sal_Bool SAL_CALL advanceTo( ::sal_Int16 PageId ) throw (uno::RuntimeException);
+ virtual ::sal_Bool SAL_CALL goBackTo( ::sal_Int16 PageId ) throw (uno::RuntimeException);
+ virtual void SAL_CALL activatePath( ::sal_Int16 PathIndex, ::sal_Bool Final ) throw (container::NoSuchElementException, util::InvalidStateException, uno::RuntimeException);
+
+ // ui::dialogs::XExecutableDialog
+ virtual void SAL_CALL setTitle( const OUString& aTitle ) throw (uno::RuntimeException);
+ virtual ::sal_Int16 SAL_CALL execute( ) throw (uno::RuntimeException);
+
+ // lang::XInitialization
+ virtual void SAL_CALL initialize( const uno::Sequence< uno::Any >& aArguments ) throw (uno::Exception, uno::RuntimeException);
+
+ protected:
+ ~Wizard();
+
+ protected:
+ virtual Dialog* createDialog( Window* _pParent );
+ virtual void destroyDialog();
+
+ private:
+ uno::Sequence< uno::Sequence< sal_Int16 > > m_aWizardSteps;
+ uno::Reference< ui::dialogs::XWizardController > m_xController;
+ OUString m_sHelpURL;
+ };
+
Wizard::Wizard( const Reference< XComponentContext >& _rxContext )
:Wizard_Base( _rxContext )
{
@@ -108,12 +164,6 @@ namespace svt { namespace uno
}
//--------------------------------------------------------------------
- Reference< XInterface > SAL_CALL Wizard::Create( const Reference< XComponentContext >& _rxContext )
- {
- return *(new Wizard( _rxContext ) );
- }
-
- //--------------------------------------------------------------------
namespace
{
static void lcl_checkPaths( const Sequence< Sequence< sal_Int16 > >& i_rPaths, const Reference< XInterface >& i_rContext )
@@ -236,13 +286,13 @@ namespace svt { namespace uno
}
//--------------------------------------------------------------------
- OUString SAL_CALL Wizard::getImplementationName_static() throw(RuntimeException)
+ OUString SAL_CALL Wizard::getImplementationName() throw(RuntimeException)
{
- return OUString( "com.sun.star.comp.svtools.uno.Wizard" );
+ return OUString("com.sun.star.comp.svtools.uno.Wizard");
}
//--------------------------------------------------------------------
- Sequence< OUString > SAL_CALL Wizard::getSupportedServiceNames_static() throw(RuntimeException)
+ Sequence< OUString > SAL_CALL Wizard::getSupportedServiceNames() throw(RuntimeException)
{
Sequence< OUString > aServices(1);
aServices[0] = "com.sun.star.ui.dialogs.Wizard";
@@ -250,18 +300,6 @@ namespace svt { namespace uno
}
//--------------------------------------------------------------------
- OUString SAL_CALL Wizard::getImplementationName() throw(RuntimeException)
- {
- return getImplementationName_static();
- }
-
- //--------------------------------------------------------------------
- Sequence< OUString > SAL_CALL Wizard::getSupportedServiceNames() throw(RuntimeException)
- {
- return getSupportedServiceNames_static();
- }
-
- //--------------------------------------------------------------------
Reference< XPropertySetInfo > SAL_CALL Wizard::getPropertySetInfo() throw(RuntimeException)
{
return createPropertySetInfo( getInfoHelper() );
@@ -457,8 +495,21 @@ namespace svt { namespace uno
return Wizard_Base::OGenericUnoDialog::execute();
}
-//......................................................................................................................
-} } // namespace svt::uno
-//......................................................................................................................
+}
+
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
+com_sun_star_comp_svtools_uno_Wizard_get_implementation(
+ css::uno::XComponentContext *context,
+ uno_Sequence * arguments)
+{
+ assert(arguments != 0);
+ rtl::Reference<Wizard> x(new Wizard(context));
+ css::uno::Sequence<css::uno::Any> aArgs(
+ reinterpret_cast<css::uno::Any *>(arguments->elements),
+ arguments->nElements);
+ x->initialize(aArgs);
+ x->acquire();
+ return static_cast<cppu::OWeakObject *>(x.get());
+}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svtools/util/svt.component b/svtools/util/svt.component
index a4028c6a979d..759657ec15ba 100644
--- a/svtools/util/svt.component
+++ b/svtools/util/svt.component
@@ -30,7 +30,8 @@
<implementation name="com.sun.star.comp.svtools.OAddressBookSourceDialogUno">
<service name="com.sun.star.ui.AddressBookSourceDialog"/>
</implementation>
- <implementation name="com.sun.star.comp.svtools.uno.Wizard">
+ <implementation name="com.sun.star.comp.svtools.uno.Wizard"
+ constructor="com_sun_star_comp_svtools_uno_Wizard_get_implementation">
<service name="com.sun.star.ui.dialogs.Wizard"/>
</implementation>
<implementation name="com.sun.star.graphic.GraphicObject">