插件式设计开发心得(三)

接昨天,下面来实现各种具体插件类型的接口,ITabPage、IToolStrip、IToolBarDef、IMenuDef。

首先是ITabPage接口,代码如下:

Code:
  1. namespace WingOfDream.SystemTool.CoreFramework   
  2. {   
  3.     using System.Drawing;   
  4.     using System.Windows.Forms;   
  5.     ///    
  6.     /// 所有TabPage的基接口   
  7.     ///    
  8.     public interface ITabPage : IPlugin   
  9.     {   
  10.         ///    
  11.         /// 显示在tab上的图片索引   
  12.         ///    
  13.         int ImageIndex { get; }   
  14.         ///    
  15.         /// 背景图片   
  16.         ///    
  17.         Bitmap BackgroundImage { get; }   
  18.         ///    
  19.         /// 背景图片布局   
  20.         ///    
  21.         ImageLayout BackgroundImageLayout { get; }   
  22.         ///    
  23.         /// 是否选中   
  24.         ///    
  25.         bool Selected { get; }   
  26.         ///    
  27.         /// 是否可用   
  28.         ///    
  29.         bool Enabled { get; }   
  30.         ///    
  31.         /// TabPage名字   
  32.         ///    
  33.         string Name { get; }   
  34.         ///    
  35.         /// 创建TabPage   
  36.         ///    
  37.         ///    
  38.         void OnCreate(IApplication hook);   
  39.         ///    
  40.         /// 鼠标移动捕捉事件   
  41.         ///    
  42.         void OnMouseMove();   
  43.         ///    
  44.         /// 鼠标按下捕捉事件   
  45.         ///    
  46.         void OnMouseDown();   
  47.         ///    
  48.         /// 鼠标移动到tabpage上显示的文字   
  49.         ///    
  50.         string ToolTipText { get; }   
  51.         ///    
  52.         /// 是否可视   
  53.         ///    
  54.         bool Visiable { get; }   
  55.     }   
  56. }   

接着是IToolStrip接口,该接口表示一条ToolStrip工具条,其中包含各种命令、工具按钮。代码如下:

Code:
  1. namespace WingOfDream.SystemTool.CoreFramework   
  2. {   
  3.     public interface IToolStrip : IPlugin   
  4.     {   
  5.         ///    
  6.         /// 是否可用   
  7.         ///    
  8.         bool Enabled { get; }   
  9.         ///    
  10.         /// 名字   
  11.         ///    
  12.         string Name { get; }   
  13.         ///    
  14.         /// 创建ToolStrip   
  15.         ///    
  16.         ///    
  17.         void OnCreate(IApplication hook);   
  18.         ///    
  19.         /// 鼠标移动到ToolStrip上显示的文字   
  20.         ///    
  21.         string ToolTipText { get; }   
  22.         ///    
  23.         /// 是否可见   
  24.         ///    
  25.         bool Visiable { get; }   
  26.     }   
  27. }  

下面是工具条IToolBarDef和菜单栏IMenuDef,代码如下:

Code:
  1. namespace WingOfDream.SystemTool.CoreFramework   
  2. {   
  3.     public interface IToolBarDef : IPlugin   
  4.     {   
  5.         ///    
  6.         /// Item数量   
  7.         ///    
  8.         int ItemCount { get; }   
  9.         ///    
  10.         /// 访问每个Item   
  11.         ///    
  12.         ///    
  13.         ///    
  14.         void GetItemInfo(int pos, ItemDef item);   
  15.     }   
  16. }   
  17.   
  18.   
  19.   
  20.   
  21.   
  22.   
  23. namespace WingOfDream.SystemTool.CoreFramework   
  24. {   
  25.     public interface IMenuDef : IPlugin   
  26.     {   
  27.         ///    
  28.         /// 菜单中Item的数量   
  29.         ///    
  30.         int ItemCount { get; }   
  31.         ///    
  32.         /// 访问每个Item   
  33.         ///    
  34.         ///    
  35.         ///    
  36.         void GetItemInfo(int pos, ItemDef item);   
  37.     }   
  38. }  

今天暂时就写到这,后续的得慢慢思考一下,如何写好,嘿嘿

你可能感兴趣的:(插件式设计开发心得(三))