diff options
author | Matúš Kukan <matus.kukan@collabora.com> | 2014-01-15 11:35:06 +0100 |
---|---|---|
committer | Matúš Kukan <matus.kukan@collabora.com> | 2014-01-15 15:11:52 +0100 |
commit | 21bc6014f7d334c84288c748b8012484dcbe4ca7 (patch) | |
tree | 805f515ec01b739a2ac9e9f793fee1d9c55ff12d /sfx2 | |
parent | 3b5dedd93cd5a6d274a869ccfc7a636a1e4d1245 (diff) |
sfx: Use constructor feature for IFrameObject.
Change-Id: If992d847e385bd7968a4d8e491f957f8afcc9377
Diffstat (limited to 'sfx2')
-rw-r--r-- | sfx2/source/appl/appuno.cxx | 2 | ||||
-rw-r--r-- | sfx2/source/doc/iframe.cxx | 114 | ||||
-rw-r--r-- | sfx2/source/inc/iframe.hxx | 86 | ||||
-rw-r--r-- | sfx2/util/sfx.component | 3 |
4 files changed, 94 insertions, 111 deletions
diff --git a/sfx2/source/appl/appuno.cxx b/sfx2/source/appl/appuno.cxx index 570b7a0dc650..5699f8992d7a 100644 --- a/sfx2/source/appl/appuno.cxx +++ b/sfx2/source/appl/appuno.cxx @@ -28,7 +28,6 @@ #include "eventsupplier.hxx" #include "fltoptint.hxx" #include "frmload.hxx" -#include "iframe.hxx" #include "objshimp.hxx" #include <sfx2/app.hxx> #include <sfx2/brokenpackageint.hxx> @@ -1811,7 +1810,6 @@ SFX2_DLLPUBLIC void* SAL_CALL sfx_component_getFactory( IF_NAME_CREATECOMPONENTFACTORY( TestMouseClickHandler ) #endif IF_NAME_CREATECOMPONENTFACTORY( OPackageStructureCreator ) - IF_NAME_CREATECOMPONENTFACTORY( ::sfx2::IFrameObject ) IF_NAME_CREATECOMPONENTFACTORY( ::sfx2::OwnSubFilterService ) if ( ::comp_SfxDocumentMetaData::_getImplementationName().equals( OUString::createFromAscii( pImplementationName ) ) ) diff --git a/sfx2/source/doc/iframe.cxx b/sfx2/source/doc/iframe.cxx index 1efcf32eaf6f..d4d5d5cdcf82 100644 --- a/sfx2/source/doc/iframe.cxx +++ b/sfx2/source/doc/iframe.cxx @@ -17,28 +17,94 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <sal/config.h> -#include "iframe.hxx" -#include <sfx2/sfxdlg.hxx> -#include <sfx2/sfxsids.hrc> -#include <com/sun/star/frame/XDispatchProvider.hpp> #include <com/sun/star/frame/XDispatch.hpp> #include <com/sun/star/frame/Frame.hpp> +#include <com/sun/star/frame/XFrame2.hpp> +#include <com/sun/star/frame/XSynchronousFrameLoader.hpp> #include <com/sun/star/util/URLTransformer.hpp> #include <com/sun/star/util/XURLTransformer.hpp> - -#include <comphelper/processfactory.hxx> -#include <tools/urlobj.hxx> -#include <tools/debug.hxx> -#include <rtl/ustring.hxx> -#include <toolkit/helper/vclunohelper.hxx> +#include <com/sun/star/util/XCloseable.hpp> +#include <com/sun/star/lang/XEventListener.hpp> +#include <com/sun/star/lang/XServiceInfo.hpp> +#include <com/sun/star/beans/XPropertySet.hpp> +#include <com/sun/star/ui/dialogs/XExecutableDialog.hpp> +#include <com/sun/star/embed/XEmbeddedObject.hpp> + +#include <cppuhelper/implbase6.hxx> +#include <cppuhelper/supportsservice.hxx> +#include <rtl/ref.hxx> #include <svtools/miscopt.hxx> +#include <svl/ownlist.hxx> +#include <svl/itemprop.hxx> +#include <sfx2/frmdescr.hxx> +#include <sfx2/sfxdlg.hxx> +#include <sfx2/sfxsids.hrc> +#include <toolkit/helper/vclunohelper.hxx> #include <vcl/window.hxx> using namespace ::com::sun::star; -namespace sfx2 +namespace { + +class IFrameObject : public ::cppu::WeakImplHelper6 < + css::util::XCloseable, + css::lang::XEventListener, + css::frame::XSynchronousFrameLoader, + css::ui::dialogs::XExecutableDialog, + css::lang::XServiceInfo, + css::beans::XPropertySet > { + css::uno::Reference < css::uno::XComponentContext > mxContext; + css::uno::Reference < css::frame::XFrame2 > mxFrame; + css::uno::Reference < css::embed::XEmbeddedObject > mxObj; + SfxItemPropertyMap maPropMap; + SfxFrameDescriptor maFrmDescr; + +public: + IFrameObject( const css::uno::Reference < css::uno::XComponentContext>& rxContext, + const css::uno::Sequence< css::uno::Any >& aArguments ) + throw (css::uno::Exception, css::uno::RuntimeException); + ~IFrameObject(); + + virtual OUString SAL_CALL getImplementationName() + throw (css::uno::RuntimeException) + { + return OUString("com.sun.star.comp.sfx2.IFrameObject"); + } + + 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.SpecialEmbeddedObject"); + return aSeq; + } + + virtual sal_Bool SAL_CALL load( const css::uno::Sequence < css::beans::PropertyValue >& lDescriptor, + const css::uno::Reference < css::frame::XFrame >& xFrame ) throw( css::uno::RuntimeException ); + virtual void SAL_CALL cancel() throw( css::uno::RuntimeException ); + virtual void SAL_CALL close( sal_Bool bDeliverOwnership ) throw( css::util::CloseVetoException, css::uno::RuntimeException ); + virtual void SAL_CALL addCloseListener( const css::uno::Reference < css::util::XCloseListener >& xListener ) throw( css::uno::RuntimeException ); + virtual void SAL_CALL removeCloseListener( const css::uno::Reference < css::util::XCloseListener >& xListener ) throw( css::uno::RuntimeException ); + virtual void SAL_CALL disposing( const css::lang::EventObject& aEvent ) throw (css::uno::RuntimeException) ; + virtual void SAL_CALL setTitle( const OUString& aTitle ) throw (css::uno::RuntimeException); + virtual ::sal_Int16 SAL_CALL execute( ) throw (css::uno::RuntimeException); + virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() throw( css::uno::RuntimeException ); + virtual void SAL_CALL addPropertyChangeListener(const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > & aListener) throw( css::uno::RuntimeException ); + virtual void SAL_CALL removePropertyChangeListener(const OUString& aPropertyName, const css::uno::Reference< css::beans::XPropertyChangeListener > & aListener) throw( css::uno::RuntimeException ); + virtual void SAL_CALL addVetoableChangeListener(const OUString& aPropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > & aListener) throw( css::uno::RuntimeException ); + virtual void SAL_CALL removeVetoableChangeListener(const OUString& aPropertyName, const css::uno::Reference< css::beans::XVetoableChangeListener > & aListener) throw( css::uno::RuntimeException ); + virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const css::uno::Any& aValue ) throw (css::beans::UnknownPropertyException, css::beans::PropertyVetoException, css::lang::IllegalArgumentException, css::lang::WrappedTargetException, css::uno::RuntimeException); + virtual css::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) throw (css::beans::UnknownPropertyException, css::lang::WrappedTargetException, css::uno::RuntimeException); +}; class IFrameWindow_Impl : public Window { @@ -92,26 +158,20 @@ const SfxItemPropertyMapEntry* lcl_GetIFramePropertyMap_Impl() return aIFramePropertyMap_Impl; } -SFX_IMPL_XSERVICEINFO_CTX( IFrameObject, "com.sun.star.embed.SpecialEmbeddedObject", "com.sun.star.comp.sfx2.IFrameObject" ) -SFX_IMPL_SINGLEFACTORY( IFrameObject ); - -IFrameObject::IFrameObject( const uno::Reference < uno::XComponentContext >& rxContext ) +IFrameObject::IFrameObject( const uno::Reference < uno::XComponentContext >& rxContext, + const uno::Sequence< uno::Any >& aArguments ) + throw ( uno::Exception, uno::RuntimeException ) : mxContext( rxContext ) , maPropMap( lcl_GetIFramePropertyMap_Impl() ) { + if ( aArguments.getLength() ) + aArguments[0] >>= mxObj; } IFrameObject::~IFrameObject() { } - -void SAL_CALL IFrameObject::initialize( const uno::Sequence< uno::Any >& aArguments ) throw ( uno::Exception, uno::RuntimeException ) -{ - if ( aArguments.getLength() ) - aArguments[0] >>= mxObj; -} - sal_Bool SAL_CALL IFrameObject::load( const uno::Sequence < com::sun::star::beans::PropertyValue >& /*lDescriptor*/, const uno::Reference < frame::XFrame >& xFrame ) @@ -367,4 +427,14 @@ void SAL_CALL IFrameObject::setTitle( const OUString& ) throw (::com::sun::star: } +extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL +com_sun_star_comp_sfx2_IFrameObject_get_implementation( + css::uno::XComponentContext *context, + css::uno::Sequence<css::uno::Any> const &arguments) +{ + rtl::Reference<IFrameObject> x(new IFrameObject(context, arguments)); + x->acquire(); + return static_cast<cppu::OWeakObject *>(x.get()); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sfx2/source/inc/iframe.hxx b/sfx2/source/inc/iframe.hxx deleted file mode 100644 index 5e2f36244707..000000000000 --- a/sfx2/source/inc/iframe.hxx +++ /dev/null @@ -1,86 +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_SFX2_SOURCE_INC_IFRAME_HXX -#define INCLUDED_SFX2_SOURCE_INC_IFRAME_HXX - -#include <com/sun/star/uno/Reference.hxx> -#include <com/sun/star/uno/Sequence.hxx> -#include <com/sun/star/util/XCloseable.hpp> -#include <com/sun/star/lang/XEventListener.hpp> -#include <com/sun/star/frame/XSynchronousFrameLoader.hpp> -#include <com/sun/star/beans/XPropertySet.hpp> -#include <com/sun/star/ui/dialogs/XExecutableDialog.hpp> -#include <com/sun/star/frame/XFrame2.hpp> -#include <com/sun/star/lang/XInitialization.hpp> -#include <com/sun/star/embed/XEmbeddedObject.hpp> -#include <cppuhelper/implbase6.hxx> - -#include <rtl/ustring.hxx> -#include <svl/ownlist.hxx> -#include <svl/itemprop.hxx> - -#include <sfx2/sfxuno.hxx> -#include <sfx2/frmdescr.hxx> - -namespace sfx2 -{ - -class IFrameObject : public ::cppu::WeakImplHelper6 < - com::sun::star::util::XCloseable, - com::sun::star::lang::XEventListener, - com::sun::star::frame::XSynchronousFrameLoader, - com::sun::star::ui::dialogs::XExecutableDialog, - com::sun::star::lang::XInitialization, - com::sun::star::beans::XPropertySet > -{ - com::sun::star::uno::Reference < com::sun::star::uno::XComponentContext > mxContext; - com::sun::star::uno::Reference < com::sun::star::frame::XFrame2 > mxFrame; - com::sun::star::uno::Reference < com::sun::star::embed::XEmbeddedObject > mxObj; - SfxItemPropertyMap maPropMap; - SfxFrameDescriptor maFrmDescr; - - IFrameObject( const com::sun::star::uno::Reference < com::sun::star::uno::XComponentContext>& rxContext ); - ~IFrameObject(); - - virtual sal_Bool SAL_CALL load( const com::sun::star::uno::Sequence < com::sun::star::beans::PropertyValue >& lDescriptor, - const com::sun::star::uno::Reference < com::sun::star::frame::XFrame >& xFrame ) throw( com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL cancel() throw( com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL close( sal_Bool bDeliverOwnership ) throw( com::sun::star::util::CloseVetoException, com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL addCloseListener( const com::sun::star::uno::Reference < com::sun::star::util::XCloseListener >& xListener ) throw( com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL removeCloseListener( const com::sun::star::uno::Reference < com::sun::star::util::XCloseListener >& xListener ) throw( com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL disposing( const com::sun::star::lang::EventObject& aEvent ) throw (com::sun::star::uno::RuntimeException) ; - 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); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > SAL_CALL getPropertySetInfo() throw( ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL addPropertyChangeListener(const OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener > & aListener) throw( ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL removePropertyChangeListener(const OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertyChangeListener > & aListener) throw( ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL addVetoableChangeListener(const OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener > & aListener) throw( ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL removeVetoableChangeListener(const OUString& aPropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XVetoableChangeListener > & aListener) throw( ::com::sun::star::uno::RuntimeException ); - virtual void SAL_CALL setPropertyValue( const OUString& aPropertyName, const ::com::sun::star::uno::Any& aValue ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); - virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue( const OUString& PropertyName ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException); - 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); -public: - SFX_DECL_XSERVICEINFO -}; - -} -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sfx2/util/sfx.component b/sfx2/util/sfx.component index bd1acd1fe2f5..0cb469fbf4b1 100644 --- a/sfx2/util/sfx.component +++ b/sfx2/util/sfx.component @@ -61,7 +61,8 @@ <implementation name="com.sun.star.comp.sfx2.GlobalEventBroadcaster"> <service name="com.sun.star.frame.GlobalEventBroadcaster"/> </implementation> - <implementation name="com.sun.star.comp.sfx2.IFrameObject"> + <implementation name="com.sun.star.comp.sfx2.IFrameObject" + constructor="com_sun_star_comp_sfx2_IFrameObject_get_implementation"> <service name="com.sun.star.frame.SpecialEmbeddedObject"/> </implementation> <implementation name="com.sun.star.comp.sfx2.PluginObject" |