diff --git a/Libraries/UniversalEditor.Core/Document.cs b/Libraries/UniversalEditor.Core/Document.cs index 8eade78e..3e73f553 100644 --- a/Libraries/UniversalEditor.Core/Document.cs +++ b/Libraries/UniversalEditor.Core/Document.cs @@ -32,6 +32,15 @@ namespace UniversalEditor /// public class Document : IDisposable { + public class ReadOnlyDocumentCollection : System.Collections.ObjectModel.ReadOnlyCollection + { + public ReadOnlyDocumentCollection(System.Collections.Generic.IList list) + : base(list) + { + + } + } + /// /// The which determines where the data is read from. /// diff --git a/Libraries/UniversalEditor.UserInterface/Editor.cs b/Libraries/UniversalEditor.UserInterface/Editor.cs index 95e4dcd2..38a65426 100644 --- a/Libraries/UniversalEditor.UserInterface/Editor.cs +++ b/Libraries/UniversalEditor.UserInterface/Editor.cs @@ -36,6 +36,14 @@ namespace UniversalEditor.UserInterface /// public abstract class Editor : MBS.Framework.UserInterface.Container, IDocumentPropertiesProviderControl { + public class ReadOnlyEditorCollection + : System.Collections.ObjectModel.ReadOnlyCollection + { + public ReadOnlyEditorCollection(IList list) : base(list) + { + } + } + public EditorContext Context { get; private set; } = null; private EditorDocumentExplorer _EditorDocumentExplorer = null; diff --git a/Libraries/UniversalEditor.UserInterface/IHostApplicationWindow.cs b/Libraries/UniversalEditor.UserInterface/IHostApplicationWindow.cs index 9a254b13..86acf258 100644 --- a/Libraries/UniversalEditor.UserInterface/IHostApplicationWindow.cs +++ b/Libraries/UniversalEditor.UserInterface/IHostApplicationWindow.cs @@ -87,6 +87,9 @@ namespace UniversalEditor.UserInterface ProjectObjectModel CurrentProject { get; set; } SolutionObjectModel CurrentSolution { get; set; } + + Document.ReadOnlyDocumentCollection Documents { get; } + Editor.ReadOnlyEditorCollection Editors { get; } } public class IHostApplicationWindowCollection : System.Collections.ObjectModel.Collection diff --git a/Libraries/UniversalEditor.UserInterface/MainWindow.cs b/Libraries/UniversalEditor.UserInterface/MainWindow.cs index dd59006c..da8672af 100644 --- a/Libraries/UniversalEditor.UserInterface/MainWindow.cs +++ b/Libraries/UniversalEditor.UserInterface/MainWindow.cs @@ -1457,6 +1457,42 @@ namespace UniversalEditor.UserInterface } } + public Document.ReadOnlyDocumentCollection Documents + { + get + { + // retrieve all documents currently loaded in this window + EditorPage[] pages = GetEditorPages(); + List list = new List(); + for (int i = 0; i < pages.Length; i++) + { + list.Add(pages[i].Document); + } + return new Document.ReadOnlyDocumentCollection(list); + } + } + + public Editor.ReadOnlyEditorCollection Editors + { + get + { + // retrieve all editors currently loaded in this window + EditorPage[] pages = GetEditorPages(); + List list = new List(); + for (int i = 0; i < pages.Length; i++) + { + for (int j = 0; j < pages[i].Controls.Count; j++) + { + if (pages[i].Controls[j] is Editor) + { + list.Add(pages[i].Controls[j] as Editor); + } + } + } + return new Editor.ReadOnlyEditorCollection(list); + } + } + #endregion public IDocumentPropertiesProvider FindDocumentPropertiesProvider(IControl control)