/*
* Created by SharpDevelop.
* User: Mike Becker
* Date: 8/18/2013
* Time: 6:22 PM
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.ComponentModel;
namespace UniversalEditor.UserInterface
{
///
/// Description of Toolbox.
///
public sealed class Toolbox
{
private ToolboxItem.ToolboxItemCollection mvarItems = new ToolboxItem.ToolboxItemCollection();
public ToolboxItem.ToolboxItemCollection Items { get { return mvarItems; } }
}
public abstract class ToolboxItem
{
public sealed class ToolboxItemCollection
: System.Collections.ObjectModel.Collection
{
public ToolboxCommandItem AddCommand(string name)
{
return AddCommand(name, name);
}
public ToolboxCommandItem AddCommand(string name, string title)
{
return AddCommand(name, title, null);
}
public ToolboxCommandItem AddCommand(string name, string title, string imageFileName)
{
ToolboxCommandItem item = new ToolboxCommandItem(name, title, imageFileName);
Add(item);
return item;
}
public ToolboxGroupItem AddGroup(string name)
{
return AddGroup(name, name);
}
public ToolboxGroupItem AddGroup(string name, string title)
{
ToolboxGroupItem group = new ToolboxGroupItem(name, title);
Add(group);
return group;
}
}
private string mvarName = String.Empty;
public string Name { get { return mvarName; } set { mvarName = value; } }
private ToolboxGroupItem mvarParent = null;
public ToolboxGroupItem Parent { get { return mvarParent; } set { mvarParent = value; } }
public ToolboxItem(string name)
{
mvarName = name;
}
}
public class ToolboxGroupItem : ToolboxItem
{
private string mvarTitle = String.Empty;
public string Title { get { return mvarTitle; } set { mvarTitle = value; } }
private ToolboxItem.ToolboxItemCollection mvarItems = new ToolboxItem.ToolboxItemCollection();
public ToolboxItem.ToolboxItemCollection Items { get { return mvarItems; } }
public ToolboxGroupItem(string name, string title) : base(name)
{
mvarTitle = title;
}
}
public class ToolboxCommandItem : ToolboxItem
{
private string mvarTitle = String.Empty;
public string Title { get { return mvarTitle; } set { mvarTitle = value; } }
private string mvarImageFileName = String.Empty;
public string ImageFileName { get { return mvarImageFileName; } set { mvarImageFileName = value; } }
public ToolboxCommandItem(string name, string title, string imageFileName = "") : base(name)
{
mvarTitle = title;
mvarImageFileName = imageFileName;
}
}
public delegate void ToolboxItemEventHandler(object sender, ToolboxItemEventArgs e);
///
/// Contains the toolbox item that is responsible for the toolbox item event.
///
public class ToolboxItemEventArgs : CancelEventArgs
{
private ToolboxItem mvarItem = null;
public ToolboxItem Item { get { return mvarItem; } }
public ToolboxItemEventArgs(ToolboxItem item)
{
mvarItem = item;
}
}
}