Browse Source

Move IMenuItemBuilder into ICSharpCode.Core.

Changes ICustomizedCommands to [ViewContentService]
newNRvisualizers
Daniel Grunwald 13 years ago
parent
commit
64254d99a6
  1. 2
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpLanguageBinding.cs
  2. 2
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpSemanticHighlighter.cs
  3. 2
      src/Main/Base/Project/Editor/Search/SearchResultPadToolbarCommands.cs
  4. 4
      src/Main/Base/Project/Src/Commands/BuildCommands.cs
  5. 15
      src/Main/Base/Project/Src/Commands/FileCommands.cs
  6. 14
      src/Main/Base/Project/Src/Commands/MenuItemBuilders.cs
  7. 3
      src/Main/Base/Project/Workbench/ICustomizedCommands.cs
  8. 1
      src/Main/Core/Project/ICSharpCode.Core.csproj
  9. 6
      src/Main/Core/Project/Src/AddInTree/AddIn/DefaultDoozers/MenuItem/IMenuItemBuilder.cs
  10. 2
      src/Main/Core/Project/Src/Services/ServiceSingleton.cs
  11. 1
      src/Main/ICSharpCode.Core.Presentation/ICSharpCode.Core.Presentation.csproj
  12. 6
      src/Main/ICSharpCode.Core.Presentation/Menu/MenuService.cs
  13. 2
      src/Main/ICSharpCode.Core.Presentation/ToolBar/ToolBarService.cs
  14. 1
      src/Main/ICSharpCode.Core.WinForms/ICSharpCode.Core.WinForms.csproj
  15. 13
      src/Main/ICSharpCode.Core.WinForms/Menu/ISubmenuBuilder.cs
  16. 5
      src/Main/ICSharpCode.Core.WinForms/Menu/Menu.cs
  17. 5
      src/Main/ICSharpCode.Core.WinForms/Menu/MenuService.cs
  18. 5
      src/Main/ICSharpCode.Core.WinForms/ToolBar/ToolBarDropDownButton.cs
  19. 7
      src/Main/ICSharpCode.Core.WinForms/ToolBar/ToolBarService.cs
  20. 8
      src/Main/ICSharpCode.Core.WinForms/ToolBar/ToolBarSplitButton.cs
  21. 8
      src/Main/SharpDevelop/Workbench/SingleInstanceHelper.cs

2
src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpLanguageBinding.cs

@ -34,7 +34,6 @@ namespace CSharpBinding
} }
ITextEditor editor; ITextEditor editor;
CSharpSemanticHighlighter semanticHighlighter;
IssueManager inspectionManager; IssueManager inspectionManager;
IList<IContextActionProvider> contextActionProviders; IList<IContextActionProvider> contextActionProviders;
@ -54,7 +53,6 @@ namespace CSharpBinding
public override void Detach() public override void Detach()
{ {
//codeManipulation.Dispose(); //codeManipulation.Dispose();
IHighlighter highlighter = editor.GetService(typeof(IHighlighter)) as IHighlighter;
if (inspectionManager != null) { if (inspectionManager != null) {
inspectionManager.Dispose(); inspectionManager.Dispose();
inspectionManager = null; inspectionManager = null;

2
src/AddIns/BackendBindings/CSharpBinding/Project/Src/CSharpSemanticHighlighter.cs

@ -152,7 +152,7 @@ namespace CSharpBinding
void ParserService_ParseInformationUpdated(object sender, ParseInformationEventArgs e) void ParserService_ParseInformationUpdated(object sender, ParseInformationEventArgs e)
{ {
if (e.FileName == document.FileName && invalidLines.Count > 0) { if (FileUtility.IsEqualFileName(e.FileName, document.FileName) && invalidLines.Count > 0) {
cachedLines.Clear(); cachedLines.Clear();
foreach (IDocumentLine line in invalidLines) { foreach (IDocumentLine line in invalidLines) {
if (!line.IsDeleted) { if (!line.IsDeleted) {

2
src/Main/Base/Project/Editor/Search/SearchResultPadToolbarCommands.cs

@ -13,7 +13,7 @@ namespace ICSharpCode.SharpDevelop.Editor.Search
{ {
public class LastSearchResultsBuilder : IMenuItemBuilder public class LastSearchResultsBuilder : IMenuItemBuilder
{ {
public ICollection BuildItems(Codon codon, object owner) public IEnumerable<object> BuildItems(Codon codon, object owner)
{ {
List<object> items = new List<object>(); List<object> items = new List<object>();
foreach (ISearchResult searchResult in SearchResultsPad.Instance.LastSearches) { foreach (ISearchResult searchResult in SearchResultsPad.Instance.LastSearches) {

4
src/Main/Base/Project/Src/Commands/BuildCommands.cs

@ -242,7 +242,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
public class SetConfigurationMenuBuilder : IMenuItemBuilder public class SetConfigurationMenuBuilder : IMenuItemBuilder
{ {
public System.Collections.ICollection BuildItems(Codon codon, object owner) public IEnumerable<object> BuildItems(Codon codon, object owner)
{ {
if (ProjectService.OpenSolution == null) if (ProjectService.OpenSolution == null)
return new MenuItem[0]; return new MenuItem[0];
@ -270,7 +270,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
public class SetPlatformMenuBuilder : IMenuItemBuilder public class SetPlatformMenuBuilder : IMenuItemBuilder
{ {
public System.Collections.ICollection BuildItems(Codon codon, object owner) public IEnumerable<object> BuildItems(Codon codon, object owner)
{ {
if (ProjectService.OpenSolution == null) if (ProjectService.OpenSolution == null)
return new MenuItem[0]; return new MenuItem[0];

15
src/Main/Base/Project/Src/Commands/FileCommands.cs

@ -73,10 +73,9 @@ namespace ICSharpCode.SharpDevelop.Commands
internal static void Save(IViewContent content) internal static void Save(IViewContent content)
{ {
if (content != null && content.IsDirty) { if (content != null && content.IsDirty) {
if (content is ICustomizedCommands) { var customizedCommands = content.GetService<ICustomizedCommands>();
if (((ICustomizedCommands)content).SaveCommand()) { if (customizedCommands != null && customizedCommands.SaveCommand()) {
return; return;
}
} }
if (content.IsViewOnly) { if (content.IsViewOnly) {
return; return;
@ -143,7 +142,8 @@ namespace ICSharpCode.SharpDevelop.Commands
foreach (IViewContent content in window.ViewContents) { foreach (IViewContent content in window.ViewContents) {
// try to run customized Save As Command, exclude ViewContent if successful // try to run customized Save As Command, exclude ViewContent if successful
if (content is ICustomizedCommands && (content as ICustomizedCommands).SaveAsCommand()) var customizedCommands = content.GetService<ICustomizedCommands>();
if (customizedCommands != null && customizedCommands.SaveAsCommand())
continue; continue;
// exclude view only ViewContents // exclude view only ViewContents
if (content.IsViewOnly) if (content.IsViewOnly)
@ -195,8 +195,9 @@ namespace ICSharpCode.SharpDevelop.Commands
public static void SaveAll() public static void SaveAll()
{ {
foreach (IViewContent content in WorkbenchSingleton.Workbench.ViewContentCollection) { foreach (IViewContent content in WorkbenchSingleton.Workbench.ViewContentCollection) {
if (content is ICustomizedCommands && content.IsDirty) { var customizedCommands = content.GetService<ICustomizedCommands>();
((ICustomizedCommands)content).SaveCommand(); if (customizedCommands != null && content.IsDirty) {
customizedCommands.SaveCommand();
} }
} }
foreach (OpenedFile file in SD.FileService.OpenedFiles) { foreach (OpenedFile file in SD.FileService.OpenedFiles) {

14
src/Main/Base/Project/Src/Commands/MenuItemBuilders.cs

@ -102,7 +102,7 @@ namespace ICSharpCode.SharpDevelop.Commands
return items; return items;
} }
public ICollection BuildItems(Codon codon, object owner) public IEnumerable<object> BuildItems(Codon codon, object owner)
{ {
if (NavigationService.CanNavigateBack || NavigationService.CanNavigateForwards) { if (NavigationService.CanNavigateBack || NavigationService.CanNavigateForwards) {
ICollection<INavigationPoint> points = NavigationService.Points; ICollection<INavigationPoint> points = NavigationService.Points;
@ -135,7 +135,7 @@ namespace ICSharpCode.SharpDevelop.Commands
public class RecentFilesMenuBuilder : IMenuItemBuilder public class RecentFilesMenuBuilder : IMenuItemBuilder
{ {
public ICollection BuildItems(Codon codon, object owner) public IEnumerable<object> BuildItems(Codon codon, object owner)
{ {
IRecentOpen recentOpen = SD.FileService.RecentOpen; IRecentOpen recentOpen = SD.FileService.RecentOpen;
@ -165,7 +165,7 @@ namespace ICSharpCode.SharpDevelop.Commands
public class RecentProjectsMenuBuilder : IMenuItemBuilder public class RecentProjectsMenuBuilder : IMenuItemBuilder
{ {
public ICollection BuildItems(Codon codon, object owner) public IEnumerable<object> BuildItems(Codon codon, object owner)
{ {
IRecentOpen recentOpen = SD.FileService.RecentOpen; IRecentOpen recentOpen = SD.FileService.RecentOpen;
@ -195,7 +195,7 @@ namespace ICSharpCode.SharpDevelop.Commands
public class ToolMenuBuilder : IMenuItemBuilder public class ToolMenuBuilder : IMenuItemBuilder
{ {
public ICollection BuildItems(Codon codon, object owner) public IEnumerable<object> BuildItems(Codon codon, object owner)
{ {
var items = new System.Windows.Controls.MenuItem[ToolLoader.Tool.Count]; var items = new System.Windows.Controls.MenuItem[ToolLoader.Tool.Count];
for (int i = 0; i < ToolLoader.Tool.Count; ++i) { for (int i = 0; i < ToolLoader.Tool.Count; ++i) {
@ -278,7 +278,7 @@ namespace ICSharpCode.SharpDevelop.Commands
public class OpenContentsMenuBuilder : IMenuItemBuilder public class OpenContentsMenuBuilder : IMenuItemBuilder
{ {
public ICollection BuildItems(Codon codon, object owner) public IEnumerable<object> BuildItems(Codon codon, object owner)
{ {
int windowCount = WorkbenchSingleton.Workbench.WorkbenchWindowCollection.Count; int windowCount = WorkbenchSingleton.Workbench.WorkbenchWindowCollection.Count;
if (windowCount == 0) { if (windowCount == 0) {
@ -452,9 +452,9 @@ namespace ICSharpCode.SharpDevelop.Commands
get; get;
} }
public ICollection BuildItems(Codon codon, object owner) public IEnumerable<object> BuildItems(Codon codon, object owner)
{ {
ArrayList list = new ArrayList(); List<object> list = new List<object>();
foreach (PadDescriptor padContent in WorkbenchSingleton.Workbench.PadContentCollection) { foreach (PadDescriptor padContent in WorkbenchSingleton.Workbench.PadContentCollection) {
if (padContent.Category == Category) { if (padContent.Category == Category) {
var item = new System.Windows.Controls.MenuItem(); var item = new System.Windows.Controls.MenuItem();

3
src/Main/Base/Project/Workbench/ICustomizedCommands.cs

@ -5,11 +5,10 @@ using System;
namespace ICSharpCode.SharpDevelop.Workbench namespace ICSharpCode.SharpDevelop.Workbench
{ {
// TODO: change to [ViewContentService]
/// <summary> /// <summary>
/// Allows an IViewContent to handle the save command on its own instead of using OpenedFile. /// Allows an IViewContent to handle the save command on its own instead of using OpenedFile.
/// </summary> /// </summary>
[ViewContentService]
public interface ICustomizedCommands public interface ICustomizedCommands
{ {
/// <summary> /// <summary>

1
src/Main/Core/Project/ICSharpCode.Core.csproj

@ -73,6 +73,7 @@
<Compile Include="Src\AddInTree\AddIn\ComplexCondition.cs" /> <Compile Include="Src\AddInTree\AddIn\ComplexCondition.cs" />
<Compile Include="Src\AddInTree\AddIn\Condition.cs" /> <Compile Include="Src\AddInTree\AddIn\Condition.cs" />
<Compile Include="Src\AddInTree\AddIn\DefaultDoozers\MenuItem\ICheckableMenuCommand.cs" /> <Compile Include="Src\AddInTree\AddIn\DefaultDoozers\MenuItem\ICheckableMenuCommand.cs" />
<Compile Include="Src\AddInTree\AddIn\DefaultDoozers\MenuItem\IMenuItemBuilder.cs" />
<Compile Include="Src\AddInTree\AddIn\DefaultDoozers\ServiceDoozer.cs" /> <Compile Include="Src\AddInTree\AddIn\DefaultDoozers\ServiceDoozer.cs" />
<Compile Include="Src\AddInTree\AddIn\ExtensionPath.cs" /> <Compile Include="Src\AddInTree\AddIn\ExtensionPath.cs" />
<Compile Include="Src\AddInTree\AddIn\IConditionEvaluator.cs" /> <Compile Include="Src\AddInTree\AddIn\IConditionEvaluator.cs" />

6
src/Main/ICSharpCode.Core.Presentation/Menu/IMenuItemBuilder.cs → src/Main/Core/Project/Src/AddInTree/AddIn/DefaultDoozers/MenuItem/IMenuItemBuilder.cs

@ -2,15 +2,15 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System; using System;
using System.Collections; using System.Collections.Generic;
namespace ICSharpCode.Core.Presentation namespace ICSharpCode.Core
{ {
/// <summary> /// <summary>
/// Used to include a dynamically built list of menu items. /// Used to include a dynamically built list of menu items.
/// </summary> /// </summary>
public interface IMenuItemBuilder public interface IMenuItemBuilder
{ {
ICollection BuildItems(Codon codon, object owner); IEnumerable<object> BuildItems(Codon codon, object parameter);
} }
} }

2
src/Main/Core/Project/Src/Services/ServiceSingleton.cs

@ -37,7 +37,7 @@ namespace ICSharpCode.Core
} }
/// <summary> /// <summary>
/// Retrieves the service of type <paramref name="serviceType"/> from the provider. /// Retrieves the service of type <typeparamref name="T"/> from the provider.
/// If the service cannot be found, a <see cref="ServiceNotFoundException"/> will be thrown. /// If the service cannot be found, a <see cref="ServiceNotFoundException"/> will be thrown.
/// </summary> /// </summary>
public static T GetRequiredService<T>() public static T GetRequiredService<T>()

1
src/Main/ICSharpCode.Core.Presentation/ICSharpCode.Core.Presentation.csproj

@ -85,7 +85,6 @@
<Compile Include="IStatusUpdate.cs" /> <Compile Include="IStatusUpdate.cs" />
<Compile Include="LanguageChangeWeakEventManager.cs" /> <Compile Include="LanguageChangeWeakEventManager.cs" />
<Compile Include="LocalizeExtension.cs" /> <Compile Include="LocalizeExtension.cs" />
<Compile Include="Menu\IMenuItemBuilder.cs" />
<Compile Include="Menu\MenuCommand.cs" /> <Compile Include="Menu\MenuCommand.cs" />
<Compile Include="Menu\MenuService.cs" /> <Compile Include="Menu\MenuService.cs" />
<Compile Include="Menu\CoreMenuItem.cs" /> <Compile Include="Menu\CoreMenuItem.cs" />

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

@ -146,7 +146,7 @@ namespace ICSharpCode.Core.Presentation
this.caller = caller; this.caller = caller;
} }
public ICollection BuildItems() public IEnumerable<object> BuildItems()
{ {
return builder.BuildItems(codon, caller); return builder.BuildItems(codon, caller);
} }
@ -165,11 +165,11 @@ namespace ICSharpCode.Core.Presentation
static IList ExpandMenuBuilders(ICollection input, bool addDummyEntryIfMenuEmpty) static IList ExpandMenuBuilders(ICollection input, bool addDummyEntryIfMenuEmpty)
{ {
ArrayList result = new ArrayList(input.Count); List<object> result = new List<object>(input.Count);
foreach (object o in input) { foreach (object o in input) {
MenuItemBuilderPlaceholder p = o as MenuItemBuilderPlaceholder; MenuItemBuilderPlaceholder p = o as MenuItemBuilderPlaceholder;
if (p != null) { if (p != null) {
ICollection c = p.BuildItems(); IEnumerable<object> c = p.BuildItems();
if (c != null) if (c != null)
result.AddRange(c); result.AddRange(c);
} else { } else {

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

@ -31,7 +31,7 @@ namespace ICSharpCode.Core.Presentation
static IList CreateToolBarItems(UIElement inputBindingOwner, IEnumerable descriptors) static IList CreateToolBarItems(UIElement inputBindingOwner, IEnumerable descriptors)
{ {
ArrayList result = new ArrayList(); List<object> result = new List<object>();
foreach (ToolbarItemDescriptor descriptor in descriptors) { foreach (ToolbarItemDescriptor descriptor in descriptors) {
object item = CreateToolBarItemFromDescriptor(inputBindingOwner, descriptor); object item = CreateToolBarItemFromDescriptor(inputBindingOwner, descriptor);
IMenuItemBuilder submenuBuilder = item as IMenuItemBuilder; IMenuItemBuilder submenuBuilder = item as IMenuItemBuilder;

1
src/Main/ICSharpCode.Core.WinForms/ICSharpCode.Core.WinForms.csproj

@ -54,7 +54,6 @@
<Link>Properties\GlobalAssemblyInfo.cs</Link> <Link>Properties\GlobalAssemblyInfo.cs</Link>
</Compile> </Compile>
<Compile Include="Menu\IStatusUpdate.cs" /> <Compile Include="Menu\IStatusUpdate.cs" />
<Compile Include="Menu\ISubmenuBuilder.cs" />
<Compile Include="Menu\Menu.cs" /> <Compile Include="Menu\Menu.cs" />
<Compile Include="Menu\MenuCheckBox.cs" /> <Compile Include="Menu\MenuCheckBox.cs" />
<Compile Include="Menu\MenuCommand.cs" /> <Compile Include="Menu\MenuCommand.cs" />

13
src/Main/ICSharpCode.Core.WinForms/Menu/ISubmenuBuilder.cs

@ -1,13 +0,0 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Windows.Forms;
namespace ICSharpCode.Core.WinForms
{
public interface ISubmenuBuilder
{
ToolStripItem[] BuildSubmenu(Codon codon, object owner);
}
}

5
src/Main/ICSharpCode.Core.WinForms/Menu/Menu.cs

@ -4,6 +4,7 @@
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms; using System.Windows.Forms;
namespace ICSharpCode.Core.WinForms namespace ICSharpCode.Core.WinForms
@ -46,8 +47,8 @@ namespace ICSharpCode.Core.WinForms
((IStatusUpdate)item).UpdateText(); ((IStatusUpdate)item).UpdateText();
} }
} else { } else {
ISubmenuBuilder submenuBuilder = (ISubmenuBuilder)item; IMenuItemBuilder submenuBuilder = (IMenuItemBuilder)item;
DropDownItems.AddRange(submenuBuilder.BuildSubmenu(codon, caller)); DropDownItems.AddRange(submenuBuilder.BuildItems(codon, caller).Cast<ToolStripItem>().ToArray());
} }
} }
} }

5
src/Main/ICSharpCode.Core.WinForms/Menu/MenuService.cs

@ -5,6 +5,7 @@ using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Linq;
using System.Windows.Forms; using System.Windows.Forms;
namespace ICSharpCode.Core.WinForms namespace ICSharpCode.Core.WinForms
@ -25,8 +26,8 @@ namespace ICSharpCode.Core.WinForms
if (item is IStatusUpdate) if (item is IStatusUpdate)
((IStatusUpdate)item).UpdateStatus(); ((IStatusUpdate)item).UpdateStatus();
} else { } else {
ISubmenuBuilder submenuBuilder = (ISubmenuBuilder)item; IMenuItemBuilder submenuBuilder = (IMenuItemBuilder)item;
collection.AddRange(submenuBuilder.BuildSubmenu(descriptor.Codon, descriptor.Parameter)); collection.AddRange(submenuBuilder.BuildItems(descriptor.Codon, descriptor.Parameter).Cast<ToolStripItem>().ToArray());
} }
} }
} }

5
src/Main/ICSharpCode.Core.WinForms/ToolBar/ToolBarDropDownButton.cs

@ -4,6 +4,7 @@
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms; using System.Windows.Forms;
using System.Windows.Input; using System.Windows.Input;
@ -68,8 +69,8 @@ namespace ICSharpCode.Core.WinForms
} }
else else
{ {
ISubmenuBuilder submenuBuilder = (ISubmenuBuilder)item; IMenuItemBuilder submenuBuilder = (IMenuItemBuilder)item;
DropDownItems.AddRange(submenuBuilder.BuildSubmenu(codon, caller)); DropDownItems.AddRange(submenuBuilder.BuildItems(codon, caller).Cast<ToolStripItem>().ToArray());
} }
} }
} }

7
src/Main/ICSharpCode.Core.WinForms/ToolBar/ToolBarService.cs

@ -3,6 +3,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms; using System.Windows.Forms;
namespace ICSharpCode.Core.WinForms namespace ICSharpCode.Core.WinForms
@ -23,9 +24,9 @@ namespace ICSharpCode.Core.WinForms
object item = CreateToolbarItemFromDescriptor(descriptor); object item = CreateToolbarItemFromDescriptor(descriptor);
if (item is ToolStripItem) { if (item is ToolStripItem) {
collection.Add((ToolStripItem)item); collection.Add((ToolStripItem)item);
} else if (item is ISubmenuBuilder) { } else if (item is IMenuItemBuilder) {
ISubmenuBuilder submenuBuilder = (ISubmenuBuilder)item; IMenuItemBuilder submenuBuilder = (IMenuItemBuilder)item;
collection.AddRange(submenuBuilder.BuildSubmenu(descriptor.Codon, owner)); collection.AddRange(submenuBuilder.BuildItems(descriptor.Codon, owner).Cast<ToolStripItem>().ToArray());
} }
} }

8
src/Main/ICSharpCode.Core.WinForms/ToolBar/ToolBarSplitButton.cs

@ -5,6 +5,7 @@ using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Linq;
using System.Windows.Forms; using System.Windows.Forms;
using System.Windows.Input; using System.Windows.Input;
@ -65,11 +66,8 @@ namespace ICSharpCode.Core.WinForms
} }
else else
{ {
ISubmenuBuilder submenuBuilder = (ISubmenuBuilder)item; IMenuItemBuilder submenuBuilder = (IMenuItemBuilder)item;
itemsToAdd = submenuBuilder.BuildSubmenu(codon, caller); DropDownItems.AddRange(submenuBuilder.BuildItems(codon, caller).Cast<ToolStripItem>().ToArray());
if (itemsToAdd!=null) {
DropDownItems.AddRange(itemsToAdd);
}
} }
} }
} }

8
src/Main/SharpDevelop/Workbench/SingleInstanceHelper.cs

@ -6,8 +6,8 @@ using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.IO; using System.IO;
using System.Reflection; using System.Reflection;
using System.Windows;
using System.Windows.Forms; using System.Windows.Forms;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Project; using ICSharpCode.SharpDevelop.Project;
@ -69,7 +69,11 @@ namespace ICSharpCode.SharpDevelop.Workbench
} else { } else {
try { try {
SD.MainThread.InvokeAsync( SD.MainThread.InvokeAsync(
delegate { NativeMethods.SetForegroundWindow(SD.Workbench.MainWin32Window.Handle); } delegate {
var win32Window = PresentationSource.FromVisual(SD.Workbench.MainWindow) as System.Windows.Interop.IWin32Window;
if (win32Window != null)
NativeMethods.SetForegroundWindow(win32Window.Handle);
}
).FireAndForget(); ).FireAndForget();
string tempFileName = Path.Combine(Path.GetTempPath(), "sd" + fileNumber + ".tmp"); string tempFileName = Path.Combine(Path.GetTempPath(), "sd" + fileNumber + ".tmp");
foreach (string file in File.ReadAllLines(tempFileName)) { foreach (string file in File.ReadAllLines(tempFileName)) {

Loading…
Cancel
Save