Browse Source

Update strings in main menu and toolbar when changing the language.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@4855 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 17 years ago
parent
commit
fad3a5583b
  1. 6
      src/Main/Base/Project/Src/Gui/Workbench/WpfWorkbench.cs
  2. 11
      src/Main/ICSharpCode.Core.Presentation/Menu/MenuService.cs
  3. 21
      src/Main/ICSharpCode.Core.Presentation/ToolBar/ToolBarService.cs

6
src/Main/Base/Project/Src/Gui/Workbench/WpfWorkbench.cs

@ -107,6 +107,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -107,6 +107,7 @@ namespace ICSharpCode.SharpDevelop.Gui
requerySuggestedEventHandler = new EventHandler(CommandManager_RequerySuggested);
CommandManager.RequerySuggested += requerySuggestedEventHandler;
ResourceService.LanguageChanged += OnLanguageChanged;
StatusBarService.SetMessage("${res:MainWindow.StatusBar.ReadyMessage}");
}
@ -186,6 +187,11 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -186,6 +187,11 @@ namespace ICSharpCode.SharpDevelop.Gui
}
}
void OnLanguageChanged(object sender, EventArgs e)
{
MenuService.UpdateText(mainMenu.ItemsSource);
}
public ICollection<IViewContent> ViewContentCollection {
get {
WorkbenchSingleton.AssertMainThread();

11
src/Main/ICSharpCode.Core.Presentation/Menu/MenuService.cs

@ -92,6 +92,17 @@ namespace ICSharpCode.Core.Presentation @@ -92,6 +92,17 @@ namespace ICSharpCode.Core.Presentation
}
}
public static void UpdateText(IEnumerable menuItems)
{
if (menuItems == null)
return;
foreach (object o in menuItems) {
IStatusUpdate cmi = o as IStatusUpdate;
if (cmi != null)
cmi.UpdateText();
}
}
public static ContextMenu CreateContextMenu(object owner, string addInTreePath)
{
ContextMenu menu = new ContextMenu();

21
src/Main/ICSharpCode.Core.Presentation/ToolBar/ToolBarService.cs

@ -8,6 +8,7 @@ @@ -8,6 +8,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
namespace ICSharpCode.Core.Presentation
@ -84,14 +85,30 @@ namespace ICSharpCode.Core.Presentation @@ -84,14 +85,30 @@ namespace ICSharpCode.Core.Presentation
static ToolBar CreateToolBar(object owner, AddInTreeNode treeNode)
{
ToolBar tb = new ToolBar();
ToolBar tb = new CoreToolBar();
ToolBarTray.SetIsLocked(tb, true);
tb.ItemsSource = CreateToolBarItems(treeNode.BuildChildItems<ToolbarItemDescriptor>(owner));
UpdateStatus(tb.ItemsSource); // setting Visible is only possible after the items have been added
//new LanguageChangeWatcher(toolStrip);
return tb;
}
sealed class CoreToolBar : ToolBar, IWeakEventListener
{
public CoreToolBar()
{
LanguageChangeWeakEventManager.AddListener(this);
}
bool IWeakEventListener.ReceiveWeakEvent(Type managerType, object sender, EventArgs e)
{
if (managerType == typeof(LanguageChangeWeakEventManager)) {
MenuService.UpdateText(this.ItemsSource);
return true;
}
return false;
}
}
public static ToolBar CreateToolBar(object owner, string addInTreePath)
{
return CreateToolBar(owner, AddInTree.GetTreeNode(addInTreePath));

Loading…
Cancel
Save