122 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			122 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Text;
 | |
| using System.ComponentModel.Design;
 | |
| using System.Windows.Forms.Design;
 | |
| using System.Drawing;
 | |
| using System.Collections;
 | |
| using System.ComponentModel;
 | |
| using System.Windows.Forms;
 | |
| 
 | |
| namespace DevComponents.DotNetBar.Design
 | |
| {
 | |
|     /// <summary>
 | |
|     /// Represents designer for RibbonPanel control.
 | |
|     /// </summary>
 | |
|     public class RibbonPanelDesigner:PanelControlDesigner
 | |
|     {
 | |
|         #region Internal Implementation
 | |
|         public override SelectionRules SelectionRules
 | |
| 		{
 | |
| 			get{return (SelectionRules.Locked | SelectionRules.Visible);}
 | |
|         }
 | |
| 
 | |
|         protected override void SetDesignTimeDefaults()
 | |
|         {
 | |
|             RibbonPanel p = this.Control as RibbonPanel;
 | |
|             #if FRAMEWORK20
 | |
|             p.Padding = new System.Windows.Forms.Padding(3, 0, 3, 3);
 | |
|             #else
 | |
|             p.DockPadding.Left = 3;
 | |
|             p.DockPadding.Right = 3;
 | |
|             p.DockPadding.Bottom = 3;
 | |
|             #endif
 | |
|         }
 | |
| 
 | |
|         public override DesignerVerbCollection Verbs
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 DesignerVerbCollection verbs=new DesignerVerbCollection(new DesignerVerb[]
 | |
| 				    {
 | |
|                         new DesignerVerb("Create RibbonBar", new EventHandler(CreateRibbonBar)),
 | |
| 					    new DesignerVerb("Layout Ribbons", new EventHandler(LayoutRibbons))
 | |
|                     });
 | |
|                 //verbs.AddRange(base.Verbs);
 | |
|                 
 | |
|                 return verbs;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private void LayoutRibbons(object sender, EventArgs e)
 | |
|         {
 | |
|             RibbonPanel panel = this.Control as RibbonPanel;
 | |
|             if (panel == null)
 | |
|                 return;
 | |
| 
 | |
|             IDesignerHost host = this.GetService(typeof(IDesignerHost)) as IDesignerHost;
 | |
|             DesignerTransaction trans=null;
 | |
|             if (host != null)
 | |
|                 trans=host.CreateTransaction("Rendering Layout");
 | |
| 
 | |
|             try
 | |
|             {
 | |
|                 panel.LayoutRibbons();
 | |
|             }
 | |
|             finally
 | |
|             {
 | |
|                 if (trans != null)
 | |
|                     trans.Commit();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private void CreateRibbonBar(object sender, EventArgs e)
 | |
|         {
 | |
|             RibbonPanel panel = this.Control as RibbonPanel;
 | |
|             if (panel == null)
 | |
|                 return;
 | |
| 
 | |
|             IDesignerHost dh = (IDesignerHost)GetService(typeof(IDesignerHost));
 | |
|             if (dh != null)
 | |
|             {
 | |
|                 DesignerTransaction trans = dh.CreateTransaction("Create Default Ribbon Bar");
 | |
|                 IComponentChangeService cc = (IComponentChangeService)GetService(typeof(IComponentChangeService));
 | |
|                 try
 | |
|                 {
 | |
|                     RibbonBar bar = dh.CreateComponent(typeof(RibbonBar)) as RibbonBar;
 | |
|                     TypeDescriptor.GetProperties(bar)["Width"].SetValue(bar, 100);
 | |
| #if !TRIAL
 | |
|                     string key = RibbonBarDesigner.GetLicenseKey();
 | |
|                     bar.LicenseKey = key;
 | |
| #endif
 | |
|                     TypeDescriptor.GetProperties(bar)["Text"].SetValue(bar, bar.Name);
 | |
| 
 | |
|                     cc.OnComponentChanging(panel, TypeDescriptor.GetProperties(typeof(Control))["Controls"]);
 | |
|                     panel.Controls.Add(bar);
 | |
|                     bar.Dock = DockStyle.Left;
 | |
|                     bar.BringToFront();
 | |
|                     cc.OnComponentChanged(panel, TypeDescriptor.GetProperties(typeof(Control))["Controls"], null, null);
 | |
|                 }
 | |
|                 catch
 | |
|                 {
 | |
|                     trans.Cancel();
 | |
|                     throw;
 | |
|                 }
 | |
|                 finally
 | |
|                 {
 | |
|                     if (!trans.Canceled)
 | |
|                         trans.Commit();
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Draws design-time border around the panel when panel does not have one.
 | |
|         /// </summary>
 | |
|         /// <param name="g"></param>
 | |
|         protected override void DrawBorder(Graphics g)
 | |
|         {
 | |
|         }
 | |
|         #endregion
 | |
|     }
 | |
| }
 |