summaryrefslogtreecommitdiff
path: root/framework/source/uielement/toolbarmodemenucontroller.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'framework/source/uielement/toolbarmodemenucontroller.cxx')
-rw-r--r--framework/source/uielement/toolbarmodemenucontroller.cxx41
1 files changed, 39 insertions, 2 deletions
diff --git a/framework/source/uielement/toolbarmodemenucontroller.cxx b/framework/source/uielement/toolbarmodemenucontroller.cxx
index 300d386855a8..ff8c0596aa98 100644
--- a/framework/source/uielement/toolbarmodemenucontroller.cxx
+++ b/framework/source/uielement/toolbarmodemenucontroller.cxx
@@ -18,7 +18,6 @@
*/
#include <uielement/toolbarmodemenucontroller.hxx>
-
#include <services.h>
#include <framework/sfxhelperfunctions.hxx>
@@ -101,6 +100,12 @@ void ToolbarModeMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu >
case vcl::EnumContext::Application::Draw:
aPath.append("Draw");
break;
+ case vcl::EnumContext::Application::Formula:
+ aPath.append("Formula");
+ break;
+ case vcl::EnumContext::Application::Base:
+ aPath.append("Base");
+ break;
default:
break;
}
@@ -116,6 +121,7 @@ void ToolbarModeMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu >
const Sequence<OUString> aModeNodeNames (aModesNode.getNodeNames());
const sal_Int32 nCount(aModeNodeNames.getLength());
SvtMiscOptions aMiscOptions;
+ long nCountToolbar = 0;
for ( sal_Int32 nReadIndex = 0; nReadIndex < nCount; ++nReadIndex )
{
@@ -131,10 +137,13 @@ void ToolbarModeMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu >
// Allow Notebookbar only in experimental mode
if ( isExperimental && !aMiscOptions.IsExperimentalMode() )
continue;
+ if ( !isExperimental )
+ nCountToolbar++;
m_xPopupMenu->insertItem( nReadIndex+1, aLabel, css::awt::MenuItemStyle::RADIOCHECK, nPosition );
rPopupMenu->setCommand( nReadIndex+1, aCommandArg );
}
+ rPopupMenu->insertSeparator(nCountToolbar);
}
// XEventListener
@@ -223,8 +232,30 @@ void SAL_CALL ToolbarModeMenuController::itemSelected( const css::awt::MenuEvent
{
SolarMutexGuard aSolarMutexGuard;
PopupMenu* pVCLPopupMenu = static_cast<PopupMenu *>(pPopupMenu->GetMenu());
-
OUString aCmd( pVCLPopupMenu->GetItemCommand( rEvent.MenuId ));
+
+ {
+ OUStringBuffer aBuf(".uno:Notebookbar?File:string=");
+ aBuf.append( aCmd );
+ URL aTargetURL;
+ Sequence<PropertyValue> aArgs;
+
+ aTargetURL.Complete = aBuf.makeStringAndClear();
+ xURLTransformer->parseStrict( aTargetURL );
+ Reference< XDispatchProvider > xDispatchProvider( m_xFrame, UNO_QUERY );
+ if ( xDispatchProvider.is() )
+ {
+ Reference< XDispatch > xDispatch = xDispatchProvider->queryDispatch(
+ aTargetURL, OUString(), 0 );
+
+ ExecuteInfo* pExecuteInfo = new ExecuteInfo;
+ pExecuteInfo->xDispatch = xDispatch;
+ pExecuteInfo->aTargetURL = aTargetURL;
+ pExecuteInfo->aArgs = aArgs;
+ Application::PostUserEvent( LINK(nullptr,ToolbarModeMenuController, ExecuteHdl_Impl), pExecuteInfo );
+ }
+ }
+
OUStringBuffer aBuf(".uno:ToolbarMode?Mode:string=");
aBuf.append( aCmd );
URL aTargetURL;
@@ -268,6 +299,12 @@ void SAL_CALL ToolbarModeMenuController::itemActivated( const css::awt::MenuEven
case vcl::EnumContext::Application::Draw:
aPath.append("Draw");
break;
+ case vcl::EnumContext::Application::Formula:
+ aPath.append("Formula");
+ break;
+ case vcl::EnumContext::Application::Base:
+ aPath.append("Base");
+ break;
default:
break;
}