summaryrefslogtreecommitdiff
path: root/svtools/source/uno/toolboxcontroller.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'svtools/source/uno/toolboxcontroller.cxx')
-rw-r--r--svtools/source/uno/toolboxcontroller.cxx28
1 files changed, 28 insertions, 0 deletions
diff --git a/svtools/source/uno/toolboxcontroller.cxx b/svtools/source/uno/toolboxcontroller.cxx
index bac34d2baf1c..92ae93f5080d 100644
--- a/svtools/source/uno/toolboxcontroller.cxx
+++ b/svtools/source/uno/toolboxcontroller.cxx
@@ -751,6 +751,25 @@ const rtl::OUString& ToolboxController::getModuleName() const
return m_pImpl->m_sModuleName;
}
+void ToolboxController::dispatchCommand( const OUString& sCommandURL, const Sequence< PropertyValue >& rArgs )
+{
+ try
+ {
+ Reference< XDispatchProvider > xDispatchProvider( m_xFrame, UNO_QUERY_THROW );
+ URL aURL;
+ aURL.Complete = sCommandURL;
+ getURLTransformer()->parseStrict( aURL );
+
+ Reference< XDispatch > xDispatch( xDispatchProvider->queryDispatch( aURL, OUString(), 0 ), UNO_QUERY_THROW );
+
+ Application::PostUserEvent( STATIC_LINK(0, ToolboxController_Impl, ExecuteHdl_Impl), new DispatchInfo( xDispatch, aURL, rArgs ) );
+
+ }
+ catch( Exception& )
+ {
+ }
+}
+
//
//-------------------------------------------------------------------------
// XPropertySet by shizhoubo
@@ -815,6 +834,15 @@ throw( com::sun::star::uno::Exception)
}
}
+//--------------------------------------------------------------------
+
+IMPL_STATIC_LINK_NOINSTANCE( ToolboxController_Impl, ExecuteHdl_Impl, DispatchInfo*, pDispatchInfo )
+{
+ pDispatchInfo->mxDispatch->dispatch( pDispatchInfo->maURL, pDispatchInfo->maArgs );
+ delete pDispatchInfo;
+ return 0;
+}
+
void ToolboxController::enable( bool bEnable )
{
ToolBox* pToolBox = 0;