Browse Source

Add interface to allow replacing WinFormsMessageService with a custom implementation when hosting SharpDevelop.

pull/1/head
Daniel Grunwald 15 years ago
parent
commit
53f51a2cf3
  1. 12
      src/Main/Base/Project/Src/Gui/WorkbenchSingleton.cs
  2. 1
      src/Main/ICSharpCode.Core.WinForms/ICSharpCode.Core.WinForms.csproj
  3. 24
      src/Main/ICSharpCode.Core.WinForms/MessageService/IDialogMessageService.cs
  4. 2
      src/Main/ICSharpCode.Core.WinForms/MessageService/WinFormsMessageService.cs

12
src/Main/Base/Project/Src/Gui/WorkbenchSingleton.cs

@ -57,7 +57,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -57,7 +57,7 @@ namespace ICSharpCode.SharpDevelop.Gui
}
}
public static IStatusBarService StatusBar {
public static IStatusBarService StatusBar {
get {
return workbench != null ? workbench.StatusBar : null;
}
@ -77,10 +77,12 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -77,10 +77,12 @@ namespace ICSharpCode.SharpDevelop.Gui
Project.CustomToolsService.Initialize();
Project.BuildModifiedProjectsOnlyService.Initialize();
var messageService = (WinFormsMessageService)Core.Services.ServiceManager.Instance.MessageService;
messageService.DialogOwner = workbench.MainWin32Window;
Debug.Assert(messageService.DialogOwner != null);
messageService.DialogSynchronizeInvoke = workbench.SynchronizingObject;
var messageService = Core.Services.ServiceManager.Instance.MessageService as IDialogMessageService;
if (messageService != null) {
messageService.DialogOwner = workbench.MainWin32Window;
Debug.Assert(messageService.DialogOwner != null);
messageService.DialogSynchronizeInvoke = workbench.SynchronizingObject;
}
workbench.Initialize();
workbench.SetMemento(PropertyService.Get(workbenchMemento, new Properties()));

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

@ -59,6 +59,7 @@ @@ -59,6 +59,7 @@
<Compile Include="Menu\MenuSeparator.cs" />
<Compile Include="Menu\MenuService.cs" />
<Compile Include="MessageService\CustomDialog.cs" />
<Compile Include="MessageService\IDialogMessageService.cs" />
<Compile Include="MessageService\InputBox.cs" />
<Compile Include="MessageService\SaveErrorChooseDialog.cs" />
<Compile Include="MessageService\SaveErrorInformDialog.cs" />

24
src/Main/ICSharpCode.Core.WinForms/MessageService/IDialogMessageService.cs

@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <author name="Daniel Grunwald"/>
// <version>$Revision$</version>
// </file>
using System;
using System.ComponentModel;
using System.Windows.Forms;
using ICSharpCode.Core.Services;
namespace ICSharpCode.Core.WinForms
{
/// <summary>
/// Message service that sets an owner for dialog boxes.
/// </summary>
public interface IDialogMessageService : IMessageService
{
IWin32Window DialogOwner { set; get; }
ISynchronizeInvoke DialogSynchronizeInvoke { set; get; }
}
}

2
src/Main/ICSharpCode.Core.WinForms/MessageService/WinFormsMessageService.cs

@ -18,7 +18,7 @@ namespace ICSharpCode.Core.WinForms @@ -18,7 +18,7 @@ namespace ICSharpCode.Core.WinForms
/// All text displayed using the MessageService is passed to the
/// <see cref="StringParser"/> to replace ${res} markers.
/// </summary>
public class WinFormsMessageService : IMessageService
public class WinFormsMessageService : IDialogMessageService
{
/// <summary>
/// Gets/Sets the form used as owner for shown message boxes.

Loading…
Cancel
Save