文件位置:IViewContent.cs
/// <summary>
/// IViewContent is the base interface for "windows" in the document area of SharpDevelop.
/// A view content is a view onto multiple files, or other content that opens like a document
/// (e.g. the start page).
/// </summary>
public interface IViewContent : IDisposable, ICanBeDirty, IServiceProvider
{
/// <summary>
/// This is the UI element for the view.
/// You can use both Windows.Forms and WPF controls.
/// </summary>
object Control {
get;
}
/// <summary>
/// Gets the control which has focus initially.
/// </summary>
object InitiallyFocusedControl {
get;
}
/// <summary>
/// The workbench window in which this view is displayed.
/// </summary>
IWorkbenchWindow WorkbenchWindow {
get;
set;
}
/// <summary>
/// Is raised when the value of the TabPageText property changes.
/// </summary>
event EventHandler TabPageTextChanged;
/// <summary>
/// The text on the tab page when more than one view content
/// is attached to a single window.
/// </summary>
string TabPageText {
get;
}
/// <summary>
/// The title of the view content. This normally is the title of the primary file being edited.
/// </summary>
string TitleName {
get;
}
/// <summary>
/// Is called each time the name for the content has changed.
/// </summary>
event EventHandler TitleNameChanged;
/// <summary>
/// The tooltip that will be shown when you hover the mouse over the title
/// </summary>
string InfoTip {
get;
}
/// <summary>
/// Is called each time the info tip for the content has changed.
/// </summary>
event EventHandler InfoTipChanged;
/// <summary>
/// Saves the content to the location <code>fileName</code>
/// </summary>
/// <remarks>
/// When the user switches between multiple views editing the same file, a view
/// change will trigger one view content to save that file into a memory stream
/// and the other view content will load the file from that memory stream.
/// </remarks>
void Save(OpenedFile file, Stream stream);
/// <summary>
/// Load or reload the content of the specified file from the stream.
/// </summary>
/// <remarks>
/// When the user switches between multiple views editing the same file, a view
/// change will trigger one view content to save that file into a memory stream
/// and the other view content will load the file from that memory stream.
/// </remarks>
void Load(OpenedFile file, Stream stream);
/// <summary>
/// Gets the list of files that are being edited using this view content.
/// The returned collection usually is read-only.
/// </summary>
IList<OpenedFile> Files { get; }
/// <summary>
/// Gets the primary file being edited. Might return null if no file is edited.
/// </summary>
OpenedFile PrimaryFile { get; }
/// <summary>
/// Gets the name of the primary file being edited. Might return null if no file is edited.
/// </summary>
FileName PrimaryFileName { get; }
/// <summary>
/// Builds an <see cref="INavigationPoint"/> for the current position.
/// </summary>
INavigationPoint BuildNavPoint();
bool IsDisposed { get; }
event EventHandler Disposed;
/// <summary>
/// Gets if the view content is read-only (can be saved only when choosing another file name).
/// </summary>
bool IsReadOnly { get; }
/// <summary>
/// Gets if the view content is view-only (cannot be saved at all).
/// </summary>
bool IsViewOnly { get; }
/// <summary>
/// Gets whether this view content should be closed when the solution is closed.
/// </summary>
bool CloseWithSolution { get; }
#region Secondary view content support
/// <summary>
/// Gets the collection that stores the secondary view contents.
/// </summary>
ICollection<IViewContent> SecondaryViewContents { get; }
/// <summary>
/// Gets switching without a Save/Load cycle for <paramref name="file"/> is supported
/// when switching from this view content to <paramref name="newView"/>.
/// </summary>
bool SupportsSwitchFromThisWithoutSaveLoad(OpenedFile file, IViewContent newView);
/// <summary>
/// Gets switching without a Save/Load cycle for <paramref name="file"/> is supported
/// when switching from <paramref name="oldView"/> to this view content.
/// </summary>
bool SupportsSwitchToThisWithoutSaveLoad(OpenedFile file, IViewContent oldView);
/// <summary>
/// Executes an action before switching from this view content to the new view content.
/// </summary>
void SwitchFromThisWithoutSaveLoad(OpenedFile file, IViewContent newView);
/// <summary>
/// Executes an action before switching from the old view content to this view content.
/// </summary>
void SwitchToThisWithoutSaveLoad(OpenedFile file, IViewContent oldView);
#endregion
}
IViewContent
是一个接口,定义了视图内容的基本行为和属性。在 SharpDevelop IDE 中,视图内容是文档区域中的“窗口”,可以是一个编辑器窗口,也可以是其他类型的窗口,如起始页。
以下是 IViewContent
接口的主要功能:
-
获取和设置视图内容的 UI 元素:通过
Control
属性,可以获取和设置视图内容的 UI 元素。这个 UI 元素可以是 Windows.Forms 控件,也可以是 WPF 控件。 -
获取和设置视图内容的标题:通过
TitleName
属性,可以获取和设置视图内容的标题。这个标题通常是正在编辑的主要文件的标题。 -
获取和设置视图内容的标签页文本:通过
TabPageText
属性,可以获取和设置视图内容的标签页文本。这个文本在多个视图内容附加到同一个窗口时使用。 -
保存和加载视图内容:通过
Save
和Load
方法,可以保存和加载视图内容。这些方法接受一个OpenedFile
对象和一个Stream
对象,用于保存和加载文件。 -
获取正在编辑的文件列表:通过
Files
属性,可以获取正在编辑的文件列表。这个列表通常是一个只读的集合。 -
获取正在编辑的主要文件:通过
PrimaryFile
属性,可以获取正在编辑的主要文件。如果没有任何文件正在编辑,这个属性可能返回null
。 -
获取正在编辑的主要文件的名称:通过
PrimaryFileName
属性,可以获取正在编辑的主要文件的名称。如果没有任何文件正在编辑,这个属性可能返回null
。 -
构建导航点:通过
BuildNavPoint
方法,可以构建一个导航点,用于表示当前的位置。 -
获取视图内容的关闭行为:通过
CloseWithSolution
属性,可以获取视图内容的关闭行为。这个属性表示当解决方案关闭时,视图内容是否应该关闭。 -
获取视图内容的只读和只读状态:通过
IsReadOnly
和IsViewOnly
属性,可以获取视图内容的只读和只读状态。如果视图内容是只读的,那么它只能保存到另一个文件名,不能保存到原始文件。如果视图内容是只读的,那么它不能保存到任何文件。 -
获取和设置视图内容的上下文帮助提供者:通过
ContextHelpProvider
属性,可以获取和设置视图内容的上下文帮助提供者。上下文帮助提供者用于提供上下文相关的帮助信息。 -
获取和设置视图内容的工具宿主:通过
ToolsHost
属性,可以获取和设置视图内容的工具宿主。工具宿主用于显示和管理工具。 -
获取和设置视图内容的属性容器:通过
PropertyContainer
属性,可以获取和设置视图内容的属性容器。属性容器用于存储和显示对象的属性。 -
获取和设置视图内容的剪贴板处理程序:通过
ClipboardHandler
属性,可以获取和设置视图内容的剪贴板处理程序。剪贴板处理程序用于处理剪贴板操作,如复制、粘贴、剪切等。 -
获取和设置视图内容的撤销处理程序:通过
UndoHandler
属性,可以获取和设置视图内容的撤销处理程序。撤销处理程序用于处理撤销和重做操作。 -
获取和设置视图内容的文件文档提供程序:通过
FileDocumentProvider
属性,可以获取和设置视图内容的文件文档提供程序。文件文档提供程序用于提供文件文档。 -
获取和设置视图内容的组件变更服务:通过
ComponentChangeService
属性,可以获取和设置视图内容的组件变更服务。组件变更服务用于通知组件的变更。 -
**获取和设置视图内容的