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 @@ -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()
{
ParserService.ParseInformationUpdated -= OnParseInformationUpdated;

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

@ -162,15 +162,6 @@ namespace ClassDiagramAddin @@ -162,15 +162,6 @@ namespace ClassDiagramAddin
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>
/// Cleans up all used resources
/// </summary>

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

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

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

@ -81,9 +81,10 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads @@ -81,9 +81,10 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
language.Width = 50;
RedrawContent();
ResourceService.LanguageChanged += delegate { RedrawContent(); };
}
public override void RedrawContent()
public void RedrawContent()
{
name.Text = ResourceService.GetString("Global.Name");
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 @@ -86,9 +86,10 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
information.Width = 130;
RedrawContent();
ResourceService.LanguageChanged += delegate { RedrawContent(); };
}
public override void RedrawContent()
public void RedrawContent()
{
name.Text = StringParser.Parse("${res:Global.Name}");
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 @@ -100,9 +100,10 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
localVarList.AutoRowHeight = true;
RedrawContent();
ResourceService.LanguageChanged += delegate { RedrawContent(); };
}
public override void RedrawContent()
public void RedrawContent()
{
nameColumn.Header = ResourceService.GetString("Global.Name");
nameColumn.Width = 250;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -469,10 +469,6 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -469,10 +469,6 @@ namespace ICSharpCode.SharpDevelop.Gui
}
#endregion
public virtual void RedrawContent()
{
}
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 @@ -23,11 +23,5 @@ namespace ICSharpCode.SharpDevelop.Gui
object Content {
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 @@ -66,13 +66,6 @@ namespace ICSharpCode.SharpDevelop.Gui
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>
/// The title of the view content. This normally is the title of the primary file being edited.
/// </summary>

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

@ -160,14 +160,6 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -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
/// <summary>
/// Adds a category to the compiler message view. This method is thread-safe.
@ -319,14 +311,6 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -319,14 +311,6 @@ namespace ICSharpCode.SharpDevelop.Gui
}
#endregion
/// <summary>
/// Makes this pad visible (usually BEFORE build or debug events)
/// </summary>
void ActivateThisPad()
{
WorkbenchSingleton.Workbench.WorkbenchLayout.ActivatePad(this.GetType().FullName);
}
/// <summary>
/// Occurs when the mouse pointer is over the control and a
/// mouse button is pressed.

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

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

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

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

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

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

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

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

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

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

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

@ -80,12 +80,6 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor @@ -80,12 +80,6 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
this.TextEditorControl.Redo();
}
public override void RedrawContent()
{
this.TextEditorControl.OptionsChanged();
this.TextEditorControl.Refresh();
}
#region IPositionable implementation
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 @@ -189,12 +189,6 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
NavigationService.ContentChanging(this.textEditorControl, e);
}
public override void RedrawContent()
{
textEditorControl.OptionsChanged();
textEditorControl.Refresh();
}
public override void Dispose()
{
if (this.PrimaryFile.IsUntitled) {

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

@ -8,6 +8,7 @@ @@ -8,6 +8,7 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Windows;
using System.Windows.Interop;
using System.Windows.Media.Imaging;
@ -73,12 +74,20 @@ namespace ICSharpCode.Core.Presentation @@ -73,12 +74,20 @@ namespace ICSharpCode.Core.Presentation
if (bmp == null) {
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());
bs.Freeze();
bitmapCache[name] = bs;
} finally {
DeleteObject(hBitmap);
}
return bs;
}
}
[DllImport("gdi32.dll")]
static extern bool DeleteObject(IntPtr hObject);
}
}

Loading…
Cancel
Save