diff options
-rw-r--r-- | sfx2/source/appl/helpinterceptor.cxx | 15 | ||||
-rw-r--r-- | sfx2/source/appl/helpinterceptor.hxx | 16 |
2 files changed, 24 insertions, 7 deletions
diff --git a/sfx2/source/appl/helpinterceptor.cxx b/sfx2/source/appl/helpinterceptor.cxx index d0ea67985b4f..c6c4c80d7471 100644 --- a/sfx2/source/appl/helpinterceptor.cxx +++ b/sfx2/source/appl/helpinterceptor.cxx @@ -2,9 +2,9 @@ * * $RCSfile: helpinterceptor.cxx,v $ * - * $Revision: 1.6 $ + * $Revision: 1.7 $ * - * last change: $Author: dv $ $Date: 2001-02-16 12:09:15 $ + * last change: $Author: pb $ $Date: 2001-04-23 11:55:29 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -60,6 +60,7 @@ ************************************************************************/ #include "helpinterceptor.hxx" +#include "newhelp.hxx" #include "sfxuno.hxx" #ifndef _URLOBJ_HXX @@ -74,6 +75,7 @@ #ifndef _CPPUHELPER_INTERFACECONTAINER_H_ #include <cppuhelper/interfacecontainer.h> #endif +#include <vcl/window.hxx> #include <limits.h> using namespace ::com::sun::star::beans; @@ -278,8 +280,15 @@ void SAL_CALL HelpInterceptor_Impl::dispatch( aURL.Complete = pEntry->aURL; Reference < XDispatch > xDisp = m_xSlaveDispatcher->queryDispatch( aURL, String(), 0 ); if ( xDisp.is() ) + { + if ( m_pOpenListener && m_pWindow ) + { + if ( !m_pWindow->IsWait() ) + m_pWindow->EnterWait(); + m_pOpenListener->AddListener( xDisp, aURL ); + } xDisp->dispatch( aURL, Sequence < PropertyValue >() ); - + } } } } diff --git a/sfx2/source/appl/helpinterceptor.hxx b/sfx2/source/appl/helpinterceptor.hxx index e261b870793e..e0aa57870cdf 100644 --- a/sfx2/source/appl/helpinterceptor.hxx +++ b/sfx2/source/appl/helpinterceptor.hxx @@ -2,9 +2,9 @@ * * $RCSfile: helpinterceptor.hxx,v $ * - * $Revision: 1.4 $ + * $Revision: 1.5 $ * - * last change: $Author: pb $ $Date: 2000-12-10 14:17:57 $ + * last change: $Author: pb $ $Date: 2001-04-23 11:55:29 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -104,6 +104,8 @@ struct HelpHistoryEntry_Impl DECLARE_LIST(HelpHistoryList_Impl,HelpHistoryEntry_Impl*); +class OpenStatusListener_Impl; +class Window; class HelpInterceptor_Impl : public ::cppu::WeakImplHelper3< ::com::sun::star::frame::XDispatchProviderInterceptor, @@ -121,8 +123,10 @@ private: ::com::sun::star::uno::Reference< ::com::sun::star::frame::XStatusListener > m_xListener; - HelpHistoryList_Impl* m_pHistory; - ULONG m_nCurPos; + HelpHistoryList_Impl* m_pHistory; + OpenStatusListener_Impl* m_pOpenListener; + Window* m_pWindow; + ULONG m_nCurPos; void addURL( const String& rURL ); @@ -155,6 +159,10 @@ public: virtual void SAL_CALL dispatch( const ::com::sun::star::util::URL& aURL, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aArgs ) throw(::com::sun::star::uno::RuntimeException); virtual void SAL_CALL addStatusListener( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XStatusListener >& xControl, const ::com::sun::star::util::URL& aURL ) throw(::com::sun::star::uno::RuntimeException); virtual void SAL_CALL removeStatusListener( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XStatusListener >& xControl, const ::com::sun::star::util::URL& aURL ) throw(::com::sun::star::uno::RuntimeException); + + // extras + void InitWaiter( OpenStatusListener_Impl* pListener, Window* pWindow ) + { m_pOpenListener = pListener; m_pWindow = pWindow; } }; // HelpListener_Impl ----------------------------------------------------- |