235 lines
		
	
	
		
			8.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			235 lines
		
	
	
		
			8.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Text;
 | |
| using System.Collections;
 | |
| using System.ComponentModel;
 | |
| using System.ComponentModel.Design;
 | |
| using System.Drawing;
 | |
| using DevComponents.DotNetBar.Rendering;
 | |
| 
 | |
| namespace DevComponents.DotNetBar.Design
 | |
| {
 | |
|     /// <summary>
 | |
|     /// Represents Windows Forms Designer for the ItemPanel control.
 | |
|     /// </summary>
 | |
|     public class ItemPanelDesigner : BarBaseControlDesigner
 | |
|     {
 | |
|         public ItemPanelDesigner()
 | |
| 		{
 | |
| 			this.EnableItemDragDrop=true;
 | |
| 		}
 | |
| 
 | |
|         public override void Initialize(IComponent component)
 | |
|         {
 | |
|             base.Initialize(component);
 | |
|             if (component == null || component.Site == null || !component.Site.DesignMode)
 | |
|                 return;
 | |
| 
 | |
| #if !TRIAL
 | |
|             IDesignerHost dh = this.GetService(typeof(IDesignerHost)) as IDesignerHost;
 | |
|             if (dh != null)
 | |
|                 dh.LoadComplete += new EventHandler(dh_LoadComplete);
 | |
| #endif
 | |
|         }
 | |
| 
 | |
| #if FRAMEWORK20
 | |
|         public override void InitializeNewComponent(IDictionary defaultValues)
 | |
|         {
 | |
|             base.InitializeNewComponent(defaultValues);
 | |
|             SetDesignTimeDefaults();
 | |
|         }
 | |
| #else
 | |
| 		public override void OnSetComponentDefaults()
 | |
| 		{
 | |
|             SetDesignTimeDefaults();
 | |
| 			base.OnSetComponentDefaults();
 | |
| 		}
 | |
| #endif
 | |
| 
 | |
|         protected virtual void SetDesignTimeDefaults()
 | |
|         {
 | |
|             ItemPanel panel = this.Control as ItemPanel;
 | |
|             panel.LayoutOrientation = eOrientation.Vertical;
 | |
|             panel.BackgroundStyle.Class = ElementStyleClassKeys.ItemPanelKey;
 | |
|             //panel.BackgroundStyle.Border = eStyleBorderType.Solid;
 | |
|             //panel.BackgroundStyle.BorderColor = ColorScheme.GetColor("7F9DB9");
 | |
|             //panel.BackgroundStyle.BorderWidth = 1;
 | |
|             //panel.BackgroundStyle.PaddingLeft = 1;
 | |
|             //panel.BackgroundStyle.PaddingRight = 1;
 | |
|             //panel.BackgroundStyle.PaddingTop = 1;
 | |
|             //panel.BackgroundStyle.PaddingBottom = 1;
 | |
|             //panel.BackgroundStyle.BackColor = Color.White;
 | |
| #if !TRIAL
 | |
|             string key = GetLicenseKey();
 | |
|             panel.LicenseKey = key;
 | |
| #endif
 | |
|         }
 | |
| 
 | |
|         public override DesignerVerbCollection Verbs
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 Bar bar = this.Control as Bar;
 | |
|                 DesignerVerb[] verbs = null;
 | |
|                 verbs = new DesignerVerb[]
 | |
| 						{
 | |
| 							new DesignerVerb("Add Button", new EventHandler(CreateButton)),
 | |
| 							new DesignerVerb("Add Horizontal Container", new EventHandler(CreateHorizontalContainer)),
 | |
| 							new DesignerVerb("Add Vertical Container", new EventHandler(CreateVerticalContainer)),
 | |
|                             new DesignerVerb("Add Dock Container", new EventHandler(CreateDockContainer)),
 | |
| 							new DesignerVerb("Add Text Box", new EventHandler(CreateTextBox)),
 | |
| 							new DesignerVerb("Add Combo Box", new EventHandler(CreateComboBox)),
 | |
| 							new DesignerVerb("Add Label", new EventHandler(CreateLabel)),
 | |
| 							new DesignerVerb("Add Color Picker", new EventHandler(CreateColorPicker)),
 | |
|                             new DesignerVerb("Add Micro-Chart", new EventHandler(CreateMicroChart)),
 | |
|                             new DesignerVerb("Add Switch Button", new EventHandler(CreateSwitch)),
 | |
|                             new DesignerVerb("Add Progress bar", new EventHandler(CreateProgressBar)),
 | |
|                             new DesignerVerb("Add Check box", new EventHandler(CreateCheckBox)),
 | |
|                             new DesignerVerb("Add WinForms Control Container", new EventHandler(CreateControlContainer)),
 | |
|                             new DesignerVerb("Add Metro Tile", new EventHandler(CreateMetroTile)),
 | |
|                             new DesignerVerb("Apply Panel Style", new EventHandler(ApplyPanelStyle)),
 | |
|                             new DesignerVerb("Apply Default Style", new EventHandler(ApplyDefaultStyle))
 | |
|                         };
 | |
|                 return new DesignerVerbCollection(verbs);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private void ApplyPanelStyle(object sender, EventArgs e)
 | |
|         {
 | |
|             ItemPanel p = this.Control as ItemPanel;
 | |
|             if (p == null)
 | |
|                 return;
 | |
| 
 | |
|             IComponentChangeService change = this.GetService(typeof(IComponentChangeService)) as IComponentChangeService;
 | |
|             if (change != null)
 | |
|                 change.OnComponentChanging(this.Component, null);
 | |
| 
 | |
|             ElementStyle bs = p.BackgroundStyle;
 | |
|             bs.Reset();
 | |
| 
 | |
|             bs.Border = eStyleBorderType.Solid;
 | |
|             bs.BorderWidth = 1;
 | |
|             bs.BorderColorSchemePart = eColorSchemePart.PanelBorder;
 | |
|             bs.BackColorSchemePart = eColorSchemePart.PanelBackground;
 | |
|             bs.BackColor2SchemePart = eColorSchemePart.PanelBackground2;
 | |
|             bs.BackColorGradientAngle = 90;
 | |
|             
 | |
|             if (change != null)
 | |
|                 change.OnComponentChanged(this.Component, null, null, null);
 | |
|         }
 | |
| 
 | |
|         private void ApplyDefaultStyle(object sender, EventArgs e)
 | |
|         {
 | |
|             ItemPanel p = this.Control as ItemPanel;
 | |
|             if (p == null)
 | |
|                 return;
 | |
| 
 | |
|             IComponentChangeService change = this.GetService(typeof(IComponentChangeService)) as IComponentChangeService;
 | |
|             if (change != null)
 | |
|                 change.OnComponentChanging(this.Component, null);
 | |
| 
 | |
|             ElementStyle bs = p.BackgroundStyle;
 | |
|             bs.Reset();
 | |
| 
 | |
|             bs.Border = eStyleBorderType.Solid;
 | |
|             bs.BorderWidth = 1;
 | |
|             bs.BorderColorSchemePart = eColorSchemePart.PanelBorder;
 | |
|             bs.BackColor = Color.White;
 | |
| 
 | |
|             if (change != null)
 | |
|                 change.OnComponentChanged(this.Component, null, null, null);
 | |
|         }
 | |
| 
 | |
|         private void CreateDockContainer(object sender, EventArgs e)
 | |
|         {
 | |
|             CreateDockContainer(this.GetItemContainer());
 | |
|         }
 | |
|         private void CreateVerticalContainer(object sender, EventArgs e)
 | |
|         {
 | |
|             CreateContainer(this.GetItemContainer(), eOrientation.Vertical);
 | |
|         }
 | |
| 
 | |
|         protected virtual void CreateHorizontalContainer(object sender, EventArgs e)
 | |
|         {
 | |
|             CreateContainer(this.GetItemContainer(), eOrientation.Horizontal);
 | |
|         }
 | |
| 
 | |
|         protected virtual ItemContainer CreateContainer(BaseItem parent, eOrientation orientation)
 | |
|         {
 | |
|             ItemContainer container = null;
 | |
|             m_CreatingItem = true;
 | |
|             try
 | |
|             {
 | |
|                 container = DesignerSupport.CreateItemContainer(this, parent, orientation);
 | |
|             }
 | |
|             finally
 | |
|             {
 | |
|                 m_CreatingItem = false;
 | |
|             }
 | |
|             this.RecalcLayout();
 | |
| 
 | |
|             return container;
 | |
|         }
 | |
| 
 | |
|         protected virtual ItemDockContainer CreateDockContainer(BaseItem parent)
 | |
|         {
 | |
|             ItemDockContainer container = null;
 | |
|             m_CreatingItem = true;
 | |
|             try
 | |
|             {
 | |
|                 container = DesignerSupport.CreateItemDockContainer(this, parent);
 | |
|             }
 | |
|             finally
 | |
|             {
 | |
|                 m_CreatingItem = false;
 | |
|             }
 | |
|             this.RecalcLayout();
 | |
| 
 | |
|             return container;
 | |
|         }
 | |
| 
 | |
|         protected override bool GetHitTest(Point pt)
 | |
|         {
 | |
|             ItemPanel panel = this.Control as ItemPanel;
 | |
|             if (panel != null && panel.IsHandleCreated && panel.AutoScroll)
 | |
|             {
 | |
|                 Point p = panel.PointToClient(pt);
 | |
|                 if (panel.VScrollBar != null && panel.VScrollBar.Bounds.Contains(p))
 | |
|                     return true;
 | |
|                 if (panel.HScrollBar != null && panel.HScrollBar.Bounds.Contains(p))
 | |
|                     return true;
 | |
| 
 | |
|             }
 | |
|             return base.GetHitTest(pt);
 | |
|         }
 | |
| 
 | |
|         #region Licensing Stuff
 | |
| #if !TRIAL
 | |
|         protected string GetLicenseKey()
 | |
|         {
 | |
|             string key = "";
 | |
|             Microsoft.Win32.RegistryKey regkey = Microsoft.Win32.Registry.LocalMachine;
 | |
|             regkey = regkey.OpenSubKey("Software\\DevComponents\\Licenses", false);
 | |
|             if (regkey != null)
 | |
|             {
 | |
|                 object keyValue = regkey.GetValue("DevComponents.DotNetBar.DotNetBarManager2");
 | |
|                 if (keyValue != null)
 | |
|                     key = keyValue.ToString();
 | |
|             }
 | |
|             return key;
 | |
|         }
 | |
|         private void dh_LoadComplete(object sender, EventArgs e)
 | |
|         {
 | |
|             IDesignerHost dh = this.GetService(typeof(IDesignerHost)) as IDesignerHost;
 | |
|             if (dh != null)
 | |
|                 dh.LoadComplete -= new EventHandler(dh_LoadComplete);
 | |
| 
 | |
|             string key = GetLicenseKey();
 | |
|             ItemPanel bar = this.Control as ItemPanel;
 | |
|             if (key != "" && bar != null && bar.LicenseKey == "" && bar.LicenseKey != key)
 | |
|                 TypeDescriptor.GetProperties(bar)["LicenseKey"].SetValue(bar, key);
 | |
|         }
 | |
| #endif
 | |
|         #endregion
 | |
|     }
 | |
| }
 |