diff options
Diffstat (limited to 'framework/inc/services/pluginframe.hxx')
-rw-r--r-- | framework/inc/services/pluginframe.hxx | 367 |
1 files changed, 0 insertions, 367 deletions
diff --git a/framework/inc/services/pluginframe.hxx b/framework/inc/services/pluginframe.hxx deleted file mode 100644 index 1cb98cbe38fc..000000000000 --- a/framework/inc/services/pluginframe.hxx +++ /dev/null @@ -1,367 +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 __FRAMEWORK_SERVICES_PLUGINFRAME_HXX_ -#define __FRAMEWORK_SERVICES_PLUGINFRAME_HXX_ - -//_________________________________________________________________________________________________________________ -// my own includes -//_________________________________________________________________________________________________________________ - -#include <services/frame.hxx> - -//_________________________________________________________________________________________________________________ -// interface includes -//_________________________________________________________________________________________________________________ -#include <com/sun/star/mozilla/XPluginInstance.hpp> -#include <com/sun/star/mozilla/XPluginInstancePeer.hpp> -#include <com/sun/star/mozilla/XPluginWindowPeer.hpp> -#include <com/sun/star/io/XInputStream.hpp> -#include <com/sun/star/lang/XInitialization.hpp> -#include <com/sun/star/awt/XWindow.hpp> -#include <com/sun/star/frame/XDispatchResultListener.hpp> -#include <com/sun/star/frame/FeatureStateEvent.hpp> -#include <com/sun/star/lang/EventObject.hpp> - -//_________________________________________________________________________________________________________________ -// other includes -//_________________________________________________________________________________________________________________ - -#include <vcl/threadex.hxx> -#include <unotools/cmdoptions.hxx> - - -//_________________________________________________________________________________________________________________ -// namespace -//_________________________________________________________________________________________________________________ - -namespace framework{ - -//_________________________________________________________________________________________________________________ -// exported const -//_________________________________________________________________________________________________________________ - -//_________________________________________________________________________________________________________________ -// exported definitions -//_________________________________________________________________________________________________________________ - -/*-************************************************************************************************************//** - @short implements an special frame - a plugin frame - @descr - - - @implements XInitialization - XPluginInstance - XDispatchResultListener - @base Frame -*//*-*************************************************************************************************************/ - -class PlugInFrame : public css::lang::XInitialization , - public css::mozilla::XPluginInstance , - public css::frame::XDispatchResultListener , // => XEVENTLISTENER - public Frame // Order of baseclasses is neccessary for right initialization! -{ - //------------------------------------------------------------------------------------------------------------- - // public methods - //------------------------------------------------------------------------------------------------------------- - - public: - - //--------------------------------------------------------------------------------------------------------- - // constructor / destructor - //--------------------------------------------------------------------------------------------------------- - - /*-****************************************************************************************************//** - @short standard constructor to create instance - @descr This constructor initialize a new instance of this class, - and will be set valid values on his member and baseclasses. - - @seealso - - - @param - - @return - - - @onerror - - *//*-*****************************************************************************************************/ - - PlugInFrame( const css::uno::Reference< css::lang::XMultiServiceFactory >& xFactory ); - - /*-****************************************************************************************************//** - @short standard destructor - @descr This method destruct an instance of this class and clear some member. - - @seealso - - - @param - - @return - - - @onerror - - *//*-*****************************************************************************************************/ - - virtual ~PlugInFrame(); - - //--------------------------------------------------------------------------------------------------------- - // XInterface, XTypeProvider, XServiceInfo - //--------------------------------------------------------------------------------------------------------- - - DECLARE_XINTERFACE - DECLARE_XTYPEPROVIDER - DECLARE_XSERVICEINFO - - //--------------------------------------------------------------------------------------------------------- - // XInitialization - //--------------------------------------------------------------------------------------------------------- - - void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& seqArguments ) throw( css::uno::Exception , - css::uno::RuntimeException ); - - //--------------------------------------------------------------------------------------------------------- - // XPluginInstance - //--------------------------------------------------------------------------------------------------------- - - void SAL_CALL start () throw( css::uno::RuntimeException ); - void SAL_CALL implcb_start () throw( css::uno::RuntimeException ); - void SAL_CALL stop () throw( css::uno::RuntimeException ); - void SAL_CALL implcb_stop () throw( css::uno::RuntimeException ); - void SAL_CALL destroy () throw( css::uno::RuntimeException ); - void SAL_CALL implcb_destroy() throw( css::uno::RuntimeException ); - void SAL_CALL createWindow ( const css::uno::Any& aPlatformWindowHandle , - sal_Bool bEmbedded ) throw( css::uno::RuntimeException ); - void SAL_CALL implcb_createWindow ( const css::uno::Any& aPlatformWindowHandle , - sal_Bool bEmbedded ) throw( css::uno::RuntimeException ); - void SAL_CALL newStream ( const ::rtl::OUString& sMIMEDescription, - const ::rtl::OUString& sURL , - const ::rtl::OUString& sFilter , - const css::uno::Reference< css::io::XInputStream >& xStream , - const css::uno::Any& aSessionId ) throw( css::uno::RuntimeException ); - void SAL_CALL implcb_newStream - ( const ::rtl::OUString& sMIMEDescription, - const ::rtl::OUString& sURL , - const ::rtl::OUString& sFilter , - const css::uno::Reference< css::io::XInputStream >& xStream , - const css::uno::Any& aSessionId ) throw( css::uno::RuntimeException ); - void SAL_CALL newURL ( const ::rtl::OUString& sMIMEDescription, - const ::rtl::OUString& sURL , - const ::rtl::OUString& sFilter , - const css::uno::Any& aSessionId ) throw( css::uno::RuntimeException ); - void SAL_CALL implcb_newURL ( const ::rtl::OUString& sMIMEDescription, - const ::rtl::OUString& sURL , - const ::rtl::OUString& sFilter , - const css::uno::Any& aSessionId ) throw( css::uno::RuntimeException ); - virtual void SAL_CALL getHttpServerURL( ::rtl::OUString& sHost , - sal_uInt16& nPort , - ::rtl::OUString& sPrefix ) throw( css::uno::RuntimeException ); - - //--------------------------------------------------------------------------------------------------------- - // XDispatchProvider - //--------------------------------------------------------------------------------------------------------- - - virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL queryDispatch( const css::util::URL& aURL , - const ::rtl::OUString& sTargetFrameName, - sal_Int32 nSearchFlags ) throw( css::uno::RuntimeException ); - virtual css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > SAL_CALL queryDispatches( const css::uno::Sequence< css::frame::DispatchDescriptor >& seqDescripts ) throw( css::uno::RuntimeException ); - - //--------------------------------------------------------------------------------------------------------- - // XDispatchResultListener - //--------------------------------------------------------------------------------------------------------- - - virtual void SAL_CALL dispatchFinished ( const css::frame::DispatchResultEvent& aEvent ) throw( css::uno::RuntimeException ); - - //--------------------------------------------------------------------------------------------------------- - // XEventListener - //--------------------------------------------------------------------------------------------------------- - - void SAL_CALL disposing( const css::lang::EventObject& aEvent ) throw( css::uno::RuntimeException ); - - //------------------------------------------------------------------------------------------------------------- - // protected methods - //------------------------------------------------------------------------------------------------------------- - - protected: - - //------------------------------------------------------------------------------------------------------------- - // private methods - //------------------------------------------------------------------------------------------------------------- - - private: - - void impl_tryToLoadDocument(); - sal_Bool impl_registerRemoteFactories( const css::uno::Reference< css::lang::XMultiServiceFactory >& xRemoteServiceManager ); - - //------------------------------------------------------------------------------------------------------------- - // debug methods - // (should be private everyway!) - //------------------------------------------------------------------------------------------------------------- - - /*-****************************************************************************************************//** - @short debug-method to check incoming parameter of some other mehods of this class - @descr The following methods are used to check parameters for other methods - of this class. The return value is used directly for an ASSERT(...). - - @seealso ASSERTs in implementation! - - @param references to checking variables - @return sal_False on invalid parameter<BR> - sal_True otherway - - @onerror - - *//*-*****************************************************************************************************/ - - #ifdef ENABLE_ASSERTIONS - - private: - - static sal_Bool impldbg_checkParameter_initialize ( const css::uno::Sequence< css::uno::Any >& seqArguments ); - static sal_Bool impldbg_checkParameter_createWindow ( const css::uno::Any& aPlatformWindowHandle , - sal_Bool bEmbedded ); - static sal_Bool impldbg_checkParameter_newStream ( const ::rtl::OUString& sMIMEDescription , - const ::rtl::OUString& sURL , - const ::rtl::OUString& sFilter , - const css::uno::Reference< css::io::XInputStream >& xStream ); - static sal_Bool impldbg_checkParameter_newURL ( const ::rtl::OUString& sMIMEDescription , - const ::rtl::OUString& sURL , - const ::rtl::OUString& sFilter ); - static sal_Bool impldbg_checkParameter_getHttpServerURL ( ::rtl::OUString& sHost , - sal_uInt16& nPort , - ::rtl::OUString& sPrefix ); - static sal_Bool impldbg_checkParameter_queryDispatch ( const css::util::URL& aURL , - const ::rtl::OUString& sTargetFrameName , - sal_Int32 nSearchFlags ); - static sal_Bool impldbg_checkParameter_queryDispatches ( const css::uno::Sequence< css::frame::DispatchDescriptor >& seqDescripts ); - static sal_Bool impldbg_checkParameter_statusChanged ( const css::frame::FeatureStateEvent& aEvent ); - static sal_Bool impldbg_checkParameter_disposing ( const css::lang::EventObject& aEvent ); - - #endif // #ifdef ENABLE_ASSERTIONS - - //------------------------------------------------------------------------------------------------------------- - // variables - // (should be private everyway!) - //------------------------------------------------------------------------------------------------------------- - - private: - - css::uno::Reference< css::mozilla::XPluginInstancePeer > m_xPlugInInstancePeer ; /// Reference to UNO interface of PlugIn dll for communication with browser - css::uno::Reference< css::mozilla::XPluginWindowPeer > m_xPlugInWindowPeer ; /// Reference to set child window at plugin window - css::uno::Sequence< css::beans::PropertyValue > m_seqProperties ; /// Sequence of properties as arguments for load document - css::util::URL m_aURL ; /// URL for document to load - sal_Bool m_bILoad ; /// PlugInFrame has a valid loader which load the document and wait for finished/cancelled - sal_Bool m_bIHaveDocument ; /// We have a document loaded successful. - css::uno::Reference< css::frame::XDispatchProvider > m_xPlugInDispatcher ; /// Dispatcher to forward dispatches to browser - static sal_Bool m_bRemoteFactoriesExist ; /// indicates, if remote factories was already registered (neccessary one times only!) - SvtCommandOptions m_aCommandOptions ; /// ref counted class to support disabling commands defined by configuration file - -}; // class PlugInFrame - -/*-************************************************************************************************************//** - @short used to forward all asynchronous calls which use VCL internal to the main thread - @descr We need this asynchronous mechanism to prevent us against dead locks. Sometimes our main thread - can call us for event handling like FOCUS, ACTIVATE and something else. But at the same time we will call - the main thread to CREATE A WINDOW, SET IT VISIBLE ... Then we have a problem. We must send us himself a event - to run our code synchronized with our main thread! - - @implements - @base - -*//*-*************************************************************************************************************/ - -enum eIMPL_PluginCommand -{ - START , - STOP , - CREATEWINDOW , - DESTROY , - NEWSTREAM , - NEWURL -}; - -class cIMPL_MainThreadExecutorRequest -{ - public: - cIMPL_MainThreadExecutorRequest( eIMPL_PluginCommand eCommand , - PlugInFrame* pPluginInstance ); - - cIMPL_MainThreadExecutorRequest( eIMPL_PluginCommand eCommand , - PlugInFrame* pPluginInstance , - const css::uno::Any& aPlatformWindowHandle , - sal_Bool bEmbedded ); - - cIMPL_MainThreadExecutorRequest( eIMPL_PluginCommand eCommand , - PlugInFrame* pPluginInstance , - const ::rtl::OUString& sMIMEDescription , - const ::rtl::OUString& sURL , - const ::rtl::OUString& sFilter , - const css::uno::Reference< css::io::XInputStream >& xStream , - const css::uno::Any& aSessionId ); - - /*-****************************************************************************************************//** - @short - - @descr - - - @seealso - - - @param - - @return - - - @onerror - - *//*-*****************************************************************************************************/ - - virtual long doIt(); - - //------------------------------------------------------------------------------------------------------------- - // private variables - //------------------------------------------------------------------------------------------------------------- - private: - - eIMPL_PluginCommand m_eCommand ; /// switch to specify forward function - PlugInFrame* m_pPluginInstance ; /// instance wich has started this swicth mechanism and wish to called back from us - css::uno::Reference< css::uno::XInterface > m_xPluginInstance ; /// reference to our plugin frame to prevent that plugin frame dies before we call back - css::uno::Any m_aPlatformWindowHandle ; /// parameter for XPluginInstance->createWindow() - sal_Bool m_bEmbedded ; /// parameter for XPluginInstance->createWindow() - ::rtl::OUString m_sMIMEDescription ; /// parameter for XPluginInstance->newStream()/newURL() - ::rtl::OUString m_sURL ; /// parameter for XPluginInstance->newStream()/newURL() - ::rtl::OUString m_sFilter ; /// parameter for XPluginInstance->newStream()/newURL() - css::uno::Reference< css::io::XInputStream > m_xStream ; /// parameter for XPluginInstance->newStream()/newURL() - css::uno::Any m_aSessionId ; /// parameter for XPluginInstance->newStream()/newURL() -}; - -class cIMPL_MainThreadExecutor -{ - //------------------------------------------------------------------------------------------------------------- - // public methods - //------------------------------------------------------------------------------------------------------------- - public: - static void execute( cIMPL_MainThreadExecutorRequest* pRequest ); - - /*-****************************************************************************************************//** - @short - - @descr - - - @seealso - - - @param - - @return - - - @onerror - - *//*-*****************************************************************************************************/ - DECL_STATIC_LINK( cIMPL_MainThreadExecutor, worker, cIMPL_MainThreadExecutorRequest* ); -}; - -} // namespace framework - -#endif // #ifndef __FRAMEWORK_SERVICES_PLUGINFRAME_HXX_ - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |