You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

192 lines
6.4 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using Mesnac.PlugIn.Pad;
using Mesnac.PlugIn.View;
namespace Mesnac.PlugIn.Workbench
{
/// <summary>
/// 工作区基础接口
/// </summary>
public interface IWorkbench
{
/// <summary>
/// 工作区主菜单
/// </summary>
MenuStrip TopMenu { get; }
/// <summary>
/// 工作区工具栏
/// </summary>
ToolStrip ToolStrip { get; }
/// <summary>
/// 工作台布局属性
/// </summary>
IWorkbenchLayout WorkbenchLayout { get; set; }
/// <summary>
/// 是否全屏
/// </summary>
bool FullScreen { get; set; }
/// <summary>
/// 系统关闭标识
/// </summary>
bool CloseFlag { get; set; }
/// <summary>
/// 标题,显示在标题栏
/// </summary>
string Title { get; set; }
/// <summary>
/// 用于保存的工作区面板集合,只读
/// </summary>
List<PadDescriptor> PadContentCollection { get; }
/// <summary>
/// 用于保存设计时工作区窗口的集合
/// </summary>
List<IViewContent> ViewContentCollection { get; }
/// <summary>
/// 用于保存运行时工作区窗口的字典
/// </summary>
Dictionary<string, IViewContent> ViewContentDic { get; }
/// <summary>
/// 活动对象,只读
/// </summary>
object ActiveContent { get; }
/// <summary>
/// 当前视图,只读
/// </summary>
object CurrentViewContent { get; set; }
/// <summary>
/// 增加一个新的<see cref="IPadContent"/>对象在工作区中
/// </summary>
/// <param name="content"></param>
void ShowPad(PadDescriptor content);
/// <summary>
/// 返回一个指定类型的面板
/// </summary>
/// <param name="type"></param>
/// <returns></returns>
PadDescriptor GetPad(Type type);
/// <summary>
/// 显示一个视图窗口
/// </summary>
/// <param name="content"></param>
void ShowView(IViewContent content);
/// <summary>
/// 显示一个视图窗口
/// </summary>
/// <param name="content">视图内容</param>
/// <param name="isAllowRepeat">是否允许重复保存</param>
void ShowView(IViewContent content, bool isAllowRepeat);
/// <summary>
/// 显示一个视图窗口
/// </summary>
/// <param name="key">视图窗口标识</param>
/// <param name="content">视图内容</param>
void ShowView(string key, IViewContent content);
/// <summary>
/// 显示一个视图窗口
/// </summary>
/// <param name="key">视图窗口标识</param>
/// <param name="content">视图内容</param>
void ShowView(string key, IViewContent content, Mesnac.Docking.DockState dockState);
/// <summary>
/// 获取视图窗口
/// </summary>
/// <param name="key">视图窗口标识</param>
/// <returns></returns>
IWorkbenchWindow GetViewByKey(string key);
/// <summary>
/// 获取视图窗口
/// </summary>
/// <param name="titleName"></param>
/// <returns></returns>
IWorkbenchWindow GetViewByViewContentID(string viewContentID);
/// <summary>
/// 根据视图类型,获取单个视图窗口
/// </summary>
/// <param name="type"></param>
/// <returns></returns>
IWorkbenchWindow GetViewByType(Type type);
/// <summary>
/// 根据视图类型,获取对应类型的所有视图窗口
/// </summary>
/// <param name="type"></param>
/// <returns></returns>
List<IWorkbenchWindow> GetViewsByType(Type type);
/// <summary>
/// 获取自定义视图窗口集合
/// </summary>
/// <returns></returns>
List<IWorkbenchWindow> GetCustomerViews();
/// <summary>
/// 关闭一个视图窗口
/// </summary>
/// <param name="content">要关闭的视图对象</param>
void CloseView(IViewContent content);
/// <summary>
/// 关闭一个视图窗口
/// </summary>
/// <param name="content">要关闭的视图对象</param>
/// <param name="isRealClose">是否真正关闭</param>
void CloseView(IViewContent content, bool isRealClose);
/// <summary>
/// 关闭所有视图窗口
/// </summary>
void CloseAllViews();
/// <summary>
/// 关闭所有视图窗口
/// </summary>
/// <param name="isRealClose">是否真正关闭</param>
void CloseAllViews(bool isRealClose);
/// <summary>
/// 根据键值关闭一个视图窗口
/// </summary>
/// <param name="key">要关闭的视图键值</param>
void CloseViewByKey(string key);
/// <summary>
/// 根据键值关闭一个视图窗口
/// </summary>
/// <param name="key">要关闭的视图键值</param>
/// <param name="isRealClose">是否真正关闭</param>
void CloseViewByKey(string key, bool isRealClose);
/// <summary>
/// 关闭所有的键视图窗口
/// </summary>
void CloseAllKeysView();
/// <summary>
/// 关闭所有的键视图窗口
/// </summary>
/// <param name="isRealClose">是否真正关闭</param>
void CloseAllKeysView(bool isRealClose);
/// <summary>
/// 刷新插件
/// </summary>
void RefreshPlugIn();
/// <summary>
/// 重绘所有组件
/// </summary>
void RedrawAllComponents();
/// <summary>
/// 退出系统方法
/// </summary>
void Exit();
/// <summary>
/// 刷新插件事件
/// </summary>
event EventHandler AfterRefreshPlugIn;
/// <summary>
/// 初始化完毕事件
/// </summary>
event EventHandler InitFinished;
/// <summary>
/// 刷新工作台界面事件
/// </summary>
event EventHandler RefreshUI;
/// <summary>
/// 系统即将关闭事件
/// </summary>
event EventHandler ShutDown;
}
}