diff options
author | Maxim Monastirsky <momonasmon@gmail.com> | 2015-10-06 21:46:50 +0300 |
---|---|---|
committer | Maxim Monastirsky <momonasmon@gmail.com> | 2015-10-06 21:59:21 +0300 |
commit | fedf965c51a9f57e5cde203a3d15a6c244558002 (patch) | |
tree | 318b991532897ffc7143049ce080a0777173bdaf /framework | |
parent | 3080e4c09b7c4894d4f0f52c9beed4298f3fd23f (diff) |
Related: tdf#91097 Support of enum commands in MenuBarManager
Change-Id: Id7fe3075c21030e050c26aaf7ec068935f275b44
Diffstat (limited to 'framework')
-rw-r--r-- | framework/source/uielement/menubarmanager.cxx | 55 |
1 files changed, 36 insertions, 19 deletions
diff --git a/framework/source/uielement/menubarmanager.cxx b/framework/source/uielement/menubarmanager.cxx index 405fb9d45cdd..eff5bdb6e4d8 100644 --- a/framework/source/uielement/menubarmanager.cxx +++ b/framework/source/uielement/menubarmanager.cxx @@ -77,6 +77,7 @@ #include <svtools/miscopt.hxx> #include <uielement/menubarmerger.hxx> #include <boost/noncopyable.hpp> +#include <tools/urlobj.hxx> // Be careful removing this "bad" construct. There are serious problems // with #define STRICT and including windows.h. Changing this needs some @@ -437,29 +438,45 @@ throw ( RuntimeException, std::exception ) } else if ( Event.State >>= aItemText ) { - // Replacement for place holders - if ( aItemText.startsWith("($1)") ) + INetURLObject aURL( aFeatureURL ); + OUString aEnumPart = aURL.GetURLPath().getToken( 1, '.' ); + if ( !aEnumPart.isEmpty() && aURL.GetProtocol() == INetProtocol::Uno ) { - OUString aTmp(FWK_RESSTR(STR_UPDATEDOC)); - aTmp += " "; - aTmp += aItemText.copy( 4 ); - aItemText = aTmp; + // Checkmark or RadioButton + m_pVCLMenu->ShowItem( pMenuItemHandler->nItemId ); + m_pVCLMenu->CheckItem( pMenuItemHandler->nItemId, ( aItemText == aEnumPart ) ? true : false ); + + MenuItemBits nBits = m_pVCLMenu->GetItemBits( pMenuItemHandler->nItemId ); + //If not already designated RadioButton set as CheckMark + if (!(nBits & MenuItemBits::RADIOCHECK)) + m_pVCLMenu->SetItemBits( pMenuItemHandler->nItemId, nBits | MenuItemBits::CHECKABLE ); } - else if ( aItemText.startsWith("($2)") ) - { - OUString aTmp(FWK_RESSTR(STR_CLOSEDOC_ANDRETURN)); - aTmp += aItemText.copy( 4 ); - aItemText = aTmp; - } - else if ( aItemText.startsWith("($3)") ) + else { - OUString aTmp(FWK_RESSTR(STR_SAVECOPYDOC)); - aTmp += aItemText.copy( 4 ); - aItemText = aTmp; - } + // Replacement for place holders + if ( aItemText.startsWith("($1)") ) + { + OUString aTmp(FWK_RESSTR(STR_UPDATEDOC)); + aTmp += " "; + aTmp += aItemText.copy( 4 ); + aItemText = aTmp; + } + else if ( aItemText.startsWith("($2)") ) + { + OUString aTmp(FWK_RESSTR(STR_CLOSEDOC_ANDRETURN)); + aTmp += aItemText.copy( 4 ); + aItemText = aTmp; + } + else if ( aItemText.startsWith("($3)") ) + { + OUString aTmp(FWK_RESSTR(STR_SAVECOPYDOC)); + aTmp += aItemText.copy( 4 ); + aItemText = aTmp; + } - m_pVCLMenu->ShowItem( pMenuItemHandler->nItemId ); - m_pVCLMenu->SetItemText( pMenuItemHandler->nItemId, aItemText ); + m_pVCLMenu->ShowItem( pMenuItemHandler->nItemId ); + m_pVCLMenu->SetItemText( pMenuItemHandler->nItemId, aItemText ); + } } else if ( Event.State >>= aVisibilityStatus ) { |