插件式设计开发心得(三)
来源:互联网 发布:复旦东区网络使用 编辑:程序博客网 时间:2024/06/03 16:42
接昨天,下面来实现各种具体插件类型的接口,ITabPage、IToolStrip、IToolBarDef、IMenuDef。
首先是ITabPage接口,代码如下:
- namespace WingOfDream.SystemTool.CoreFramework
- {
- using System.Drawing;
- using System.Windows.Forms;
- /// <summary>
- /// 所有TabPage的基接口
- /// </summary>
- public interface ITabPage : IPlugin
- {
- /// <summary>
- /// 显示在tab上的图片索引
- /// </summary>
- int ImageIndex { get; }
- /// <summary>
- /// 背景图片
- /// </summary>
- Bitmap BackgroundImage { get; }
- /// <summary>
- /// 背景图片布局
- /// </summary>
- ImageLayout BackgroundImageLayout { get; }
- /// <summary>
- /// 是否选中
- /// </summary>
- bool Selected { get; }
- /// <summary>
- /// 是否可用
- /// </summary>
- bool Enabled { get; }
- /// <summary>
- /// TabPage名字
- /// </summary>
- string Name { get; }
- /// <summary>
- /// 创建TabPage
- /// </summary>
- /// <param name="hook"></param>
- void OnCreate(IApplication hook);
- /// <summary>
- /// 鼠标移动捕捉事件
- /// </summary>
- void OnMouseMove();
- /// <summary>
- /// 鼠标按下捕捉事件
- /// </summary>
- void OnMouseDown();
- /// <summary>
- /// 鼠标移动到tabpage上显示的文字
- /// </summary>
- string ToolTipText { get; }
- /// <summary>
- /// 是否可视
- /// </summary>
- bool Visiable { get; }
- }
- }
接着是IToolStrip接口,该接口表示一条ToolStrip工具条,其中包含各种命令、工具按钮。代码如下:
- namespace WingOfDream.SystemTool.CoreFramework
- {
- public interface IToolStrip : IPlugin
- {
- /// <summary>
- /// 是否可用
- /// </summary>
- bool Enabled { get; }
- /// <summary>
- /// 名字
- /// </summary>
- string Name { get; }
- /// <summary>
- /// 创建ToolStrip
- /// </summary>
- /// <param name="hook"></param>
- void OnCreate(IApplication hook);
- /// <summary>
- /// 鼠标移动到ToolStrip上显示的文字
- /// </summary>
- string ToolTipText { get; }
- /// <summary>
- /// 是否可见
- /// </summary>
- bool Visiable { get; }
- }
- }
下面是工具条IToolBarDef和菜单栏IMenuDef,代码如下:
- namespace WingOfDream.SystemTool.CoreFramework
- {
- public interface IToolBarDef : IPlugin
- {
- /// <summary>
- /// Item数量
- /// </summary>
- int ItemCount { get; }
- /// <summary>
- /// 访问每个Item
- /// </summary>
- /// <param name="pos"></param>
- /// <param name="item"></param>
- void GetItemInfo(int pos, ItemDef item);
- }
- }
- namespace WingOfDream.SystemTool.CoreFramework
- {
- public interface IMenuDef : IPlugin
- {
- /// <summary>
- /// 菜单中Item的数量
- /// </summary>
- int ItemCount { get; }
- /// <summary>
- /// 访问每个Item
- /// </summary>
- /// <param name="pos"></param>
- /// <param name="item"></param>
- void GetItemInfo(int pos, ItemDef item);
- }
- }
今天暂时就写到这,后续的得慢慢思考一下,如何写好,嘿嘿
- 插件式设计开发心得(三)
- 插件式设计开发心得(一)
- 插件式设计开发心得(二)
- 安卓View开发心得(三)
- android开发心得(三)
- jQuery :插件开发(三)
- Eclipse 插件开发心得小结
- Chrome浏览器插件开发心得
- 设计模式心得(三) 单一职责原则
- 学习设计模式心得与代码(三)
- Web开发设计(三)
- UI自动化开发心得三
- 程序开发框架设计心得
- 【Android】开发桌面小插件(三)
- rcp(插件开发)资源管理三
- rcp(插件开发)资源管理三
- 浏览器插件之ActiveX开发(三)
- 浏览器插件之ActiveX开发(三)
- 无怯无畏 (9月10日)
- 2009年教师节感言 与 《我是一只IT小小鸟》推荐序
- 编程的快乐
- linux2.6.28 insmod no invalid module in object
- 参加了一个网络原创歌曲比赛,好朋友们支持一下,帮忙投
- 插件式设计开发心得(三)
- 急··急····帮忙!!!
- 新的开始,新的挑战!
- 快乐的开始
- C# 连接sql 2005
- 系统程序员成长计划-拥抱变化(上)
- 求救啊
- ?
- HTML相对路径(Relative Path)和绝对路径(Absolute Path)