98 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System.Collections;
 | |
| using System.ComponentModel;
 | |
| using System.ComponentModel.Design;
 | |
| using System;
 | |
| using System.Drawing;
 | |
| 
 | |
| namespace DevComponents.DotNetBar.Design
 | |
| {
 | |
|     public class ExpandablePanelDesigner : PanelExDesigner
 | |
|     {
 | |
|         #region Internal Implementation
 | |
|         
 | |
| #if FRAMEWORK20
 | |
|         public override void InitializeNewComponent(IDictionary defaultValues)
 | |
|         {
 | |
|             base.InitializeNewComponent(defaultValues);
 | |
|             SetDesignTimeDefaults();
 | |
|         }
 | |
| #else
 | |
| 		public override void OnSetComponentDefaults()
 | |
| 		{
 | |
| 			base.OnSetComponentDefaults();
 | |
| 			SetDesignTimeDefaults();
 | |
| 		}
 | |
| #endif
 | |
| 
 | |
|         private void SetDesignTimeDefaults()
 | |
|         {
 | |
|             ExpandablePanel p = this.Control as ExpandablePanel;
 | |
|             if (p == null)
 | |
|                 return;
 | |
|             p.ApplyLabelStyle();
 | |
|             p.Style.BorderColor.ColorSchemePart = eColorSchemePart.BarDockedBorder;
 | |
|             p.Style.Border = eBorderType.SingleLine;
 | |
|             p.Style.BackColor1.ColorSchemePart = eColorSchemePart.PanelBackground;
 | |
|             p.Style.BackColor2.ColorSchemePart = eColorSchemePart.PanelBackground2;
 | |
|             p.Text = "";
 | |
| 			p.TitlePanel.ApplyPanelStyle();
 | |
|             p.HideControlsWhenCollapsed = true;
 | |
|             this.ColorSchemeStyle = eDotNetBarStyle.StyleManagerControlled;
 | |
|         }
 | |
| 
 | |
|         protected override void PreFilterProperties(IDictionary properties)
 | |
|         {
 | |
|             base.PreFilterProperties(properties);
 | |
|             properties["ColorSchemeStyle"] = TypeDescriptor.CreateProperty(typeof(ExpandablePanelDesigner), (PropertyDescriptor)properties["ColorSchemeStyle"], new Attribute[]
 | |
| 				{
 | |
| 					new DefaultValueAttribute(eDotNetBarStyle.Office2003),
 | |
| 					new BrowsableAttribute(true),
 | |
| 					new CategoryAttribute("Style"),
 | |
|                     new DescriptionAttribute("Gets or sets color scheme style.")});
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         ///     Gets or sets color scheme style.
 | |
|         /// </summary>
 | |
|         [Browsable(true), DevCoBrowsable(true), Category("Style"), Description("Gets or sets color scheme style."), DefaultValue(eDotNetBarStyle.Office2003)]
 | |
|         public eDotNetBarStyle ColorSchemeStyle
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 ExpandablePanel ep = this.Control as ExpandablePanel;
 | |
|                 return ep.ColorSchemeStyle;
 | |
|             }
 | |
|             set
 | |
|             {
 | |
|                 ExpandablePanel ep = this.Control as ExpandablePanel;
 | |
|                 ep.ColorSchemeStyle = value;
 | |
|                 IDesignerHost dh = this.GetService(typeof(IDesignerHost)) as IDesignerHost;
 | |
|                 if (dh != null && !dh.Loading)
 | |
|                 {
 | |
|                     if (Helpers.IsOffice2007Style(value))
 | |
|                         ep.TitleStyle.Border = eBorderType.RaisedInner;
 | |
|                     else
 | |
|                         ep.TitleStyle.Border = eBorderType.SingleLine;
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         protected override bool GetHitTest(System.Drawing.Point pt)
 | |
|         {
 | |
|             ExpandablePanel p = this.Control as ExpandablePanel;
 | |
|             if (p != null)
 | |
|             {
 | |
|                 Point pt2 = p.PointToClient(pt);
 | |
|                 PanelExTitle titlePanel = p.TitlePanel as PanelExTitle;
 | |
|                 if (titlePanel != null && titlePanel.ExpandChangeButton!=null && titlePanel.ExpandChangeButton.DisplayRectangle.Contains(pt2))
 | |
|                     return true;
 | |
|                 else if (titlePanel != null && titlePanel.ExpandChangeButton!=null)
 | |
|                     titlePanel.ExpandChangeButton.InternalMouseLeave();
 | |
| 
 | |
|             }
 | |
|             return base.GetHitTest(pt);
 | |
|         }
 | |
|         #endregion
 | |
|     }
 | |
| }
 |