summaryrefslogtreecommitdiff
path: root/framework
diff options
context:
space:
mode:
authorMaxim Monastirsky <momonasmon@gmail.com>2015-10-06 21:46:50 +0300
committerMaxim Monastirsky <momonasmon@gmail.com>2015-10-06 21:59:21 +0300
commitfedf965c51a9f57e5cde203a3d15a6c244558002 (patch)
tree318b991532897ffc7143049ce080a0777173bdaf /framework
parent3080e4c09b7c4894d4f0f52c9beed4298f3fd23f (diff)
Related: tdf#91097 Support of enum commands in MenuBarManager
Change-Id: Id7fe3075c21030e050c26aaf7ec068935f275b44
Diffstat (limited to 'framework')
-rw-r--r--framework/source/uielement/menubarmanager.cxx55
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 )
{