From ac810d59bc7c1f14fd1bc61003beb96ae821a4b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kon=C3=AD=C4=8Dek?= Date: Sat, 31 Jul 2010 20:51:21 +0000 Subject: [PATCH] TranslateMenuItemToWpf sets also shortcut on WPF MenuItem, so that menus show shortcuts. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@6336 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- src/Main/Base/Project/Src/Util/ExtensionMethods.cs | 2 ++ .../Menu/MenuService.cs | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/Main/Base/Project/Src/Util/ExtensionMethods.cs b/src/Main/Base/Project/Src/Util/ExtensionMethods.cs index 40c5ddff29..51820afcd2 100644 --- a/src/Main/Base/Project/Src/Util/ExtensionMethods.cs +++ b/src/Main/Base/Project/Src/Util/ExtensionMethods.cs @@ -421,6 +421,8 @@ namespace ICSharpCode.SharpDevelop { var r = new System.Windows.Controls.MenuItem(); r.Header = MenuService.ConvertLabel(item.Text); + r.InputGestureText = MenuService.ConvertKeys(item.ShortcutKeys); + //r.InputGestureText = new KeyGesture(Key.F6).GetDisplayStringForCulture(Thread.CurrentThread.CurrentUICulture); if (item.ImageIndex >= 0) r.Icon = ClassBrowserIconService.GetImageByIndex(item.ImageIndex).CreateImage(); if (item.DropDownItems.Count > 0) { diff --git a/src/Main/ICSharpCode.Core.Presentation/Menu/MenuService.cs b/src/Main/ICSharpCode.Core.Presentation/Menu/MenuService.cs index acd3d0ec8d..600ccd7b24 100644 --- a/src/Main/ICSharpCode.Core.Presentation/Menu/MenuService.cs +++ b/src/Main/ICSharpCode.Core.Presentation/Menu/MenuService.cs @@ -14,6 +14,8 @@ using System.Windows.Controls; using System.Windows.Controls.Primitives; using System.Windows.Input; +using WinForms = System.Windows.Forms; + namespace ICSharpCode.Core.Presentation { /// @@ -263,5 +265,16 @@ namespace ICSharpCode.Core.Presentation { return (KeyGesture)new KeyGestureConverter().ConvertFromInvariantString(text.Replace(',', '+').Replace('|', '+')); } + + static WinForms.KeysConverter shortcutKeysConverter = new WinForms.KeysConverter(); + /// + /// Converts Windows-Forms Keys enum to WPF string representation, suitable e.g. for MenuItem.InputGestureText. + /// + public static string ConvertKeys(System.Windows.Forms.Keys shortcutKeys) + { + if (shortcutKeys == WinForms.Keys.None || shortcutKeys == WinForms.Keys.NoName || shortcutKeys == WinForms.Keys.IMENonconvert) + return string.Empty; + return shortcutKeysConverter.ConvertToString(shortcutKeys); + } } }