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);
 | |
| 		}
 | |
| 	}
 | |
| }
 |