Kaydet (Commit) 72e426c4 authored tarafından Maxim Monastirsky's avatar Maxim Monastirsky

Tweak MenuBarManager a bit for use with context menus

Change-Id: Ie28277e692d3b3286f1961e66f90b5ae59810fe7
üst 6744951c
...@@ -95,7 +95,8 @@ class MenuBarManager : public css::frame::XStatusListener , ...@@ -95,7 +95,8 @@ class MenuBarManager : public css::frame::XStatusListener ,
const OUString& aModuleIdentifier, const OUString& aModuleIdentifier,
Menu* pMenu, Menu* pMenu,
bool bDelete, bool bDelete,
bool bDeleteChildren ); bool bDeleteChildren,
bool bHasMenuBar = true );
virtual ~MenuBarManager(); virtual ~MenuBarManager();
...@@ -214,6 +215,7 @@ class MenuBarManager : public css::frame::XStatusListener , ...@@ -214,6 +215,7 @@ class MenuBarManager : public css::frame::XStatusListener ,
bool m_bRetrieveImages : 1, bool m_bRetrieveImages : 1,
m_bAcceleratorCfg : 1; m_bAcceleratorCfg : 1;
bool m_bModuleIdentified; bool m_bModuleIdentified;
bool m_bHasMenuBar;
OUString m_aMenuItemCommand; OUString m_aMenuItemCommand;
OUString m_aModuleIdentifier; OUString m_aModuleIdentifier;
Menu* m_pVCLMenu; Menu* m_pVCLMenu;
......
...@@ -348,7 +348,7 @@ MenuToolbarController::createPopupWindow() throw (css::uno::RuntimeException, st ...@@ -348,7 +348,7 @@ MenuToolbarController::createPopupWindow() throw (css::uno::RuntimeException, st
Reference< XDispatchProvider > xDispatch; Reference< XDispatchProvider > xDispatch;
Reference< XURLTransformer > xURLTransformer = URLTransformer::create( m_xContext ); Reference< XURLTransformer > xURLTransformer = URLTransformer::create( m_xContext );
pMenu = new Toolbarmenu(); pMenu = new Toolbarmenu();
m_xMenuManager.set( new MenuBarManager( m_xContext, m_xFrame, xURLTransformer, xDispatch, m_aModuleIdentifier, pMenu, true, true ) ); m_xMenuManager.set( new MenuBarManager( m_xContext, m_xFrame, xURLTransformer, xDispatch, m_aModuleIdentifier, pMenu, true, true, false ) );
if (m_xMenuManager.is()) if (m_xMenuManager.is())
{ {
MenuBarManager& rMgr = dynamic_cast<MenuBarManager&>(*m_xMenuManager.get()); MenuBarManager& rMgr = dynamic_cast<MenuBarManager&>(*m_xMenuManager.get());
......
...@@ -136,12 +136,13 @@ MenuBarManager::MenuBarManager( ...@@ -136,12 +136,13 @@ MenuBarManager::MenuBarManager(
const Reference< XURLTransformer >& _xURLTransformer, const Reference< XURLTransformer >& _xURLTransformer,
const Reference< XDispatchProvider >& rDispatchProvider, const Reference< XDispatchProvider >& rDispatchProvider,
const OUString& rModuleIdentifier, const OUString& rModuleIdentifier,
Menu* pMenu, bool bDelete, bool bDeleteChildren ): Menu* pMenu, bool bDelete, bool bDeleteChildren, bool bHasMenuBar ):
OWeakObject() OWeakObject()
, m_bDisposed( false ) , m_bDisposed( false )
, m_bRetrieveImages( false ) , m_bRetrieveImages( false )
, m_bAcceleratorCfg( false ) , m_bAcceleratorCfg( false )
, m_bModuleIdentified( false ) , m_bModuleIdentified( false )
, m_bHasMenuBar( bHasMenuBar )
, m_aListenerContainer( m_mutex ) , m_aListenerContainer( m_mutex )
, m_xContext(rxContext) , m_xContext(rxContext)
, m_xURLTransformer(_xURLTransformer) , m_xURLTransformer(_xURLTransformer)
...@@ -164,6 +165,7 @@ MenuBarManager::MenuBarManager( ...@@ -164,6 +165,7 @@ MenuBarManager::MenuBarManager(
, m_bRetrieveImages( true ) , m_bRetrieveImages( true )
, m_bAcceleratorCfg( false ) , m_bAcceleratorCfg( false )
, m_bModuleIdentified( false ) , m_bModuleIdentified( false )
, m_bHasMenuBar( true )
, m_aListenerContainer( m_mutex ) , m_aListenerContainer( m_mutex )
, m_xContext(rxContext) , m_xContext(rxContext)
, m_xURLTransformer(_xURLTransformer) , m_xURLTransformer(_xURLTransformer)
...@@ -392,6 +394,7 @@ throw ( RuntimeException, std::exception ) ...@@ -392,6 +394,7 @@ throw ( RuntimeException, std::exception )
OUString aFeatureURL = Event.FeatureURL.Complete; OUString aFeatureURL = Event.FeatureURL.Complete;
SolarMutexGuard aSolarGuard; SolarMutexGuard aSolarGuard;
if ( m_bHasMenuBar )
{ {
vcl::MenuInvalidator::Invalidated(); vcl::MenuInvalidator::Invalidated();
} }
...@@ -801,6 +804,7 @@ IMPL_LINK_TYPED( MenuBarManager, Activate, Menu *, pMenu, bool ) ...@@ -801,6 +804,7 @@ IMPL_LINK_TYPED( MenuBarManager, Activate, Menu *, pMenu, bool )
} }
// Try to set accelerator keys // Try to set accelerator keys
if ( m_bHasMenuBar )
{ {
RetrieveShortcuts( m_aMenuItemHandlerVector ); RetrieveShortcuts( m_aMenuItemHandlerVector );
std::vector< MenuItemHandler* >::iterator p; std::vector< MenuItemHandler* >::iterator p;
...@@ -898,7 +902,8 @@ IMPL_LINK_TYPED( MenuBarManager, Activate, Menu *, pMenu, bool ) ...@@ -898,7 +902,8 @@ IMPL_LINK_TYPED( MenuBarManager, Activate, Menu *, pMenu, bool )
{ {
xMenuItemDispatch->addStatusListener( static_cast< XStatusListener* >( this ), aTargetURL ); xMenuItemDispatch->addStatusListener( static_cast< XStatusListener* >( this ), aTargetURL );
xMenuItemDispatch->removeStatusListener( static_cast< XStatusListener* >( this ), aTargetURL ); xMenuItemDispatch->removeStatusListener( static_cast< XStatusListener* >( this ), aTargetURL );
xMenuItemDispatch->addStatusListener( static_cast< XStatusListener* >( this ), aTargetURL ); if ( m_bHasMenuBar )
xMenuItemDispatch->addStatusListener( static_cast< XStatusListener* >( this ), aTargetURL );
} }
} }
else if ( !bPopupMenu ) else if ( !bPopupMenu )
...@@ -1302,7 +1307,7 @@ void MenuBarManager::FillMenuManager( Menu* pMenu, const Reference< XFrame >& rF ...@@ -1302,7 +1307,7 @@ void MenuBarManager::FillMenuManager( Menu* pMenu, const Reference< XFrame >& rF
} }
else else
{ {
MenuBarManager* pSubMenuMgr = new MenuBarManager( m_xContext, rFrame, m_xURLTransformer,rDispatchProvider, aModuleIdentifier, pPopup, bDeleteChildren, bDeleteChildren ); MenuBarManager* pSubMenuMgr = new MenuBarManager( m_xContext, rFrame, m_xURLTransformer,rDispatchProvider, aModuleIdentifier, pPopup, bDeleteChildren, bDeleteChildren, m_bHasMenuBar );
AddMenu(pSubMenuMgr,aItemCommand,nItemId); AddMenu(pSubMenuMgr,aItemCommand,nItemId);
} }
} }
...@@ -1367,7 +1372,7 @@ void MenuBarManager::FillMenuManager( Menu* pMenu, const Reference< XFrame >& rF ...@@ -1367,7 +1372,7 @@ void MenuBarManager::FillMenuManager( Menu* pMenu, const Reference< XFrame >& rF
} }
} }
if ( bAccessibilityEnabled ) if ( m_bHasMenuBar && bAccessibilityEnabled )
{ {
RetrieveShortcuts( m_aMenuItemHandlerVector ); RetrieveShortcuts( m_aMenuItemHandlerVector );
std::vector< MenuItemHandler* >::iterator p; std::vector< MenuItemHandler* >::iterator p;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment