2107 lines
		
	
	
		
			64 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			2107 lines
		
	
	
		
			64 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using System.Drawing;
 | 
						|
using System.Collections;
 | 
						|
using System.ComponentModel;
 | 
						|
using System.Windows.Forms;
 | 
						|
 | 
						|
namespace DevComponents.DotNetBar
 | 
						|
{
 | 
						|
	/// <summary>
 | 
						|
	/// Summary description for BarEditor.
 | 
						|
	/// </summary>
 | 
						|
	public class BarEditor : System.Windows.Forms.Form
 | 
						|
	{
 | 
						|
		private System.Windows.Forms.Panel panel1;
 | 
						|
		private System.Windows.Forms.TreeView barTree;
 | 
						|
		private System.Windows.Forms.PropertyGrid propertyGrid1;
 | 
						|
		private System.Windows.Forms.Splitter splitter1;
 | 
						|
		private System.ComponentModel.IContainer components;
 | 
						|
		private DevComponents.DotNetBar.DockSite barTopDockSite;
 | 
						|
		private DevComponents.DotNetBar.DockSite barBottomDockSite;
 | 
						|
		private DevComponents.DotNetBar.DockSite barLeftDockSite;
 | 
						|
		private DevComponents.DotNetBar.DockSite barRightDockSite;
 | 
						|
		private DevComponents.DotNetBar.DotNetBarManager barManager;
 | 
						|
		private System.Windows.Forms.ImageList imageList;
 | 
						|
 | 
						|
		private DotNetBarManager m_DotNetBar;
 | 
						|
		private Bar m_Bar=null;
 | 
						|
		private TreeNode m_BarsNode=null,m_CategoriesNode=null,m_PopupsNode=null;
 | 
						|
 | 
						|
		private System.Windows.Forms.Button btnClose;
 | 
						|
		private System.Windows.Forms.Button btnCancel;
 | 
						|
		private System.Windows.Forms.OpenFileDialog m_OpenFileDialog;
 | 
						|
		private Hashtable m_catTable;
 | 
						|
		private System.Windows.Forms.SaveFileDialog m_SaveFileDialog;
 | 
						|
		private System.Windows.Forms.ImageList m_BarImages;
 | 
						|
		private string m_DefinitionFileName="";
 | 
						|
		private bool m_ShowItemText=true;
 | 
						|
		private GridViewSubclass m_GridViewSubclass=null;
 | 
						|
		private bool m_DataChanged=false;
 | 
						|
		private HTMLHelp m_HtmlHelp=null;
 | 
						|
 | 
						|
		internal IDesignerServices _barDesigner=null;
 | 
						|
 | 
						|
		public BarEditor(DotNetBarManager dotnetbar)
 | 
						|
		{
 | 
						|
			m_DotNetBar=dotnetbar;
 | 
						|
			Initialize();
 | 
						|
		}
 | 
						|
 | 
						|
		public BarEditor(Bar bar)
 | 
						|
		{
 | 
						|
            m_Bar=bar;
 | 
						|
			Initialize();
 | 
						|
		}
 | 
						|
 | 
						|
		private void Initialize()
 | 
						|
		{
 | 
						|
			InitializeComponent();
 | 
						|
			if(m_Bar!=null)
 | 
						|
				propertyGrid1.BrowsableAttributes=new AttributeCollection(new Attribute[] {BrowsableAttribute.Yes});
 | 
						|
			else
 | 
						|
				propertyGrid1.BrowsableAttributes=new AttributeCollection(new Attribute[] {DevCoBrowsable.Yes});
 | 
						|
			propertyGrid1.CommandsVisibleIfAvailable=false;
 | 
						|
			LoadResourceImages();
 | 
						|
			m_catTable=new Hashtable(20);
 | 
						|
			
 | 
						|
			m_GridViewSubclass=new GridViewSubclass();
 | 
						|
			m_GridViewSubclass.OnRightMouseDown+=new EventHandler(this.GridViewMouseDown);
 | 
						|
 | 
						|
			foreach(Control ctrl in propertyGrid1.Controls)
 | 
						|
			{
 | 
						|
				if(ctrl.GetType().ToString().IndexOf("PropertyGridView")>=0)
 | 
						|
				{
 | 
						|
					m_GridViewSubclass.AssignHandle(ctrl.Handle);
 | 
						|
					break;
 | 
						|
				}
 | 
						|
			}
 | 
						|
 | 
						|
			if(m_DotNetBar!=null && !m_DotNetBar.IsDesignTime() || m_Bar!=null)
 | 
						|
			{
 | 
						|
				btnCancel.Visible=false;
 | 
						|
				btnClose.Location=btnCancel.Location;
 | 
						|
			}
 | 
						|
 | 
						|
			CreateToolbar();
 | 
						|
			RefreshView();
 | 
						|
		}
 | 
						|
 | 
						|
		/// <summary>
 | 
						|
		/// Clean up any resources being used.
 | 
						|
		/// </summary>
 | 
						|
		protected override void Dispose( bool disposing )
 | 
						|
		{
 | 
						|
			if( disposing )
 | 
						|
			{
 | 
						|
				if(components != null)
 | 
						|
				{
 | 
						|
					components.Dispose();
 | 
						|
				}
 | 
						|
			}
 | 
						|
			base.Dispose( disposing );
 | 
						|
		}
 | 
						|
 | 
						|
		#region Windows Form Designer generated code
 | 
						|
		/// <summary>
 | 
						|
		/// Required method for Designer support - do not modify
 | 
						|
		/// the contents of this method with the code editor.
 | 
						|
		/// </summary>
 | 
						|
		private void InitializeComponent()
 | 
						|
		{
 | 
						|
			this.components = new System.ComponentModel.Container();
 | 
						|
			System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(BarEditor));
 | 
						|
			this.panel1 = new System.Windows.Forms.Panel();
 | 
						|
			this.propertyGrid1 = new System.Windows.Forms.PropertyGrid();
 | 
						|
			this.splitter1 = new System.Windows.Forms.Splitter();
 | 
						|
			this.barTree = new System.Windows.Forms.TreeView();
 | 
						|
			this.imageList = new System.Windows.Forms.ImageList(this.components);
 | 
						|
		#if TRIAL
 | 
						|
			this.barManager = new DevComponents.DotNetBar.DotNetBarManager(this.components);
 | 
						|
		#else
 | 
						|
			this.barManager = new DevComponents.DotNetBar.DotNetBarManager(this.components,false);
 | 
						|
		#endif
 | 
						|
			this.barBottomDockSite = new DevComponents.DotNetBar.DockSite();
 | 
						|
			this.m_BarImages = new System.Windows.Forms.ImageList(this.components);
 | 
						|
			this.barLeftDockSite = new DevComponents.DotNetBar.DockSite();
 | 
						|
			this.barRightDockSite = new DevComponents.DotNetBar.DockSite();
 | 
						|
			this.barTopDockSite = new DevComponents.DotNetBar.DockSite();
 | 
						|
			this.m_OpenFileDialog = new System.Windows.Forms.OpenFileDialog();
 | 
						|
			this.m_SaveFileDialog = new System.Windows.Forms.SaveFileDialog();
 | 
						|
			this.btnClose = new System.Windows.Forms.Button();
 | 
						|
			this.btnCancel = new System.Windows.Forms.Button();
 | 
						|
			this.panel1.SuspendLayout();
 | 
						|
			this.SuspendLayout();
 | 
						|
			// 
 | 
						|
			// panel1
 | 
						|
			// 
 | 
						|
			this.panel1.Anchor = (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
 | 
						|
				| System.Windows.Forms.AnchorStyles.Left) 
 | 
						|
				| System.Windows.Forms.AnchorStyles.Right);
 | 
						|
			this.panel1.Controls.AddRange(new System.Windows.Forms.Control[] {
 | 
						|
																				 this.propertyGrid1,
 | 
						|
																				 this.splitter1,
 | 
						|
																				 this.barTree});
 | 
						|
			this.panel1.Location = new System.Drawing.Point(8, 48);
 | 
						|
			this.panel1.Name = "panel1";
 | 
						|
			this.panel1.Size = new System.Drawing.Size(520, 232);
 | 
						|
			this.panel1.TabIndex = 5;
 | 
						|
			// 
 | 
						|
			// propertyGrid1
 | 
						|
			// 
 | 
						|
			this.propertyGrid1.CommandsVisibleIfAvailable = true;
 | 
						|
			this.propertyGrid1.Dock = System.Windows.Forms.DockStyle.Fill;
 | 
						|
			this.propertyGrid1.LargeButtons = false;
 | 
						|
			this.propertyGrid1.LineColor = System.Drawing.SystemColors.ScrollBar;
 | 
						|
			this.propertyGrid1.Location = new System.Drawing.Point(182, 0);
 | 
						|
			this.propertyGrid1.Name = "propertyGrid1";
 | 
						|
			this.propertyGrid1.Size = new System.Drawing.Size(338, 232);
 | 
						|
			this.propertyGrid1.TabIndex = 1;
 | 
						|
			this.propertyGrid1.Text = "propertyGrid1";
 | 
						|
			this.propertyGrid1.ViewBackColor = System.Drawing.SystemColors.Window;
 | 
						|
			this.propertyGrid1.ViewForeColor = System.Drawing.SystemColors.WindowText;
 | 
						|
			this.propertyGrid1.PropertyValueChanged += new System.Windows.Forms.PropertyValueChangedEventHandler(this.OnPropertyValueChanged);
 | 
						|
			// 
 | 
						|
			// splitter1
 | 
						|
			// 
 | 
						|
			this.splitter1.Location = new System.Drawing.Point(176, 0);
 | 
						|
			this.splitter1.Name = "splitter1";
 | 
						|
			this.splitter1.Size = new System.Drawing.Size(6, 232);
 | 
						|
			this.splitter1.TabIndex = 2;
 | 
						|
			this.splitter1.TabStop = false;
 | 
						|
			// 
 | 
						|
			// barTree
 | 
						|
			// 
 | 
						|
			this.barTree.Dock = System.Windows.Forms.DockStyle.Left;
 | 
						|
			this.barTree.HideSelection = false;
 | 
						|
			this.barTree.ImageList = this.imageList;
 | 
						|
			this.barTree.Name = "barTree";
 | 
						|
			this.barTree.Size = new System.Drawing.Size(176, 232);
 | 
						|
			this.barTree.TabIndex = 0;
 | 
						|
			this.barTree.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TreeKeyDown);
 | 
						|
			this.barTree.MouseDown += new System.Windows.Forms.MouseEventHandler(this.TreeMouseDown);
 | 
						|
			this.barTree.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.ItemSelected);
 | 
						|
			this.barTree.BeforeSelect += new System.Windows.Forms.TreeViewCancelEventHandler(this.BeforeItemSelect);
 | 
						|
			this.barTree.AfterLabelEdit += new System.Windows.Forms.NodeLabelEditEventHandler(this.ItemEdited);
 | 
						|
			this.barTree.BeforeCollapse += new System.Windows.Forms.TreeViewCancelEventHandler(this.NodeCollapsing);
 | 
						|
			this.barTree.BeforeExpand += new System.Windows.Forms.TreeViewCancelEventHandler(this.NodeExpanding);
 | 
						|
			// 
 | 
						|
			// imageList
 | 
						|
			// 
 | 
						|
			this.imageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
 | 
						|
			this.imageList.ImageSize = new System.Drawing.Size(16, 16);
 | 
						|
			this.imageList.TransparentColor = System.Drawing.Color.Magenta;
 | 
						|
			// 
 | 
						|
			// barManager
 | 
						|
			// 
 | 
						|
			this.barManager.BottomDockSite = this.barBottomDockSite;
 | 
						|
			this.barManager.Images = this.m_BarImages;
 | 
						|
			this.barManager.ImagesLarge = null;
 | 
						|
			this.barManager.ImagesMedium = null;
 | 
						|
			this.barManager.LeftDockSite = this.barLeftDockSite;
 | 
						|
			this.barManager.ParentForm = this;
 | 
						|
			this.barManager.RightDockSite = this.barRightDockSite;
 | 
						|
			this.barManager.TopDockSite = this.barTopDockSite;
 | 
						|
			this.barManager.UseHook = true;
 | 
						|
			this.barManager.ItemClick += new System.EventHandler(this.BarItemClick);
 | 
						|
			// 
 | 
						|
			// barBottomDockSite
 | 
						|
			// 
 | 
						|
			this.barBottomDockSite.Dock = System.Windows.Forms.DockStyle.Bottom;
 | 
						|
			this.barBottomDockSite.Location = new System.Drawing.Point(0, 325);
 | 
						|
			this.barBottomDockSite.Name = "barBottomDockSite";
 | 
						|
			this.barBottomDockSite.Size = new System.Drawing.Size(536, 0);
 | 
						|
			this.barBottomDockSite.TabIndex = 8;
 | 
						|
			this.barBottomDockSite.TabStop = false;
 | 
						|
			// 
 | 
						|
			// m_BarImages
 | 
						|
			// 
 | 
						|
			this.m_BarImages.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit;
 | 
						|
			this.m_BarImages.ImageSize = new System.Drawing.Size(16, 16);
 | 
						|
			this.m_BarImages.TransparentColor = System.Drawing.Color.Magenta;
 | 
						|
			// 
 | 
						|
			// barLeftDockSite
 | 
						|
			// 
 | 
						|
			this.barLeftDockSite.Dock = System.Windows.Forms.DockStyle.Left;
 | 
						|
			this.barLeftDockSite.Name = "barLeftDockSite";
 | 
						|
			this.barLeftDockSite.Size = new System.Drawing.Size(0, 325);
 | 
						|
			this.barLeftDockSite.TabIndex = 9;
 | 
						|
			this.barLeftDockSite.TabStop = false;
 | 
						|
			// 
 | 
						|
			// barRightDockSite
 | 
						|
			// 
 | 
						|
			this.barRightDockSite.Dock = System.Windows.Forms.DockStyle.Right;
 | 
						|
			this.barRightDockSite.Location = new System.Drawing.Point(536, 0);
 | 
						|
			this.barRightDockSite.Name = "barRightDockSite";
 | 
						|
			this.barRightDockSite.Size = new System.Drawing.Size(0, 325);
 | 
						|
			this.barRightDockSite.TabIndex = 10;
 | 
						|
			this.barRightDockSite.TabStop = false;
 | 
						|
			// 
 | 
						|
			// barTopDockSite
 | 
						|
			// 
 | 
						|
			this.barTopDockSite.Dock = System.Windows.Forms.DockStyle.Top;
 | 
						|
			this.barTopDockSite.Name = "barTopDockSite";
 | 
						|
			this.barTopDockSite.Size = new System.Drawing.Size(536, 0);
 | 
						|
			this.barTopDockSite.TabIndex = 7;
 | 
						|
			this.barTopDockSite.TabStop = false;
 | 
						|
			// 
 | 
						|
			// m_OpenFileDialog
 | 
						|
			// 
 | 
						|
			this.m_OpenFileDialog.Filter = "DotNetBar Files (*.dnb)|*.dnb|All Files (*.*)|*.*";
 | 
						|
			this.m_OpenFileDialog.ShowReadOnly = true;
 | 
						|
			this.m_OpenFileDialog.Title = "Open DotNetBar Definition File";
 | 
						|
			// 
 | 
						|
			// m_SaveFileDialog
 | 
						|
			// 
 | 
						|
			this.m_SaveFileDialog.CreatePrompt = false;
 | 
						|
			this.m_SaveFileDialog.DefaultExt = "dnb";
 | 
						|
			this.m_SaveFileDialog.FileName = "dotnetbardefinition";
 | 
						|
			this.m_SaveFileDialog.Filter = "DotNetBar Files (*.dnb)|*.dnb|XML Files (*.xml)|*.xml|All Files (*.*)|*.*";
 | 
						|
			this.m_SaveFileDialog.Title = "Save DotNetBar Definition";
 | 
						|
			// 
 | 
						|
			// btnClose
 | 
						|
			// 
 | 
						|
			this.btnClose.Anchor = (System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right);
 | 
						|
			this.btnClose.DialogResult = System.Windows.Forms.DialogResult.OK;
 | 
						|
			this.btnClose.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
 | 
						|
			this.btnClose.Location = new System.Drawing.Point(376, 291);
 | 
						|
			this.btnClose.Name = "btnClose";
 | 
						|
			this.btnClose.Size = new System.Drawing.Size(73, 24);
 | 
						|
			this.btnClose.TabIndex = 6;
 | 
						|
			this.btnClose.Text = "OK";
 | 
						|
			this.btnClose.Click += new System.EventHandler(this.CloseClick);
 | 
						|
			// 
 | 
						|
			// btnCancel
 | 
						|
			// 
 | 
						|
			this.btnCancel.Anchor = (System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right);
 | 
						|
			this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
 | 
						|
			this.btnCancel.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
 | 
						|
			this.btnCancel.Location = new System.Drawing.Point(455, 291);
 | 
						|
			this.btnCancel.Name = "btnCancel";
 | 
						|
			this.btnCancel.Size = new System.Drawing.Size(73, 24);
 | 
						|
			this.btnCancel.TabIndex = 7;
 | 
						|
			this.btnCancel.Text = "Cancel";
 | 
						|
			this.btnCancel.Click += new System.EventHandler(this.CloseClick);
 | 
						|
			// 
 | 
						|
			// BarEditor
 | 
						|
			// 
 | 
						|
			//this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
 | 
						|
			this.ClientSize = new System.Drawing.Size(536, 325);
 | 
						|
			this.Controls.AddRange(new System.Windows.Forms.Control[] {
 | 
						|
																		  this.panel1,
 | 
						|
																		  this.btnClose,
 | 
						|
																		  this.btnCancel,
 | 
						|
																		  this.barTopDockSite,
 | 
						|
																		  this.barBottomDockSite,
 | 
						|
																		  this.barLeftDockSite,
 | 
						|
																		  this.barRightDockSite});
 | 
						|
			this.MinimizeBox = false;
 | 
						|
			this.Name = "BarEditor";
 | 
						|
			this.Text = "DotNetBar Editor";
 | 
						|
			this.Closing += new System.ComponentModel.CancelEventHandler(this.FormClosing);
 | 
						|
			this.Load += new EventHandler(this.FormLoad);
 | 
						|
			this.panel1.ResumeLayout(false);
 | 
						|
			this.ResumeLayout(false);
 | 
						|
 | 
						|
		}
 | 
						|
		#endregion
 | 
						|
 | 
						|
		private void FormLoad(object sender, EventArgs e)
 | 
						|
		{
 | 
						|
			try
 | 
						|
			{
 | 
						|
				Microsoft.Win32.RegistryKey key=Microsoft.Win32.Registry.LocalMachine;
 | 
						|
				string helpfile="";
 | 
						|
				try
 | 
						|
				{
 | 
						|
					key=key.OpenSubKey("Software\\DevComponents\\DotNetBar");
 | 
						|
					helpfile=key.GetValue("InstallationFolder","").ToString();
 | 
						|
				}
 | 
						|
				finally{key.Close();}
 | 
						|
 | 
						|
				if(helpfile.Substring(helpfile.Length-1,1)!="\\")
 | 
						|
					helpfile+="\\";
 | 
						|
 | 
						|
				if(System.IO.File.Exists(helpfile+"dotnetbar.chm"))
 | 
						|
					helpfile+="dotnetbar.chm";
 | 
						|
				else
 | 
						|
					helpfile="";
 | 
						|
 | 
						|
				if(helpfile!="")
 | 
						|
					m_HtmlHelp=new HTMLHelp(this,helpfile);
 | 
						|
			}
 | 
						|
			catch(Exception)
 | 
						|
			{
 | 
						|
			}
 | 
						|
 | 
						|
			// Load position if any
 | 
						|
			try
 | 
						|
			{
 | 
						|
				Microsoft.Win32.RegistryKey key=Microsoft.Win32.Registry.CurrentUser;
 | 
						|
				key=key.OpenSubKey("Software\\DevComponents\\DotNetBar");
 | 
						|
				if(key!=null)
 | 
						|
				{
 | 
						|
					try
 | 
						|
					{
 | 
						|
						string s=key.GetValue("DesignerPosition","").ToString();
 | 
						|
						if(s!="")
 | 
						|
						{
 | 
						|
							if(s=="1")
 | 
						|
							{
 | 
						|
								this.WindowState=FormWindowState.Maximized;
 | 
						|
							}
 | 
						|
							else
 | 
						|
							{
 | 
						|
								string[] arr=s.Split(',');
 | 
						|
								if(arr.Length==4)
 | 
						|
								{
 | 
						|
									Rectangle r=new Rectangle(int.Parse(arr[0]),int.Parse(arr[1]),int.Parse(arr[2]),int.Parse(arr[3]));
 | 
						|
									foreach(Screen screen in Screen.AllScreens)
 | 
						|
									{
 | 
						|
										if(screen.Bounds.IntersectsWith(r))
 | 
						|
										{
 | 
						|
											this.StartPosition=FormStartPosition.Manual;
 | 
						|
											this.DesktopLocation=r.Location;
 | 
						|
											this.Size=r.Size;
 | 
						|
											break;
 | 
						|
										}
 | 
						|
									}
 | 
						|
								}
 | 
						|
							}
 | 
						|
						}
 | 
						|
						s=key.GetValue("DesignerPanelSize","").ToString();
 | 
						|
						barTree.Width=int.Parse(s);
 | 
						|
					}
 | 
						|
					finally
 | 
						|
					{
 | 
						|
						key.Close();
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
			catch(Exception)
 | 
						|
			{
 | 
						|
			}
 | 
						|
		}
 | 
						|
		
 | 
						|
		#region Toolbar Definition Code
 | 
						|
		private void CreateToolbar()
 | 
						|
		{
 | 
						|
			Bar bar, barToolbar;
 | 
						|
			ButtonItem item, item2, item3, popupmain;
 | 
						|
			ButtonItem popup=new ButtonItem("popup");
 | 
						|
			barManager.Items.Add(popup);
 | 
						|
			bar=new Bar("Main Menu");
 | 
						|
			barManager.Bars.Add(bar);
 | 
						|
			bar.MenuBar=true;
 | 
						|
			bar.Stretch=true;
 | 
						|
 | 
						|
			barToolbar=new Bar("Item Navigation");
 | 
						|
			barManager.Bars.Add(barToolbar);
 | 
						|
 | 
						|
			// File Menu
 | 
						|
            item=new ButtonItem("file");
 | 
						|
			item.Text="&File";
 | 
						|
			item.PopupType=ePopupType.Menu;
 | 
						|
			bar.Items.Add(item);
 | 
						|
			item2=new ButtonItem("open");
 | 
						|
			item2.Shortcuts.Add(eShortcut.CtrlO);
 | 
						|
			item.SubItems.Add(item2);
 | 
						|
			item2.Text="&Open definition...";
 | 
						|
			item2.ImageIndex=4;
 | 
						|
			barToolbar.Items.Add(item2.Copy());
 | 
						|
			
 | 
						|
			item2=new ButtonItem("save");
 | 
						|
			item2.Shortcuts.Add(eShortcut.CtrlS);
 | 
						|
			item.SubItems.Add(item2);
 | 
						|
			item2.Text="&Save definition...";
 | 
						|
			item2.ImageIndex=5;
 | 
						|
			barToolbar.Items.Add(item2.Copy());
 | 
						|
			item2.BeginGroup=true;
 | 
						|
 | 
						|
			item2=new ButtonItem("saveas");
 | 
						|
			item2.Text="&Save definition as...";
 | 
						|
			item.SubItems.Add(item2);
 | 
						|
			
 | 
						|
			item2=new ButtonItem("loadbar");
 | 
						|
			item2.Shortcuts.Add(eShortcut.CtrlL);
 | 
						|
			item.SubItems.Add(item2);
 | 
						|
			item2.Text="Load Bar...";
 | 
						|
			barManager.Items.Add(item2.Copy());
 | 
						|
			item2.BeginGroup=true;
 | 
						|
			item2.Enabled=true;
 | 
						|
 | 
						|
			item2=new ButtonItem("savebaras");
 | 
						|
			item2.Shortcuts.Add(eShortcut.CtrlD);
 | 
						|
			item.SubItems.Add(item2);
 | 
						|
			item2.Text="Save Bar as...";
 | 
						|
			barManager.Items.Add(item2.Copy());
 | 
						|
			item2.Enabled=false;
 | 
						|
 | 
						|
			item2=new ButtonItem("close");
 | 
						|
			item2.Text="&Close Designer";
 | 
						|
			item2.BeginGroup=true;
 | 
						|
			item.SubItems.Add(item2);
 | 
						|
 | 
						|
			// Tools
 | 
						|
			item=new ButtonItem("tools");
 | 
						|
			item.Text="&Tools";
 | 
						|
			item.PopupType=ePopupType.Menu;
 | 
						|
			bar.Items.Add(item);
 | 
						|
			item2=new ButtonItem("barscreation","Create Bar");
 | 
						|
			item.SubItems.Add(item2);
 | 
						|
			popupmain=item2.Copy() as ButtonItem;
 | 
						|
			popup.SubItems.Add(popupmain);
 | 
						|
			if(m_Bar!=null)
 | 
						|
				item2.Visible=false;
 | 
						|
			else if(m_DotNetBar.LeftDockSite==null && m_DotNetBar.RightDockSite==null && m_DotNetBar.TopDockSite==null && m_DotNetBar.BottomDockSite==null)
 | 
						|
				item2.Enabled=false;
 | 
						|
			item3=new ButtonItem("createbar");
 | 
						|
			item3.Text="&Toolbar";
 | 
						|
			item2.SubItems.Add(item3);
 | 
						|
			popupmain.SubItems.Add(item3.Copy());
 | 
						|
			item3=new ButtonItem("createmenubar");
 | 
						|
			item3.Text="&Menu Bar";
 | 
						|
			item2.SubItems.Add(item3);
 | 
						|
			popupmain.SubItems.Add(item3.Copy());
 | 
						|
			item3=new ButtonItem("createstatusbar","&Status Bar");
 | 
						|
			item2.SubItems.Add(item3);
 | 
						|
			popupmain.SubItems.Add(item3.Copy());
 | 
						|
			item3=new ButtonItem("createdockwindow","&Dockable Window");
 | 
						|
			item2.SubItems.Add(item3);
 | 
						|
			popupmain.SubItems.Add(item3.Copy());
 | 
						|
			item3=new ButtonItem("createtaskpane","&Task Pane");
 | 
						|
			item2.SubItems.Add(item3);
 | 
						|
			popupmain.SubItems.Add(item3.Copy());
 | 
						|
 | 
						|
			item2=new ButtonItem("buttonitem");
 | 
						|
			item2.Text="Add &ButtonItem";
 | 
						|
			item2.BeginGroup=true;
 | 
						|
			item.SubItems.Add(item2);
 | 
						|
			popup.SubItems.Add(item2.Copy());
 | 
						|
			item2=new ButtonItem("textboxitem");
 | 
						|
			item2.Text="Add &TextBoxItem";
 | 
						|
			item.SubItems.Add(item2);
 | 
						|
			popup.SubItems.Add(item2.Copy());
 | 
						|
			item2=new ButtonItem("comboboxitem");
 | 
						|
			item2.Text="Add &ComboBoxItem";
 | 
						|
			item.SubItems.Add(item2);
 | 
						|
			popup.SubItems.Add(item2.Copy());
 | 
						|
			item2=new ButtonItem("labelitem");
 | 
						|
			item2.Text="Add &LabelItem";
 | 
						|
			item.SubItems.Add(item2);
 | 
						|
			popup.SubItems.Add(item2.Copy());
 | 
						|
			// Progress Bar Item
 | 
						|
			item2=new ButtonItem("progressbaritem");
 | 
						|
			item2.Tooltip="Displays a progress bar.";
 | 
						|
			item2.Text="Add &ProgressBarItem";
 | 
						|
			item.SubItems.Add(item2);
 | 
						|
			popup.SubItems.Add(item2.Copy());
 | 
						|
 | 
						|
			item2=new ButtonItem("customizeitem");
 | 
						|
			item2.BeginGroup=true;
 | 
						|
			item2.Tooltip="Lets end users hide/show Bar items as well as open the Customize dialog.";
 | 
						|
			item2.Text="Add Custo&mizeItem";
 | 
						|
			item.SubItems.Add(item2);
 | 
						|
			popup.SubItems.Add(item2.Copy());
 | 
						|
			item2=new ButtonItem("mdiwindowlistitem");
 | 
						|
			item2.Tooltip="Displays list of MDI Child forms.";
 | 
						|
			item2.Text="Add &MdiWindowListItem";
 | 
						|
			item.SubItems.Add(item2);
 | 
						|
			popup.SubItems.Add(item2.Copy());
 | 
						|
			item2=new ButtonItem("controlcontaineritem");
 | 
						|
			item2.Tooltip="Allows you to host any Control on Bar or Menu-bar.";
 | 
						|
			item2.Text="Add &ControlContainerItem";
 | 
						|
			item.SubItems.Add(item2);
 | 
						|
			popup.SubItems.Add(item2.Copy());
 | 
						|
			item2=new ButtonItem("dockcontaineritem");
 | 
						|
			item2.Tooltip="Helps you create dockable windows.";
 | 
						|
			item2.Text="Add &DockContainerItem";
 | 
						|
			item.SubItems.Add(item2);
 | 
						|
			popup.SubItems.Add(item2.Copy());
 | 
						|
 | 
						|
			// Pop-up specific items
 | 
						|
			item2=new ButtonItem("copyto");
 | 
						|
            item2.Text="Copy To";
 | 
						|
            item2.BeginGroup=true;
 | 
						|
			item2.PopupType=ePopupType.Menu;
 | 
						|
			popup.SubItems.Add(item2);
 | 
						|
			item2=new ButtonItem("moveto");
 | 
						|
			item2.Text="Move To";
 | 
						|
			item2.PopupType=ePopupType.Menu;
 | 
						|
			popup.SubItems.Add(item2);
 | 
						|
 | 
						|
			item2=new ButtonItem("delselected");
 | 
						|
			item.SubItems.Add(item2);
 | 
						|
			item2.Text="&Delete Selected Item";
 | 
						|
			item2.BeginGroup=true;
 | 
						|
			item2.ImageIndex=7;
 | 
						|
			popup.SubItems.Add(item2.Copy());
 | 
						|
 | 
						|
			// Help
 | 
						|
			item=new ButtonItem("help");
 | 
						|
			item.Text="&Help";
 | 
						|
			item.PopupType=ePopupType.Menu;
 | 
						|
			bar.Items.Add(item);
 | 
						|
			item2=new ButtonItem("contents");
 | 
						|
			item2.Text="&Contents...";
 | 
						|
			item.SubItems.Add(item2);
 | 
						|
//			item2=new ButtonItem("index");
 | 
						|
//			item2.Text="&Index...";
 | 
						|
//			item.SubItems.Add(item2);
 | 
						|
//			item2=new ButtonItem("search");
 | 
						|
//			item2.Text="&Search...";
 | 
						|
//			item.SubItems.Add(item2);
 | 
						|
			item2=new ButtonItem("about");
 | 
						|
			item2.Text="&About";
 | 
						|
			item2.BeginGroup=true;
 | 
						|
			item.SubItems.Add(item2);
 | 
						|
 | 
						|
			bar.DockSide=eDockSide.Top;
 | 
						|
 | 
						|
			// Create left bar with the item navigation buttons
 | 
						|
			item=new ButtonItem("addnewitems");
 | 
						|
			barToolbar.Items.Add(item);
 | 
						|
			item.PopupType=ePopupType.Menu;
 | 
						|
			item.ImageIndex=6;
 | 
						|
			item.Text="Create new item";
 | 
						|
			item.Tooltip="Press to see available items that can be created";
 | 
						|
			item.BeginGroup=true;
 | 
						|
			item.Enabled=true;
 | 
						|
			item.SubItems.Add(barManager.Items["buttonitem"].Copy());
 | 
						|
			item.SubItems.Add(barManager.Items["textboxitem"].Copy());
 | 
						|
			item.SubItems.Add(barManager.Items["comboboxitem"].Copy());
 | 
						|
			item.SubItems.Add(barManager.Items["customizeitem"].Copy());
 | 
						|
			item.SubItems.Add(barManager.Items["mdiwindowlistitem"].Copy());
 | 
						|
            item.SubItems.Add(barManager.Items["controlcontaineritem"].Copy());
 | 
						|
			item.SubItems.Add(barManager.Items["dockcontaineritem"].Copy());
 | 
						|
			item.SubItems.Add(barManager.Items["progressbaritem"].Copy());
 | 
						|
			barToolbar.Items.Add(barManager.Items["delselected"].Copy());
 | 
						|
 | 
						|
 | 
						|
			item=new ButtonItem("moveleft");
 | 
						|
			barToolbar.Items.Add(item);
 | 
						|
			item.ImageIndex=0;
 | 
						|
			item.Text="Move Left";
 | 
						|
			item.Tooltip="Move selected item left";
 | 
						|
			item.BeginGroup=true;
 | 
						|
			item.Enabled=false;
 | 
						|
			item.ClickAutoRepeat=true;
 | 
						|
			barManager.Items.Add(item.Copy());
 | 
						|
			
 | 
						|
			item=new ButtonItem("moveright");
 | 
						|
			barToolbar.Items.Add(item);
 | 
						|
			item.ImageIndex=1;
 | 
						|
			item.Text="Move Right";
 | 
						|
			item.Tooltip="Move selected item right";
 | 
						|
			item.Enabled=false;
 | 
						|
			item.ClickAutoRepeat=true;
 | 
						|
			barManager.Items.Add(item.Copy());
 | 
						|
			
 | 
						|
			item=new ButtonItem("moveup");
 | 
						|
			barToolbar.Items.Add(item);
 | 
						|
			item.ImageIndex=2;
 | 
						|
			item.Text="Move Up";
 | 
						|
			item.Tooltip="Move selected item up";
 | 
						|
			item.Enabled=false;
 | 
						|
			item.ClickAutoRepeat=true;
 | 
						|
			barManager.Items.Add(item.Copy());
 | 
						|
			
 | 
						|
			item=new ButtonItem("movedown");
 | 
						|
			barToolbar.Items.Add(item);
 | 
						|
			item.ImageIndex=3;
 | 
						|
			item.Text="Move Down";
 | 
						|
			item.Tooltip="Move selected item down";
 | 
						|
			item.Enabled=false;
 | 
						|
			item.ClickAutoRepeat=true;
 | 
						|
			barManager.Items.Add(item.Copy());
 | 
						|
 | 
						|
			item=new ButtonItem("synccat");
 | 
						|
			barToolbar.Items.Add(item);
 | 
						|
			item.ImageIndex=8;
 | 
						|
			item.Text="Sync Categories";
 | 
						|
			item.Tooltip="Recreates Categories from your current definition.";
 | 
						|
			item.Enabled=true;
 | 
						|
			item.ButtonStyle=eButtonStyle.ImageAndText;
 | 
						|
			item.ClickAutoRepeat=false;
 | 
						|
			
 | 
						|
			barToolbar.DockLine=1;
 | 
						|
			barToolbar.DockSide=eDockSide.Top;
 | 
						|
 | 
						|
			popup=new ButtonItem("resetimagepopup");
 | 
						|
			item=new ButtonItem("resetimage","Reset");
 | 
						|
			popup.SubItems.Add(item);
 | 
						|
			barManager.ContextMenus.Add(popup);
 | 
						|
 | 
						|
			barManager.Style=eDotNetBarStyle.Office2003;
 | 
						|
 | 
						|
		}
 | 
						|
		#endregion
 | 
						|
 | 
						|
		protected void CloseClick (object sender, System.EventArgs e)
 | 
						|
		{
 | 
						|
			this.Close();
 | 
						|
		}
 | 
						|
 | 
						|
		private void RefreshView()
 | 
						|
		{
 | 
						|
			barTree.Nodes.Clear();
 | 
						|
 | 
						|
			if(m_Bar!=null)
 | 
						|
			{
 | 
						|
				try
 | 
						|
				{
 | 
						|
					this.Cursor=Cursors.WaitCursor;
 | 
						|
					m_BarsNode=barTree.Nodes.Add("Bar");
 | 
						|
					m_BarsNode.ImageIndex=2;
 | 
						|
					m_BarsNode.SelectedImageIndex=2;
 | 
						|
 | 
						|
					TreeNode barNode=m_BarsNode.Nodes.Add(m_Bar.Text);
 | 
						|
					barNode.Tag=m_Bar;
 | 
						|
					barNode.ImageIndex=1;
 | 
						|
					barNode.SelectedImageIndex=1;
 | 
						|
					foreach(BaseItem objItem in m_Bar.Items)
 | 
						|
					{
 | 
						|
						TreeNode itemNode=barNode.Nodes.Add(GetTreeItemText(objItem));
 | 
						|
						itemNode.Tag=objItem;
 | 
						|
 | 
						|
						itemNode.ImageIndex=GetItemImageIndex(objItem);
 | 
						|
						itemNode.SelectedImageIndex=itemNode.ImageIndex;
 | 
						|
 | 
						|
						AddSubItems(objItem,itemNode);
 | 
						|
					}
 | 
						|
					m_BarsNode.Expand();
 | 
						|
					barNode.Expand();
 | 
						|
				}
 | 
						|
				finally
 | 
						|
				{
 | 
						|
					this.Cursor=Cursors.Arrow;
 | 
						|
				}
 | 
						|
				return;
 | 
						|
			}
 | 
						|
 | 
						|
			if(m_DotNetBar==null)
 | 
						|
				return;
 | 
						|
 | 
						|
			this.Cursor=Cursors.WaitCursor;
 | 
						|
 | 
						|
			if(m_DotNetBar.TopDockSite==null && m_DotNetBar.BottomDockSite==null && m_DotNetBar.LeftDockSite==null && m_DotNetBar.RightDockSite==null)
 | 
						|
			{
 | 
						|
				m_CategoriesNode=null;
 | 
						|
				m_BarsNode=null;
 | 
						|
			}
 | 
						|
			else
 | 
						|
			{
 | 
						|
				m_CategoriesNode=barTree.Nodes.Add("Categories");
 | 
						|
				m_CategoriesNode.ImageIndex=5;
 | 
						|
				m_CategoriesNode.SelectedImageIndex=5;
 | 
						|
 | 
						|
				m_BarsNode=barTree.Nodes.Add("Bars");
 | 
						|
				m_BarsNode.ImageIndex=2;
 | 
						|
				m_BarsNode.SelectedImageIndex=2;
 | 
						|
			}
 | 
						|
 | 
						|
			m_PopupsNode=barTree.Nodes.Add("Context Menus");
 | 
						|
			m_PopupsNode.ImageIndex=12;
 | 
						|
			m_PopupsNode.SelectedImageIndex=12;
 | 
						|
 | 
						|
			if(m_BarsNode!=null)
 | 
						|
			{
 | 
						|
				foreach(Bar bar in m_DotNetBar.Bars)
 | 
						|
				{
 | 
						|
					TreeNode barNode=m_BarsNode.Nodes.Add(bar.Text);
 | 
						|
					barNode.Tag=bar;
 | 
						|
					barNode.ImageIndex=1;
 | 
						|
					barNode.SelectedImageIndex=1;
 | 
						|
					foreach(BaseItem objItem in bar.Items)
 | 
						|
					{
 | 
						|
						TreeNode itemNode=barNode.Nodes.Add(GetTreeItemText(objItem));
 | 
						|
						itemNode.Tag=objItem;
 | 
						|
 | 
						|
						itemNode.ImageIndex=GetItemImageIndex(objItem);
 | 
						|
						itemNode.SelectedImageIndex=itemNode.ImageIndex;
 | 
						|
 | 
						|
						AddSubItems(objItem,itemNode);
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
 | 
						|
			// Load nodes from items
 | 
						|
			m_catTable.Clear();
 | 
						|
			if(m_CategoriesNode!=null)
 | 
						|
			{
 | 
						|
				foreach(DictionaryEntry o in m_DotNetBar.Items)
 | 
						|
				{
 | 
						|
					BaseItem objItem=o.Value as BaseItem;
 | 
						|
					TreeNode itemNode=CategorizeItem(objItem);
 | 
						|
					itemNode.Tag=objItem;
 | 
						|
 | 
						|
					itemNode.ImageIndex=GetItemImageIndex(objItem);
 | 
						|
					itemNode.SelectedImageIndex=itemNode.ImageIndex;
 | 
						|
 | 
						|
					AddSubItems(objItem,itemNode);
 | 
						|
				}
 | 
						|
			}
 | 
						|
 | 
						|
			// Load all popups
 | 
						|
			foreach(BaseItem objItem in m_DotNetBar.ContextMenus)
 | 
						|
			{
 | 
						|
				TreeNode itemNode=m_PopupsNode.Nodes.Add(GetTreeItemText(objItem));
 | 
						|
				itemNode.Tag=objItem;
 | 
						|
 | 
						|
				itemNode.ImageIndex=GetItemImageIndex(objItem);
 | 
						|
				itemNode.SelectedImageIndex=itemNode.ImageIndex;
 | 
						|
 | 
						|
				AddSubItems(objItem,itemNode);
 | 
						|
			}
 | 
						|
 | 
						|
			if(m_BarsNode!=null)
 | 
						|
				m_BarsNode.Expand();
 | 
						|
			if(m_CategoriesNode!=null)
 | 
						|
				m_CategoriesNode.Expand();
 | 
						|
			m_PopupsNode.Expand();
 | 
						|
 | 
						|
			this.Cursor=Cursors.Arrow;
 | 
						|
		}
 | 
						|
		private void AddSubItems(BaseItem objItem, TreeNode parentNode)
 | 
						|
		{
 | 
						|
			if(objItem.SubItems.Count==0)
 | 
						|
				return;
 | 
						|
			foreach(BaseItem objChild in objItem.SubItems)
 | 
						|
			{
 | 
						|
				TreeNode itemNode=parentNode.Nodes.Add(GetTreeItemText(objChild));
 | 
						|
				itemNode.Tag=objChild;
 | 
						|
 | 
						|
				itemNode.ImageIndex=GetItemImageIndex(objChild);
 | 
						|
				itemNode.SelectedImageIndex=itemNode.ImageIndex;
 | 
						|
 | 
						|
				AddSubItems(objChild,itemNode);
 | 
						|
			}
 | 
						|
		}
 | 
						|
		// TODO: Make sure that when designing the Menu Bar when new item is added default
 | 
						|
		// PopupType is MENU not TOOLBAR
 | 
						|
		private void ItemSelected(object sender,TreeViewEventArgs e)
 | 
						|
		{
 | 
						|
			barTree.LabelEdit=false;
 | 
						|
			if(e.Node.Tag==null)
 | 
						|
			{
 | 
						|
				propertyGrid1.SelectedObject=null;
 | 
						|
				return;
 | 
						|
			}
 | 
						|
 | 
						|
			if(e.Node.Tag is BaseItem)
 | 
						|
			{
 | 
						|
				propertyGrid1.SelectedObject=e.Node.Tag;
 | 
						|
				barTree.LabelEdit=true;
 | 
						|
 | 
						|
				// Now way to detect when Items collection has changed, reset changed flag if combo box is selected...
 | 
						|
				if(e.Node.Tag is ComboBoxItem)
 | 
						|
					m_DataChanged=true;
 | 
						|
			}
 | 
						|
			else if(e.Node.Tag is Bar)
 | 
						|
			{
 | 
						|
				propertyGrid1.SelectedObject=(Bar)e.Node.Tag;
 | 
						|
 | 
						|
			}
 | 
						|
			else
 | 
						|
			{
 | 
						|
				propertyGrid1.SelectedObject=null;
 | 
						|
			}
 | 
						|
 | 
						|
		}
 | 
						|
 | 
						|
		private void BeforeItemSelect(object sender, System.Windows.Forms.TreeViewCancelEventArgs e)
 | 
						|
		{
 | 
						|
			// Disable/Enable toolbar items...
 | 
						|
			bool bLeftEnabled=false, bRightEnabled=false, bUpEnabled=false, bDownEnabled=false;
 | 
						|
 | 
						|
			BaseItem popupItem=barManager.Items["popup"];
 | 
						|
 | 
						|
			if(e.Node!=null && e.Node.Tag is BaseItem)
 | 
						|
			{
 | 
						|
				if(e.Node.Parent==m_PopupsNode)
 | 
						|
				{
 | 
						|
					bRightEnabled=true;
 | 
						|
				}
 | 
						|
				else
 | 
						|
				{
 | 
						|
					BaseItem objItem=e.Node.Tag as BaseItem;
 | 
						|
					int i=0;
 | 
						|
					if(objItem.Parent!=null)
 | 
						|
						i=objItem.Parent.SubItems.IndexOf(objItem);
 | 
						|
					else
 | 
						|
						i=e.Node.Index;
 | 
						|
					if(i>0)
 | 
						|
					{
 | 
						|
						bUpEnabled=true;
 | 
						|
						bRightEnabled=true;
 | 
						|
					}
 | 
						|
					int iCount=0;
 | 
						|
					if(objItem.Parent!=null)
 | 
						|
						iCount=objItem.Parent.SubItems.Count-1;
 | 
						|
					else
 | 
						|
						iCount=e.Node.Parent.Nodes.Count-1;
 | 
						|
 | 
						|
					if(i<iCount)
 | 
						|
						bDownEnabled=true;
 | 
						|
 | 
						|
					if((objItem.Parent!=null && !objItem.Parent.SystemItem && (!(objItem.Parent is GenericItemContainer) || !((GenericItemContainer)objItem.Parent).SystemContainer)) || (e.Node.Parent!=null && e.Node.Parent.Tag is BaseItem))
 | 
						|
						bLeftEnabled=true;
 | 
						|
				}
 | 
						|
			}
 | 
						|
 | 
						|
			barManager.Items["moveleft"].Enabled=bLeftEnabled;
 | 
						|
			barManager.Items["moveright"].Enabled=bRightEnabled;
 | 
						|
			barManager.Items["moveup"].Enabled=bUpEnabled;
 | 
						|
			barManager.Items["movedown"].Enabled=bDownEnabled;
 | 
						|
 | 
						|
			if(e.Node!=null && e.Node.Tag is BaseItem)
 | 
						|
			{
 | 
						|
				popupItem.SubItems["copyto"].Visible=true;
 | 
						|
				popupItem.SubItems["moveto"].Visible=true;
 | 
						|
			}
 | 
						|
			else
 | 
						|
			{
 | 
						|
				popupItem.SubItems["copyto"].Visible=false;
 | 
						|
				popupItem.SubItems["moveto"].Visible=false;
 | 
						|
			}
 | 
						|
 | 
						|
			if(e.Node==null || m_BarsNode!=null && e.Node==m_BarsNode)
 | 
						|
			{
 | 
						|
				barManager.Items["buttonitem"].Enabled=false;
 | 
						|
				barManager.Items["textboxitem"].Enabled=false;
 | 
						|
				barManager.Items["comboboxitem"].Enabled=false;
 | 
						|
				barManager.Items["customizeitem"].Enabled=false;
 | 
						|
				barManager.Items["labelitem"].Enabled=false;
 | 
						|
				barManager.Items["mdiwindowlistitem"].Enabled=false;
 | 
						|
				barManager.Items["controlcontaineritem"].Enabled=false;
 | 
						|
				barManager.Items["dockcontaineritem"].Enabled=false;
 | 
						|
				barManager.Items["progressbaritem"].Enabled=false;
 | 
						|
				barManager.Items["delselected"].Enabled=false;
 | 
						|
				return;
 | 
						|
			}
 | 
						|
			else if(m_CategoriesNode!=null && e.Node==m_CategoriesNode)
 | 
						|
			{
 | 
						|
				barManager.Items["buttonitem"].Enabled=true;
 | 
						|
				barManager.Items["textboxitem"].Enabled=true;
 | 
						|
				barManager.Items["comboboxitem"].Enabled=true;
 | 
						|
				barManager.Items["customizeitem"].Enabled=true;
 | 
						|
				barManager.Items["labelitem"].Enabled=true;
 | 
						|
				barManager.Items["mdiwindowlistitem"].Enabled=true;
 | 
						|
				barManager.Items["controlcontaineritem"].Enabled=true;
 | 
						|
				barManager.Items["dockcontaineritem"].Enabled=true;
 | 
						|
				barManager.Items["progressbaritem"].Enabled=true;
 | 
						|
				barManager.Items["delselected"].Enabled=false;
 | 
						|
				return;
 | 
						|
			}
 | 
						|
 | 
						|
			if(e.Node!=null && e.Node.Tag is Bar)
 | 
						|
				barManager.Items["savebaras"].Enabled=true;
 | 
						|
			else
 | 
						|
                barManager.Items["savebaras"].Enabled=false;
 | 
						|
 | 
						|
			barManager.Items["buttonitem"].Enabled=true;
 | 
						|
			barManager.Items["textboxitem"].Enabled=true;
 | 
						|
			barManager.Items["comboboxitem"].Enabled=true;
 | 
						|
			barManager.Items["customizeitem"].Enabled=true;
 | 
						|
			barManager.Items["labelitem"].Enabled=true;
 | 
						|
			barManager.Items["mdiwindowlistitem"].Enabled=true;
 | 
						|
			barManager.Items["controlcontaineritem"].Enabled=true;
 | 
						|
			barManager.Items["dockcontaineritem"].Enabled=true;
 | 
						|
			barManager.Items["progressbaritem"].Enabled=true;
 | 
						|
 | 
						|
			if(m_CategoriesNode!=null && e.Node.Parent==m_CategoriesNode || e.Node.Tag is BaseItem || e.Node.Tag is Bar)
 | 
						|
				barManager.Items["delselected"].Enabled=true;
 | 
						|
			else
 | 
						|
				barManager.Items["delselected"].Enabled=false;
 | 
						|
		}
 | 
						|
 | 
						|
		private void TreeMouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
 | 
						|
		{
 | 
						|
			if(e.Button!=MouseButtons.Right)
 | 
						|
				return;
 | 
						|
            
 | 
						|
			TreeNode node=barTree.GetNodeAt(e.X,e.Y);
 | 
						|
			if(node!=null)
 | 
						|
                barTree.SelectedNode=node;
 | 
						|
 | 
						|
			// Popup menu
 | 
						|
			ButtonItem popup=barManager.Items["popup"] as ButtonItem;
 | 
						|
			
 | 
						|
			// If MoveTo and CopyTo are visible add items to them
 | 
						|
			if(popup.SubItems["copyto"].Visible)
 | 
						|
			{
 | 
						|
				BaseItem itemCopyTo=popup.SubItems["copyto"];
 | 
						|
				BaseItem itemMoveTo=popup.SubItems["moveto"];
 | 
						|
				BaseItem itemSel=barTree.SelectedNode.Tag as BaseItem;
 | 
						|
				itemCopyTo.SubItems.Clear();
 | 
						|
				itemMoveTo.SubItems.Clear();
 | 
						|
				bool bBars=true,bCategories=false, bPopups=false;
 | 
						|
				// Don't show categories for category items...
 | 
						|
				node=barTree.SelectedNode;
 | 
						|
				while(node.Parent!=null)
 | 
						|
					node=node.Parent;
 | 
						|
				if(m_PopupsNode!=null && node!=m_PopupsNode)
 | 
						|
					bPopups=true;
 | 
						|
				if(m_CategoriesNode!=null && node!=m_CategoriesNode)
 | 
						|
					bCategories=true;
 | 
						|
 | 
						|
				if(bBars && m_BarsNode!=null)
 | 
						|
				{
 | 
						|
					foreach(TreeNode barNode in m_BarsNode.Nodes)
 | 
						|
					{
 | 
						|
						BaseItem newItem=new ButtonItem();
 | 
						|
						newItem.Text=barNode.Text;
 | 
						|
						newItem.Tag=barNode;
 | 
						|
						newItem.Click+=new System.EventHandler(this.CopyMoveToClick);
 | 
						|
						itemCopyTo.SubItems.Add(newItem);
 | 
						|
						itemMoveTo.SubItems.Add(newItem.Copy());
 | 
						|
					}
 | 
						|
				}
 | 
						|
				if(bCategories && m_CategoriesNode!=null)
 | 
						|
				{
 | 
						|
					ButtonItem cat=new ButtonItem("tocategories");
 | 
						|
					cat.Text="Categories";
 | 
						|
					cat.BeginGroup=true;
 | 
						|
					cat.Click+=new System.EventHandler(this.CopyMoveToClick);
 | 
						|
					itemCopyTo.SubItems.Add(cat);
 | 
						|
					itemMoveTo.SubItems.Add(cat.Copy());
 | 
						|
 | 
						|
					foreach(TreeNode catNode in m_CategoriesNode.Nodes)
 | 
						|
					{
 | 
						|
						BaseItem newItem=new ButtonItem();
 | 
						|
						newItem.Text=catNode.Text;
 | 
						|
						newItem.Click+=new System.EventHandler(this.CopyMoveToClick);
 | 
						|
						newItem.Tag="cat";
 | 
						|
						itemCopyTo.SubItems.Add(newItem);
 | 
						|
						itemMoveTo.SubItems.Add(newItem.Copy());
 | 
						|
					}
 | 
						|
				}
 | 
						|
				if(bPopups)
 | 
						|
				{
 | 
						|
					BaseItem pi=new ButtonItem("topopups");
 | 
						|
					pi.BeginGroup=true;
 | 
						|
					pi.Text="Popups";
 | 
						|
					pi.Click+=new System.EventHandler(this.CopyMoveToClick);
 | 
						|
					itemCopyTo.SubItems.Add(pi);
 | 
						|
					itemMoveTo.SubItems.Add(pi.Copy());
 | 
						|
 | 
						|
					foreach(BaseItem objItem in m_DotNetBar.ContextMenus)
 | 
						|
					{
 | 
						|
						BaseItem newItem=new ButtonItem();
 | 
						|
                        newItem.Text=(objItem.Text=="")?objItem.Name:objItem.Text;
 | 
						|
                        newItem.Tag=objItem;
 | 
						|
						newItem.Click+=new System.EventHandler(this.CopyMoveToClick);
 | 
						|
						itemCopyTo.SubItems.Add(newItem);
 | 
						|
						itemMoveTo.SubItems.Add(newItem.Copy());						
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
 | 
						|
			Point pt=new Point(e.X,e.Y);
 | 
						|
			pt=barTree.PointToScreen(pt);
 | 
						|
            popup.PopupMenu(pt);
 | 
						|
		}
 | 
						|
 | 
						|
		private void NodeExpanding(object sender, System.Windows.Forms.TreeViewCancelEventArgs e)
 | 
						|
		{
 | 
						|
			if(e.Node.ImageIndex==5)
 | 
						|
			{
 | 
						|
				e.Node.ImageIndex=6;
 | 
						|
				e.Node.SelectedImageIndex=6;
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		private void NodeCollapsing(object sender, System.Windows.Forms.TreeViewCancelEventArgs e)
 | 
						|
		{
 | 
						|
			if(e.Node.ImageIndex==6)
 | 
						|
			{
 | 
						|
				e.Node.ImageIndex=5;
 | 
						|
				e.Node.SelectedImageIndex=5;
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		private void BarItemClick(object sender, EventArgs e)
 | 
						|
		{
 | 
						|
			BaseItem objItem=sender as BaseItem;
 | 
						|
			BaseItem newItem=null;
 | 
						|
			if(objItem.Name=="file" || objItem.Name=="tools" || objItem.Name=="help" || objItem.Name=="")
 | 
						|
				return;
 | 
						|
 | 
						|
			if(objItem.Name=="about")
 | 
						|
			{
 | 
						|
				MessageBox.Show("DotNetBar by DevComponents.com (c) 2001-2003 by DevComponents.com All Rights Reserved.");
 | 
						|
				return;
 | 
						|
			}
 | 
						|
			else if(objItem.Name=="close")
 | 
						|
			{
 | 
						|
				this.DialogResult=DialogResult.OK;
 | 
						|
				this.Close();
 | 
						|
				return;
 | 
						|
			}
 | 
						|
			else if(objItem.Name=="contents")
 | 
						|
			{
 | 
						|
				if(m_HtmlHelp!=null)
 | 
						|
					m_HtmlHelp.ShowContents();
 | 
						|
			}
 | 
						|
			else if(objItem.Name=="index")
 | 
						|
			{
 | 
						|
				if(m_HtmlHelp!=null)
 | 
						|
					m_HtmlHelp.ShowContents();
 | 
						|
			}
 | 
						|
			else if(objItem.Name=="search")
 | 
						|
			{
 | 
						|
				if(m_HtmlHelp!=null)
 | 
						|
					m_HtmlHelp.ShowSearch();
 | 
						|
			}
 | 
						|
			else if(objItem.Name=="resetimage")
 | 
						|
			{
 | 
						|
				m_DataChanged=true;
 | 
						|
				if(propertyGrid1.SelectedGridItem!=null && propertyGrid1.SelectedGridItem.PropertyDescriptor.PropertyType==typeof(System.Drawing.Image))
 | 
						|
				{
 | 
						|
					propertyGrid1.SelectedGridItem.PropertyDescriptor.SetValue(propertyGrid1.SelectedObject,null);
 | 
						|
					propertyGrid1.Refresh();
 | 
						|
				}
 | 
						|
				return;
 | 
						|
			}
 | 
						|
			else if(objItem.Name=="createbar" || objItem.Name=="createmenubar" || objItem.Name=="createstatusbar" || objItem.Name=="createtaskpane")
 | 
						|
			{
 | 
						|
				m_DataChanged=true;
 | 
						|
				Bar bar;
 | 
						|
 | 
						|
				if(objItem.Name=="createmenubar")
 | 
						|
				{
 | 
						|
					bar=CreateObject(typeof(Bar)) as Bar;
 | 
						|
					bar.Text="Main Menu";
 | 
						|
					bar.MenuBar=true;
 | 
						|
					bar.Stretch=true;
 | 
						|
					bar.Name="mainmenu";
 | 
						|
				}
 | 
						|
				else if(objItem.Name=="createstatusbar")
 | 
						|
				{
 | 
						|
					bar=CreateObject(typeof(Bar)) as Bar;
 | 
						|
					bar.Text="Status";
 | 
						|
					bar.Stretch=true;
 | 
						|
					bar.Name="statusBar"+((int)m_DotNetBar.Bars.Count+1).ToString();
 | 
						|
					bar.LayoutType=eLayoutType.Toolbar;
 | 
						|
					bar.GrabHandleStyle=eGrabHandleStyle.ResizeHandle;
 | 
						|
					bar.ItemSpacing=2;
 | 
						|
				}
 | 
						|
				else if(objItem.Name=="createtaskpane")
 | 
						|
				{
 | 
						|
					bar=CreateObject(typeof(Bar)) as Bar;
 | 
						|
					bar.Text="Task Pane";
 | 
						|
					bar.Stretch=true;
 | 
						|
					bar.Name="taskbar"+((int)m_DotNetBar.Bars.Count+1).ToString();
 | 
						|
					bar.LayoutType=eLayoutType.TaskList;
 | 
						|
					bar.GrabHandleStyle=eGrabHandleStyle.Caption;
 | 
						|
				}
 | 
						|
				else
 | 
						|
				{
 | 
						|
					bar=CreateObject(typeof(Bar)) as Bar;
 | 
						|
					bar.Text="My Bar";
 | 
						|
					bar.Name="bar"+((int)m_DotNetBar.Bars.Count+1).ToString();
 | 
						|
				}
 | 
						|
                
 | 
						|
				bar.SetDesignMode(true);
 | 
						|
 | 
						|
				TreeNode barNode=m_BarsNode.Nodes.Add(bar.Text);
 | 
						|
				barNode.Tag=bar;
 | 
						|
				barNode.ImageIndex=3;
 | 
						|
				barNode.SelectedImageIndex=3;
 | 
						|
				bar.DockLine=m_DotNetBar.Bars.Count;
 | 
						|
				m_DotNetBar.Bars.Add(bar);
 | 
						|
				if(objItem.Name=="createtaskpane")
 | 
						|
					bar.DockSide=eDockSide.Right;
 | 
						|
				else if(objItem.Name=="createstatusbar")
 | 
						|
					bar.DockSide=eDockSide.Bottom;
 | 
						|
				else
 | 
						|
					bar.DockSide=eDockSide.Top;
 | 
						|
				
 | 
						|
				if(objItem.Name=="createstatusbar")
 | 
						|
				{
 | 
						|
					LabelItem status=CreateObject(typeof(LabelItem)) as LabelItem;
 | 
						|
					status.Name="label"+status.Id.ToString();
 | 
						|
					status.Text="Status Ready...";
 | 
						|
					status.BorderType=eBorderType.SingleLine;
 | 
						|
					status.Width=136;
 | 
						|
					bar.Items.Add(status);
 | 
						|
					bar.RecalcLayout();
 | 
						|
					TreeNode itemTreeNode=barNode.Nodes.Add(GetTreeItemText(status));
 | 
						|
					itemTreeNode.Tag=status;
 | 
						|
					itemTreeNode.ImageIndex=GetItemImageIndex(status);
 | 
						|
					itemTreeNode.SelectedImageIndex=itemTreeNode.ImageIndex;
 | 
						|
					itemTreeNode.EnsureVisible();
 | 
						|
 | 
						|
					barTree.SelectedNode=barNode;
 | 
						|
					barNode.EnsureVisible();
 | 
						|
				}
 | 
						|
				else
 | 
						|
				{
 | 
						|
					barTree.SelectedNode=barNode;
 | 
						|
					barNode.EnsureVisible();
 | 
						|
				}
 | 
						|
				return;
 | 
						|
			}
 | 
						|
			else if(objItem.Name=="createdockwindow")
 | 
						|
			{
 | 
						|
				m_DataChanged=true;
 | 
						|
				Bar bar=CreateObject(typeof(Bar)) as Bar;;
 | 
						|
				bar.Text="Dockable Window";
 | 
						|
				bar.Stretch=true;
 | 
						|
				bar.LayoutType=eLayoutType.DockContainer;
 | 
						|
				bar.GrabHandleStyle=eGrabHandleStyle.Caption;
 | 
						|
				bar.Name="dockwindow"+m_DotNetBar.Bars.Count.ToString();
 | 
						|
				bar.SetDesignMode(true);
 | 
						|
 | 
						|
				DockContainerItem dockItem=CreateObject(typeof(DockContainerItem)) as DockContainerItem;
 | 
						|
				dockItem.Name="item_"+dockItem.Id.ToString();
 | 
						|
				dockItem.Text="Dock Container";
 | 
						|
				bar.Items.Add(dockItem);
 | 
						|
 | 
						|
				TreeNode barNode=m_BarsNode.Nodes.Add(bar.Text);
 | 
						|
				barNode.Tag=bar;
 | 
						|
				barNode.ImageIndex=3;
 | 
						|
				barNode.SelectedImageIndex=3;
 | 
						|
				bar.DockLine=m_DotNetBar.Bars.Count;
 | 
						|
				m_DotNetBar.Bars.Add(bar);
 | 
						|
				bar.DockSide=eDockSide.Left;
 | 
						|
 | 
						|
				TreeNode itemTreeNode=barNode.Nodes.Add(GetTreeItemText(dockItem));
 | 
						|
				itemTreeNode.Tag=dockItem;
 | 
						|
				itemTreeNode.ImageIndex=GetItemImageIndex(dockItem);
 | 
						|
				itemTreeNode.SelectedImageIndex=itemTreeNode.ImageIndex;
 | 
						|
				itemTreeNode.EnsureVisible();
 | 
						|
 | 
						|
				barTree.SelectedNode=barNode;
 | 
						|
				barNode.EnsureVisible();
 | 
						|
				return;
 | 
						|
			}
 | 
						|
			else if(objItem.Name=="delselected")
 | 
						|
			{
 | 
						|
				if(barTree.SelectedNode==null)
 | 
						|
					return;
 | 
						|
 | 
						|
				m_DataChanged=true;
 | 
						|
 | 
						|
				if(barTree.SelectedNode.Nodes.Count>0)
 | 
						|
					if(MessageBox.Show(this,"Are you sure you want to delete selected item?","DotNetBar Editor",MessageBoxButtons.YesNo,MessageBoxIcon.Question)==DialogResult.No)
 | 
						|
						return;
 | 
						|
 | 
						|
				if(barTree.SelectedNode.Tag is BaseItem)
 | 
						|
				{
 | 
						|
					BaseItem item=barTree.SelectedNode.Tag as BaseItem;
 | 
						|
					Bar cont=item.ContainerControl as Bar;
 | 
						|
 | 
						|
					TreeNode topParentNode=barTree.SelectedNode;
 | 
						|
					while(topParentNode.Parent!=null)
 | 
						|
						topParentNode=topParentNode.Parent;
 | 
						|
					
 | 
						|
					if(item.Parent!=null)
 | 
						|
						item.Parent.SubItems.Remove(item);
 | 
						|
					else if(topParentNode==m_CategoriesNode)
 | 
						|
						m_DotNetBar.Items.Remove(item);
 | 
						|
					else if(barTree.SelectedNode.Parent==m_PopupsNode)
 | 
						|
						m_DotNetBar.ContextMenus.Remove(item);
 | 
						|
					
 | 
						|
					if(_barDesigner!=null)
 | 
						|
						_barDesigner.DestroyComponent(item);
 | 
						|
					else
 | 
						|
						item.Dispose();
 | 
						|
 | 
						|
					barTree.SelectedNode.Tag=null;
 | 
						|
					TreeNode parentNode=barTree.SelectedNode.Parent;
 | 
						|
					barTree.Nodes.Remove(barTree.SelectedNode);
 | 
						|
					// If it is last node under one of the categories remove parent too
 | 
						|
					if(parentNode!=null && parentNode.Parent==m_CategoriesNode && parentNode.Nodes.Count==0)
 | 
						|
						barTree.Nodes.Remove(parentNode);
 | 
						|
					if(cont!=null)
 | 
						|
						cont.RecalcLayout();
 | 
						|
					
 | 
						|
				}
 | 
						|
				else if(barTree.SelectedNode.Tag is Bar)
 | 
						|
				{
 | 
						|
					Bar bar=barTree.SelectedNode.Tag as Bar;
 | 
						|
 | 
						|
					m_DotNetBar.Bars.Remove(bar);
 | 
						|
 | 
						|
					barTree.SelectedNode.Tag=null;
 | 
						|
					barTree.Nodes.Remove(barTree.SelectedNode);
 | 
						|
				}
 | 
						|
				else if(m_CategoriesNode!=null && barTree.SelectedNode.Parent==m_CategoriesNode)
 | 
						|
				{
 | 
						|
					// Delete all items within this category
 | 
						|
					foreach(TreeNode node in barTree.SelectedNode.Nodes)
 | 
						|
					{
 | 
						|
						objItem=node.Tag as BaseItem;
 | 
						|
						if(objItem!=null)
 | 
						|
						{
 | 
						|
							m_DotNetBar.Items.Remove(objItem);
 | 
						|
							objItem.Dispose();
 | 
						|
						}
 | 
						|
						node.Tag=null;
 | 
						|
					}
 | 
						|
					barTree.SelectedNode.Remove();					
 | 
						|
				}
 | 
						|
 | 
						|
				return;
 | 
						|
			}
 | 
						|
			else if(objItem.Name=="open")
 | 
						|
			{
 | 
						|
				if(m_OpenFileDialog.ShowDialog()==DialogResult.OK && System.IO.File.Exists(m_OpenFileDialog.FileName))
 | 
						|
				{
 | 
						|
					m_DotNetBar.Bars.Owner.LoadDefinition(m_OpenFileDialog.FileName);
 | 
						|
					m_DefinitionFileName=m_OpenFileDialog.FileName;
 | 
						|
					RefreshView();
 | 
						|
					m_DataChanged=true;
 | 
						|
				}
 | 
						|
				return;
 | 
						|
			}
 | 
						|
			else if(objItem.Name=="save" && m_DefinitionFileName!="")
 | 
						|
			{
 | 
						|
				m_DotNetBar.Bars.Owner.SaveDefinition(m_DefinitionFileName);
 | 
						|
				return;
 | 
						|
			}
 | 
						|
			else if(objItem.Name=="saveas" || objItem.Name=="save" && m_DefinitionFileName=="")
 | 
						|
			{
 | 
						|
				if(m_SaveFileDialog.ShowDialog()==DialogResult.OK)
 | 
						|
				{
 | 
						|
					m_DotNetBar.Bars.Owner.SaveDefinition(m_SaveFileDialog.FileName);
 | 
						|
					m_DefinitionFileName=m_SaveFileDialog.FileName;
 | 
						|
				}
 | 
						|
				return;
 | 
						|
			}
 | 
						|
			else if(objItem.Name=="savebaras")
 | 
						|
			{
 | 
						|
				// Save currently selected bar
 | 
						|
				if(barTree.SelectedNode==null || !(barTree.SelectedNode.Tag is Bar))
 | 
						|
					return;
 | 
						|
				
 | 
						|
				Bar bar=barTree.SelectedNode.Tag as Bar;
 | 
						|
				string stitle=m_SaveFileDialog.Title;
 | 
						|
				string defaultExt=m_SaveFileDialog.DefaultExt;
 | 
						|
				string fileName=m_SaveFileDialog.FileName;
 | 
						|
				string filter=m_SaveFileDialog.Filter;
 | 
						|
 | 
						|
				m_SaveFileDialog.Title="Save Bar Definition";
 | 
						|
				m_SaveFileDialog.DefaultExt = "xml";
 | 
						|
				m_SaveFileDialog.FileName = (bar.Name!=""?bar.Name:"MyBar");
 | 
						|
				m_SaveFileDialog.Filter = "DotNetBar Bar Files (*.xml)|*.xml|All Files (*.*)|*.*";
 | 
						|
				
 | 
						|
				if(m_SaveFileDialog.ShowDialog()==DialogResult.OK)
 | 
						|
				{
 | 
						|
					bar.SaveDefinition(m_SaveFileDialog.FileName);
 | 
						|
				}
 | 
						|
 | 
						|
				m_SaveFileDialog.Title=stitle;
 | 
						|
				m_SaveFileDialog.DefaultExt=defaultExt;
 | 
						|
				m_SaveFileDialog.FileName=fileName;
 | 
						|
				m_SaveFileDialog.Filter=filter;
 | 
						|
 | 
						|
				return;
 | 
						|
			}
 | 
						|
			else if(objItem.Name=="loadbar")
 | 
						|
			{
 | 
						|
				string defaultExt=m_OpenFileDialog.DefaultExt;
 | 
						|
				string filter=m_OpenFileDialog.Filter;
 | 
						|
				m_OpenFileDialog.DefaultExt="xml";
 | 
						|
				m_OpenFileDialog.Filter = "DotNetBar Bar Files (*.xml)|*.xml|All Files (*.*)|*.*";
 | 
						|
				if(m_OpenFileDialog.ShowDialog()==DialogResult.OK && System.IO.File.Exists(m_OpenFileDialog.FileName))
 | 
						|
				{
 | 
						|
					Bar bar=new Bar();
 | 
						|
					try
 | 
						|
					{
 | 
						|
						bar.LoadDefinition(m_OpenFileDialog.FileName);
 | 
						|
					}
 | 
						|
					catch(Exception ex)
 | 
						|
					{
 | 
						|
						MessageBox.Show("File '"+m_OpenFileDialog.FileName+"' does not appear to be valid Bar file.\n\rException has been generated while loading: "+ex.Source+": "+ex.Message+"\n\r"+ex.StackTrace);
 | 
						|
						return;
 | 
						|
					}
 | 
						|
					bar.Dispose();
 | 
						|
					bar=new Bar();
 | 
						|
					m_DotNetBar.SuspendLayout=true;
 | 
						|
					m_DotNetBar.Bars.Add(bar);
 | 
						|
					bar.LoadDefinition(m_OpenFileDialog.FileName);
 | 
						|
					m_DotNetBar.SuspendLayout=false;
 | 
						|
				}
 | 
						|
				m_OpenFileDialog.DefaultExt=defaultExt;
 | 
						|
				m_OpenFileDialog.Filter=filter;
 | 
						|
			}
 | 
						|
			else if(objItem.Name=="moveleft" || objItem.Name=="moveright" || objItem.Name=="moveup" || objItem.Name=="movedown")
 | 
						|
				MoveSelectedItem(objItem.Name);
 | 
						|
			else if(objItem.Name=="addnewitems")
 | 
						|
				objItem.Expanded=true;
 | 
						|
			else if(objItem.Name=="synccat")
 | 
						|
			{
 | 
						|
				RescanCategories();
 | 
						|
				return;
 | 
						|
			}
 | 
						|
 | 
						|
			m_DataChanged=true;
 | 
						|
 | 
						|
			// Creation of new items only below this point
 | 
						|
			if(objItem.Name!="buttonitem" && objItem.Name!="textboxitem" && objItem.Name!="comboboxitem" && objItem.Name!="customizeitem" && objItem.Name!="labelitem" && objItem.Name!="mdiwindowlistitem" && objItem.Name!="controlcontaineritem" && objItem.Name!="dockcontaineritem" && objItem.Name!="progressbaritem")
 | 
						|
				return;
 | 
						|
			
 | 
						|
			// Item creation buttons only below!!!
 | 
						|
			if(objItem.Name=="buttonitem")
 | 
						|
			{
 | 
						|
				ButtonItem btn=CreateObject(typeof(ButtonItem)) as ButtonItem;
 | 
						|
				btn.Text="New Button";
 | 
						|
				newItem=btn;
 | 
						|
			}
 | 
						|
			else if(objItem.Name=="textboxitem")
 | 
						|
			{
 | 
						|
				TextBoxItem tb=CreateObject(typeof(TextBoxItem)) as TextBoxItem;
 | 
						|
				tb.Text="Text Box";
 | 
						|
				newItem=tb;
 | 
						|
			}
 | 
						|
			else if(objItem.Name=="comboboxitem")
 | 
						|
			{
 | 
						|
				ComboBoxItem cb=CreateObject(typeof(ComboBoxItem)) as ComboBoxItem;
 | 
						|
				cb.Text="Combo Box";
 | 
						|
				newItem=cb;
 | 
						|
			}
 | 
						|
			else if(objItem.Name=="customizeitem")
 | 
						|
			{
 | 
						|
				CustomizeItem cust=CreateObject(typeof(CustomizeItem)) as CustomizeItem;
 | 
						|
				newItem=cust;
 | 
						|
			}
 | 
						|
			else if(objItem.Name=="labelitem")
 | 
						|
			{
 | 
						|
				LabelItem li=CreateObject(typeof(LabelItem)) as LabelItem;
 | 
						|
				li.Text="Label";
 | 
						|
				li.BorderType=eBorderType.SingleLine;
 | 
						|
				newItem=li;
 | 
						|
			}
 | 
						|
			else if(objItem.Name=="mdiwindowlistitem")
 | 
						|
			{
 | 
						|
				MdiWindowListItem mdi=CreateObject(typeof(MdiWindowListItem)) as MdiWindowListItem;
 | 
						|
				mdi.Text="MDI Window List";
 | 
						|
				newItem=mdi;
 | 
						|
			}
 | 
						|
			else if(objItem.Name=="controlcontaineritem")
 | 
						|
			{
 | 
						|
				ControlContainerItem cci=CreateObject(typeof(ControlContainerItem)) as ControlContainerItem;
 | 
						|
				newItem=cci;
 | 
						|
			}
 | 
						|
			else if(objItem.Name=="dockcontaineritem")
 | 
						|
			{
 | 
						|
				DockContainerItem dci=CreateObject(typeof(DockContainerItem)) as DockContainerItem;
 | 
						|
				dci.Text="Dockable Window";
 | 
						|
				newItem=dci;
 | 
						|
			}
 | 
						|
			else if(objItem.Name=="progressbaritem")
 | 
						|
			{
 | 
						|
				ProgressBarItem pb=CreateObject(typeof(ProgressBarItem)) as ProgressBarItem;
 | 
						|
				pb.Text="Progress Bar";
 | 
						|
				pb.SetDesignMode(true);
 | 
						|
				pb.Style=m_DotNetBar.Style;
 | 
						|
				pb.ResetBackgroundStyle();
 | 
						|
				newItem=pb;
 | 
						|
			}
 | 
						|
 | 
						|
			if(_barDesigner==null)
 | 
						|
			{
 | 
						|
				string name="item_";
 | 
						|
				long id=newItem.Id;
 | 
						|
				if(m_DotNetBar!=null)
 | 
						|
				{
 | 
						|
					while(m_DotNetBar.GetItem(name+id,true)!=null)
 | 
						|
						id++;
 | 
						|
				}
 | 
						|
				else if(m_Bar!=null)
 | 
						|
				{
 | 
						|
					while(m_Bar.GetItem(name+id)!=null)
 | 
						|
						id++;
 | 
						|
				}
 | 
						|
				newItem.Name=name+id;
 | 
						|
			}
 | 
						|
 | 
						|
			if(barTree.SelectedNode.Tag is BaseItem)
 | 
						|
			{
 | 
						|
				newItem.Style=((BaseItem)barTree.SelectedNode.Tag).Style;
 | 
						|
				if(barTree.SelectedNode.Tag is PopupItem && newItem is PopupItem)
 | 
						|
					((PopupItem)newItem).PopupType=((PopupItem)barTree.SelectedNode.Tag).PopupType;
 | 
						|
			}
 | 
						|
			else if(barTree.SelectedNode.Tag is Bar)
 | 
						|
			{
 | 
						|
				newItem.Style=((Bar)barTree.SelectedNode.Tag).Style;
 | 
						|
				if(newItem is PopupItem && ((Bar)barTree.SelectedNode.Tag).MenuBar)
 | 
						|
					((PopupItem)newItem).PopupType=ePopupType.Menu;
 | 
						|
			}
 | 
						|
 | 
						|
			// We need to determine is new item being added to the Categories
 | 
						|
			TreeNode itemNode=barTree.SelectedNode;
 | 
						|
			while(itemNode.Parent!=null)
 | 
						|
				itemNode=itemNode.Parent;
 | 
						|
 | 
						|
			if(itemNode==m_CategoriesNode)
 | 
						|
			{
 | 
						|
				// Assign category to new item
 | 
						|
				if(barTree.SelectedNode==m_CategoriesNode)
 | 
						|
					newItem.Category="(Untitled)";
 | 
						|
				else if(barTree.SelectedNode.Parent==m_CategoriesNode)
 | 
						|
					newItem.Category=barTree.SelectedNode.Text;
 | 
						|
				else
 | 
						|
					newItem.Category=((BaseItem)barTree.SelectedNode.Tag).Category;
 | 
						|
 | 
						|
				m_DotNetBar.Items.Add(newItem);                
 | 
						|
				itemNode=CategorizeItem(newItem);
 | 
						|
			}
 | 
						|
			else if(itemNode==m_PopupsNode)
 | 
						|
			{
 | 
						|
				//if(barTree.SelectedNode.Tag is BaseItem && barTree.SelectedNode.Parent.Tag is BaseItem)
 | 
						|
				if(barTree.SelectedNode.Tag is BaseItem)
 | 
						|
				{
 | 
						|
					//itemNode=barTree.SelectedNode.Parent.Nodes.Add(GetTreeItemText(newItem));
 | 
						|
					itemNode=barTree.SelectedNode.Nodes.Add(GetTreeItemText(newItem));
 | 
						|
 | 
						|
					//BaseItem objParent=((BaseItem)barTree.SelectedNode.Tag).Parent;
 | 
						|
					BaseItem objParent=(BaseItem)barTree.SelectedNode.Tag;
 | 
						|
					int iPos=-1;
 | 
						|
					// New Items are always added before any system items which are by default kept at the end
 | 
						|
					if(objParent.SubItems.Count>0 && !newItem.SystemItem)
 | 
						|
					{
 | 
						|
						iPos=GetAppendPosition(objParent);
 | 
						|
					}
 | 
						|
					objParent.SubItems.Add(newItem,iPos);
 | 
						|
				}
 | 
						|
				else
 | 
						|
				{
 | 
						|
					itemNode=m_PopupsNode.Nodes.Add(GetTreeItemText(newItem));
 | 
						|
					m_DotNetBar.ContextMenus.Add(newItem);
 | 
						|
				}
 | 
						|
			}
 | 
						|
			else
 | 
						|
			{
 | 
						|
				Control cont=null;
 | 
						|
				if(barTree.SelectedNode.Tag is BaseItem)
 | 
						|
				{
 | 
						|
					//itemNode=barTree.SelectedNode.Parent.Nodes.Add(GetTreeItemText(newItem));
 | 
						|
					itemNode=barTree.SelectedNode.Nodes.Add(GetTreeItemText(newItem));
 | 
						|
					//BaseItem objParent=((BaseItem)barTree.SelectedNode.Tag).Parent;
 | 
						|
					BaseItem objParent=(BaseItem)barTree.SelectedNode.Tag;
 | 
						|
					int iPos=-1;
 | 
						|
					// New Items are always added before any system items which are by default kept at the end
 | 
						|
					if(objParent.SubItems.Count>0 && !newItem.SystemItem)
 | 
						|
					{
 | 
						|
						iPos=GetAppendPosition(objParent);
 | 
						|
					}
 | 
						|
					objParent.SubItems.Add(newItem,iPos);
 | 
						|
					cont=newItem.ContainerControl as Control;
 | 
						|
					if(cont==null)
 | 
						|
						((BaseItem)barTree.SelectedNode.Tag).Refresh();
 | 
						|
 | 
						|
				}
 | 
						|
				else if(barTree.SelectedNode.Tag is Bar)
 | 
						|
				{
 | 
						|
					itemNode=barTree.SelectedNode.Nodes.Add(GetTreeItemText(newItem));
 | 
						|
					Bar bar=(Bar)barTree.SelectedNode.Tag;
 | 
						|
					int iPos=-1;
 | 
						|
					// New Items are always added before any system items which are by default kept at the end
 | 
						|
					if(bar.Items.Count>0 && !newItem.SystemItem)
 | 
						|
					{
 | 
						|
						iPos=GetAppendPosition(bar.ItemsContainer);
 | 
						|
					}
 | 
						|
					bar.Items.Add(newItem,iPos);
 | 
						|
					cont=bar;
 | 
						|
				}
 | 
						|
				if(cont!=null && cont is Bar)
 | 
						|
					((Bar)cont).RecalcLayout();
 | 
						|
			}
 | 
						|
 | 
						|
			itemNode.Tag=newItem;
 | 
						|
			itemNode.ImageIndex=GetItemImageIndex(newItem);
 | 
						|
			itemNode.SelectedImageIndex=itemNode.ImageIndex;
 | 
						|
 | 
						|
			itemNode.EnsureVisible();
 | 
						|
			barTree.SelectedNode=itemNode;
 | 
						|
			//itemNode.BeginEdit();
 | 
						|
		}
 | 
						|
 | 
						|
		public void RescanCategories()
 | 
						|
		{
 | 
						|
			if(m_DotNetBar==null)
 | 
						|
				return;
 | 
						|
			if(m_DotNetBar.Bars.Count==0)
 | 
						|
				return;
 | 
						|
			m_DotNetBar.Items.Clear();
 | 
						|
			foreach(Bar bar in m_DotNetBar.Bars)
 | 
						|
			{
 | 
						|
				foreach(BaseItem item in bar.Items)
 | 
						|
					AutoCategorizeItem(item);
 | 
						|
			}
 | 
						|
			m_DataChanged=true;
 | 
						|
			RefreshView();
 | 
						|
		}
 | 
						|
 | 
						|
		private void AutoCategorizeItem(BaseItem item)
 | 
						|
		{
 | 
						|
			if(item.Category!="" && item.Name!="" && !m_DotNetBar.Items.Contains(item.Name))
 | 
						|
				m_DotNetBar.Items.Add(item.Copy());
 | 
						|
			foreach(BaseItem i in item.SubItems)
 | 
						|
				AutoCategorizeItem(i);
 | 
						|
		}
 | 
						|
 | 
						|
		private void MoveSelectedItem(string Direction)
 | 
						|
		{
 | 
						|
			if(barTree.SelectedNode==null)
 | 
						|
				return;
 | 
						|
			m_DataChanged=true;
 | 
						|
			BaseItem objItem=barTree.SelectedNode.Tag as BaseItem;
 | 
						|
			if(objItem==null)
 | 
						|
				return;
 | 
						|
 | 
						|
			bool bCategoryItem=false;
 | 
						|
			if(barTree.SelectedNode.Parent==m_CategoriesNode)
 | 
						|
				bCategoryItem=true;
 | 
						|
			
 | 
						|
			bool bPopupsItem=false;
 | 
						|
			if(barTree.SelectedNode.Parent==m_PopupsNode)
 | 
						|
				bPopupsItem=true;
 | 
						|
 | 
						|
 | 
						|
			TreeNode selNode=barTree.SelectedNode;
 | 
						|
			TreeNode parentNode=selNode.Parent;
 | 
						|
 | 
						|
			BaseItem objParent=objItem.Parent;
 | 
						|
 | 
						|
			int i=0;
 | 
						|
			if(objParent!=null)
 | 
						|
				i=objParent.SubItems.IndexOf(objItem);
 | 
						|
			else
 | 
						|
				i=selNode.Index;
 | 
						|
 | 
						|
			if(Direction=="moveup" && i>0)
 | 
						|
			{
 | 
						|
				if(objParent!=null)
 | 
						|
				{
 | 
						|
					objParent.SubItems.Remove(objItem);
 | 
						|
					objParent.SubItems.Add(objItem,i-1);
 | 
						|
					if(objParent.ContainerControl is Bar)
 | 
						|
						((Bar)objParent.ContainerControl).RecalcLayout();
 | 
						|
				}
 | 
						|
				
 | 
						|
				i=selNode.Index;
 | 
						|
				selNode.Remove();
 | 
						|
                parentNode.Nodes.Insert(i-1,selNode);
 | 
						|
				barTree.SelectedNode=selNode;
 | 
						|
				selNode.EnsureVisible();
 | 
						|
			}
 | 
						|
			else if(Direction=="moveright" && i>0)
 | 
						|
			{
 | 
						|
				BaseItem objNewParent=null;
 | 
						|
				
 | 
						|
				if(bCategoryItem)
 | 
						|
					m_DotNetBar.Items.Remove(objItem);
 | 
						|
				else if(bPopupsItem)
 | 
						|
					m_DotNetBar.ContextMenus.Remove(objItem);
 | 
						|
 | 
						|
				if(objParent!=null)
 | 
						|
				{
 | 
						|
					objNewParent=objParent.SubItems[i-1];
 | 
						|
					objParent.SubItems.Remove(objItem);
 | 
						|
					if(objParent.ContainerControl is Bar)
 | 
						|
						((Bar)objParent.ContainerControl).RecalcLayout();
 | 
						|
				}
 | 
						|
				else
 | 
						|
				{
 | 
						|
					objNewParent=selNode.PrevNode.Tag as BaseItem;
 | 
						|
				}
 | 
						|
				objNewParent.SubItems.Add(objItem,GetAppendPosition(objNewParent));
 | 
						|
				objNewParent.Refresh();
 | 
						|
				if(objNewParent.ContainerControl is Bar)
 | 
						|
					((Bar)objNewParent.ContainerControl).RecalcLayout();
 | 
						|
 | 
						|
				i=selNode.Index;
 | 
						|
				TreeNode newParent=selNode.PrevNode;
 | 
						|
				selNode.Remove();
 | 
						|
				newParent.Nodes.Add(selNode);
 | 
						|
				barTree.SelectedNode=selNode;
 | 
						|
				selNode.EnsureVisible();
 | 
						|
			}
 | 
						|
			else if(Direction=="movedown" && ((objParent!=null && i<objParent.SubItems.Count-1) || (objParent==null && selNode.Index<selNode.Parent.Nodes.Count-1)))
 | 
						|
			{
 | 
						|
				if(objParent!=null)
 | 
						|
				{
 | 
						|
					objParent.SubItems.Remove(objItem);
 | 
						|
					objParent.SubItems.Add(objItem,i+1);
 | 
						|
					if(objParent.ContainerControl is Bar)
 | 
						|
						((Bar)objParent.ContainerControl).RecalcLayout();
 | 
						|
				}
 | 
						|
 | 
						|
				i=selNode.Index;
 | 
						|
				selNode.Remove();
 | 
						|
				parentNode.Nodes.Insert(i+1,selNode);
 | 
						|
				barTree.SelectedNode=selNode;
 | 
						|
				selNode.EnsureVisible();
 | 
						|
			}
 | 
						|
			if(Direction=="moveleft" && objParent!=null && (!(objParent is GenericItemContainer) || !((GenericItemContainer)objParent).SystemItem))
 | 
						|
			{
 | 
						|
				BaseItem objNewParent=null;
 | 
						|
				objNewParent=objParent.Parent;
 | 
						|
				if(objNewParent!=null)
 | 
						|
				{
 | 
						|
					i=objNewParent.SubItems.IndexOf(objParent)+1;
 | 
						|
					objParent.SubItems.Remove(objItem);
 | 
						|
					if(objParent.ContainerControl is Bar)
 | 
						|
						((Bar)objParent.ContainerControl).RecalcLayout();
 | 
						|
					objNewParent.SubItems.Add(objItem,i);
 | 
						|
					if(objNewParent.ContainerControl is Bar)
 | 
						|
						((Bar)objNewParent.ContainerControl).RecalcLayout();
 | 
						|
				}
 | 
						|
				else
 | 
						|
				{
 | 
						|
					objParent.SubItems.Remove(objItem);
 | 
						|
					if(objParent.ContainerControl is Bar)
 | 
						|
						((Bar)objParent.ContainerControl).RecalcLayout();
 | 
						|
				}
 | 
						|
				
 | 
						|
				if(parentNode.Parent==m_CategoriesNode)
 | 
						|
					m_DotNetBar.Items.Add(objItem);
 | 
						|
				else if(parentNode.Parent==m_PopupsNode)
 | 
						|
					m_DotNetBar.ContextMenus.Add(objItem);
 | 
						|
 | 
						|
				selNode.Remove();
 | 
						|
				parentNode.Parent.Nodes.Insert(parentNode.Index+1,selNode);
 | 
						|
				barTree.SelectedNode=selNode;
 | 
						|
				selNode.EnsureVisible();
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		private int GetAppendPosition(BaseItem objParent)
 | 
						|
		{
 | 
						|
			int iPos=-1;
 | 
						|
			for(int i=objParent.SubItems.Count-1;i>=0;i--)
 | 
						|
			{
 | 
						|
				if(objParent.SubItems[i].SystemItem)
 | 
						|
					iPos=i;
 | 
						|
				else
 | 
						|
					break;
 | 
						|
			}
 | 
						|
			return iPos;
 | 
						|
		}
 | 
						|
 | 
						|
		private void OnPropertyValueChanged(object s, System.Windows.Forms.PropertyValueChangedEventArgs e)
 | 
						|
		{
 | 
						|
			m_DataChanged=true;
 | 
						|
			// If user changes the category of the item that is in categories we need to
 | 
						|
			// reflect that change and move item to the right category
 | 
						|
			TreeNode node=barTree.SelectedNode;
 | 
						|
			BaseItem item=node.Tag as BaseItem;
 | 
						|
 | 
						|
			if(e.ChangedItem.PropertyDescriptor.Name=="Category" && e.ChangedItem.Value!=e.OldValue)
 | 
						|
			{
 | 
						|
				if(node.Tag==null || !(node.Tag is BaseItem))
 | 
						|
					return;
 | 
						|
				while(node.Parent!=null)
 | 
						|
					node=node.Parent;
 | 
						|
				if(node!=m_CategoriesNode)
 | 
						|
					return;
 | 
						|
	            
 | 
						|
				node=barTree.SelectedNode;
 | 
						|
				BaseItem objItem=node.Tag as BaseItem;
 | 
						|
				node.Remove();
 | 
						|
				node=CategorizeItem(objItem);
 | 
						|
				node.ImageIndex=GetItemImageIndex(objItem);
 | 
						|
				node.SelectedImageIndex=node.ImageIndex;
 | 
						|
				AddSubItems(objItem,node);
 | 
						|
				node.EnsureVisible();
 | 
						|
				barTree.SelectedNode=node;
 | 
						|
			}
 | 
						|
			else if(e.ChangedItem.PropertyDescriptor.Name=="Name" && e.ChangedItem.Value!=e.OldValue && !m_ShowItemText)
 | 
						|
			{
 | 
						|
				node.Text=(string)e.ChangedItem.Value;
 | 
						|
			}
 | 
						|
			else if(e.ChangedItem.PropertyDescriptor.Name=="Text" && e.ChangedItem.Value!=e.OldValue && m_ShowItemText)
 | 
						|
			{
 | 
						|
				node.Text=(string)e.ChangedItem.Value;
 | 
						|
			}
 | 
						|
			else if(e.ChangedItem.PropertyDescriptor.Name=="DockLine" || e.ChangedItem.PropertyDescriptor.Name=="DockOffset")
 | 
						|
			{
 | 
						|
				Bar bar=node.Tag as Bar;
 | 
						|
				if(bar!=null)
 | 
						|
					bar.RecalcLayout();
 | 
						|
			}
 | 
						|
 | 
						|
			if(e.ChangedItem.PropertyDescriptor.Name=="Name" && m_DotNetBar!=null)
 | 
						|
			{
 | 
						|
				TreeNode parent=node;
 | 
						|
				while(parent.Parent!=null)
 | 
						|
					parent=parent.Parent;
 | 
						|
				if(parent==m_CategoriesNode)
 | 
						|
				{
 | 
						|
					if(m_DotNetBar.Items.Contains(e.ChangedItem.Value.ToString()))
 | 
						|
					{
 | 
						|
						item.Name=e.OldValue.ToString();
 | 
						|
						propertyGrid1.Refresh();
 | 
						|
						MessageBox.Show("Item with that name already exists.");
 | 
						|
					}
 | 
						|
					else
 | 
						|
					{
 | 
						|
						m_DotNetBar.Items.Remove(e.OldValue.ToString());
 | 
						|
						m_DotNetBar.Items.Add(item);						
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
 | 
						|
			if(item!=null)
 | 
						|
			{
 | 
						|
				Bar barContainer=item.ContainerControl as Bar;
 | 
						|
				if(barContainer!=null)
 | 
						|
					barContainer.RecalcLayout();
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		private TreeNode CategorizeItem(BaseItem newItem)
 | 
						|
		{
 | 
						|
			// Assign item to category
 | 
						|
			if(newItem.Category=="")
 | 
						|
				newItem.Category="(Untitled)";
 | 
						|
 | 
						|
			TreeNode parentNode=null;
 | 
						|
			if(m_catTable.ContainsKey(newItem.Category))
 | 
						|
				parentNode=m_catTable[newItem.Category] as TreeNode;
 | 
						|
			else
 | 
						|
			{
 | 
						|
				parentNode=m_CategoriesNode.Nodes.Add(newItem.Category);
 | 
						|
				parentNode.ImageIndex=5;
 | 
						|
				parentNode.SelectedImageIndex=5;
 | 
						|
				m_catTable.Add(newItem.Category,parentNode);
 | 
						|
			}
 | 
						|
			
 | 
						|
			TreeNode newNode=parentNode.Nodes.Add(GetTreeItemText(newItem));
 | 
						|
			newNode.ImageIndex=GetItemImageIndex(newItem);
 | 
						|
			newNode.SelectedImageIndex=newNode.ImageIndex;
 | 
						|
			newNode.Tag=newItem;
 | 
						|
			return newNode;
 | 
						|
		}
 | 
						|
 | 
						|
		private void CopyMoveToClick(object sender, System.EventArgs e)
 | 
						|
		{
 | 
						|
			BaseItem item=sender as BaseItem;
 | 
						|
			BaseItem itemSel=barTree.SelectedNode.Tag as BaseItem;
 | 
						|
			BaseItem itemOriginal=barTree.SelectedNode.Tag as BaseItem;
 | 
						|
 | 
						|
			bool bMove=(item.Parent.Name=="moveto");
 | 
						|
			if(!bMove)
 | 
						|
			{
 | 
						|
				itemSel=itemSel.Copy();
 | 
						|
				if((Control.ModifierKeys & Keys.Control)==Keys.Control)
 | 
						|
					itemSel.Name=itemOriginal.Name;
 | 
						|
				else
 | 
						|
					itemSel.Name="item_"+itemSel.Id;
 | 
						|
			}
 | 
						|
 | 
						|
			if((item.Tag is string && (string)item.Tag=="cat") || item.Name=="tocategories")
 | 
						|
			{
 | 
						|
				// To Categories
 | 
						|
				if(item.Name!="tocategories")
 | 
						|
					itemSel.Category=item.Text;
 | 
						|
				if(bMove)
 | 
						|
				{
 | 
						|
					if(itemSel.Parent!=null)
 | 
						|
						itemSel.Parent.SubItems.Remove(itemSel);
 | 
						|
					barTree.SelectedNode.Remove();
 | 
						|
				}
 | 
						|
				if(m_DotNetBar.Items.Contains(itemSel.Name))
 | 
						|
				{
 | 
						|
					string sDupName=itemSel.Name;
 | 
						|
					itemSel.Name="item_"+itemSel.Id;
 | 
						|
					MessageBox.Show("Item with name: '"+sDupName+"' already exists. Item that you are trying to move will be renamed.");
 | 
						|
				}
 | 
						|
				m_DotNetBar.Items.Add(itemSel);
 | 
						|
				barTree.SelectedNode=CategorizeItem(itemSel);
 | 
						|
				barTree.SelectedNode.EnsureVisible();
 | 
						|
			}
 | 
						|
			else if(item.Name=="topopups" || item.Tag is BaseItem)
 | 
						|
			{
 | 
						|
				if(bMove)
 | 
						|
				{
 | 
						|
					if(itemSel.Parent!=null)
 | 
						|
						itemSel.Parent.SubItems.Remove(itemSel);
 | 
						|
					barTree.SelectedNode.Remove();
 | 
						|
				}
 | 
						|
 | 
						|
				if(item.Name=="topopups")
 | 
						|
				{
 | 
						|
					TreeNode itemNode=m_PopupsNode.Nodes.Add(GetTreeItemText(itemSel));
 | 
						|
					itemNode.Tag=itemSel;
 | 
						|
					itemNode.ImageIndex=GetItemImageIndex(itemSel);
 | 
						|
					itemNode.SelectedImageIndex=itemNode.ImageIndex;
 | 
						|
					AddSubItems(itemSel,itemNode);
 | 
						|
					m_DotNetBar.ContextMenus.Add(itemSel);
 | 
						|
					itemNode.EnsureVisible();
 | 
						|
				}
 | 
						|
				else
 | 
						|
				{
 | 
						|
                    BaseItem objParent=item.Tag as BaseItem;
 | 
						|
					objParent.SubItems.Add(itemSel);
 | 
						|
					foreach(TreeNode node in m_PopupsNode.Nodes)
 | 
						|
					{
 | 
						|
						if(node.Tag==objParent)
 | 
						|
						{
 | 
						|
							TreeNode itemNode=node.Nodes.Add(GetTreeItemText(itemSel));
 | 
						|
							itemNode.Tag=itemSel;
 | 
						|
							itemNode.ImageIndex=GetItemImageIndex(itemSel);
 | 
						|
							itemNode.SelectedImageIndex=itemNode.ImageIndex;
 | 
						|
							AddSubItems(itemSel,itemNode);
 | 
						|
							itemNode.EnsureVisible();
 | 
						|
							break;
 | 
						|
						}
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
			else if(item.Tag is TreeNode)
 | 
						|
			{
 | 
						|
				// To Bar
 | 
						|
				TreeNode barNode=item.Tag as TreeNode;
 | 
						|
				Bar bar=barNode.Tag as Bar;
 | 
						|
				if(bMove)
 | 
						|
				{
 | 
						|
					if(itemSel.Parent!=null)
 | 
						|
						itemSel.Parent.SubItems.Remove(itemSel);
 | 
						|
					barTree.SelectedNode.Remove();
 | 
						|
				}
 | 
						|
 | 
						|
				bar.Items.Add(itemSel,GetAppendPosition(bar.ItemsContainer));
 | 
						|
				TreeNode itemNode=barNode.Nodes.Add(GetTreeItemText(itemSel));
 | 
						|
				itemNode.Tag=itemSel;
 | 
						|
				itemNode.ImageIndex=GetItemImageIndex(itemSel);
 | 
						|
				itemNode.SelectedImageIndex=itemNode.ImageIndex;
 | 
						|
				AddSubItems(itemSel,itemNode);
 | 
						|
				barTree.SelectedNode=itemNode;
 | 
						|
				barTree.SelectedNode.EnsureVisible();
 | 
						|
				bar.RecalcLayout();
 | 
						|
			}
 | 
						|
            
 | 
						|
			// Clear Copy To and Move To
 | 
						|
			item=barManager.Items["popup"];
 | 
						|
			item.SubItems["copyto"].SubItems.Clear();
 | 
						|
			item.SubItems["moveto"].SubItems.Clear();
 | 
						|
		}
 | 
						|
 | 
						|
		private void ItemEdited(object sender, System.Windows.Forms.NodeLabelEditEventArgs e)
 | 
						|
		{
 | 
						|
			if(e.CancelEdit)
 | 
						|
				return;
 | 
						|
 | 
						|
			BaseItem objItem=e.Node.Tag as BaseItem;
 | 
						|
			if(m_ShowItemText)
 | 
						|
				objItem.Text=e.Label;
 | 
						|
			else
 | 
						|
				objItem.Name=e.Label;
 | 
						|
			
 | 
						|
			propertyGrid1.Refresh();
 | 
						|
			m_DataChanged=true;
 | 
						|
		}
 | 
						|
 | 
						|
		private string GetTreeItemText(BaseItem objItem)
 | 
						|
		{
 | 
						|
			if(objItem==null)
 | 
						|
				return "";
 | 
						|
 | 
						|
			if(m_ShowItemText)
 | 
						|
				return objItem.Text;
 | 
						|
			else
 | 
						|
				return objItem.Name;
 | 
						|
		}
 | 
						|
 | 
						|
		private int GetItemImageIndex(BaseItem objItem)
 | 
						|
		{
 | 
						|
			int index=0;
 | 
						|
			if(objItem is ButtonItem)
 | 
						|
			{
 | 
						|
				index=7;
 | 
						|
			}
 | 
						|
			else if(objItem is ComboBoxItem)
 | 
						|
			{
 | 
						|
				index=8;
 | 
						|
			}
 | 
						|
			else if(objItem is TextBoxItem)
 | 
						|
			{
 | 
						|
				index=9;
 | 
						|
			}
 | 
						|
			else if(objItem is CustomizeItem)
 | 
						|
			{
 | 
						|
				index=10;
 | 
						|
			}
 | 
						|
			else if(objItem is LabelItem)
 | 
						|
			{
 | 
						|
				index=11;
 | 
						|
			}
 | 
						|
			return index;
 | 
						|
		}
 | 
						|
 | 
						|
		private void TreeKeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
 | 
						|
		{
 | 
						|
			if(e.KeyCode==Keys.F2 && barTree.SelectedNode!=null && barTree.LabelEdit)
 | 
						|
				barTree.SelectedNode.BeginEdit();
 | 
						|
		}
 | 
						|
 | 
						|
		private void GridViewMouseDown(object sender, EventArgs e)
 | 
						|
		{
 | 
						|
			if(propertyGrid1.SelectedGridItem==null)
 | 
						|
				return;
 | 
						|
			if(!(propertyGrid1.SelectedGridItem.PropertyDescriptor.PropertyType==typeof(System.Drawing.Image)))
 | 
						|
				return;
 | 
						|
            PopupItem popup=barManager.ContextMenus["resetimagepopup"] as PopupItem;
 | 
						|
            popup.PopupMenu(Control.MousePosition);		
 | 
						|
		}
 | 
						|
 | 
						|
		private void FormClosing(object sender, System.ComponentModel.CancelEventArgs e)
 | 
						|
		{
 | 
						|
			m_GridViewSubclass.ReleaseHandle();
 | 
						|
			m_GridViewSubclass=null;
 | 
						|
 | 
						|
			if(m_HtmlHelp!=null)
 | 
						|
				m_HtmlHelp.CloseHelpWindow();
 | 
						|
 | 
						|
			// ColorScheme property when changed is not detected, so try to fix it here...
 | 
						|
			if(m_DotNetBar!=null)
 | 
						|
			{
 | 
						|
				foreach(Bar bar in m_DotNetBar.Bars)
 | 
						|
				{
 | 
						|
					if(bar.ColorScheme._DesignTimeSchemeChanged)
 | 
						|
					{
 | 
						|
						m_DataChanged=true;
 | 
						|
						bar.ColorScheme._DesignTimeSchemeChanged=false;
 | 
						|
					}
 | 
						|
				}
 | 
						|
			}
 | 
						|
			else if(m_Bar!=null)
 | 
						|
			{
 | 
						|
				if(m_Bar.ColorScheme._DesignTimeSchemeChanged)
 | 
						|
				{
 | 
						|
					m_DataChanged=true;
 | 
						|
					m_Bar.ColorScheme._DesignTimeSchemeChanged=false;
 | 
						|
				}
 | 
						|
			}
 | 
						|
 | 
						|
 | 
						|
			// Save form position
 | 
						|
			if(this.WindowState!=FormWindowState.Minimized)
 | 
						|
			{
 | 
						|
				string s="";
 | 
						|
				if(this.WindowState==FormWindowState.Maximized)
 | 
						|
				{
 | 
						|
					s="1";
 | 
						|
				}
 | 
						|
				else
 | 
						|
				{
 | 
						|
					s=this.DesktopLocation.X+","+this.DesktopLocation.Y+","+this.Width+","+this.Height;
 | 
						|
				}
 | 
						|
				try
 | 
						|
				{
 | 
						|
					Microsoft.Win32.RegistryKey key=Microsoft.Win32.Registry.CurrentUser;
 | 
						|
					key=key.CreateSubKey("Software\\DevComponents\\DotNetBar");
 | 
						|
					key.SetValue("DesignerPosition",s);
 | 
						|
					// Save Panel size
 | 
						|
					key.SetValue("DesignerPanelSize",barTree.Width);
 | 
						|
					key.Close();
 | 
						|
				}
 | 
						|
				catch(Exception)
 | 
						|
				{
 | 
						|
				}
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		private class GridViewSubclass:NativeWindow
 | 
						|
		{
 | 
						|
			public event EventHandler OnRightMouseDown;
 | 
						|
			protected override void WndProc(ref Message m)
 | 
						|
			{
 | 
						|
				if(m.Msg==NativeFunctions.WM_CONTEXTMENU)
 | 
						|
				{
 | 
						|
					if(OnRightMouseDown!=null)
 | 
						|
						OnRightMouseDown(this,new EventArgs());
 | 
						|
					return;
 | 
						|
				}
 | 
						|
				base.WndProc(ref m);
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		public bool DataChanged
 | 
						|
		{
 | 
						|
			get { return m_DataChanged;}
 | 
						|
			set { m_DataChanged=value;}
 | 
						|
		}
 | 
						|
 | 
						|
		public DotNetBarManager FormBarManager
 | 
						|
		{
 | 
						|
			get
 | 
						|
			{
 | 
						|
				return barManager;
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		private void LoadResourceImages()
 | 
						|
		{
 | 
						|
			Image img=null;
 | 
						|
			try
 | 
						|
			{
 | 
						|
				m_BarImages.Images.Clear();
 | 
						|
				img=new Bitmap(typeof(DevComponents.DotNetBar.DotNetBarManager),"BarEditorImages.MoveItemLeft.bmp");
 | 
						|
				m_BarImages.Images.Add(img,Color.Magenta);
 | 
						|
				img=new Bitmap(typeof(DevComponents.DotNetBar.DotNetBarManager),"BarEditorImages.MoveItemRight.bmp");
 | 
						|
				m_BarImages.Images.Add(img,Color.Magenta);
 | 
						|
				img=new Bitmap(typeof(DevComponents.DotNetBar.DotNetBarManager),"BarEditorImages.MoveItemUp.bmp");
 | 
						|
				m_BarImages.Images.Add(img,Color.Magenta);
 | 
						|
				img=new Bitmap(typeof(DevComponents.DotNetBar.DotNetBarManager),"BarEditorImages.MoveItemDown.bmp");
 | 
						|
				m_BarImages.Images.Add(img,Color.Magenta);
 | 
						|
				img=new Bitmap(typeof(DevComponents.DotNetBar.DotNetBarManager),"BarEditorImages.FileOpen.bmp");
 | 
						|
				m_BarImages.Images.Add(img,Color.Magenta);
 | 
						|
				img=new Bitmap(typeof(DevComponents.DotNetBar.DotNetBarManager),"BarEditorImages.FileSave.bmp");
 | 
						|
				m_BarImages.Images.Add(img,Color.Magenta);
 | 
						|
				img=new Bitmap(typeof(DevComponents.DotNetBar.DotNetBarManager),"BarEditorImages.CreateItem.bmp");
 | 
						|
				m_BarImages.Images.Add(img,Color.Magenta);
 | 
						|
				img=new Bitmap(typeof(DevComponents.DotNetBar.DotNetBarManager),"BarEditorImages.DeleteItem.bmp");
 | 
						|
				m_BarImages.Images.Add(img,Color.Magenta);
 | 
						|
				img=new Bitmap(typeof(DevComponents.DotNetBar.DotNetBarManager),"BarEditorImages.RescanCategories.bmp");
 | 
						|
				m_BarImages.Images.Add(img,Color.Magenta);
 | 
						|
 | 
						|
				imageList.Images.Clear();
 | 
						|
				img=new Bitmap(typeof(DevComponents.DotNetBar.DotNetBarManager),"BarEditorImages.Item.bmp");
 | 
						|
				imageList.Images.Add(img,Color.Magenta);
 | 
						|
				img=new Bitmap(typeof(DevComponents.DotNetBar.DotNetBarManager),"BarEditorImages.Toolbar.bmp");
 | 
						|
				imageList.Images.Add(img,Color.Magenta);
 | 
						|
				img=new Bitmap(typeof(DevComponents.DotNetBar.DotNetBarManager),"BarEditorImages.Toolbars.bmp");
 | 
						|
				imageList.Images.Add(img,Color.Magenta);
 | 
						|
				img=new Bitmap(typeof(DevComponents.DotNetBar.DotNetBarManager),"BarEditorImages.Toolbar.bmp");
 | 
						|
				imageList.Images.Add(img,Color.Magenta);
 | 
						|
				img=new Bitmap(typeof(DevComponents.DotNetBar.DotNetBarManager),"BarEditorImages.Item.bmp");
 | 
						|
				imageList.Images.Add(img,Color.Magenta);
 | 
						|
				img=new Bitmap(typeof(DevComponents.DotNetBar.DotNetBarManager),"BarEditorImages.Folder.bmp");
 | 
						|
				imageList.Images.Add(img,Color.Magenta);
 | 
						|
				img=new Bitmap(typeof(DevComponents.DotNetBar.DotNetBarManager),"BarEditorImages.FolderOpen.bmp");
 | 
						|
				imageList.Images.Add(img,Color.Magenta);
 | 
						|
				img=new Bitmap(typeof(DevComponents.DotNetBar.DotNetBarManager),"BarEditorImages.ButtonItem.bmp");
 | 
						|
				imageList.Images.Add(img,Color.Magenta);
 | 
						|
				img=new Bitmap(typeof(DevComponents.DotNetBar.DotNetBarManager),"BarEditorImages.ComboItem.bmp");
 | 
						|
				imageList.Images.Add(img,Color.Magenta);
 | 
						|
				img=new Bitmap(typeof(DevComponents.DotNetBar.DotNetBarManager),"BarEditorImages.TextBoxItem.bmp");
 | 
						|
				imageList.Images.Add(img,Color.Magenta);
 | 
						|
				img=new Bitmap(typeof(DevComponents.DotNetBar.DotNetBarManager),"BarEditorImages.CustomizeItem.bmp");
 | 
						|
				imageList.Images.Add(img,Color.Magenta);
 | 
						|
				img=new Bitmap(typeof(DevComponents.DotNetBar.DotNetBarManager),"BarEditorImages.LableItem.bmp");
 | 
						|
				imageList.Images.Add(img,Color.Magenta);
 | 
						|
				img=new Bitmap(typeof(DevComponents.DotNetBar.DotNetBarManager),"BarEditorImages.PopupMenu.bmp");
 | 
						|
				imageList.Images.Add(img,Color.Magenta);
 | 
						|
                				
 | 
						|
			}
 | 
						|
			catch(Exception e)
 | 
						|
			{
 | 
						|
				MessageBox.Show("Could not load resource images. Exception was thrown: "+e.ToString());
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		private object CreateObject(Type type)
 | 
						|
		{
 | 
						|
			if(_barDesigner!=null)
 | 
						|
				return _barDesigner.CreateComponent(type);
 | 
						|
			else
 | 
						|
				return type.Assembly.CreateInstance(type.FullName);
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |