181 lines
6.1 KiB
C#
181 lines
6.1 KiB
C#
using System;
|
|
using System.ComponentModel;
|
|
using System.ComponentModel.Design;
|
|
using System.Drawing;
|
|
using System.Windows.Forms;
|
|
using System.Windows.Forms.Design;
|
|
using System.Collections;
|
|
|
|
namespace DevComponents.DotNetBar.Design
|
|
{
|
|
/// <summary>
|
|
/// Represents Windows Forms Designer for RibbonBar control
|
|
/// </summary>
|
|
public class RibbonBarDesigner:BarBaseControlDesigner
|
|
{
|
|
public RibbonBarDesigner()
|
|
{
|
|
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
|
|
|
|
private void SetDesignTimeDefaults()
|
|
{
|
|
RibbonBar b = this.Control as RibbonBar;
|
|
this.Style = eDotNetBarStyle.StyleManagerControlled;
|
|
#if !TRIAL
|
|
string key = GetLicenseKey();
|
|
b.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 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 Check Box", new EventHandler(CreateCheckBox)),
|
|
new DesignerVerb("Add Micro-Chart", new EventHandler(CreateMicroChart)),
|
|
new DesignerVerb("Add Switch Button", new EventHandler(CreateSwitch)),
|
|
new DesignerVerb("Add Slider", new EventHandler(CreateSliderItem)),
|
|
new DesignerVerb("Add Range Slider", new EventHandler(CreateRangeSliderItem)),
|
|
new DesignerVerb("Add Rating Item", new EventHandler(CreateRatingItem)),
|
|
new DesignerVerb("Add Circular Progress", new EventHandler(CreateCircularProgressItem)),
|
|
new DesignerVerb("Add Gallery Container", new EventHandler(CreateGalleryContainer)),
|
|
new DesignerVerb("Add Control Container", new EventHandler(CreateControlContainer))};
|
|
return new DesignerVerbCollection(verbs);
|
|
}
|
|
}
|
|
|
|
private void CreateVerticalContainer(object sender, EventArgs e)
|
|
{
|
|
CreateContainer(this.GetItemContainer(),eOrientation.Vertical);
|
|
}
|
|
|
|
private void CreateHorizontalContainer(object sender, EventArgs e)
|
|
{
|
|
CreateContainer(this.GetItemContainer(),eOrientation.Horizontal);
|
|
}
|
|
|
|
private void CreateContainer(BaseItem parent, eOrientation orientation)
|
|
{
|
|
m_CreatingItem = true;
|
|
try
|
|
{
|
|
DesignerSupport.CreateItemContainer(this, parent, orientation);
|
|
}
|
|
finally
|
|
{
|
|
m_CreatingItem = false;
|
|
}
|
|
this.RecalcLayout();
|
|
}
|
|
protected override void PreFilterProperties(
|
|
System.Collections.IDictionary properties)
|
|
{
|
|
base.PreFilterProperties(properties);
|
|
properties["Style"] =
|
|
TypeDescriptor.CreateProperty(typeof(RibbonBarDesigner),
|
|
(PropertyDescriptor)properties["Style"],
|
|
new Attribute[0]);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets/Sets the visual style of the control.
|
|
/// </summary>
|
|
[Browsable(true),DevCoBrowsable(true),Category("Appearance"),Description("Specifies the visual style of the control."),DefaultValue(eDotNetBarStyle.Office2003)]
|
|
public eDotNetBarStyle Style
|
|
{
|
|
get
|
|
{
|
|
RibbonBar bar=this.Control as RibbonBar;
|
|
return bar.Style;
|
|
}
|
|
set
|
|
{
|
|
RibbonBar bar=this.Control as RibbonBar;
|
|
bar.Style=value;
|
|
IDesignerHost dh=this.GetService(typeof(IDesignerHost)) as IDesignerHost;
|
|
if(dh!=null && !dh.Loading)
|
|
{
|
|
RibbonPredefinedColorSchemes.SetRibbonBarStyle(bar, value);
|
|
}
|
|
}
|
|
}
|
|
|
|
protected override void OnitemCreated(BaseItem item)
|
|
{
|
|
if (item is ButtonItem)
|
|
{
|
|
ButtonItem b = item as ButtonItem;
|
|
TypeDescriptor.GetProperties(b)["SubItemsExpandWidth"].SetValue(b, 14);
|
|
}
|
|
base.OnitemCreated(item);
|
|
}
|
|
|
|
#region Licensing Stuff
|
|
#if !TRIAL
|
|
internal static 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();
|
|
RibbonBar bar = this.Control as RibbonBar;
|
|
if (key != "" && bar != null && bar.LicenseKey == "" && bar.LicenseKey != key)
|
|
TypeDescriptor.GetProperties(bar)["LicenseKey"].SetValue(bar, key);
|
|
}
|
|
#endif
|
|
#endregion
|
|
}
|
|
}
|