Browse Source

Make pads listen to language change, fixed memory leak in PresentationResourceService.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/3.0wpf@3446 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 17 years ago
parent
commit
c7993c90f4
  1. 7
      src/AddIns/DisplayBindings/ClassDiagram/ClassDiagramAddin/Src/ClassDiagramViewContent.cs
  2. 9
      src/AddIns/DisplayBindings/ClassDiagram/ClassDiagramAddin/Src/ClassEditorPad.cs
  3. 4
      src/AddIns/DisplayBindings/ResourceEditor/Project/Src/DisplayDefinition.cs
  4. 3
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Pads/CallStackPad.cs
  5. 3
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Pads/LoadedModulesPad.cs
  6. 3
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Pads/LocalVarPad.cs
  7. 3
      src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Pads/RunningThreadsPad.cs
  8. 6
      src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/DynamicHelpPad.cs
  9. 6
      src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/IndexPad.cs
  10. 7
      src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/IndexResultsPad.cs
  11. 6
      src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchPad.cs
  12. 6
      src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/TocPad.cs
  13. 12
      src/Main/Base/Project/Src/Commands/HelpCommands.cs
  14. 4
      src/Main/Base/Project/Src/Gui/AbstractPadContent.cs
  15. 4
      src/Main/Base/Project/Src/Gui/AbstractViewContent.cs
  16. 6
      src/Main/Base/Project/Src/Gui/IPadContent.cs
  17. 7
      src/Main/Base/Project/Src/Gui/IViewContent.cs
  18. 16
      src/Main/Base/Project/Src/Gui/Pads/CompilerMessageView/CompilerMessageView.cs
  19. 8
      src/Main/Base/Project/Src/Gui/Pads/DefinitionViewPad.cs
  20. 3
      src/Main/Base/Project/Src/Gui/Pads/ErrorList/ErrorListPad.cs
  21. 5
      src/Main/Base/Project/Src/Gui/Pads/PropertyPad/PropertyPad.cs
  22. 3
      src/Main/Base/Project/Src/Gui/Pads/TaskList/TaskListPad.cs
  23. 2
      src/Main/Base/Project/Src/Gui/Workbench/Layouts/AvalonDockLayout.cs
  24. 14
      src/Main/Base/Project/Src/Internal/Doozers/PadDescriptor.cs
  25. 6
      src/Main/Base/Project/Src/TextEditor/Gui/Editor/TextEditorBasedPad.cs
  26. 6
      src/Main/Base/Project/Src/TextEditor/Gui/Editor/TextEditorDisplayBinding.cs
  27. 11
      src/Main/ICSharpCode.Core.Presentation/PresentationResourceService.cs

7
src/AddIns/DisplayBindings/ClassDiagram/ClassDiagramAddin/Src/ClassDiagramViewContent.cs

@ -137,13 +137,6 @@ namespace ClassDiagramAddin
} }
} }
public override void RedrawContent()
{
// TODO: Refresh the whole view control here, renew all resource strings
// Note that you do not need to recreate the control.
base.RedrawContent();
}
public override void Dispose() public override void Dispose()
{ {
ParserService.ParseInformationUpdated -= OnParseInformationUpdated; ParserService.ParseInformationUpdated -= OnParseInformationUpdated;

9
src/AddIns/DisplayBindings/ClassDiagram/ClassDiagramAddin/Src/ClassEditorPad.cs

@ -162,15 +162,6 @@ namespace ClassDiagramAddin
get { return editor; } get { return editor; }
} }
/// <summary>
/// Refreshes the pad
/// </summary>
public override void RedrawContent()
{
// TODO: Refresh the whole pad control here, renew all resource strings whatever
// Note that you do not need to recreate the control.
}
/// <summary> /// <summary>
/// Cleans up all used resources /// Cleans up all used resources
/// </summary> /// </summary>

4
src/AddIns/DisplayBindings/ResourceEditor/Project/Src/DisplayDefinition.cs

@ -62,10 +62,6 @@ namespace ResourceEditor
this.Files.Add(file); this.Files.Add(file);
} }
public override void RedrawContent()
{
}
public override void Dispose() public override void Dispose()
{ {
base.Dispose(); base.Dispose();

3
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Pads/CallStackPad.cs

@ -81,9 +81,10 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
language.Width = 50; language.Width = 50;
RedrawContent(); RedrawContent();
ResourceService.LanguageChanged += delegate { RedrawContent(); };
} }
public override void RedrawContent() public void RedrawContent()
{ {
name.Text = ResourceService.GetString("Global.Name"); name.Text = ResourceService.GetString("Global.Name");
language.Text = ResourceService.GetString("MainWindow.Windows.Debug.CallStack.Language"); language.Text = ResourceService.GetString("MainWindow.Windows.Debug.CallStack.Language");

3
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Pads/LoadedModulesPad.cs

@ -86,9 +86,10 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
information.Width = 130; information.Width = 130;
RedrawContent(); RedrawContent();
ResourceService.LanguageChanged += delegate { RedrawContent(); };
} }
public override void RedrawContent() public void RedrawContent()
{ {
name.Text = StringParser.Parse("${res:Global.Name}"); name.Text = StringParser.Parse("${res:Global.Name}");
address.Text = StringParser.Parse("${res:MainWindow.Windows.Debug.Modules.AddressColumn}"); address.Text = StringParser.Parse("${res:MainWindow.Windows.Debug.Modules.AddressColumn}");

3
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Pads/LocalVarPad.cs

@ -100,9 +100,10 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
localVarList.AutoRowHeight = true; localVarList.AutoRowHeight = true;
RedrawContent(); RedrawContent();
ResourceService.LanguageChanged += delegate { RedrawContent(); };
} }
public override void RedrawContent() public void RedrawContent()
{ {
nameColumn.Header = ResourceService.GetString("Global.Name"); nameColumn.Header = ResourceService.GetString("Global.Name");
nameColumn.Width = 250; nameColumn.Width = 250;

3
src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Pads/RunningThreadsPad.cs

@ -82,9 +82,10 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
breaked.Width = 80; breaked.Width = 80;
RedrawContent(); RedrawContent();
ResourceService.LanguageChanged += delegate { RedrawContent(); };
} }
public override void RedrawContent() public void RedrawContent()
{ {
id.Text = ResourceService.GetString("Global.ID"); id.Text = ResourceService.GetString("Global.ID");
name.Text = ResourceService.GetString("Global.Name"); name.Text = ResourceService.GetString("Global.Name");

6
src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/DynamicHelpPad.cs

@ -48,11 +48,6 @@ namespace HtmlHelp2
get { return dynamicHelpBrowser; } get { return dynamicHelpBrowser; }
} }
public override void RedrawContent()
{
dynamicHelpBrowser.RedrawContent();
}
[PermissionSet(SecurityAction.LinkDemand, Name="Execution")] [PermissionSet(SecurityAction.LinkDemand, Name="Execution")]
public HtmlHelp2DynamicHelpPad() public HtmlHelp2DynamicHelpPad()
{ {
@ -65,6 +60,7 @@ namespace HtmlHelp2
ProjectService.SolutionClosed += new EventHandler(this.SolutionClosed); ProjectService.SolutionClosed += new EventHandler(this.SolutionClosed);
HtmlHelp2Environment.NamespaceReloaded += new EventHandler(this.NamespaceReloaded); HtmlHelp2Environment.NamespaceReloaded += new EventHandler(this.NamespaceReloaded);
ResourceService.LanguageChanged += delegate { dynamicHelpBrowser.RedrawContent(); };
} }
#region Dynamic Help Calls #region Dynamic Help Calls

6
src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/IndexPad.cs

@ -43,14 +43,10 @@ namespace HtmlHelp2
help2IndexControl.Dispose(); help2IndexControl.Dispose();
} }
public override void RedrawContent()
{
help2IndexControl.RedrawContent();
}
public HtmlHelp2IndexPad() public HtmlHelp2IndexPad()
{ {
help2IndexControl = new MSHelp2IndexControl(); help2IndexControl = new MSHelp2IndexControl();
ResourceService.LanguageChanged += delegate { help2IndexControl.RedrawContent(); };
} }
} }

7
src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/IndexResultsPad.cs

@ -37,11 +37,6 @@ namespace HtmlHelp2
get { return listView; } get { return listView; }
} }
public override void RedrawContent()
{
this.SetListViewHeader();
}
public ListView IndexResultsListView public ListView IndexResultsListView
{ {
get { return listView; } get { return listView; }
@ -50,6 +45,8 @@ namespace HtmlHelp2
public HtmlHelp2IndexResultsPad() public HtmlHelp2IndexResultsPad()
{ {
this.SetListViewHeader(); this.SetListViewHeader();
ResourceService.LanguageChanged += delegate { SetListViewHeader(); };
listView.Columns.Add(title); listView.Columns.Add(title);
listView.Columns.Add(location); listView.Columns.Add(location);

6
src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/SearchPad.cs

@ -57,11 +57,6 @@ namespace HtmlHelp2
searchTerm.Focus(); searchTerm.Focus();
} }
public override void RedrawContent()
{
this.RedrawContentInternal();
}
void RedrawContentInternal() void RedrawContentInternal()
{ {
searchButton.Text = StringParser.Parse("${res:AddIns.HtmlHelp2.Search}"); searchButton.Text = StringParser.Parse("${res:AddIns.HtmlHelp2.Search}");
@ -83,6 +78,7 @@ namespace HtmlHelp2
{ {
this.InitializeComponents(); this.InitializeComponents();
this.UpdateControls(); this.UpdateControls();
ResourceService.LanguageChanged += delegate { RedrawContentInternal(); };
HtmlHelp2Environment.FilterQueryChanged += new EventHandler(FilterQueryChanged); HtmlHelp2Environment.FilterQueryChanged += new EventHandler(FilterQueryChanged);
HtmlHelp2Environment.NamespaceReloaded += new EventHandler(NamespaceReloaded); HtmlHelp2Environment.NamespaceReloaded += new EventHandler(NamespaceReloaded);

6
src/AddIns/Misc/HtmlHelp2/Project/src/BaseControls/TocPad.cs

@ -44,14 +44,10 @@ namespace HtmlHelp2
help2TocControl.Dispose(); help2TocControl.Dispose();
} }
public override void RedrawContent()
{
help2TocControl.RedrawContent();
}
public HtmlHelp2TocPad() public HtmlHelp2TocPad()
{ {
help2TocControl = new MSHelp2TocControl(); help2TocControl = new MSHelp2TocControl();
ResourceService.LanguageChanged += delegate { help2TocControl.RedrawContent(); };
} }
public void SyncToc(string topic) public void SyncToc(string topic)

12
src/Main/Base/Project/Src/Commands/HelpCommands.cs

@ -19,15 +19,9 @@ namespace ICSharpCode.SharpDevelop.Commands
{ {
public override void Run() public override void Run()
{ {
IWorkbenchWindow window = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow; IContextHelpProvider helpProvider = WorkbenchSingleton.Workbench.ActiveContent as IContextHelpProvider;
IContextHelpProvider helpProvider = window != null ? window.ActiveViewContent as IContextHelpProvider : null; if (helpProvider == null)
foreach (PadDescriptor descriptor in WorkbenchSingleton.Workbench.PadContentCollection) { helpProvider = WorkbenchSingleton.Workbench.ActiveViewContent as IContextHelpProvider;
if (descriptor.HasFocus && descriptor.PadContent is IContextHelpProvider) {
((IContextHelpProvider)descriptor.PadContent).ShowHelp();
return;
}
}
if (helpProvider != null) { if (helpProvider != null) {
helpProvider.ShowHelp(); helpProvider.ShowHelp();
} }

4
src/Main/Base/Project/Src/Gui/AbstractPadContent.cs

@ -16,10 +16,6 @@ namespace ICSharpCode.SharpDevelop.Gui
get; get;
} }
public virtual void RedrawContent()
{
}
public virtual void Dispose() public virtual void Dispose()
{ {
} }

4
src/Main/Base/Project/Src/Gui/AbstractViewContent.cs

@ -469,10 +469,6 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
#endregion #endregion
public virtual void RedrawContent()
{
}
public virtual void Save(OpenedFile file, Stream stream) public virtual void Save(OpenedFile file, Stream stream)
{ {
} }

6
src/Main/Base/Project/Src/Gui/IPadContent.cs

@ -23,11 +23,5 @@ namespace ICSharpCode.SharpDevelop.Gui
object Content { object Content {
get; get;
} }
/// <summary>
/// Re-initializes all components of the pad. Don't call unless
/// you know what you do.
/// </summary>
void RedrawContent();
} }
} }

7
src/Main/Base/Project/Src/Gui/IViewContent.cs

@ -66,13 +66,6 @@ namespace ICSharpCode.SharpDevelop.Gui
get; get;
} }
/// <summary>
/// Reinitializes the content. (Re-initializes all add-in tree stuff)
/// and redraws the content.
/// Called on certain actions like changing the UI language.
/// </summary>
void RedrawContent();
/// <summary> /// <summary>
/// The title of the view content. This normally is the title of the primary file being edited. /// The title of the view content. This normally is the title of the primary file being edited.
/// </summary> /// </summary>

16
src/Main/Base/Project/Src/Gui/Pads/CompilerMessageView/CompilerMessageView.cs

@ -160,14 +160,6 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
} }
public override void RedrawContent()
{
// messageCategory.Items.Clear();
// foreach (MessageViewCategory category in messageCategories) {
// messageCategory.Items.Add(StringParser.Parse(category.DisplayCategory));
// }
}
#region Category handling #region Category handling
/// <summary> /// <summary>
/// Adds a category to the compiler message view. This method is thread-safe. /// Adds a category to the compiler message view. This method is thread-safe.
@ -319,14 +311,6 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
#endregion #endregion
/// <summary>
/// Makes this pad visible (usually BEFORE build or debug events)
/// </summary>
void ActivateThisPad()
{
WorkbenchSingleton.Workbench.WorkbenchLayout.ActivatePad(this.GetType().FullName);
}
/// <summary> /// <summary>
/// Occurs when the mouse pointer is over the control and a /// Occurs when the mouse pointer is over the control and a
/// mouse button is pressed. /// mouse button is pressed.

8
src/Main/Base/Project/Src/Gui/Pads/DefinitionViewPad.cs

@ -153,13 +153,5 @@ namespace ICSharpCode.SharpDevelop.Gui
ctl.LoadFile(fileName, true, true); // TODO: get AutoDetectEncoding from settings ctl.LoadFile(fileName, true, true); // TODO: get AutoDetectEncoding from settings
} }
} }
/// <summary>
/// Refreshes the pad
/// </summary>
public override void RedrawContent()
{
// Refresh the whole pad control here, renew all resource strings whatever.
}
} }
} }

3
src/Main/Base/Project/Src/Gui/Pads/ErrorList/ErrorListPad.cs

@ -81,6 +81,7 @@ namespace ICSharpCode.SharpDevelop.Gui
instance = this; instance = this;
RedrawContent(); RedrawContent();
ResourceService.LanguageChanged += delegate { RedrawContent(); };
TaskService.Cleared += new EventHandler(TaskServiceCleared); TaskService.Cleared += new EventHandler(TaskServiceCleared);
TaskService.Added += new TaskEventHandler(TaskServiceAdded); TaskService.Added += new TaskEventHandler(TaskServiceAdded);
@ -106,7 +107,7 @@ namespace ICSharpCode.SharpDevelop.Gui
InternalShowResults(); InternalShowResults();
} }
public override void RedrawContent() void RedrawContent()
{ {
taskView.RefreshColumnNames(); taskView.RefreshColumnNames();
} }

5
src/Main/Base/Project/Src/Gui/Pads/PropertyPad/PropertyPad.cs

@ -288,11 +288,6 @@ namespace ICSharpCode.SharpDevelop.Gui
} }
} }
public override void RedrawContent()
{
grid.Refresh();
}
public override void Dispose() public override void Dispose()
{ {
base.Dispose(); base.Dispose();

3
src/Main/Base/Project/Src/Gui/Pads/TaskList/TaskListPad.cs

@ -62,6 +62,7 @@ namespace ICSharpCode.SharpDevelop.Gui
this.displayedTokens = new Dictionary<string, bool>(); this.displayedTokens = new Dictionary<string, bool>();
RedrawContent(); RedrawContent();
ResourceService.LanguageChanged += delegate { RedrawContent(); };
InitializeToolStrip(); InitializeToolStrip();
@ -150,7 +151,7 @@ namespace ICSharpCode.SharpDevelop.Gui
contentPanel.Controls.Add(toolStrip); contentPanel.Controls.Add(toolStrip);
} }
public override void RedrawContent() void RedrawContent()
{ {
taskView.RefreshColumnNames(); taskView.RefreshColumnNames();
} }

2
src/Main/Base/Project/Src/Gui/Workbench/Layouts/AvalonDockLayout.cs

@ -48,9 +48,9 @@ namespace ICSharpCode.SharpDevelop.Gui
void dockingManager_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) void dockingManager_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{ {
if (e.PropertyName == "ActiveContent") { if (e.PropertyName == "ActiveContent") {
CommandManager.InvalidateRequerySuggested();
if (ActiveContentChanged != null) if (ActiveContentChanged != null)
ActiveContentChanged(this, e); ActiveContentChanged(this, e);
CommandManager.InvalidateRequerySuggested();
} }
} }

14
src/Main/Base/Project/Src/Internal/Doozers/PadDescriptor.cs

@ -111,13 +111,6 @@ namespace ICSharpCode.SharpDevelop
} }
} }
public bool HasFocus {
get {
return false;
//return (padContent != null) ? padContent.Content.ContainsFocus : false;
}
}
public IPadContent PadContent { public IPadContent PadContent {
get { get {
CreatePad(); CreatePad();
@ -133,13 +126,6 @@ namespace ICSharpCode.SharpDevelop
} }
} }
public void RedrawContent()
{
if (padContent != null) {
padContent.RedrawContent();
}
}
public void CreatePad() public void CreatePad()
{ {
#if DEBUG #if DEBUG

6
src/Main/Base/Project/Src/TextEditor/Gui/Editor/TextEditorBasedPad.cs

@ -80,12 +80,6 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
this.TextEditorControl.Redo(); this.TextEditorControl.Redo();
} }
public override void RedrawContent()
{
this.TextEditorControl.OptionsChanged();
this.TextEditorControl.Refresh();
}
#region IPositionable implementation #region IPositionable implementation
void IPositionable.JumpTo(int line, int column) void IPositionable.JumpTo(int line, int column)
{ {

6
src/Main/Base/Project/Src/TextEditor/Gui/Editor/TextEditorDisplayBinding.cs

@ -189,12 +189,6 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
NavigationService.ContentChanging(this.textEditorControl, e); NavigationService.ContentChanging(this.textEditorControl, e);
} }
public override void RedrawContent()
{
textEditorControl.OptionsChanged();
textEditorControl.Refresh();
}
public override void Dispose() public override void Dispose()
{ {
if (this.PrimaryFile.IsUntitled) { if (this.PrimaryFile.IsUntitled) {

11
src/Main/ICSharpCode.Core.Presentation/PresentationResourceService.cs

@ -8,6 +8,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Runtime.InteropServices;
using System.Windows; using System.Windows;
using System.Windows.Interop; using System.Windows.Interop;
using System.Windows.Media.Imaging; using System.Windows.Media.Imaging;
@ -73,12 +74,20 @@ namespace ICSharpCode.Core.Presentation
if (bmp == null) { if (bmp == null) {
throw new ResourceNotFoundException(name); throw new ResourceNotFoundException(name);
} }
bs = Imaging.CreateBitmapSourceFromHBitmap(bmp.GetHbitmap(), IntPtr.Zero, IntPtr hBitmap = bmp.GetHbitmap();
try {
bs = Imaging.CreateBitmapSourceFromHBitmap(hBitmap, IntPtr.Zero,
Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()); Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
bs.Freeze(); bs.Freeze();
bitmapCache[name] = bs; bitmapCache[name] = bs;
} finally {
DeleteObject(hBitmap);
}
return bs; return bs;
} }
} }
[DllImport("gdi32.dll")]
static extern bool DeleteObject(IntPtr hObject);
} }
} }

Loading…
Cancel
Save