20#include <com/sun/star/embed/EmbedStates.hpp>
23#include <intercept.hxx>
24#include <docholder.hxx>
29constexpr OUStringLiteral
IU0 =
u".uno:Save";
30constexpr OUStringLiteral
IU1 =
u".uno:SaveAll";
31constexpr OUStringLiteral
IU2 =
u".uno:CloseDoc";
32constexpr OUStringLiteral
IU3 =
u".uno:CloseWin";
33constexpr OUStringLiteral
IU4 =
u".uno:CloseFrame";
34constexpr OUStringLiteral
IU5 =
u".uno:SaveAs";
50 m_pDocHolder =
nullptr;
54 : m_pDocHolder( pDocHolder )
67 beans::PropertyValue >& Arguments )
80 m_pDocHolder->GetEmbedObject()->
changeState( embed::EmbedStates::RUNNING );
82 catch(
const uno::Exception& )
88 uno::Sequence< beans::PropertyValue > aNewArgs = Arguments;
91 while( nInd < aNewArgs.getLength() )
93 if ( aNewArgs[nInd].Name ==
"SaveTo" )
95 aNewArgs.getArray()[nInd].Value <<=
true;
101 if ( nInd == aNewArgs.getLength() )
103 aNewArgs.realloc( nInd + 1 );
104 auto pNewArgs = aNewArgs.getArray();
105 pNewArgs[nInd].Name =
"SaveTo";
106 pNewArgs[nInd].Value <<=
true;
118 const uno::Reference<
119 frame::XStatusListener >&
Control,
120 const util::URL& URL )
127 frame::FeatureStateEvent aStateEvent;
129 aStateEvent.FeatureDescriptor =
"Update";
130 aStateEvent.IsEnabled =
true;
131 aStateEvent.Requery =
false;
132 aStateEvent.State <<=
"($1) " + m_pDocHolder->GetTitle();
133 Control->statusChanged(aStateEvent);
150 frame::FeatureStateEvent aStateEvent;
152 aStateEvent.FeatureDescriptor =
"Close and Return";
153 aStateEvent.IsEnabled =
true;
154 aStateEvent.Requery =
false;
155 aStateEvent.State <<=
"($2)" + m_pDocHolder->GetContainerName();
156 Control->statusChanged(aStateEvent);
173 frame::FeatureStateEvent aStateEvent;
175 aStateEvent.FeatureDescriptor =
"SaveCopyTo";
176 aStateEvent.IsEnabled =
true;
177 aStateEvent.Requery =
false;
178 aStateEvent.State <<= OUString(
"($3)");
179 Control->statusChanged(aStateEvent);
195 const uno::Reference<
196 frame::XStatusListener >&
Control,
197 const util::URL& URL )
209uno::Sequence< OUString >
221uno::Reference< frame::XDispatch > SAL_CALL
223 const util::URL& URL,
224 const OUString& TargetFrameName,
225 sal_Int32 SearchFlags )
229 return static_cast<frame::XDispatch*
>(
this);
233 return static_cast<frame::XDispatch*
>(
this);
235 return static_cast<frame::XDispatch*
>(
this);
237 return static_cast<frame::XDispatch*
>(
this);
239 return static_cast<frame::XDispatch*
>(
this);
243 URL,TargetFrameName,SearchFlags);
245 return uno::Reference<frame::XDispatch>(
nullptr);
249uno::Sequence< uno::Reference< frame::XDispatch > > SAL_CALL
251 const uno::Sequence<frame::DispatchDescriptor >& Requests )
254 typedef uno::Sequence<uno::Reference<frame::XDispatch>> DispatchSeq;
257 : DispatchSeq(Requests.getLength());
259 auto aRetRange = asNonConstRange(aRet);
260 for(sal_Int32 i = 0;
i < Requests.getLength(); ++
i)
262 aRetRange[
i] =
static_cast<frame::XDispatch*
>(
this);
264 aRetRange[
i] =
nullptr;
266 aRetRange[
i] =
static_cast<frame::XDispatch*
>(
this);
268 aRetRange[
i] =
static_cast<frame::XDispatch*
>(
this);
270 aRetRange[
i] =
static_cast<frame::XDispatch*
>(
this);
272 aRetRange[
i] =
static_cast<frame::XDispatch*
>(
this);
280uno::Reference< frame::XDispatchProvider > SAL_CALL
289 const uno::Reference< frame::XDispatchProvider >& NewDispatchProvider )
296uno::Reference< frame::XDispatchProvider > SAL_CALL
306 const uno::Reference< frame::XDispatchProvider >& NewSupplier )
virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL queryDispatch(const css::util::URL &URL, const OUString &TargetFrameName, sal_Int32 SearchFlags) override
virtual css::uno::Sequence< OUString > SAL_CALL getInterceptedURLs() override
void DisconnectDocHolder()
virtual css::uno::Reference< css::frame::XDispatchProvider > SAL_CALL getSlaveDispatchProvider() override
static const css::uno::Sequence< OUString > m_aInterceptedURL
virtual void SAL_CALL removeStatusListener(const css::uno::Reference< css::frame::XStatusListener > &Control, const css::util::URL &URL) override
virtual void SAL_CALL setSlaveDispatchProvider(const css::uno::Reference< css::frame::XDispatchProvider > &NewDispatchProvider) override
css::uno::Reference< css::frame::XDispatchProvider > m_xSlaveDispatchProvider
virtual css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > SAL_CALL queryDispatches(const css::uno::Sequence< css::frame::DispatchDescriptor > &Requests) override
virtual void SAL_CALL addStatusListener(const css::uno::Reference< css::frame::XStatusListener > &Control, const css::util::URL &URL) override
StatusChangeListenerContainer * m_pStatCL
virtual css::uno::Reference< css::frame::XDispatchProvider > SAL_CALL getMasterDispatchProvider() override
Interceptor(const ::rtl::Reference< EmbeddedDocumentInstanceAccess_Impl > &xOleAccess, DocumentHolder *pDocH, bool bLink)
virtual void SAL_CALL dispatch(const css::util::URL &URL, const css::uno::Sequence< css::beans::PropertyValue > &Arguments) override
css::uno::Reference< css::frame::XDispatchProvider > m_xMasterDispatchProvider
virtual void SAL_CALL setMasterDispatchProvider(const css::uno::Reference< css::frame::XDispatchProvider > &NewSupplier) override
virtual void SAL_CALL changeState(sal_Int32 nNewState) override
StatusChangeListenerContainer(osl::Mutex &aMutex)
sal_Int32 addInterface(const key &rKey, const css::uno::Reference< listener > &rListener)
OMultiTypeInterfaceContainerHelperVar3(::osl::Mutex &rMutex_)
sal_Int32 removeInterface(const key &rKey, const css::uno::Reference< listener > &rListener)
Reference< XDispatch > xDispatch
constexpr OUStringLiteral IU0
constexpr OUStringLiteral IU1
constexpr OUStringLiteral IU2
constexpr OUStringLiteral IU4
constexpr OUStringLiteral IU5
constexpr OUStringLiteral IU3