629 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			629 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using System.ComponentModel;
 | 
						|
using System.ComponentModel.Design;
 | 
						|
using System.Reflection;
 | 
						|
using System.Collections;
 | 
						|
 | 
						|
namespace DevComponents.DotNetBar
 | 
						|
{
 | 
						|
	/// <summary>
 | 
						|
	/// Summary description for DotNetBarDesigner.
 | 
						|
	/// </summary>
 | 
						|
	public class DotNetBarManagerDesigner:System.ComponentModel.Design.ComponentDesigner,IDesignerServices
 | 
						|
	{
 | 
						|
		private bool m_PopupProvider=false;
 | 
						|
		private bool m_Selected=false;
 | 
						|
		
 | 
						|
		public override DesignerVerbCollection Verbs 
 | 
						|
		{
 | 
						|
			get 
 | 
						|
			{
 | 
						|
				DesignerVerb[] verbs = new DesignerVerb[] {new DesignerVerb("Edit DotNetBar", new EventHandler(OnEditDotNetBar))															  ,
 | 
						|
					new DesignerVerb("Enable Document Docking", new EventHandler(OnEnableDocumentDocking))};
 | 
						|
				return new DesignerVerbCollection(verbs);
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		public override void DoDefaultAction()
 | 
						|
		{
 | 
						|
			DotNetBarManager dbm=this.Component as DotNetBarManager;
 | 
						|
			if(dbm!=null)
 | 
						|
			{
 | 
						|
				dbm.Customize(this);
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		protected override void Dispose(bool disposing) 
 | 
						|
		{
 | 
						|
			// Unhook events
 | 
						|
			if(disposing)
 | 
						|
			{
 | 
						|
				IComponentChangeService cc=(IComponentChangeService)GetService(typeof(IComponentChangeService));
 | 
						|
				if(cc!=null)
 | 
						|
					cc.ComponentRemoving-=new ComponentEventHandler(this.OnComponentRemoving);
 | 
						|
				ISelectionService ss = (ISelectionService)GetService(typeof(ISelectionService));
 | 
						|
				if (ss!=null)
 | 
						|
					ss.SelectionChanged-=new EventHandler(OnSelectionChanged);
 | 
						|
			}
 | 
						|
 | 
						|
			base.Dispose(disposing);
 | 
						|
		}
 | 
						|
 | 
						|
		private void ComponentRenamed(object sender, ComponentRenameEventArgs e)
 | 
						|
		{
 | 
						|
			IDesignerHost dh=(IDesignerHost)GetService(typeof(IDesignerHost));
 | 
						|
			if(dh==null)
 | 
						|
				return;
 | 
						|
 | 
						|
			if(e.Component==dh.RootComponent || e.Component==this.Component)
 | 
						|
			{
 | 
						|
				DotNetBarManager m=this.Component as DotNetBarManager;
 | 
						|
				if(m!=null && m.DefinitionName!="")
 | 
						|
				{
 | 
						|
					if(DesignTimeDte.DeleteFromProject(m.DefinitionName, this.Component.Site))
 | 
						|
					{
 | 
						|
						m.DefinitionName="";
 | 
						|
						m.SaveDesignDefinition();
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
		public override void Initialize(IComponent component) 
 | 
						|
		{
 | 
						|
			base.Initialize(component);
 | 
						|
			if(!component.Site.DesignMode)
 | 
						|
				return;
 | 
						|
 | 
						|
			// If our component is removed we need to clean-up
 | 
						|
			IComponentChangeService cc=(IComponentChangeService)GetService(typeof(IComponentChangeService));
 | 
						|
			if(cc!=null)
 | 
						|
			{
 | 
						|
				cc.ComponentRemoving+=new ComponentEventHandler(this.OnComponentRemoving);
 | 
						|
				cc.ComponentRename+=new ComponentRenameEventHandler(this.ComponentRenamed);
 | 
						|
			}
 | 
						|
 | 
						|
			ISelectionService ss =(ISelectionService)GetService(typeof(ISelectionService));
 | 
						|
			if(ss!=null)
 | 
						|
				ss.SelectionChanged+=new EventHandler(OnSelectionChanged);
 | 
						|
 | 
						|
			IDesignerHost dh=(IDesignerHost)GetService(typeof(IDesignerHost));
 | 
						|
			if(dh==null)
 | 
						|
				return;
 | 
						|
 | 
						|
			if(dh.Loading)
 | 
						|
			{
 | 
						|
				dh.LoadComplete+=new EventHandler(this.LoadComplete);
 | 
						|
				return;
 | 
						|
			}
 | 
						|
			
 | 
						|
		}
 | 
						|
 | 
						|
#if FRAMEWORK20
 | 
						|
        public override void InitializeNewComponent(IDictionary defaultValues)
 | 
						|
        {
 | 
						|
            base.InitializeNewComponent(defaultValues);
 | 
						|
            SetDesignTimeDefaults();
 | 
						|
        }
 | 
						|
#else
 | 
						|
		public override void OnSetComponentDefaults()
 | 
						|
		{
 | 
						|
			base.OnSetComponentDefaults();
 | 
						|
			SetDesignTimeDefaults();
 | 
						|
		}
 | 
						|
#endif
 | 
						|
 | 
						|
        private void SetDesignTimeDefaults()
 | 
						|
        {
 | 
						|
            SetupDockSites();
 | 
						|
 | 
						|
            // Set auto shortcuts that are automatically dispatched...
 | 
						|
            DotNetBarManager m = this.Component as DotNetBarManager;
 | 
						|
            m.AutoDispatchShortcuts.Add(eShortcut.F1);
 | 
						|
            m.AutoDispatchShortcuts.Add(eShortcut.CtrlC);
 | 
						|
            m.AutoDispatchShortcuts.Add(eShortcut.CtrlA);
 | 
						|
            m.AutoDispatchShortcuts.Add(eShortcut.CtrlV);
 | 
						|
            m.AutoDispatchShortcuts.Add(eShortcut.CtrlX);
 | 
						|
            m.AutoDispatchShortcuts.Add(eShortcut.CtrlZ);
 | 
						|
            m.AutoDispatchShortcuts.Add(eShortcut.CtrlY);
 | 
						|
            m.AutoDispatchShortcuts.Add(eShortcut.Del);
 | 
						|
            m.AutoDispatchShortcuts.Add(eShortcut.Ins);
 | 
						|
            m.Style = eDotNetBarStyle.Office2003;
 | 
						|
        }
 | 
						|
 | 
						|
		private void LoadComplete(object sender, EventArgs e)
 | 
						|
		{
 | 
						|
			IDesignerHost dh=(IDesignerHost)GetService(typeof(IDesignerHost));
 | 
						|
			if(dh!=null && e!=null)
 | 
						|
				dh.LoadComplete-=new EventHandler(this.LoadComplete);
 | 
						|
			LoadDefinition();
 | 
						|
		}
 | 
						|
 | 
						|
		private void LoadDefinition()
 | 
						|
		{
 | 
						|
			// Make sure at-least this property is set
 | 
						|
			DotNetBarManager m=this.Component as DotNetBarManager;
 | 
						|
 | 
						|
			if(m!=null && !m.IsDisposed && (m.LeftDockSite==null && m.RightDockSite==null && m.TopDockSite==null && m.BottomDockSite==null))
 | 
						|
			{
 | 
						|
				m_PopupProvider=true;
 | 
						|
				m.BarStreamLoad(true);
 | 
						|
			}
 | 
						|
			else
 | 
						|
			{
 | 
						|
				m_PopupProvider=false;
 | 
						|
				//m.BarStreamLoad(true);
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		private void OnEditDotNetBar(object sender, EventArgs e) 
 | 
						|
		{
 | 
						|
			DotNetBarManager dbm=this.Component as DotNetBarManager;
 | 
						|
			if(dbm!=null)
 | 
						|
				dbm.Customize(this);
 | 
						|
		}
 | 
						|
 | 
						|
		private void OnEnableDocumentDocking(object sender, EventArgs e)
 | 
						|
		{
 | 
						|
			DotNetBarManager m=this.Component as DotNetBarManager;
 | 
						|
			if(m.FillDockSite==null)
 | 
						|
			{
 | 
						|
				IDesignerHost dh=(IDesignerHost)GetService(typeof(IDesignerHost));
 | 
						|
				if(dh==null)
 | 
						|
					return;
 | 
						|
 | 
						|
				System.Windows.Forms.Control parent=dh.RootComponent as System.Windows.Forms.Control;
 | 
						|
				if(parent==null)
 | 
						|
					return;
 | 
						|
 | 
						|
				IComponentChangeService cc=(IComponentChangeService)GetService(typeof(IComponentChangeService));
 | 
						|
				if(cc==null)
 | 
						|
					return;
 | 
						|
 | 
						|
				DesignerTransaction trans=dh.CreateTransaction("Document Docking Enabled");
 | 
						|
				
 | 
						|
                DockSite fillDock=dh.CreateComponent(typeof(DockSite)) as DockSite;
 | 
						|
                fillDock.Dock=System.Windows.Forms.DockStyle.Fill;
 | 
						|
 | 
						|
				cc.OnComponentChanging(parent,TypeDescriptor.GetProperties(typeof(System.Windows.Forms.Control))["Controls"]);
 | 
						|
				parent.Controls.Add(fillDock);
 | 
						|
				fillDock.BringToFront();
 | 
						|
				cc.OnComponentChanged(parent,TypeDescriptor.GetProperties(typeof(System.Windows.Forms.Control))["Controls"],null,null);
 | 
						|
 | 
						|
				cc.OnComponentChanging(m,TypeDescriptor.GetProperties(typeof(DotNetBarManager))["FillDockSite"]);
 | 
						|
				m.FillDockSite=fillDock;
 | 
						|
				cc.OnComponentChanged(m,TypeDescriptor.GetProperties(typeof(DotNetBarManager))["FillDockSite"],null,fillDock);
 | 
						|
 | 
						|
				DocumentDockContainer dockContainer=new DocumentDockContainer();
 | 
						|
				cc.OnComponentChanging(fillDock,TypeDescriptor.GetProperties(typeof(DockSite))["DocumentDockContainer"]);
 | 
						|
				fillDock.DocumentDockContainer=dockContainer;
 | 
						|
				cc.OnComponentChanged(fillDock,TypeDescriptor.GetProperties(typeof(DockSite))["DocumentDockContainer"],null,dockContainer);
 | 
						|
				
 | 
						|
				Bar bar=dh.CreateComponent(typeof(Bar)) as Bar;
 | 
						|
				BarUtilities.InitializeDocumentBar(bar);
 | 
						|
//				bar.LayoutType=eLayoutType.DockContainer;
 | 
						|
//				bar.DockTabAlignment=eTabStripAlignment.Top;
 | 
						|
//				bar.AlwaysDisplayDockTab=true;
 | 
						|
//				bar.Stretch=true;
 | 
						|
//				bar.GrabHandleStyle=eGrabHandleStyle.None;
 | 
						|
				TypeDescriptor.GetProperties(bar)["Style"].SetValue(bar,m.Style);
 | 
						|
//				bar.Style=m.Style;
 | 
						|
//				bar.CanDockBottom=false;
 | 
						|
//				bar.CanDockTop=false;
 | 
						|
//				bar.CanDockLeft=false;
 | 
						|
//				bar.CanDockRight=false;
 | 
						|
//				bar.CanDockDocument=true;
 | 
						|
//				bar.CanUndock=false;
 | 
						|
//				bar.CanHide=true;
 | 
						|
//				bar.CanCustomize=false;
 | 
						|
 | 
						|
				DockContainerItem item=dh.CreateComponent(typeof(DockContainerItem)) as DockContainerItem;
 | 
						|
				item.Text=item.Name;
 | 
						|
				cc.OnComponentChanging(bar,TypeDescriptor.GetProperties(typeof(Bar))["Items"]);
 | 
						|
				bar.Items.Add(item);
 | 
						|
				PanelDockContainer panel=dh.CreateComponent(typeof(PanelDockContainer)) as PanelDockContainer;
 | 
						|
				cc.OnComponentChanging(bar, TypeDescriptor.GetProperties(typeof(Bar))["Controls"]);
 | 
						|
				item.Control=panel;                
 | 
						|
				cc.OnComponentChanged(bar, TypeDescriptor.GetProperties(typeof(Bar))["Controls"], null, null);
 | 
						|
                //bar.Controls.Add(panel);
 | 
						|
				panel.ColorSchemeStyle=m.Style;
 | 
						|
				panel.ApplyLabelStyle();
 | 
						|
				cc.OnComponentChanged(bar,TypeDescriptor.GetProperties(typeof(Bar))["Items"],null,null);
 | 
						|
 | 
						|
				DocumentBarContainer doc=new DocumentBarContainer(bar);
 | 
						|
				dockContainer.Documents.Add(doc);
 | 
						|
                
 | 
						|
				cc.OnComponentChanging(fillDock,TypeDescriptor.GetProperties(typeof(DockSite))["Controls"]);
 | 
						|
				fillDock.Controls.Add(bar);
 | 
						|
				cc.OnComponentChanged(fillDock,TypeDescriptor.GetProperties(typeof(DockSite))["Controls"],null,null);
 | 
						|
 | 
						|
				fillDock.RecalcLayout();
 | 
						|
				
 | 
						|
				trans.Commit();
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		#region IDesignerServices Implementation
 | 
						|
		public object CreateComponent(System.Type componentClass)
 | 
						|
		{
 | 
						|
			IDesignerHost dh=(IDesignerHost)GetService(typeof(IDesignerHost));
 | 
						|
			if(dh==null)
 | 
						|
				return null;
 | 
						|
			return dh.CreateComponent(componentClass);
 | 
						|
		}
 | 
						|
 | 
						|
		public void DestroyComponent(IComponent c)
 | 
						|
		{
 | 
						|
			IDesignerHost dh=(IDesignerHost)GetService(typeof(IDesignerHost));
 | 
						|
			if(dh==null)
 | 
						|
				return;
 | 
						|
			dh.DestroyComponent(c);
 | 
						|
		}
 | 
						|
 | 
						|
		object IDesignerServices.GetService(Type serviceType)
 | 
						|
		{
 | 
						|
			return this.GetService(serviceType);
 | 
						|
		}
 | 
						|
		#endregion
 | 
						|
 | 
						|
		private void OnComponentRemoving(object sender,ComponentEventArgs e)
 | 
						|
		{
 | 
						|
			
 | 
						|
			if(e.Component!=this.Component)
 | 
						|
			{
 | 
						|
				return;
 | 
						|
			}
 | 
						|
			// Unhook events
 | 
						|
			IComponentChangeService cc=(IComponentChangeService)GetService(typeof(IComponentChangeService));
 | 
						|
			if(cc!=null)
 | 
						|
				cc.ComponentRemoving-=new ComponentEventHandler(this.OnComponentRemoving);
 | 
						|
            
 | 
						|
			DotNetBarManager m=this.Component as DotNetBarManager;
 | 
						|
			IDesignerHost dh=(IDesignerHost)GetService(typeof(IDesignerHost));
 | 
						|
			if(dh==null || m==null)
 | 
						|
				return;
 | 
						|
 | 
						|
			if(m.TopDockSite!=null)
 | 
						|
				dh.DestroyComponent(m.TopDockSite);
 | 
						|
			if(m.BottomDockSite!=null)
 | 
						|
				dh.DestroyComponent(m.BottomDockSite);
 | 
						|
			if(m.LeftDockSite!=null)
 | 
						|
				dh.DestroyComponent(m.LeftDockSite);
 | 
						|
			if(m.RightDockSite!=null)
 | 
						|
				dh.DestroyComponent(m.RightDockSite);
 | 
						|
 | 
						|
			if(m.DefinitionName!=null)
 | 
						|
			{
 | 
						|
				DesignTimeDte.DeleteFromProject(m.DefinitionName, this.Component.Site);
 | 
						|
				m.DefinitionName="";
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		protected override void PreFilterProperties(System.Collections.IDictionary properties) 
 | 
						|
		{
 | 
						|
			// Always call base first in PreFilter* methods, and last in PostFilter*
 | 
						|
			// methods.
 | 
						|
			base.PreFilterProperties(properties);
 | 
						|
 | 
						|
			properties["ProvidePopupsOnly"] = TypeDescriptor.CreateProperty(
 | 
						|
				this.GetType(),		// the type this property is defined on
 | 
						|
				"ProvidePopupsOnly",	// the name of the property
 | 
						|
				typeof(bool),		// the type of the property
 | 
						|
				new Attribute[] {CategoryAttribute.Design,System.ComponentModel.DesignerSerializationVisibilityAttribute.Hidden,new DescriptionAttribute("When set to True DotNetBar provides Popups only without Toolbars or Menu Bars. Use on child forms to provide Context Menus.")});	// attributes
 | 
						|
 | 
						|
			properties["Style"] = TypeDescriptor.CreateProperty(
 | 
						|
				this.GetType(),		// the type this property is defined on
 | 
						|
				"Style",	// the name of the property
 | 
						|
				typeof(eDotNetBarStyle),		// the type of the property
 | 
						|
				new Attribute[0]);
 | 
						|
 | 
						|
			properties["ThemeAware"] = TypeDescriptor.CreateProperty(
 | 
						|
				this.GetType(),		// the type this property is defined on
 | 
						|
				"ThemeAware",	// the name of the property
 | 
						|
				typeof(bool),		// the type of the property
 | 
						|
				new Attribute[0]);
 | 
						|
		}
 | 
						|
 | 
						|
		// Popup Provider is design-time only property that determines whether current DotNetBar provides
 | 
						|
		// Popup Context Menu only or is full blown Toolbar/Menu bar component
 | 
						|
		[DefaultValue(false)]
 | 
						|
		protected bool ProvidePopupsOnly
 | 
						|
		{
 | 
						|
			get 
 | 
						|
			{
 | 
						|
				return m_PopupProvider;
 | 
						|
			}
 | 
						|
			set 
 | 
						|
			{
 | 
						|
				if(m_PopupProvider==value)
 | 
						|
					return;
 | 
						|
				
 | 
						|
				m_PopupProvider=value;
 | 
						|
 | 
						|
				DotNetBarManager m=this.Component as DotNetBarManager;
 | 
						|
				IDesignerHost dh=(IDesignerHost)GetService(typeof(IDesignerHost));
 | 
						|
 | 
						|
				if(m_PopupProvider)
 | 
						|
				{
 | 
						|
					RemoveDockSites();
 | 
						|
					if(m!=null && dh!=null && dh.RootComponent is System.Windows.Forms.UserControl)
 | 
						|
					{
 | 
						|
						m.ParentUserControl=dh.RootComponent as System.Windows.Forms.UserControl;
 | 
						|
						IComponentChangeService cc=(IComponentChangeService)GetService(typeof(IComponentChangeService));
 | 
						|
						cc.OnComponentChanged(m,(TypeDescriptor.GetProperties(m)["ParentUserControl"]),null,null);
 | 
						|
					}
 | 
						|
				}
 | 
						|
				else
 | 
						|
				{
 | 
						|
					SetupDockSites();
 | 
						|
					if(m!=null)
 | 
						|
					{
 | 
						|
						m.ParentUserControl=null;
 | 
						|
						IComponentChangeService cc=(IComponentChangeService)GetService(typeof(IComponentChangeService));
 | 
						|
						cc.OnComponentChanged(m,(TypeDescriptor.GetProperties(m)["ParentUserControl"]),null,null);
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
		public override System.Collections.ICollection AssociatedComponents
 | 
						|
		{
 | 
						|
			get
 | 
						|
			{
 | 
						|
				DotNetBarManager m=this.Component as DotNetBarManager;
 | 
						|
				if(m==null)
 | 
						|
					return base.AssociatedComponents;
 | 
						|
				System.Collections.ArrayList list=new System.Collections.ArrayList(4);
 | 
						|
				if(m.TopDockSite!=null)
 | 
						|
					list.Add(m.TopDockSite);
 | 
						|
				if(m.BottomDockSite!=null)
 | 
						|
					list.Add(m.BottomDockSite);
 | 
						|
				if(m.LeftDockSite!=null)
 | 
						|
					list.Add(m.LeftDockSite);
 | 
						|
				if(m.RightDockSite!=null)
 | 
						|
					list.Add(m.RightDockSite);
 | 
						|
				if(m.DefinitionName=="")
 | 
						|
				{
 | 
						|
					list.AddRange(m.Bars);
 | 
						|
					foreach(Bar bar in m.Bars)
 | 
						|
						AddItems(bar.ItemsContainer,list);
 | 
						|
					foreach(BaseItem item in m.Items)
 | 
						|
					{
 | 
						|
						list.Add(item);
 | 
						|
						AddItems(item,list);
 | 
						|
					}
 | 
						|
					foreach(BaseItem item in m.ContextMenus)
 | 
						|
					{
 | 
						|
						list.Add(item);
 | 
						|
						AddItems(item,list);
 | 
						|
					}
 | 
						|
				}
 | 
						|
				return list;
 | 
						|
			}
 | 
						|
		}
 | 
						|
		private void AddItems(BaseItem parent,System.Collections.ArrayList list)
 | 
						|
		{
 | 
						|
			foreach(BaseItem item in parent.SubItems)
 | 
						|
			{
 | 
						|
				if(!item.SystemItem)
 | 
						|
				{
 | 
						|
					list.Add(item);
 | 
						|
					if(item.SubItems.Count>0)
 | 
						|
						AddItems(item,list);
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
		private void RemoveDockSites()
 | 
						|
		{
 | 
						|
			IDesignerHost dh=(IDesignerHost)GetService(typeof(IDesignerHost));
 | 
						|
			if(dh==null)
 | 
						|
				return;		
 | 
						|
 | 
						|
			DotNetBarManager m=this.Component as DotNetBarManager;
 | 
						|
 | 
						|
			if(m.LeftDockSite!=null)
 | 
						|
				dh.DestroyComponent(m.LeftDockSite);
 | 
						|
			if(m.RightDockSite!=null)
 | 
						|
				dh.DestroyComponent(m.RightDockSite);
 | 
						|
			if(m.TopDockSite!=null)
 | 
						|
				dh.DestroyComponent(m.TopDockSite);
 | 
						|
			if(m.BottomDockSite!=null)
 | 
						|
				dh.DestroyComponent(m.BottomDockSite);
 | 
						|
 | 
						|
			m.LeftDockSite=null;
 | 
						|
			m.TopDockSite=null;
 | 
						|
			m.BottomDockSite=null;
 | 
						|
			m.RightDockSite=null;
 | 
						|
		}
 | 
						|
 | 
						|
		private void SetupDockSites()
 | 
						|
		{
 | 
						|
			IDesignerHost dh=(IDesignerHost)GetService(typeof(IDesignerHost));
 | 
						|
			if(dh==null)
 | 
						|
			{
 | 
						|
				return;
 | 
						|
			}
 | 
						|
 | 
						|
			if(dh.Loading)
 | 
						|
			{
 | 
						|
				dh.LoadComplete+=new EventHandler(this.LoadComplete);
 | 
						|
				return;
 | 
						|
			}
 | 
						|
 | 
						|
			IComponentChangeService cc=(IComponentChangeService)GetService(typeof(IComponentChangeService));
 | 
						|
 | 
						|
			// Set default properties for this control and add default dependent controls
 | 
						|
			DotNetBarManager m=this.Component as DotNetBarManager;
 | 
						|
			System.Windows.Forms.Form form=dh.RootComponent as System.Windows.Forms.Form;
 | 
						|
			System.Windows.Forms.UserControl parentControl=dh.RootComponent as System.Windows.Forms.UserControl;
 | 
						|
			if(m==null || (form==null && parentControl==null))
 | 
						|
			{
 | 
						|
				return;
 | 
						|
			}
 | 
						|
 | 
						|
			if(form!=null)
 | 
						|
			{
 | 
						|
				try
 | 
						|
				{
 | 
						|
					m.ParentForm=form;
 | 
						|
 | 
						|
					// Left Dock Site
 | 
						|
					DockSite ds=(DockSite)dh.CreateComponent(typeof(DockSite),"barLeftDockSite");
 | 
						|
					form.Controls.Add(ds);
 | 
						|
					m.LeftDockSite=ds;
 | 
						|
					ds.Dock=System.Windows.Forms.DockStyle.Left;
 | 
						|
 | 
						|
					// Right Dock Site
 | 
						|
					ds=(DockSite)dh.CreateComponent(typeof(DockSite),"barRightDockSite");
 | 
						|
					form.Controls.Add(ds);
 | 
						|
					m.RightDockSite=ds;
 | 
						|
					ds.Dock=System.Windows.Forms.DockStyle.Right;
 | 
						|
 | 
						|
					// Top Dock Site
 | 
						|
					ds=(DockSite)dh.CreateComponent(typeof(DockSite),"barTopDockSite");
 | 
						|
					form.Controls.Add(ds);
 | 
						|
					m.TopDockSite=ds;
 | 
						|
					ds.Dock=System.Windows.Forms.DockStyle.Top;
 | 
						|
					// Bottom Dock Site
 | 
						|
					ds=(DockSite)dh.CreateComponent(typeof(DockSite),"barBottomDockSite");
 | 
						|
					form.Controls.Add(ds);
 | 
						|
					m.BottomDockSite=ds;
 | 
						|
					ds.Dock=System.Windows.Forms.DockStyle.Bottom;
 | 
						|
 | 
						|
					if(cc!=null)
 | 
						|
					{
 | 
						|
						cc.OnComponentChanging(form,TypeDescriptor.GetProperties(form).Find("Controls",true));
 | 
						|
						cc.OnComponentChanged(form,TypeDescriptor.GetProperties(form).Find("Controls",true),null,null);
 | 
						|
					}
 | 
						|
				}
 | 
						|
				catch(Exception e)
 | 
						|
				{
 | 
						|
					// DEBUG
 | 
						|
					System.Windows.Forms.MessageBox.Show("Error setting up dock sites: " + e.ToString());
 | 
						|
				}
 | 
						|
			}
 | 
						|
			else if(parentControl!=null)
 | 
						|
			{
 | 
						|
				try
 | 
						|
				{
 | 
						|
					// Left Dock Site
 | 
						|
					DockSite ds=(DockSite)dh.CreateComponent(typeof(DockSite),"barLeftDockSite");
 | 
						|
					parentControl.Controls.Add(ds);
 | 
						|
					m.LeftDockSite=ds;
 | 
						|
					ds.Dock=System.Windows.Forms.DockStyle.Left;
 | 
						|
 | 
						|
					// Right Dock Site
 | 
						|
					ds=(DockSite)dh.CreateComponent(typeof(DockSite),"barRightDockSite");
 | 
						|
					parentControl.Controls.Add(ds);
 | 
						|
					m.RightDockSite=ds;
 | 
						|
					ds.Dock=System.Windows.Forms.DockStyle.Right;
 | 
						|
 | 
						|
					// Top Dock Site
 | 
						|
					ds=(DockSite)dh.CreateComponent(typeof(DockSite),"barTopDockSite");
 | 
						|
					parentControl.Controls.Add(ds);
 | 
						|
					m.TopDockSite=ds;
 | 
						|
					ds.Dock=System.Windows.Forms.DockStyle.Top;
 | 
						|
					// Bottom Dock Site
 | 
						|
					ds=(DockSite)dh.CreateComponent(typeof(DockSite),"barBottomDockSite");
 | 
						|
					parentControl.Controls.Add(ds);
 | 
						|
					m.BottomDockSite=ds;
 | 
						|
					ds.Dock=System.Windows.Forms.DockStyle.Bottom;
 | 
						|
 | 
						|
					if(cc!=null)
 | 
						|
					{
 | 
						|
						cc.OnComponentChanging(parentControl,TypeDescriptor.GetProperties(parentControl).Find("Controls",true));
 | 
						|
						cc.OnComponentChanged(parentControl,TypeDescriptor.GetProperties(parentControl).Find("Controls",true),null,null);
 | 
						|
					}
 | 
						|
				}
 | 
						|
				catch(Exception e)
 | 
						|
				{
 | 
						|
					// DEBUG
 | 
						|
					System.Windows.Forms.MessageBox.Show("Error setting up dock sites on UserControl: " + e.ToString());
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		private void OnSelectionChanged(object sender, EventArgs e) 
 | 
						|
		{
 | 
						|
			ISelectionService ss = (ISelectionService)sender;
 | 
						|
			if(ss!=null && ss.PrimarySelection==this.Component)
 | 
						|
			{
 | 
						|
				IOwner manager=this.Component as IOwner;
 | 
						|
				manager.OnApplicationActivate();
 | 
						|
				m_Selected=true;
 | 
						|
			}
 | 
						|
			else if(m_Selected)
 | 
						|
			{
 | 
						|
				IOwner manager=this.Component as IOwner;
 | 
						|
				manager.OnApplicationDeactivate();
 | 
						|
				m_Selected=false;
 | 
						|
			}
 | 
						|
		}
 | 
						|
		
 | 
						|
		public static bool OpenDesignerEditor(DotNetBarManager manager, Bar bar, IDesignerServices designerServices)
 | 
						|
		{
 | 
						|
			DevComponents.DotNetBar.Design.DotNetBarDesigner designer=new DevComponents.DotNetBar.Design.DotNetBarDesigner();
 | 
						|
			if(manager!=null)
 | 
						|
				designer.ExternalManager=manager;
 | 
						|
			else if(bar!=null)
 | 
						|
				designer.ExternalBar=bar;
 | 
						|
 | 
						|
            if(designerServices!=null)
 | 
						|
				designer.DesignerServices=designerServices;
 | 
						|
 | 
						|
			System.Windows.Forms.DialogResult dr=designer.ShowDialog();
 | 
						|
 | 
						|
			if(dr==System.Windows.Forms.DialogResult.Yes)
 | 
						|
				return true;
 | 
						|
 | 
						|
			return false;
 | 
						|
		}
 | 
						|
 | 
						|
		/// <summary>
 | 
						|
		/// Sets the style of all items in DotNetBar Manager.
 | 
						|
		/// </summary>
 | 
						|
		public eDotNetBarStyle Style
 | 
						|
		{
 | 
						|
			set
 | 
						|
			{
 | 
						|
				DotNetBarManager manager=this.Component as DotNetBarManager;
 | 
						|
				if(manager.Style!=value)
 | 
						|
				{
 | 
						|
					manager.Style=value;
 | 
						|
					IDesignerHost dh=this.GetService(typeof(IDesignerHost)) as IDesignerHost;
 | 
						|
					if(dh!=null && !dh.Loading)
 | 
						|
						manager.SaveDesignDefinition();
 | 
						|
				}
 | 
						|
			}
 | 
						|
			get
 | 
						|
			{
 | 
						|
				DotNetBarManager manager=this.Component as DotNetBarManager;
 | 
						|
				return manager.Style;
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		/// <summary>
 | 
						|
		/// Specifies whether new bars created are drawn using Themes when running on OS that supports themes like Windows XP. Note this setting
 | 
						|
		/// applies to new bars created.
 | 
						|
		/// </summary>
 | 
						|
		public bool ThemeAware
 | 
						|
		{
 | 
						|
			set
 | 
						|
			{
 | 
						|
				DotNetBarManager manager=this.Component as DotNetBarManager;
 | 
						|
				if(manager.ThemeAware!=value)
 | 
						|
				{
 | 
						|
					manager.ThemeAware=value;
 | 
						|
					IDesignerHost dh=this.GetService(typeof(IDesignerHost)) as IDesignerHost;
 | 
						|
					if(dh!=null && !dh.Loading)
 | 
						|
						manager.SaveDesignDefinition();
 | 
						|
				}
 | 
						|
			}
 | 
						|
			get
 | 
						|
			{
 | 
						|
				DotNetBarManager manager=this.Component as DotNetBarManager;
 | 
						|
				return manager.ThemeAware;
 | 
						|
			}
 | 
						|
		}
 | 
						|
   
 | 
						|
	}
 | 
						|
}
 |