168 lines
5.7 KiB
C#

#if FRAMEWORK20
using System;
using System.Text;
using System.Windows.Forms.Design;
using DevComponents.DotNetBar.Controls;
using System.ComponentModel;
using System.Drawing;
using System.ComponentModel.Design;
namespace DevComponents.DotNetBar.Design
{
/// <summary>
/// Represents the designer for WarningBox control.
/// </summary>
public class WarningBoxDesigner : ControlDesigner
{
#region Internal Implementation
public override void InitializeNewComponent(System.Collections.IDictionary defaultValues)
{
base.InitializeNewComponent(defaultValues);
SetDefaults();
}
private void SetDefaults()
{
WarningBox box = this.Control as WarningBox;
if (box == null) return;
TypeDescriptor.GetProperties(box)["Text"].SetValue(box, "<b>Warning Box</b> control with <i>text-markup</i> support.");
Image image = GetDefaultImage();
if (image != null)
TypeDescriptor.GetProperties(box)["Image"].SetValue(box, image);
}
private Image GetDefaultImage()
{
string imageName = "images\\Warning.png";
try
{
Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine;
string path = "";
try
{
if (key != null)
key = key.OpenSubKey("Software\\DevComponents\\DotNetBar");
if (key != null)
path = key.GetValue("InstallationFolder", "").ToString();
}
finally { if (key != null) key.Close(); }
if (path != "")
{
if (path.Substring(path.Length - 1, 1) != "\\")
path += "\\";
if (System.IO.File.Exists(path + imageName))
path += imageName;
else
path = "";
}
if (path != "")
{
return new Bitmap(path);
}
}
catch (Exception)
{
}
return null;
}
private DesignerActionListCollection _ActionLists = null;
public override DesignerActionListCollection ActionLists
{
get
{
if (_ActionLists == null)
{
_ActionLists = new DesignerActionListCollection();
_ActionLists.Add(new WarningBoxActionList(this));
}
return _ActionLists;
}
}
#endregion
}
#region WarningBoxActionList
public class WarningBoxActionList : DesignerActionList
{
private WarningBoxDesigner _Designer = null;
/// <summary>
/// Initializes a new instance of the AdvTreeActionList class.
/// </summary>
/// <param name="designer"></param>
public WarningBoxActionList(WarningBoxDesigner designer)
: base(designer.Component)
{
_Designer = designer;
}
public override DesignerActionItemCollection GetSortedActionItems()
{
DesignerActionItemCollection items = new DesignerActionItemCollection();
items.Add(new DesignerActionHeaderItem("Appearance"));
items.Add(new DesignerActionHeaderItem("Information"));
items.Add(new DesignerActionPropertyItem("OptionsButtonVisible", "Show Options button?", "Appearance", "Controls visibility of Options button in WarningBox"));
items.Add(new DesignerActionPropertyItem("CloseButtonVisible", "Show Close button?", "Appearance", "Controls visibility of Close button in WarningBox"));
items.Add(new DesignerActionPropertyItem("Image", "Image", "Appearance", "Image that is displayed on Warning Box"));
items.Add(new DesignerActionTextItem("See Office2007ColorTable.WarningBox members to customize colors.", "Information"));
items.Add(new DesignerActionMethodItem(this, "OpenKB", "How to customize color table?", "Information", "Opens online Knowledge Base article which shows how to customize Office2007ColorTable", true));
items.Add(new DesignerActionMethodItem(this, "OpenTextMarkupRef", "Text Markup Reference...", "Information", "Opens online Text Markup reference. Markup can be used in Text property.", true));
return items;
}
public void OpenKB()
{
System.Diagnostics.Process.Start("http://www.devcomponents.com/kb2/");
}
public void OpenTextMarkupRef()
{
System.Diagnostics.Process.Start("http://www.devcomponents.com/kb2/?p=515");
}
public bool OptionsButtonVisible
{
get
{
return ((WarningBox)base.Component).OptionsButtonVisible;
}
set
{
TypeDescriptor.GetProperties(base.Component)["OptionsButtonVisible"].SetValue(base.Component, value);
}
}
public bool CloseButtonVisible
{
get
{
return ((WarningBox)base.Component).CloseButtonVisible;
}
set
{
TypeDescriptor.GetProperties(base.Component)["CloseButtonVisible"].SetValue(base.Component, value);
}
}
public Image Image
{
get
{
return ((WarningBox)base.Component).Image;
}
set
{
TypeDescriptor.GetProperties(base.Component)["Image"].SetValue(base.Component, value);
}
}
}
#endregion
}
#endif