99 lines
3.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms.Design;
using System.ComponentModel.Design;
using DevComponents.DotNetBar;
using System.Windows.Forms;
using System.Drawing;
using System.Collections;
namespace DevComponents.DotNetBar.Design
{
public class RadialMenuDesigner : ControlDesigner
{
#region Implementation
public override System.Collections.ICollection AssociatedComponents
{
get
{
ArrayList c = new ArrayList(base.AssociatedComponents);
RadialMenu menu = this.Control as RadialMenu;
if (menu != null)
{
foreach (BaseItem item in menu.Items)
{
if (item.DesignMode)
c.Add(item);
}
}
return c;
}
}
public override void InitializeNewComponent(System.Collections.IDictionary defaultValues)
{
RadialMenu menu = this.Control as RadialMenu;
menu.Symbol = "\uf043";
menu.SymbolSize = 13;
if (defaultValues != null)
{
if (defaultValues.Contains("Size"))
{
defaultValues["Size"] = new Size(28, 28);
}
}
base.InitializeNewComponent(defaultValues);
}
private DesignerActionListCollection _ActionLists = null;
public override DesignerActionListCollection ActionLists
{
get
{
if (this._ActionLists == null)
{
this._ActionLists = new DesignerActionListCollection();
this._ActionLists.Add(new RadialMenuActionList(this));
}
return this._ActionLists;
}
}
public void EditItems()
{
RadialMenu radialMenu = this.Component as RadialMenu;
Form form = new Form();
form.Text = "Radial Menu Editor";
form.FormBorderStyle = FormBorderStyle.Sizable;
form.MinimizeBox = false;
//form.MaximizeBox = false;
form.StartPosition = FormStartPosition.CenterScreen;
RadialMenuItemEditor editor = new RadialMenuItemEditor();
editor.Dock = DockStyle.Fill;
form.ClientSize = new System.Drawing.Size(722, 660);
form.Controls.Add(editor);
form.BackColor = Color.White;
editor.RadialMenu = radialMenu;
editor.Designer = this;
editor.UpdateDisplay();
form.ShowDialog();
form.Dispose();
}
public object GetDesignService(Type serviceType)
{
return GetService(serviceType);
}
public override SelectionRules SelectionRules
{
get
{
return SelectionRules.Moveable | SelectionRules.Visible;
}
}
#endregion
}
}