Browse Source

Remove IWorkbenchLayout from public API.

newNRvisualizers
Daniel Grunwald 13 years ago
parent
commit
fd230873e4
  1. 8
      samples/PortSD4AddInToSD5/WorkbenchSingletonIssueProvider.cs
  2. 2
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlContext.cs
  3. 1
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlSymbolSearch.cs
  4. 10
      src/AddIns/Debugger/Debugger.Tests/Tests/ExpressionEvaluatorVisitor_Tests.cs
  5. 3
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs
  6. 2
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs
  7. 1
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/IconBarManager.cs
  8. 4
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/IconBarMargin.cs
  9. 5
      src/AddIns/Misc/SearchAndReplace/Project/Engine/SearchManager.cs
  10. 2
      src/Main/Base/Project/Editor/RepoChangeWatcher.cs
  11. 4
      src/Main/Base/Project/Editor/Search/SearchResultsPad.cs
  12. 2
      src/Main/Base/Project/ICSharpCode.SharpDevelop.addin
  13. 5
      src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
  14. 2
      src/Main/Base/Project/Src/Gui/Components/FontSelectionPanel.cs
  15. 2
      src/Main/Base/Project/Src/Internal/Doozers/PadDescriptor.cs
  16. 1
      src/Main/Base/Project/Src/Project/Behaviors/DotNetStartBehavior.cs
  17. 2
      src/Main/Base/Project/Src/Project/ProjectChangeWatcher.cs
  18. 4
      src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs
  19. 2
      src/Main/Base/Project/Src/Services/FileChangeWatcher.cs
  20. 2
      src/Main/Base/Project/Workbench/FakeXmlViewContent.cs
  21. 21
      src/Main/Base/Project/Workbench/IWorkbench.cs
  22. 67
      src/Main/Base/Project/Workbench/WorkbenchSingleton.cs
  23. 2
      src/Main/ICSharpCode.Core.WinForms/ToolBar/ToolBarSplitButton.cs
  24. 2
      src/Main/SharpDevelop/OptionPanels/LoadSaveOptions.xaml
  25. 3
      src/Main/SharpDevelop/OptionPanels/LoadSaveOptions.xaml.cs
  26. 1
      src/Main/SharpDevelop/SharpDevelop.csproj
  27. 2
      src/Main/SharpDevelop/Workbench/ChooseLayoutComboBox.cs
  28. 4
      src/Main/SharpDevelop/Workbench/FileServiceOpenedFile.cs
  29. 5
      src/Main/SharpDevelop/Workbench/IWorkbenchLayout.cs
  30. 4
      src/Main/SharpDevelop/Workbench/LayoutConfiguration.cs
  31. 4
      src/Main/SharpDevelop/Workbench/SDStatusBar.cs
  32. 2
      src/Main/SharpDevelop/Workbench/ShutdownService.cs
  33. 43
      src/Main/SharpDevelop/Workbench/WorkbenchStartup.cs
  34. 19
      src/Main/SharpDevelop/Workbench/WpfWorkbench.cs

8
samples/PortSD4AddInToSD5/WorkbenchSingletonIssueProvider.cs

@ -75,6 +75,14 @@ namespace PortSD4AddInToSD5 @@ -75,6 +75,14 @@ namespace PortSD4AddInToSD5
if (irr == null)
continue;
switch (irr.Member.FullName) {
case "ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.CallLater":
yield return Issue(
invocationExpression,
script => {
script.Replace(invocationExpression,
new IdentifierExpression("SD").Member("MainThread").Invoke("CallLater", invocationExpression.Arguments.Select(e => e.Clone())));
});
break;
case "ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.AssertMainThread":
yield return Issue(
invocationExpression,

2
src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlContext.cs

@ -103,7 +103,7 @@ namespace ICSharpCode.XamlBinding @@ -103,7 +103,7 @@ namespace ICSharpCode.XamlBinding
public ElementWrapper ActiveElement { get; set; }
public ElementWrapper ParentElement { get; set; }
public List<ElementWrapper> Ancestors { get; set; }
new public AttributeWrapper Attribute { get; set; }
public AttributeWrapper Attribute { get; set; }
public AttributeValue AttributeValue { get; set; }
public string RawAttributeValue { get; set; }
public int ValueStartOffset { get; set; }

1
src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlSymbolSearch.cs

@ -27,7 +27,6 @@ namespace ICSharpCode.XamlBinding @@ -27,7 +27,6 @@ namespace ICSharpCode.XamlBinding
/// </summary>
public class XamlSymbolSearch : ISymbolSearch
{
IProject project;
ICompilation compilation;
IEntity entity;
List<FileName> interestingFileNames;

10
src/AddIns/Debugger/Debugger.Tests/Tests/ExpressionEvaluatorVisitor_Tests.cs

@ -136,6 +136,16 @@ namespace Debugger.Tests @@ -136,6 +136,16 @@ namespace Debugger.Tests
if (value < 0) return "DBBool.False";
return "DBBool.Null";
}
public override bool Equals(object obj)
{
return obj is DBBool && this.value == ((DBBool)obj).value;
}
public override int GetHashCode()
{
return value;
}
}
public class DerivedClass: BaseClass

3
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs

@ -435,7 +435,8 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -435,7 +435,8 @@ namespace ICSharpCode.AvalonEdit.AddIn
quickClassBrowser.SelectItemAtCaretPosition(this.ActiveTextEditor.TextArea.Caret.Location);
}
CaretPositionChanged.RaiseEvent(this, EventArgs.Empty);
if (CaretPositionChanged != null)
CaretPositionChanged(this, EventArgs.Empty);
}
volatile static ReadOnlyCollection<ICodeCompletionBinding> codeCompletionBindings;

2
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs

@ -491,7 +491,7 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -491,7 +491,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
CaretHighlightAdorner adorner = new CaretHighlightAdorner(textArea);
layer.Add(adorner);
WorkbenchSingleton.CallLater(TimeSpan.FromSeconds(1), () => layer.Remove(adorner));
SD.MainThread.CallLater(TimeSpan.FromSeconds(1), () => layer.Remove(adorner));
}
#region UpdateParseInformation - Folding

1
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/IconBarManager.cs

@ -9,7 +9,6 @@ using System.Collections.Specialized; @@ -9,7 +9,6 @@ using System.Collections.Specialized;
using ICSharpCode.NRefactory.Editor;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.SharpDevelop.Editor.Bookmarks;
using ICSharpCode.SharpDevelop.Editor.Bookmarks;
namespace ICSharpCode.AvalonEdit.AddIn
{

4
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/IconBarMargin.cs

@ -10,13 +10,9 @@ using System.Windows.Media; @@ -10,13 +10,9 @@ using System.Windows.Media;
using ICSharpCode.AvalonEdit.Editing;
using ICSharpCode.AvalonEdit.Rendering;
using ICSharpCode.AvalonEdit.Utils;
using ICSharpCode.SharpDevelop.Editor.Bookmarks;
using ICSharpCode.SharpDevelop.Debugging;
using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Editor.Bookmarks;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Workbench;
using Mono.Cecil;
namespace ICSharpCode.AvalonEdit.AddIn
{

5
src/AddIns/Misc/SearchAndReplace/Project/Engine/SearchManager.cs

@ -5,7 +5,6 @@ using System; @@ -5,7 +5,6 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
@ -16,13 +15,9 @@ using ICSharpCode.AvalonEdit.Search; @@ -16,13 +15,9 @@ using ICSharpCode.AvalonEdit.Search;
using ICSharpCode.Core;
using ICSharpCode.NRefactory.Editor;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Editor.Bookmarks;
using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Editor.AvalonEdit;
using ICSharpCode.SharpDevelop.Editor.Bookmarks;
using ICSharpCode.SharpDevelop.Editor.Search;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.SharpDevelop.Workbench;
namespace SearchAndReplace

2
src/Main/Base/Project/Editor/RepoChangeWatcher.cs

@ -63,7 +63,7 @@ namespace ICSharpCode.SharpDevelop.Editor @@ -63,7 +63,7 @@ namespace ICSharpCode.SharpDevelop.Editor
alreadyCalled = true;
LoggingService.Info(e.Name + " changed!" + e.ChangeType);
if (SD.Workbench.IsActiveWindow) {
WorkbenchSingleton.CallLater(
SD.MainThread.CallLater(
TimeSpan.FromSeconds(2),
() => { MainWindowActivated(this, EventArgs.Empty); }
);

4
src/Main/Base/Project/Editor/Search/SearchResultsPad.cs

@ -105,7 +105,7 @@ namespace ICSharpCode.SharpDevelop.Editor.Search @@ -105,7 +105,7 @@ namespace ICSharpCode.SharpDevelop.Editor.Search
}
}
SearchResultsShown.RaiseEvent(this, EventArgs.Empty);
SearchResultsShown(this, EventArgs.Empty);
}
public void ShowSearchResults(string title, IEnumerable<SearchResultMatch> matches)
@ -118,7 +118,7 @@ namespace ICSharpCode.SharpDevelop.Editor.Search @@ -118,7 +118,7 @@ namespace ICSharpCode.SharpDevelop.Editor.Search
ShowSearchResults(CreateSearchResult(title, matches));
}
public event EventHandler SearchResultsShown;
public event EventHandler SearchResultsShown = delegate {};
public static ISearchResult CreateSearchResult(string title, IEnumerable<SearchResultMatch> matches)
{

2
src/Main/Base/Project/ICSharpCode.SharpDevelop.addin

@ -1244,7 +1244,7 @@ @@ -1244,7 +1244,7 @@
class = "ICSharpCode.SharpDevelop.Gui.OptionPanels.SelectStylePanel"/>
<OptionPanel id = "LoadSave"
label = "${res:Dialog.Options.IDEOptions.LoadSaveOptions.PanelName}"
class = "ICSharpCode.SharpDevelop.Gui.OptionPanels.LoadSaveOptions"/>
class = "ICSharpCode.SharpDevelop.OptionPanels.LoadSaveOptions"/>
<OptionPanel id = "TaskListOptions"
label = "${res:Dialog.Options.IDEOptions.TaskListOptions.PanelName}"

5
src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj

@ -227,7 +227,6 @@ @@ -227,7 +227,6 @@
<DependentUpon>AbstractAttachToProcessForm.cs</DependentUpon>
</Compile>
<Compile Include="Src\Gui\Dialogs\ExtractInterfaceDialog.cs" />
<Compile Include="Src\Gui\IWorkbenchLayout.cs" />
<Compile Include="Src\Services\FileChangeWatcher.cs" />
<Compile Include="Util\AtomicBoolean.cs" />
<Compile Include="Util\CustomThreadPoolTaskScheduler.cs" />
@ -235,7 +234,6 @@ @@ -235,7 +234,6 @@
<Compile Include="Util\DotnetDetection.cs" />
<Compile Include="Util\EnumBinding.cs" />
<Compile Include="Util\SharpDevelopExtensions.cs" />
<Compile Include="Util\FakeXmlViewContent.cs" />
<Compile Include="Util\GenericConverter.cs" />
<Compile Include="Util\ICanBeDirty.cs" />
<Compile Include="Util\IImage.cs" />
@ -269,6 +267,7 @@ @@ -269,6 +267,7 @@
<Compile Include="Workbench\AbstractViewContent.cs" />
<Compile Include="Workbench\AbstractViewContentHandlingLoadErrors.cs" />
<Compile Include="Workbench\AbstractViewContentWithoutFile.cs" />
<Compile Include="Workbench\FakeXmlViewContent.cs" />
<Compile Include="Workbench\File\FileService.cs" />
<Compile Include="Workbench\File\IRecentOpen.cs" />
<Compile Include="Workbench\ICustomizedCommands.cs" />
@ -280,6 +279,7 @@ @@ -280,6 +279,7 @@
<Compile Include="Workbench\SimpleViewContent.cs" />
<Compile Include="Workbench\ViewContentEventArgs.cs" />
<Compile Include="Workbench\ViewContentServiceAttribute.cs" />
<Compile Include="Workbench\WorkbenchSingleton.cs" />
<None Include="ICSharpCode.SharpDevelop.addin" />
<Compile Include="Src\Gui\Dialogs\ExtractInterfaceDialog.Designer.cs">
<DependentUpon>ExtractInterfaceDialog.cs</DependentUpon>
@ -527,7 +527,6 @@ @@ -527,7 +527,6 @@
<Compile Include="Src\Internal\Templates\Project\SolutionDescriptor.cs" />
<Compile Include="Src\Gui\ContentInterfaces\IEditable.cs" />
<Compile Include="Src\Gui\ContentInterfaces\IPositionable.cs" />
<Compile Include="Src\Gui\WorkbenchSingleton.cs" />
<Compile Include="Src\Commands\EditCommands.cs" />
<Compile Include="Src\Commands\FileCommands.cs" />
<Compile Include="Src\Commands\FileTabStripCommands.cs" />

2
src/Main/Base/Project/Src/Gui/Components/FontSelectionPanel.cs

@ -16,7 +16,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -16,7 +16,7 @@ namespace ICSharpCode.SharpDevelop.Gui
/// <summary>
/// Description of FontSelectionPanel.
/// </summary>
[Obsolete("XML Forms are obsolete")]
[Obsolete("XMLForms-based FontSelectionPanel is obsolete")]
public class FontSelectionPanel : BaseSharpDevelopUserControl
{
public string CurrentFontString {

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

@ -178,7 +178,7 @@ namespace ICSharpCode.SharpDevelop @@ -178,7 +178,7 @@ namespace ICSharpCode.SharpDevelop
{
CreatePad();
if (padContent == null) return;
SD.Workbench.WorkbenchLayout.ActivatePad(this);
SD.Workbench.ActivatePad(this);
}
public override string ToString()

1
src/Main/Base/Project/Src/Project/Behaviors/DotNetStartBehavior.cs

@ -10,6 +10,7 @@ using System.Xml.Linq; @@ -10,6 +10,7 @@ using System.Xml.Linq;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Project.Converter;
using ICSharpCode.SharpDevelop.Workbench;
namespace ICSharpCode.SharpDevelop.Project
{

2
src/Main/Base/Project/Src/Project/ProjectChangeWatcher.cs

@ -113,7 +113,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -113,7 +113,7 @@ namespace ICSharpCode.SharpDevelop.Project
// delay reloading message a bit, prevents showing two messages
// when the file changes twice in quick succession; and prevents
// trying to reload the file while it is still being written
WorkbenchSingleton.CallLater(TimeSpan.FromSeconds(0.5), delegate { MainFormActivated(this, EventArgs.Empty); });
SD.MainThread.CallLater(TimeSpan.FromSeconds(0.5), delegate { MainFormActivated(this, EventArgs.Empty); });
}
}
}

4
src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs

@ -105,7 +105,7 @@ namespace ICSharpCode.SharpDevelop.Debugging @@ -105,7 +105,7 @@ namespace ICSharpCode.SharpDevelop.Debugging
static void OnDebugStarting(object sender, EventArgs e)
{
SD.Workbench.WorkbenchLayout.SwitchLayout("Debug");
SD.Workbench.CurrentLayoutConfiguration = "Debug";
debugFeature = SD.AnalyticsMonitor.TrackFeature("Debugger");
@ -129,7 +129,7 @@ namespace ICSharpCode.SharpDevelop.Debugging @@ -129,7 +129,7 @@ namespace ICSharpCode.SharpDevelop.Debugging
debugFeature.EndTracking();
RemoveCurrentLineMarker();
SD.Workbench.WorkbenchLayout.SwitchLayout("Default");
SD.Workbench.CurrentLayoutConfiguration = "Default";
if (DebugStopped != null)
DebugStopped(null, e);
}

2
src/Main/Base/Project/Src/Services/FileChangeWatcher.cs

@ -173,7 +173,7 @@ namespace ICSharpCode.SharpDevelop.Workbench @@ -173,7 +173,7 @@ namespace ICSharpCode.SharpDevelop.Workbench
// delay reloading message a bit, prevents showing two messages
// when the file changes twice in quick succession; and prevents
// trying to reload the file while it is still being written
WorkbenchSingleton.CallLater(
SD.MainThread.CallLater(
TimeSpan.FromSeconds(0.5),
delegate { MainForm_Activated(this, EventArgs.Empty); } );
}

2
src/Main/Base/Project/Util/FakeXmlViewContent.cs → src/Main/Base/Project/Workbench/FakeXmlViewContent.cs

@ -9,7 +9,7 @@ using System.Xml.Linq; @@ -9,7 +9,7 @@ using System.Xml.Linq;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Workbench;
namespace ICSharpCode.SharpDevelop
namespace ICSharpCode.SharpDevelop.Workbench
{
/// <summary>
/// IViewContent implementation that opens a file as XDocument and allows editing it, while synchronizing changes with any open editor.

21
src/Main/Base/Project/Workbench/IWorkbench.cs

@ -109,12 +109,6 @@ namespace ICSharpCode.SharpDevelop.Workbench @@ -109,12 +109,6 @@ namespace ICSharpCode.SharpDevelop.Workbench
/// </summary>
event EventHandler ActiveContentChanged;
[ObsoleteAttribute("WorkbenchLayout will be removed; if any features on it are not available otherwise, please move them!")]
IWorkbenchLayout WorkbenchLayout {
get;
set;
}
/// <summary>
/// Gets whether SharpDevelop is the active application in Windows.
/// </summary>
@ -138,14 +132,9 @@ namespace ICSharpCode.SharpDevelop.Workbench @@ -138,14 +132,9 @@ namespace ICSharpCode.SharpDevelop.Workbench
void ShowView(IViewContent content, bool switchToOpenedView);
/// <summary>
/// Inserts a new <see cref="IPadContent"/> object in the workspace.
/// </summary>
void ShowPad(PadDescriptor content);
/// <summary>
/// Closes and disposes a <see cref="IPadContent"/>.
/// Activates the specified pad.
/// </summary>
void UnloadPad(PadDescriptor content);
void ActivatePad(PadDescriptor content);
/// <summary>
/// Returns a pad from a specific type.
@ -165,6 +154,12 @@ namespace ICSharpCode.SharpDevelop.Workbench @@ -165,6 +154,12 @@ namespace ICSharpCode.SharpDevelop.Workbench
/// </returns>
bool CloseAllSolutionViews();
/// <summary>
/// Gets/Sets the name of the current layout configuration.
/// Setting this property causes the current layout to be saved, and the specified layout to be loaded.
/// </summary>
string CurrentLayoutConfiguration { get; set; }
/// <summary>
/// Is called, when a workbench view was opened
/// </summary>

67
src/Main/Base/Project/Src/Gui/WorkbenchSingleton.cs → src/Main/Base/Project/Workbench/WorkbenchSingleton.cs

@ -14,23 +14,20 @@ using ICSharpCode.SharpDevelop.Workbench; @@ -14,23 +14,20 @@ using ICSharpCode.SharpDevelop.Workbench;
namespace ICSharpCode.SharpDevelop.Gui
{
/// <summary>
/// WorkbenchSingleton only consists of obsolete members.
/// Use SD.Workbench and SD.MainThread instead.
/// </summary>
public static class WorkbenchSingleton
{
const string uiIconStyle = "IconMenuItem.IconMenuStyle";
const string uiLanguageProperty = "CoreProperties.UILanguage";
const string workbenchMemento = "WorkbenchMemento";
const string activeContentState = "Workbench.ActiveContent";
static IWorkbench workbench;
/// <summary>
/// Gets the main form. Returns null in unit-testing mode.
/// </summary>
[Obsolete("Use SD.WinForms.MainWin32Window instead")]
public static IWin32Window MainWin32Window {
get {
if (workbench != null) {
return workbench.MainWin32Window;
if (Workbench != null) {
return Workbench.MainWin32Window;
}
return null;
}
@ -42,8 +39,8 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -42,8 +39,8 @@ namespace ICSharpCode.SharpDevelop.Gui
[Obsolete("Use SD.Workbench.MainWindow instead")]
public static Window MainWindow {
get {
if (workbench != null) {
return workbench.MainWindow;
if (Workbench != null) {
return Workbench.MainWindow;
}
return null;
}
@ -55,7 +52,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -55,7 +52,7 @@ namespace ICSharpCode.SharpDevelop.Gui
[Obsolete("Use SD.Workbench instead")]
public static IWorkbench Workbench {
get {
return workbench;
return SD.Services.GetService<IWorkbench>();
}
}
@ -66,46 +63,6 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -66,46 +63,6 @@ namespace ICSharpCode.SharpDevelop.Gui
}
}
internal static void InitializeWorkbench(IWorkbench workbench, IWorkbenchLayout layout)
{
WorkbenchSingleton.workbench = workbench;
SD.Services.AddService(typeof(IWorkbench), workbench);
LanguageService.ValidateLanguage();
DisplayBindingService.InitializeService();
TaskService.Initialize();
Project.CustomToolsService.Initialize();
workbench.Initialize();
workbench.SetMemento(PropertyService.NestedProperties(workbenchMemento));
workbench.WorkbenchLayout = layout;
var applicationStateInfoService = SD.GetService<ApplicationStateInfoService>();
if (applicationStateInfoService != null) {
applicationStateInfoService.RegisterStateGetter(activeContentState, delegate { return SD.Workbench.ActiveContent; });
}
OnWorkbenchCreated();
// initialize workbench-dependent services:
Project.ProjectService.InitializeService();
NavigationService.InitializeService();
workbench.ActiveContentChanged += delegate {
Debug.WriteLine("ActiveContentChanged to " + workbench.ActiveContent);
LoggingService.Debug("ActiveContentChanged to " + workbench.ActiveContent);
};
workbench.ActiveViewContentChanged += delegate {
Debug.WriteLine("ActiveViewContentChanged to " + workbench.ActiveViewContent);
LoggingService.Debug("ActiveViewContentChanged to " + workbench.ActiveViewContent);
};
workbench.ActiveWorkbenchWindowChanged += delegate {
Debug.WriteLine("ActiveWorkbenchWindowChanged to " + workbench.ActiveWorkbenchWindow);
LoggingService.Debug("ActiveWorkbenchWindowChanged to " + workbench.ActiveWorkbenchWindow);
};
}
/// <summary>
/// Runs workbench cleanup.
/// Is called by ICSharpCode.SharpDevelop.Sda and should not be called manually!
@ -124,7 +81,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -124,7 +81,7 @@ namespace ICSharpCode.SharpDevelop.Gui
[Obsolete("Use SD.MainThread.InvokeRequired instead")]
public static bool InvokeRequired {
get {
if (workbench == null)
if (Workbench == null)
return false; // unit test mode, don't crash
else
return SD.MainThread.InvokeRequired;
@ -261,13 +218,13 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -261,13 +218,13 @@ namespace ICSharpCode.SharpDevelop.Gui
/// Calls a method on the GUI thread, but delays the call a bit.
/// </summary>
[Obsolete("Use SD.MainThread.CallLater() instead")]
public static async void CallLater(TimeSpan delay, Action method)
public static void CallLater(TimeSpan delay, Action method)
{
SD.MainThread.CallLater(delay, method);
}
#endregion
static void OnWorkbenchCreated()
internal static void OnWorkbenchCreated()
{
WorkbenchCreated(null, EventArgs.Empty);
}

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

@ -50,8 +50,6 @@ namespace ICSharpCode.Core.WinForms @@ -50,8 +50,6 @@ namespace ICSharpCode.Core.WinForms
void CreateDropDownItems()
{
ToolStripItem[] itemsToAdd = null;
DropDownItems.Clear();
foreach (object item in subItems)
{

2
src/Main/SharpDevelop/OptionPanels/LoadSaveOptions.xaml

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
<gui:OptionPanel x:Class="ICSharpCode.SharpDevelop.Gui.OptionPanels.LoadSaveOptions"
<gui:OptionPanel x:Class="ICSharpCode.SharpDevelop.OptionPanels.LoadSaveOptions"
x:ClassModifier="internal"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:core="http://icsharpcode.net/sharpdevelop/core"

3
src/Main/SharpDevelop/OptionPanels/LoadSaveOptions.xaml.cs

@ -12,8 +12,9 @@ using System.Windows.Input; @@ -12,8 +12,9 @@ using System.Windows.Input;
using System.Windows.Media;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui;
namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
namespace ICSharpCode.SharpDevelop.OptionPanels
{
partial class LoadSaveOptions : OptionPanel
{

1
src/Main/SharpDevelop/SharpDevelop.csproj

@ -117,6 +117,7 @@ @@ -117,6 +117,7 @@
<Compile Include="Workbench\FileService.cs" />
<Compile Include="Workbench\FileServiceOpenedFile.cs" />
<Compile Include="Workbench\FullScreenEnabledWindow.cs" />
<Compile Include="Workbench\IWorkbenchLayout.cs" />
<Compile Include="Workbench\LayoutConfiguration.cs" />
<Compile Include="Workbench\RecentOpen.cs" />
<Compile Include="Workbench\SDStatusBar.cs" />

2
src/Main/SharpDevelop/Workbench/ChooseLayoutComboBox.cs

@ -74,7 +74,7 @@ namespace ICSharpCode.SharpDevelop.Workbench @@ -74,7 +74,7 @@ namespace ICSharpCode.SharpDevelop.Workbench
}
if (oldItem != editIndex && oldItem != resetIndex) {
SD.Workbench.WorkbenchLayout.StoreConfiguration();
((WpfWorkbench)SD.Workbench).WorkbenchLayout.StoreConfiguration();
}
if (comboBox.SelectedIndex == editIndex) {

4
src/Main/SharpDevelop/Workbench/FileServiceOpenedFile.cs

@ -109,7 +109,7 @@ namespace ICSharpCode.SharpDevelop.Workbench @@ -109,7 +109,7 @@ namespace ICSharpCode.SharpDevelop.Workbench
bool wasDirty = this.IsDirty;
fileService.OpenedFileClosed(this);
FileClosed.RaiseEvent(this, EventArgs.Empty);
FileClosed(this, EventArgs.Empty);
if (fileChangeWatcher != null) {
fileChangeWatcher.Dispose();
@ -156,6 +156,6 @@ namespace ICSharpCode.SharpDevelop.Workbench @@ -156,6 +156,6 @@ namespace ICSharpCode.SharpDevelop.Workbench
}
}
public override event EventHandler FileClosed;
public override event EventHandler FileClosed = delegate {};
}
}

5
src/Main/Base/Project/Src/Gui/IWorkbenchLayout.cs → src/Main/SharpDevelop/Workbench/IWorkbenchLayout.cs

@ -3,9 +3,8 @@ @@ -3,9 +3,8 @@
using System;
using System.Collections.Generic;
using ICSharpCode.SharpDevelop.Workbench;
namespace ICSharpCode.SharpDevelop.Gui
namespace ICSharpCode.SharpDevelop.Workbench
{
/// <summary>
/// The IWorkbenchLayout object is responsible for the layout of
@ -13,7 +12,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -13,7 +12,7 @@ namespace ICSharpCode.SharpDevelop.Gui
/// implementation etc. it could be attached/detached at the runtime
/// to a workbench.
/// </summary>
public interface IWorkbenchLayout
interface IWorkbenchLayout
{
/// <summary>
/// The active workbench window.

4
src/Main/SharpDevelop/Workbench/LayoutConfiguration.cs

@ -125,7 +125,7 @@ namespace ICSharpCode.SharpDevelop.Workbench @@ -125,7 +125,7 @@ namespace ICSharpCode.SharpDevelop.Workbench
SD.MainThread.VerifyAccess();
if (value != CurrentLayoutName) {
currentLayoutName = value;
SD.Workbench.WorkbenchLayout.LoadConfiguration();
((WpfWorkbench)SD.Workbench).WorkbenchLayout.LoadConfiguration();
OnLayoutChanged(EventArgs.Empty);
}
}
@ -134,7 +134,7 @@ namespace ICSharpCode.SharpDevelop.Workbench @@ -134,7 +134,7 @@ namespace ICSharpCode.SharpDevelop.Workbench
public static void ReloadDefaultLayout()
{
currentLayoutName = DefaultLayoutName;
SD.Workbench.WorkbenchLayout.LoadConfiguration();
((WpfWorkbench)SD.Workbench).WorkbenchLayout.LoadConfiguration();
OnLayoutChanged(EventArgs.Empty);
}

4
src/Main/SharpDevelop/Workbench/SDStatusBar.cs

@ -154,7 +154,7 @@ namespace ICSharpCode.SharpDevelop.Workbench @@ -154,7 +154,7 @@ namespace ICSharpCode.SharpDevelop.Workbench
// to allow the user to see the red progress bar as a visual clue of a failed
// build even if it occurs close to the end of the build, we'll hide the progress bar
// with a bit of time delay
WorkbenchSingleton.CallLater(
SD.MainThread.CallLater(
TimeSpan.FromMilliseconds(currentStatus == OperationStatus.Error ? 500 : 150),
new Action(DoHideProgress));
}
@ -168,7 +168,7 @@ namespace ICSharpCode.SharpDevelop.Workbench @@ -168,7 +168,7 @@ namespace ICSharpCode.SharpDevelop.Workbench
var animation = new DoubleAnimation(0, new Duration(timeSpan), FillBehavior.HoldEnd);
statusProgressBarItem.BeginAnimation(OpacityProperty, animation);
jobNamePanel.BeginAnimation(OpacityProperty, animation);
WorkbenchSingleton.CallLater(
SD.MainThread.CallLater(
timeSpan,
delegate{
if (!statusProgressBarIsVisible) {

2
src/Main/SharpDevelop/Workbench/ShutdownService.cs

@ -33,7 +33,7 @@ namespace ICSharpCode.SharpDevelop.Workbench @@ -33,7 +33,7 @@ namespace ICSharpCode.SharpDevelop.Workbench
public bool Shutdown()
{
SD.Workbench.MainWindow.Close();
return SD.Workbench.WorkbenchLayout == null;
return ((WpfWorkbench)SD.Workbench).WorkbenchLayout == null;
}
#region PreventShutdown

43
src/Main/SharpDevelop/Workbench/WorkbenchStartup.cs

@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Threading;
using System.Windows.Input;
@ -24,6 +25,7 @@ namespace ICSharpCode.SharpDevelop.Workbench @@ -24,6 +25,7 @@ namespace ICSharpCode.SharpDevelop.Workbench
class WorkbenchStartup
{
const string workbenchMemento = "WorkbenchMemento";
const string activeContentState = "Workbench.ActiveContent";
App app;
public void InitializeWorkbench()
@ -34,7 +36,46 @@ namespace ICSharpCode.SharpDevelop.Workbench @@ -34,7 +36,46 @@ namespace ICSharpCode.SharpDevelop.Workbench
ComponentDispatcher.ThreadIdle += ComponentDispatcher_ThreadIdle;
LayoutConfiguration.LoadLayoutConfiguration();
SD.Services.AddService(typeof(IMessageLoop), new DispatcherMessageLoop(app.Dispatcher, SynchronizationContext.Current));
WorkbenchSingleton.InitializeWorkbench(new WpfWorkbench(), new AvalonDockLayout());
InitializeWorkbench(new WpfWorkbench(), new AvalonDockLayout());
}
static void InitializeWorkbench(WpfWorkbench workbench, IWorkbenchLayout layout)
{
SD.Services.AddService(typeof(IWorkbench), workbench);
LanguageService.ValidateLanguage();
DisplayBindingService.InitializeService();
TaskService.Initialize();
Project.CustomToolsService.Initialize();
workbench.Initialize();
workbench.SetMemento(PropertyService.NestedProperties(workbenchMemento));
workbench.WorkbenchLayout = layout;
var applicationStateInfoService = SD.GetService<ApplicationStateInfoService>();
if (applicationStateInfoService != null) {
applicationStateInfoService.RegisterStateGetter(activeContentState, delegate { return SD.Workbench.ActiveContent; });
}
WorkbenchSingleton.OnWorkbenchCreated();
// initialize workbench-dependent services:
Project.ProjectService.InitializeService();
NavigationService.InitializeService();
workbench.ActiveContentChanged += delegate {
Debug.WriteLine("ActiveContentChanged to " + workbench.ActiveContent);
LoggingService.Debug("ActiveContentChanged to " + workbench.ActiveContent);
};
workbench.ActiveViewContentChanged += delegate {
Debug.WriteLine("ActiveViewContentChanged to " + workbench.ActiveViewContent);
LoggingService.Debug("ActiveViewContentChanged to " + workbench.ActiveViewContent);
};
workbench.ActiveWorkbenchWindowChanged += delegate {
Debug.WriteLine("ActiveWorkbenchWindowChanged to " + workbench.ActiveWorkbenchWindow);
LoggingService.Debug("ActiveWorkbenchWindowChanged to " + workbench.ActiveWorkbenchWindow);
};
}
static void ComponentDispatcher_ThreadIdle(object sender, EventArgs e)

19
src/Main/SharpDevelop/Workbench/WpfWorkbench.cs

@ -422,10 +422,6 @@ namespace ICSharpCode.SharpDevelop.Workbench @@ -422,10 +422,6 @@ namespace ICSharpCode.SharpDevelop.Workbench
}
}
public void UnloadPad(PadDescriptor content)
{
}
public PadDescriptor GetPad(Type type)
{
SD.MainThread.VerifyAccess();
@ -752,5 +748,20 @@ namespace ICSharpCode.SharpDevelop.Workbench @@ -752,5 +748,20 @@ namespace ICSharpCode.SharpDevelop.Workbench
else
return element.GetType().FullName + ": " + element.ToString();
}
public string CurrentLayoutConfiguration {
get {
return LayoutConfiguration.CurrentLayoutName;
}
set {
LayoutConfiguration.CurrentLayoutName = value;
}
}
public void ActivatePad(PadDescriptor content)
{
if (workbenchLayout != null)
workbenchLayout.ActivatePad(content);
}
}
}

Loading…
Cancel
Save