758 lines
		
	
	
		
			30 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			758 lines
		
	
	
		
			30 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using System.Text;
 | 
						|
using System.ComponentModel.Design;
 | 
						|
using System.ComponentModel;
 | 
						|
using System.Windows.Forms;
 | 
						|
using System.Collections;
 | 
						|
using System.Drawing;
 | 
						|
 | 
						|
namespace DevComponents.DotNetBar.Design
 | 
						|
{
 | 
						|
    /// <summary>
 | 
						|
    /// Represents Windows Forms Designer for Wizard control.
 | 
						|
    /// </summary>
 | 
						|
    public class WizardDesigner : System.Windows.Forms.Design.ControlDesigner
 | 
						|
    {
 | 
						|
        #region Internal Implementation
 | 
						|
		WizardPageNavigationControl m_NavigationControl=null;
 | 
						|
 | 
						|
        public override void Initialize(IComponent component)
 | 
						|
        {
 | 
						|
            base.Initialize(component);
 | 
						|
            if (!component.Site.DesignMode)
 | 
						|
                return;
 | 
						|
 | 
						|
            IComponentChangeService cc = (IComponentChangeService)GetService(typeof(IComponentChangeService));
 | 
						|
            if (cc != null)
 | 
						|
            {
 | 
						|
                cc.ComponentRemoved += new ComponentEventHandler(this.OnComponentRemoved);
 | 
						|
            }
 | 
						|
 | 
						|
			// Setup navigation box in lower left corner
 | 
						|
			Wizard w=component as Wizard;
 | 
						|
			if(w!=null)
 | 
						|
			{
 | 
						|
				WizardPageNavigationControl wpn=new WizardPageNavigationControl();
 | 
						|
				wpn.Location=new Point(4, w.panelFooter.Height - wpn.Height - 4);
 | 
						|
				w.panelFooter.Controls.Add(wpn);
 | 
						|
				wpn.BackColor=SystemColors.Control;
 | 
						|
				m_NavigationControl=wpn;
 | 
						|
			}
 | 
						|
 | 
						|
#if !TRIAL
 | 
						|
			IDesignerHost dh = this.GetService(typeof(IDesignerHost)) as IDesignerHost;
 | 
						|
			if (dh != null)
 | 
						|
				dh.LoadComplete += new EventHandler(dh_LoadComplete);
 | 
						|
#endif
 | 
						|
        }
 | 
						|
        protected override void Dispose(bool disposing)
 | 
						|
        {
 | 
						|
            IComponentChangeService cc = (IComponentChangeService)GetService(typeof(IComponentChangeService));
 | 
						|
            if (cc != null)
 | 
						|
            {
 | 
						|
                cc.ComponentRemoved -= new ComponentEventHandler(this.OnComponentRemoved);
 | 
						|
            }
 | 
						|
 | 
						|
            base.Dispose(disposing);
 | 
						|
        }
 | 
						|
 | 
						|
        private void OnComponentRemoved(object sender, ComponentEventArgs e)
 | 
						|
        {
 | 
						|
            if (e.Component is WizardPage)
 | 
						|
            {
 | 
						|
                WizardPage page = e.Component as WizardPage;
 | 
						|
                Wizard w = this.Control as Wizard;
 | 
						|
 | 
						|
                if (page != null && w.WizardPages.Contains(page))
 | 
						|
                {
 | 
						|
                    IComponentChangeService cc = this.GetService(typeof(IComponentChangeService)) as IComponentChangeService;
 | 
						|
                    if (cc != null)
 | 
						|
                        cc.OnComponentChanging(w, TypeDescriptor.GetProperties(w)["WizardPages"]);
 | 
						|
 | 
						|
                    w.WizardPages.Remove(page);
 | 
						|
 | 
						|
                    if (cc != null)
 | 
						|
                        cc.OnComponentChanged(w, TypeDescriptor.GetProperties(w)["WizardPages"], null, null);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        public override void DoDefaultAction()
 | 
						|
        {
 | 
						|
        }
 | 
						|
 | 
						|
        public override DesignerVerbCollection Verbs
 | 
						|
        {
 | 
						|
            get
 | 
						|
            {
 | 
						|
                DesignerVerb[] verbs = null;
 | 
						|
                verbs = new DesignerVerb[]
 | 
						|
					{
 | 
						|
						new DesignerVerb("Create Inner Page", new EventHandler(CreatePage)),
 | 
						|
						new DesignerVerb("Create Welcome Page", new EventHandler(CreateWelcomePage)),
 | 
						|
						new DesignerVerb("Create Outer Page", new EventHandler(CreateOuterPage)),
 | 
						|
                        new DesignerVerb("Delete Page", new EventHandler(DeletePage)),
 | 
						|
                        new DesignerVerb("Next Page", new EventHandler(NextPage)),
 | 
						|
                        new DesignerVerb("Previous Page", new EventHandler(PreviousPage)),
 | 
						|
                        new DesignerVerb("Goto Page/Change Order", new EventHandler(GotoPage))
 | 
						|
                    };
 | 
						|
                return new DesignerVerbCollection(verbs);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
#if FRAMEWORK20
 | 
						|
        public override void InitializeNewComponent(IDictionary defaultValues)
 | 
						|
        {
 | 
						|
            base.InitializeNewComponent(defaultValues);
 | 
						|
            SetDesignTimeDefaults();
 | 
						|
        }
 | 
						|
#else
 | 
						|
		public override void OnSetComponentDefaults()
 | 
						|
		{
 | 
						|
			base.OnSetComponentDefaults();
 | 
						|
            SetDesignTimeDefaults();
 | 
						|
		}
 | 
						|
#endif
 | 
						|
 | 
						|
        private void SetDesignTimeDefaults()
 | 
						|
        {
 | 
						|
            Wizard w = this.Control as Wizard;
 | 
						|
            if (w == null)
 | 
						|
                return;
 | 
						|
            TypeDescriptor.GetProperties(w)["HeaderImageVisible"].SetValue(w, true);
 | 
						|
            TypeDescriptor.GetProperties(w)["Dock"].SetValue(w,DockStyle.Fill);
 | 
						|
 | 
						|
            SetDefaultFooterStyle(w);
 | 
						|
#if !TRIAL
 | 
						|
			string key = GetLicenseKey();
 | 
						|
			w.LicenseKey = key;
 | 
						|
#endif
 | 
						|
        }
 | 
						|
 | 
						|
        private void GotoPage(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            Wizard w = this.Control as Wizard;
 | 
						|
            IComponentChangeService cc = this.GetService(typeof(IComponentChangeService)) as IComponentChangeService;
 | 
						|
            ISelectionService ss = this.GetService(typeof(ISelectionService)) as ISelectionService;
 | 
						|
            GotoPage(w, cc, ss);
 | 
						|
        }
 | 
						|
 | 
						|
        internal static void GotoPage(Wizard w, IComponentChangeService cc, ISelectionService ss)
 | 
						|
        {
 | 
						|
            if (w == null)
 | 
						|
                return;
 | 
						|
 | 
						|
            WizardPageOrderDialog d = new WizardPageOrderDialog();
 | 
						|
            d.SetWizard(w);
 | 
						|
            d.StartPosition = FormStartPosition.CenterScreen;
 | 
						|
            if (d.ShowDialog() == DialogResult.OK)
 | 
						|
            {
 | 
						|
                string pageName = d.SelectedPageName;
 | 
						|
                
 | 
						|
                if (d.OrderChanged)
 | 
						|
                {
 | 
						|
                    if (cc != null)
 | 
						|
                        cc.OnComponentChanging(w, TypeDescriptor.GetProperties(w)["WizardPages"]);
 | 
						|
 | 
						|
                    string[] newOrder = d.OrderedPageNames;
 | 
						|
                    w.WizardPages.IgnoreEvents = true;
 | 
						|
                    try
 | 
						|
                    {
 | 
						|
                        WizardPageCollection col = new WizardPageCollection();
 | 
						|
                        w.WizardPages.CopyTo(col);
 | 
						|
                        w.WizardPages.Clear();
 | 
						|
                        foreach (string pn in newOrder)
 | 
						|
                            w.WizardPages.Add(col[pn]);
 | 
						|
                    }
 | 
						|
                    finally
 | 
						|
                    {
 | 
						|
                        w.WizardPages.IgnoreEvents = false;
 | 
						|
                    }
 | 
						|
 | 
						|
                    if (cc != null)
 | 
						|
                        cc.OnComponentChanged(w, TypeDescriptor.GetProperties(w)["WizardPages"], null, null);
 | 
						|
                }
 | 
						|
 | 
						|
                if (pageName != "")
 | 
						|
                    w.SelectedPage = w.WizardPages[pageName];
 | 
						|
                else if (d.OrderChanged)
 | 
						|
                    w.SelectedPageIndex = 0;
 | 
						|
 | 
						|
                if (ss != null && (pageName!="" || d.OrderChanged))
 | 
						|
                    ss.SetSelectedComponents(new WizardPage[] { w.SelectedPage }, SelectionTypes.Replace);
 | 
						|
            }
 | 
						|
            d.Dispose();
 | 
						|
        }
 | 
						|
 | 
						|
        private void CreatePage(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            IDesignerHost dh = this.GetService(typeof(IDesignerHost)) as IDesignerHost;
 | 
						|
            IComponentChangeService cc = this.GetService(typeof(IComponentChangeService)) as IComponentChangeService;
 | 
						|
            ISelectionService ss = this.GetService(typeof(ISelectionService)) as ISelectionService;
 | 
						|
 | 
						|
            CreatePage(this.Control as Wizard, true, dh, cc, ss, m_WizardStyle);
 | 
						|
        }
 | 
						|
 | 
						|
        private void CreateWelcomePage(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            IDesignerHost dh = this.GetService(typeof(IDesignerHost)) as IDesignerHost;
 | 
						|
            IComponentChangeService cc = this.GetService(typeof(IComponentChangeService)) as IComponentChangeService;
 | 
						|
            ISelectionService ss = this.GetService(typeof(ISelectionService)) as ISelectionService;
 | 
						|
 | 
						|
            CreateWelcomePage(this.Control as Wizard, dh, cc, ss, this.WizardStyle);
 | 
						|
        }
 | 
						|
 | 
						|
        private void CreateOuterPage(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            IDesignerHost dh = this.GetService(typeof(IDesignerHost)) as IDesignerHost;
 | 
						|
            IComponentChangeService cc = this.GetService(typeof(IComponentChangeService)) as IComponentChangeService;
 | 
						|
            ISelectionService ss = this.GetService(typeof(ISelectionService)) as ISelectionService;
 | 
						|
 | 
						|
            CreatePage(this.Control as Wizard, false, dh, cc, ss, m_WizardStyle);
 | 
						|
        }
 | 
						|
 | 
						|
        private void DeletePage(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            IDesignerHost dh = this.GetService(typeof(IDesignerHost)) as IDesignerHost;
 | 
						|
            IComponentChangeService cc = this.GetService(typeof(IComponentChangeService)) as IComponentChangeService;
 | 
						|
            Wizard w = this.Control as Wizard;
 | 
						|
            if (w == null)
 | 
						|
                return;
 | 
						|
            DeletePage(w.SelectedPage, dh, cc);
 | 
						|
        }
 | 
						|
 | 
						|
        internal static void DeletePage(WizardPage page, IDesignerHost dh, IComponentChangeService cc)
 | 
						|
        {
 | 
						|
            if (page == null || !(page.Parent is Wizard))
 | 
						|
                return;
 | 
						|
 | 
						|
            Wizard w = page.Parent as Wizard;
 | 
						|
 | 
						|
            DesignerTransaction dt = dh.CreateTransaction();
 | 
						|
 | 
						|
            try
 | 
						|
            {
 | 
						|
                if (cc != null)
 | 
						|
                    cc.OnComponentChanging(w, TypeDescriptor.GetProperties(w)["WizardPages"]);
 | 
						|
 | 
						|
                w.WizardPages.Remove(page);
 | 
						|
 | 
						|
                if (cc != null)
 | 
						|
                    cc.OnComponentChanged(w, TypeDescriptor.GetProperties(w)["WizardPages"], null, null);
 | 
						|
 | 
						|
                dh.DestroyComponent(page);
 | 
						|
            }
 | 
						|
            catch
 | 
						|
            {
 | 
						|
                dt.Cancel();
 | 
						|
            }
 | 
						|
            finally
 | 
						|
            {
 | 
						|
                if (!dt.Canceled)
 | 
						|
                    dt.Commit();
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        private void NextPage(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            SelectNextPage(this.Control as Wizard);
 | 
						|
        }
 | 
						|
 | 
						|
        private void PreviousPage(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            SelectPreviousPage(this.Control as Wizard);
 | 
						|
        }
 | 
						|
 | 
						|
        internal static bool SelectNextPage(Wizard w)
 | 
						|
        {
 | 
						|
            if (w == null)
 | 
						|
                return false;
 | 
						|
 | 
						|
            WizardPage page = w.GetNextPage();
 | 
						|
            if (page != null)
 | 
						|
            {
 | 
						|
                w.SelectedPage = page;
 | 
						|
                return true;
 | 
						|
            }
 | 
						|
            return false;
 | 
						|
        }
 | 
						|
 | 
						|
        internal static bool SelectPreviousPage(Wizard w)
 | 
						|
        {
 | 
						|
            if (w == null)
 | 
						|
                return false;
 | 
						|
 | 
						|
            WizardPage page = w.GetBackPage();
 | 
						|
            if (page != null)
 | 
						|
            {
 | 
						|
                w.SelectedPage = page;
 | 
						|
                return true;
 | 
						|
            }
 | 
						|
            return false;
 | 
						|
        }
 | 
						|
 | 
						|
        private enum eWizardImages
 | 
						|
        {
 | 
						|
            WelcomeDefault,
 | 
						|
            BackgroundOffice2007
 | 
						|
        }
 | 
						|
 | 
						|
        private static Image LoadWizardImage(eWizardImages wizardImage)
 | 
						|
        {
 | 
						|
            string wizardImageName = "WizardWelcomeImage.png";
 | 
						|
            if (wizardImage == eWizardImages.BackgroundOffice2007)
 | 
						|
                wizardImageName = "WizardOffice2007Background.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 + wizardImageName))
 | 
						|
                        path += wizardImageName;
 | 
						|
                    else
 | 
						|
                        path = "";
 | 
						|
                }
 | 
						|
 | 
						|
                if (path != "")
 | 
						|
                {
 | 
						|
                    return new Bitmap(path);
 | 
						|
                }
 | 
						|
            }
 | 
						|
            catch (Exception)
 | 
						|
            {
 | 
						|
            }
 | 
						|
            return null;
 | 
						|
        }
 | 
						|
 | 
						|
        internal static void ApplyOffice2007WelcomePageStyle(WizardPage page, IDesignerHost dh, IComponentChangeService cc)
 | 
						|
        {
 | 
						|
            DesignerTransaction dt = null;
 | 
						|
            if (dh != null) dt = dh.CreateTransaction();
 | 
						|
            
 | 
						|
            try
 | 
						|
            {
 | 
						|
                if (cc != null) cc.OnComponentChanging(page, null);
 | 
						|
                page.BackColor = Color.Transparent;
 | 
						|
                page.Style.Reset();
 | 
						|
                //page.BackColor = ColorScheme.GetColor(0xBBDBF7);
 | 
						|
                //page.CanvasColor = page.BackColor;
 | 
						|
                //page.Style.BackColor = Color.Empty;
 | 
						|
                //page.Style.BackColor2 = Color.Empty;
 | 
						|
                //page.Style.BackColorBlend.Clear();
 | 
						|
                //page.Style.BackColorBlend.AddRange(new BackgroundColorBlend[] {
 | 
						|
                //new BackgroundColorBlend(ColorScheme.GetColor(0xBBDBF7), 0f),
 | 
						|
                //new BackgroundColorBlend(ColorScheme.GetColor(0xBBDBF7), .3f),
 | 
						|
                //new BackgroundColorBlend(ColorScheme.GetColor(0xF3F9FE), .9f),
 | 
						|
                //new BackgroundColorBlend(ColorScheme.GetColor(0xFEFFFF), 1f)});
 | 
						|
                //page.Style.BackColorGradientAngle = 90;
 | 
						|
                //page.Style.BackgroundImage = GetWelcomeImage(eWizardImages.BackgroundOffice2007);
 | 
						|
                //page.Style.BackgroundImagePosition = eStyleBackgroundImage.TopLeft;
 | 
						|
 | 
						|
                if (cc != null) cc.OnComponentChanged(page, null, null, null);
 | 
						|
            }
 | 
						|
            catch
 | 
						|
            {
 | 
						|
                dt.Cancel();
 | 
						|
                throw;
 | 
						|
            }
 | 
						|
            finally
 | 
						|
            {
 | 
						|
                if (dt != null && !dt.Canceled)
 | 
						|
                    dt.Commit();
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        internal static void ApplyOffice2007InnerPageStyle(WizardPage page, IDesignerHost dh, IComponentChangeService cc)
 | 
						|
        {
 | 
						|
            if (cc != null) cc.OnComponentChanging(page, null);
 | 
						|
            
 | 
						|
            page.BackColor = Color.Transparent;
 | 
						|
            page.Style.Reset();
 | 
						|
            
 | 
						|
            if (cc != null) cc.OnComponentChanged(page, null, null, null);
 | 
						|
        }
 | 
						|
 | 
						|
        internal static void ApplyDefaultInnerPageStyle(WizardPage page, IDesignerHost dh, IComponentChangeService cc)
 | 
						|
        {
 | 
						|
            if (cc != null) cc.OnComponentChanging(page, null);
 | 
						|
 | 
						|
            page.BackColor = SystemColors.Control;
 | 
						|
            if (!page.InteriorPage)
 | 
						|
            {
 | 
						|
                TypeDescriptor.GetProperties(page.Style)["BackColor"].SetValue(page.Style, Color.White);
 | 
						|
            }
 | 
						|
            
 | 
						|
            if (cc != null) cc.OnComponentChanged(page, null, null, null);
 | 
						|
        }
 | 
						|
 | 
						|
        internal static void ApplyDefaultWelcomePageStyle(WizardPage page, IDesignerHost dh, IComponentChangeService cc)
 | 
						|
        {
 | 
						|
            DesignerTransaction dt = null;
 | 
						|
            if (dh != null) dt = dh.CreateTransaction();
 | 
						|
            
 | 
						|
            try
 | 
						|
            {
 | 
						|
                page.BackColor = Color.White;
 | 
						|
                page.Style.BackColorBlend.Clear();
 | 
						|
                TypeDescriptor.GetProperties(page)["InteriorPage"].SetValue(page, false);
 | 
						|
                TypeDescriptor.GetProperties(page)["BackColor"].SetValue(page, Color.White);
 | 
						|
                TypeDescriptor.GetProperties(page)["CanvasColor"].SetValue(page, Color.White);
 | 
						|
                TypeDescriptor.GetProperties(page.Style)["BackColor"].SetValue(page.Style, Color.White);
 | 
						|
                TypeDescriptor.GetProperties(page.Style)["BackColor2"].SetValue(page.Style, Color.Empty);
 | 
						|
                TypeDescriptor.GetProperties(page.Style)["BackgroundImage"].SetValue(page.Style, LoadWizardImage(eWizardImages.WelcomeDefault));
 | 
						|
                TypeDescriptor.GetProperties(page.Style)["BackgroundImagePosition"].SetValue(page.Style, eStyleBackgroundImage.TopLeft);
 | 
						|
            }
 | 
						|
            catch
 | 
						|
            {
 | 
						|
                dt.Cancel();
 | 
						|
                throw;
 | 
						|
            }
 | 
						|
            finally
 | 
						|
            {
 | 
						|
                if (dt != null && !dt.Canceled)
 | 
						|
                    dt.Commit();
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        internal static WizardPage CreateWelcomePage(Wizard parent, IDesignerHost dh, IComponentChangeService cc, ISelectionService ss, eWizardStyle style)
 | 
						|
        {
 | 
						|
            DesignerTransaction dt = dh.CreateTransaction();
 | 
						|
            WizardPage page = null;
 | 
						|
            try
 | 
						|
            {
 | 
						|
                page = dh.CreateComponent(typeof(WizardPage)) as WizardPage;
 | 
						|
 | 
						|
                if(style == eWizardStyle.Default)
 | 
						|
                    ApplyDefaultWelcomePageStyle(page, null, null);
 | 
						|
                else
 | 
						|
                    ApplyOffice2007WelcomePageStyle(page, null, null);
 | 
						|
                //TypeDescriptor.GetProperties(page)["InteriorPage"].SetValue(page, false);
 | 
						|
                //TypeDescriptor.GetProperties(page)["BackColor"].SetValue(page, Color.White);
 | 
						|
                //TypeDescriptor.GetProperties(page)["CanvasColor"].SetValue(page, Color.White);
 | 
						|
                //TypeDescriptor.GetProperties(page.Style)["BackColor"].SetValue(page.Style, Color.White);
 | 
						|
                //TypeDescriptor.GetProperties(page.Style)["BackgroundImage"].SetValue(page.Style, GetWelcomeImage(false));
 | 
						|
                //TypeDescriptor.GetProperties(page.Style)["BackgroundImagePosition"].SetValue(page.Style, eStyleBackgroundImage.TopLeft);
 | 
						|
                page.Size = new Size(534, 289);
 | 
						|
 | 
						|
                // Load labels onto the page, first Welcome to the Wizard...
 | 
						|
                System.Windows.Forms.Label label = dh.CreateComponent(typeof(System.Windows.Forms.Label)) as System.Windows.Forms.Label;
 | 
						|
                page.Controls.Add(label);
 | 
						|
                label.Location = new Point(210, 18);
 | 
						|
                label.Text = "Welcome to the <Wizard Name> Wizard";
 | 
						|
                label.BackColor = Color.Transparent;
 | 
						|
                try
 | 
						|
                {
 | 
						|
                    label.Font = new Font("Tahoma", 16);
 | 
						|
                    TypeDescriptor.GetProperties(label)["AutoSize"].SetValue(label, false);
 | 
						|
                }
 | 
						|
                catch { }
 | 
						|
                label.Size = new Size(310, 66);
 | 
						|
                label.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
 | 
						|
 | 
						|
                // Wizard description label...
 | 
						|
                label = dh.CreateComponent(typeof(System.Windows.Forms.Label)) as System.Windows.Forms.Label;
 | 
						|
                page.Controls.Add(label);
 | 
						|
                label.Location = new Point(210, 100);
 | 
						|
                label.Text = "This wizard will guide you through the <Enter Process Name>.\r\n\r\n<Enter brief description of the process wizard is covering.>";
 | 
						|
                label.BackColor = Color.Transparent;
 | 
						|
                try
 | 
						|
                {
 | 
						|
                    TypeDescriptor.GetProperties(label)["AutoSize"].SetValue(label, false);
 | 
						|
                }
 | 
						|
                catch { }
 | 
						|
                label.Size = new Size(309, 157);
 | 
						|
                label.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Bottom;
 | 
						|
 | 
						|
                // Click Next to Continue label...
 | 
						|
                label = dh.CreateComponent(typeof(System.Windows.Forms.Label)) as System.Windows.Forms.Label;
 | 
						|
                page.Controls.Add(label);
 | 
						|
                label.Location = new Point(210, 266);
 | 
						|
                label.Text = "To continue, click Next.";
 | 
						|
                label.Size = new Size(120, 13);
 | 
						|
                label.Anchor = AnchorStyles.Left | AnchorStyles.Bottom;
 | 
						|
                label.BackColor = Color.Transparent;
 | 
						|
                
 | 
						|
                if (cc != null)
 | 
						|
                    cc.OnComponentChanging(parent, TypeDescriptor.GetProperties(parent)["WizardPages"]);
 | 
						|
                parent.WizardPages.Add(page);
 | 
						|
                if (cc != null)
 | 
						|
                    cc.OnComponentChanged(parent, TypeDescriptor.GetProperties(parent)["WizardPages"], null, null);
 | 
						|
 | 
						|
 | 
						|
                if (ss != null)
 | 
						|
                    ss.SetSelectedComponents(new WizardPage[] { page }, SelectionTypes.Replace);
 | 
						|
 | 
						|
                TypeDescriptor.GetProperties(parent)["SelectedPageIndex"].SetValue(parent, parent.WizardPages.IndexOf(page));
 | 
						|
            }
 | 
						|
            catch
 | 
						|
            {
 | 
						|
                dt.Cancel();
 | 
						|
            }
 | 
						|
            finally
 | 
						|
            {
 | 
						|
                if (!dt.Canceled)
 | 
						|
                    dt.Commit();
 | 
						|
            }
 | 
						|
 | 
						|
            return page;
 | 
						|
        }
 | 
						|
 | 
						|
        internal static WizardPage CreatePage(Wizard parent, bool innerPage, IDesignerHost dh, IComponentChangeService cc, ISelectionService ss, eWizardStyle wizardStyle)
 | 
						|
        {
 | 
						|
            DesignerTransaction dt = dh.CreateTransaction();
 | 
						|
            WizardPage page=null;
 | 
						|
            try
 | 
						|
            {
 | 
						|
                page = dh.CreateComponent(typeof(WizardPage)) as WizardPage;
 | 
						|
				
 | 
						|
				page.AntiAlias=false;
 | 
						|
                page.InteriorPage = innerPage;
 | 
						|
                if (innerPage)
 | 
						|
                {
 | 
						|
                    page.PageTitle = "< Wizard step title >";
 | 
						|
                    page.PageDescription = "< Wizard step description >";
 | 
						|
                }
 | 
						|
                if (wizardStyle == eWizardStyle.Default)
 | 
						|
                    ApplyDefaultInnerPageStyle(page, dh, cc);
 | 
						|
                else if (wizardStyle == eWizardStyle.Office2007)
 | 
						|
                    ApplyOffice2007InnerPageStyle(page, dh, cc);
 | 
						|
                //else
 | 
						|
                //{
 | 
						|
                //    TypeDescriptor.GetProperties(page.Style)["BackColor"].SetValue(page.Style, Color.White);
 | 
						|
                //}
 | 
						|
 | 
						|
                if (cc != null)
 | 
						|
                    cc.OnComponentChanging(parent, TypeDescriptor.GetProperties(parent)["WizardPages"]);
 | 
						|
                parent.WizardPages.Add(page);
 | 
						|
                if (cc != null)
 | 
						|
                    cc.OnComponentChanged(parent, TypeDescriptor.GetProperties(parent)["WizardPages"], null, null);
 | 
						|
 | 
						|
                if (ss != null)
 | 
						|
                    ss.SetSelectedComponents(new WizardPage[] { page }, SelectionTypes.Replace);
 | 
						|
 | 
						|
                TypeDescriptor.GetProperties(parent)["SelectedPageIndex"].SetValue(parent, parent.WizardPages.IndexOf(page));
 | 
						|
            }
 | 
						|
            catch
 | 
						|
            {
 | 
						|
                dt.Cancel();
 | 
						|
            }
 | 
						|
            finally
 | 
						|
            {
 | 
						|
                if (!dt.Canceled)
 | 
						|
                    dt.Commit();
 | 
						|
            }
 | 
						|
 | 
						|
            return page;
 | 
						|
        }
 | 
						|
 | 
						|
        protected override void OnMouseDragBegin(int x, int y)
 | 
						|
        {
 | 
						|
            Wizard w = this.Control as Wizard;
 | 
						|
 | 
						|
            if (w != null)
 | 
						|
            {
 | 
						|
                Point p = w.NextButtonControl.Parent.PointToClient(new Point(x, y));
 | 
						|
                if (w.NextButtonControl.Enabled && w.NextButtonControl.Visible && w.NextButtonControl.Bounds.Contains(p))
 | 
						|
                {
 | 
						|
                    SelectNextPage(w);
 | 
						|
                    return;
 | 
						|
                }
 | 
						|
                else if (w.BackButtonControl.Enabled && w.BackButtonControl.Visible && w.BackButtonControl.Bounds.Contains(p))
 | 
						|
                {
 | 
						|
                    SelectPreviousPage(w);
 | 
						|
                    return;
 | 
						|
                }
 | 
						|
				if(m_NavigationControl!=null)
 | 
						|
				{
 | 
						|
					p = m_NavigationControl.PointToClient(new Point(x, y));
 | 
						|
					if(m_NavigationControl.LinkNext.Bounds.Contains(p))
 | 
						|
					{
 | 
						|
						SelectNextPage(w);
 | 
						|
						return;
 | 
						|
					}
 | 
						|
					else if(m_NavigationControl.LinkBack.Bounds.Contains(p))
 | 
						|
					{
 | 
						|
						SelectPreviousPage(w);
 | 
						|
						return;
 | 
						|
					}
 | 
						|
				}
 | 
						|
            }
 | 
						|
 | 
						|
            base.OnMouseDragBegin(x, y);
 | 
						|
        }
 | 
						|
 | 
						|
        protected override void PreFilterProperties(System.Collections.IDictionary properties)
 | 
						|
        {
 | 
						|
            base.PreFilterProperties(properties);
 | 
						|
 | 
						|
            properties["WizardStyle"] = TypeDescriptor.CreateProperty(
 | 
						|
                this.GetType(),
 | 
						|
                "WizardStyle",
 | 
						|
                typeof(eWizardStyle),
 | 
						|
                new Attribute[] { 
 | 
						|
                    new BrowsableAttribute(true), 
 | 
						|
                    new DesignOnlyAttribute(true),
 | 
						|
                    new DefaultValueAttribute(eWizardStyle.Default), 
 | 
						|
                    new DescriptionAttribute("Indicates the visual appearance style of the Wizard")});
 | 
						|
        }
 | 
						|
 | 
						|
        private eWizardStyle m_WizardStyle = eWizardStyle.Default;
 | 
						|
        public eWizardStyle WizardStyle
 | 
						|
        {
 | 
						|
            get { return m_WizardStyle; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if(m_WizardStyle!=value)
 | 
						|
                {
 | 
						|
                    m_WizardStyle = value;
 | 
						|
                    ((Wizard)this.Control).ButtonStyle = m_WizardStyle;
 | 
						|
 | 
						|
                    IDesignerHost dh = GetService(typeof(IDesignerHost)) as IDesignerHost;
 | 
						|
                    if(dh!=null && !dh.Loading)
 | 
						|
                        ChangeWizardStyle(m_WizardStyle);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        private void SetDefaultFooterStyle(Wizard w)
 | 
						|
        {
 | 
						|
            w.FooterStyle.BackColor = System.Drawing.SystemColors.Control;
 | 
						|
            w.FooterStyle.BackColorGradientAngle = 90;
 | 
						|
            w.FooterStyle.BorderBottomWidth = 1;
 | 
						|
            w.FooterStyle.BorderColor = System.Drawing.SystemColors.Control;
 | 
						|
            w.FooterStyle.BorderLeftWidth = 1;
 | 
						|
            w.FooterStyle.BorderRightWidth = 1;
 | 
						|
            w.FooterStyle.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Etched;
 | 
						|
            w.FooterStyle.BorderTopColor = System.Drawing.SystemColors.Control;
 | 
						|
            w.FooterStyle.BorderTopWidth = 1;
 | 
						|
            w.FooterStyle.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center;
 | 
						|
            w.FooterStyle.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
 | 
						|
        }
 | 
						|
 | 
						|
        private void ChangeWizardStyle(eWizardStyle style)
 | 
						|
        {
 | 
						|
            IComponentChangeService cc = GetService(typeof(IComponentChangeService)) as IComponentChangeService;
 | 
						|
            IDesignerHost dh = GetService(typeof(IDesignerHost)) as IDesignerHost;
 | 
						|
 | 
						|
            DesignerTransaction dt = dh.CreateTransaction();
 | 
						|
            try
 | 
						|
            {
 | 
						|
                Wizard w = this.Control as Wizard;
 | 
						|
 | 
						|
                w.FooterStyle.Reset();
 | 
						|
                if (style == eWizardStyle.Office2007)
 | 
						|
                {
 | 
						|
                    w.FooterStyle.BackColor = Color.Transparent;
 | 
						|
                    w.BackColor = Color.FromArgb(205, 229, 253);
 | 
						|
                    w.ForeColor = ColorScheme.GetColor(0x0F3981);
 | 
						|
                    w.BackgroundImage = LoadWizardImage(eWizardImages.BackgroundOffice2007);
 | 
						|
                    w.HeaderStyle.Reset();
 | 
						|
                    w.HeaderStyle.BackColor = Color.Transparent;// ColorScheme.GetColor(0xBFD7F3);
 | 
						|
                    w.HeaderStyle.BackColor2 = Color.Empty; // ColorScheme.GetColor(0xDBF1FE);
 | 
						|
                    w.HeaderStyle.BackColorGradientAngle = 90;
 | 
						|
                    w.HeaderStyle.BorderBottomColor = ColorScheme.GetColor(0x799DB6);
 | 
						|
                    w.HeaderStyle.BorderBottomWidth = 1;
 | 
						|
                    w.HeaderStyle.BorderBottom = eStyleBorderType.Solid;
 | 
						|
                    w.HeaderHeight = 90;
 | 
						|
                    w.HeaderDescriptionVisible = false;
 | 
						|
                    w.HeaderImageAlignment = eWizardTitleImageAlignment.Left;
 | 
						|
                    w.HeaderCaptionFont = new Font(w.Font.FontFamily, 12, FontStyle.Bold);
 | 
						|
                }
 | 
						|
                else if (style == eWizardStyle.Default)
 | 
						|
                {
 | 
						|
                    SetDefaultFooterStyle(w);
 | 
						|
                    w.BackgroundImage = null;
 | 
						|
                    w.BackColor = SystemColors.Control;
 | 
						|
                    w.ForeColor = SystemColors.ControlText;
 | 
						|
                    w.HeaderStyle.Reset();
 | 
						|
                    w.HeaderStyle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))));
 | 
						|
                    w.HeaderStyle.BackColorGradientAngle = 90;
 | 
						|
                    w.HeaderStyle.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Etched;
 | 
						|
                    w.HeaderStyle.BorderBottomWidth = 1;
 | 
						|
                    w.HeaderStyle.BorderColor = System.Drawing.SystemColors.Control;
 | 
						|
                    w.HeaderStyle.BorderLeftWidth = 1;
 | 
						|
                    w.HeaderStyle.BorderRightWidth = 1;
 | 
						|
                    w.HeaderStyle.BorderTopWidth = 1;
 | 
						|
                    w.HeaderStyle.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center;
 | 
						|
                    w.HeaderStyle.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText;
 | 
						|
                    w.HeaderHeight = 60;
 | 
						|
                    w.HeaderDescriptionVisible = true;
 | 
						|
                    w.HeaderCaptionFont = new Font(w.Font, FontStyle.Bold);
 | 
						|
                    w.HeaderImageAlignment = eWizardTitleImageAlignment.Right;
 | 
						|
                }
 | 
						|
 | 
						|
                for (int i = 0; i < w.WizardPages.Count; i++)
 | 
						|
                {
 | 
						|
                    WizardPage p = w.WizardPages[i];
 | 
						|
                    if (!p.InteriorPage && i==0)
 | 
						|
                    {
 | 
						|
                        if (style == eWizardStyle.Default)
 | 
						|
                            ApplyDefaultWelcomePageStyle(p, null, cc);
 | 
						|
                        else if (style == eWizardStyle.Office2007)
 | 
						|
                            ApplyOffice2007WelcomePageStyle(p, null, cc);
 | 
						|
                    }
 | 
						|
                    else
 | 
						|
                    {
 | 
						|
                        if (style == eWizardStyle.Default)
 | 
						|
                            ApplyDefaultInnerPageStyle(p, null, cc);
 | 
						|
                        else if (style == eWizardStyle.Office2007)
 | 
						|
                            ApplyOffice2007InnerPageStyle(p, null, cc);
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
            catch
 | 
						|
            {
 | 
						|
                dt.Cancel();
 | 
						|
            }
 | 
						|
            finally
 | 
						|
            {
 | 
						|
                if(!dt.Canceled)
 | 
						|
                    dt.Commit();
 | 
						|
            }
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region Licensing Stuff
 | 
						|
#if !TRIAL
 | 
						|
        private 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();
 | 
						|
			Wizard w = this.Control as Wizard;
 | 
						|
			if (key != "" && w != null && w.LicenseKey == "" && w.LicenseKey != key)
 | 
						|
				TypeDescriptor.GetProperties(w)["LicenseKey"].SetValue(w, key);
 | 
						|
		}
 | 
						|
#endif
 | 
						|
        #endregion
 | 
						|
    }
 | 
						|
}
 |