using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; namespace DevComponents.DotNetBar.Design { /// /// Summary description for Form1. /// public class DotNetBarDesigner : System.Windows.Forms.Form { #region Private variables private IDesignerServices m_Designer=null; internal DevComponents.DotNetBar.NavigationPane navigationPane1; internal DevComponents.DotNetBar.NavigationPanePanel navigationPanePanel1; internal DevComponents.DotNetBar.NavigationPanePanel navigationPanePanel2; internal DevComponents.DotNetBar.ButtonItem buttonBars; internal DevComponents.DotNetBar.ButtonItem buttonContext; private DevComponents.DotNetBar.NavigationPanePanel navigationPanePanel3; private DevComponents.DotNetBar.ButtonItem buttonCategories; private ExpandableSplitter splitter1; private DevComponents.DotNetBar.PanelEx panelEx1; private ExpandableSplitter splitter2; private DevComponents.DotNetBar.DotNetBarManager dotNetBarManager1; private DevComponents.DotNetBar.DockSite barLeftDockSite; private DevComponents.DotNetBar.DockSite barRightDockSite; private DevComponents.DotNetBar.DockSite barTopDockSite; private DevComponents.DotNetBar.DockSite barBottomDockSite; private System.Windows.Forms.PropertyGrid propertyBars; private System.Windows.Forms.TreeView treeBars; private DevComponents.DotNetBar.Design.DefinitionPreviewControl definitionPreview; private System.ComponentModel.IContainer components; private System.Windows.Forms.PropertyGrid propertyCategories; private DevComponents.DotNetBar.ExpandableSplitter splitterOffice20031; private System.Windows.Forms.TreeView treeCategories; private bool m_DataChanged=false; private bool m_ShowItemText=true; private System.Windows.Forms.OpenFileDialog m_OpenFileDialog; private string m_DefinitionFileName=""; private System.Windows.Forms.ImageList imageList; private System.Windows.Forms.PropertyGrid propertyMenus; private DevComponents.DotNetBar.ExpandableSplitter splitterOffice20032; private System.Windows.Forms.TreeView treeMenus; private Bar m_DesignBar=null; private Hashtable m_catTable; private HTMLHelp m_HtmlHelp=null; private GridViewSubclass m_GridSubclassBars=null; private GridViewSubclass m_GridSubclassMenus=null; private GridViewSubclass m_GridSubclassCategories=null; private System.Windows.Forms.SaveFileDialog m_SaveFileDialog; private DotNetBarManager m_ExternalManager=null; private Bar m_ExternalBar=null; private Timer m_LoadTimer=null; private bool m_Loaded=false; private ArrayList m_CommandLinksDeleted = new ArrayList(); private ArrayList m_CommandLinksCreated = new ArrayList(); #endregion #region Command Constants const string NEW_BUTTON="buttonNewButton"; const string NEW_LABEL="buttonNewLabel"; const string NEW_COLORPICKER="buttonNewColorPicker"; const string NEW_COMBO="buttonNewCombo"; const string NEW_PROGRESS="buttonNewProgress"; const string NEW_TEXTBOX="buttonNewTextBox"; const string NEW_DOCK="buttonNewDock"; const string NEW_CUSTOMIZE="buttonNewCustomize"; const string NEW_MDILIST="buttonNewMdiList"; const string NEW_CONTROLCONT="buttonNewControlCont"; const string SAVE_CLOSE = "buttonSaveAndClose"; const string CONTEXT_MENU="popup"; const string MOVE_TO="buttonMoveTo"; const string COPY_TO="buttonCopyTo"; const string MOVE_LEFT="buttonMoveLeft"; const string MOVE_RIGHT="buttonMoveRight"; const string MOVE_UP="buttonMoveUp"; const string MOVE_DOWN="buttonMoveDown"; const string DELETE="buttonDelete"; const string SAVE_DEFINITION_AS="buttonSaveAs"; const string SAVE_DEFINITION="buttonSave"; const string SAVE_BAR_AS="buttonSaveBar"; const string LOAD_BAR="buttonLoadBar"; const string SYNC_CATEGORIES="buttonSyncCategories"; const string TO_CATEGORIES="buttonToCategories"; const string TO_CONTEXTMENUS="buttonToContextMenus"; const string RESET_IMAGE_POPUP="resetimagepopup"; const string RESET_IMAGE="buttonResetImage"; const string NEW_DEFINITION="buttonNewDefinition"; const string OPEN_DEFINITION="buttonOpen"; const string CLOSE_DESIGNER="buttonClose"; const string SHOW_HELP="buttonHelpContents"; const string SHOW_HELP_SEARCH="buttonHelpSearch"; const string NEW_TOOLBAR="buttonNewToolbar"; const string NEW_MENUBAR="buttonNewMenubar"; const string NEW_STATUSBAR="buttonNewStatusbar"; const string NEW_DOCKBAR="buttonNewDockWindow"; const string NEW_TASKBAR="buttonNewTaskPane"; const string CREATE_BARS_PARENT="buttonCreateBar"; #endregion #region Constructor, load, unload and dispose public DotNetBarDesigner() { // // Required for Windows Form Designer support // InitializeComponent(); InitializeInternal(); this.GetDesignManager().MouseDown += new MouseEventHandler(PreviewManagerMouseDown); } private void PreviewManagerMouseDown(object sender, MouseEventArgs e) { if (sender is BaseItem) { if (!((BaseItem)sender).SystemItem && !(sender is GenericItemContainer && ((GenericItemContainer)sender).SystemContainer)) SelectObjectInPropertyGrid(sender); else { Bar bar = ((BaseItem)sender).ContainerControl as Bar; if (bar != null) SelectObjectInPropertyGrid(bar); else SelectObjectInPropertyGrid(null); } } else if (sender is Bar) SelectObjectInPropertyGrid(sender); else SelectObjectInPropertyGrid(null); } private void InitializeInternal() { propertyBars.CommandsVisibleIfAvailable=false; propertyMenus.CommandsVisibleIfAvailable=false; propertyCategories.CommandsVisibleIfAvailable=false; m_catTable=new Hashtable(20); m_GridSubclassBars=new GridViewSubclass(); m_GridSubclassBars.ParentGrid=propertyBars; m_GridSubclassBars.OnRightMouseDown+=new EventHandler(this.GridViewMouseDown); m_GridSubclassMenus=new GridViewSubclass(); m_GridSubclassMenus.ParentGrid=propertyMenus; m_GridSubclassMenus.OnRightMouseDown+=new EventHandler(this.GridViewMouseDown); m_GridSubclassCategories=new GridViewSubclass(); m_GridSubclassCategories.ParentGrid=propertyCategories; m_GridSubclassCategories.OnRightMouseDown+=new EventHandler(this.GridViewMouseDown); foreach(Control ctrl in propertyBars.Controls) { if(ctrl.GetType().ToString().IndexOf("PropertyGridView")>=0) { m_GridSubclassBars.AssignHandle(ctrl.Handle); break; } } foreach(Control ctrl in propertyMenus.Controls) { if(ctrl.GetType().ToString().IndexOf("PropertyGridView")>=0) { m_GridSubclassMenus.AssignHandle(ctrl.Handle); break; } } foreach(Control ctrl in propertyCategories.Controls) { if(ctrl.GetType().ToString().IndexOf("PropertyGridView")>=0) { m_GridSubclassCategories.AssignHandle(ctrl.Handle); break; } } } private void DotNetBarDesigner_Load(object sender, System.EventArgs e) { dotNetBarManager1.Style = eDotNetBarStyle.Office2003; try { Microsoft.Win32.RegistryKey key=Microsoft.Win32.Registry.LocalMachine; string helpfile=""; try { if(key!=null) key=key.OpenSubKey("Software\\DevComponents\\DotNetBar"); if(key!=null) helpfile=key.GetValue("InstallationFolder","").ToString(); } finally{if(key!=null) key.Close();} if(helpfile!="") { 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) { } LoadFormLayout(); SetupProperties(); this.RefreshView(); SetupToolbars(); if(m_LoadTimer!=null) m_LoadTimer.Enabled=true; m_Loaded=true; } private void CheckColorSchemeDataChanged() { if(m_DataChanged) return; if(this.GetDesignManager()!=null) { foreach(Bar bar in this.GetDesignManager().Bars) { if(bar.ColorScheme!=null && bar.ColorScheme.SchemeChanged) { m_DataChanged=true; break; } } } else if(this.GetDesignBar()!=null) { if(this.GetDesignBar().ColorScheme!=null && this.GetDesignBar().ColorScheme.SchemeChanged) m_DataChanged=true; } } private void DotNetBarDesigner_Closing(object sender, System.ComponentModel.CancelEventArgs e) { CheckColorSchemeDataChanged(); if(m_DataChanged) { DialogResult result=DialogResult.No; if(m_ExternalManager!=null) { result=MessageBox.Show("Definition has changed. Would you like to keep changes?","DotNetBar Designer",MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question,MessageBoxDefaultButton.Button1); } else if(m_ExternalBar==null) { // Stand-alone editing result=MessageBox.Show("Definition has changed. Would you like to save changes?","DotNetBar Desinger",MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question,MessageBoxDefaultButton.Button1); } if(result==DialogResult.Cancel) { e.Cancel=true; return; } if(result==DialogResult.Yes) { if(m_ExternalManager!=null) m_ExternalManager.Definition=this.GetDesignManager().Definition; else { if(SaveDefinition(false)==DialogResult.Cancel) { e.Cancel=true; return; } } this.DialogResult=DialogResult.Yes; } else this.DialogResult=DialogResult.No; } SaveFormLayout(); } private void DotNetBarDesigner_Closed(object sender, EventArgs e) { //ProcessCommandLinks((this.DialogResult == DialogResult.Yes)); } private void ProcessCommandLinks(bool saveDefinition) { //if (m_Designer == null) // return; //if (saveDefinition) //{ // // Delete removed CommandLinks when definition is saved // foreach (CommandLink link in m_CommandLinksDeleted) // { // link.Manager = null; // m_Designer.DestroyComponent(link); // } //} //else //{ // // Delete created CommandLinks when definition is saved // foreach (CommandLink link in m_CommandLinksCreated) // { // link.Manager = null; // m_Designer.DestroyComponent(link); // } //} } private void LoadFormLayout() { // 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("Designer2Position","").ToString(); if(s!="") { if(s=="1") { this.WindowState=FormWindowState.Maximized; } else { string[] arr=s.Split(','); if(arr.Length==4) { Rectangle r=new Rectangle(System.Xml.XmlConvert.ToInt32(arr[0]),System.Xml.XmlConvert.ToInt32(arr[1]),System.Xml.XmlConvert.ToInt32(arr[2]),System.Xml.XmlConvert.ToInt32(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("Designer2PanelSize","").ToString(); navigationPane1.Width=System.Xml.XmlConvert.ToInt32(s); s=key.GetValue("Designer2TreeHeight","").ToString(); treeBars.Height=System.Xml.XmlConvert.ToInt32(s); treeMenus.Height=System.Xml.XmlConvert.ToInt32(s); treeCategories.Height=System.Xml.XmlConvert.ToInt32(s); s=key.GetValue("Designer2PropSortBars","").ToString(); if(s=="1") propertyBars.PropertySort=PropertySort.Alphabetical; s=key.GetValue("Designer2PropSortCat","").ToString(); if(s=="1") propertyCategories.PropertySort=PropertySort.Alphabetical; s=key.GetValue("Designer2PropSortMenus","").ToString(); if(s=="1") propertyMenus.PropertySort=PropertySort.Alphabetical; } finally { key.Close(); } } } catch(Exception) { } } private void SaveFormLayout() { // 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("Designer2Position",s); // Save Panel size key.SetValue("Designer2PanelSize",navigationPane1.Width); key.SetValue("Designer2TreeHeight",treeBars.Height); key.SetValue("Designer2PropSortBars",(propertyBars.PropertySort==PropertySort.Alphabetical?"1":"0")); key.SetValue("Designer2PropSortCat",(propertyCategories.PropertySort==PropertySort.Alphabetical?"1":"0")); key.SetValue("Designer2PropSortMenus",(propertyMenus.PropertySort==PropertySort.Alphabetical?"1":"0")); key.Close(); } catch(Exception) { } } } /// /// Clean up any resources being used. /// protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } #endregion #region Preview Support private DotNetBarManager GetDesignManager() { if(m_ExternalBar!=null) return null; return definitionPreview.previewManager; } private Bar GetDesignBar() { return m_ExternalBar; } #endregion #region Categories Support public void RescanCategories() { DotNetBarManager manager=GetDesignManager(); if(manager==null) return; if(manager.Bars.Count==0) return; manager.Items.Clear(); treeCategories.Nodes.Clear(); foreach(Bar bar in manager.Bars) { foreach(BaseItem item in bar.Items) AutoCategorizeItem(item); } m_DataChanged=true; RefreshCategories(); } private void AutoCategorizeItem(BaseItem item) { DotNetBarManager manager=GetDesignManager(); if(item.Category!="" && item.Name!="" && !manager.Items.Contains(item.Name)) manager.Items.Add(item.Copy()); foreach(BaseItem i in item.SubItems) AutoCategorizeItem(i); } private void RefreshCategories() { DotNetBarManager manager=this.GetDesignManager(); if(manager==null) return; // Load nodes from items m_catTable.Clear(); foreach(DictionaryEntry o in manager.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); } } 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=treeCategories.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; } #endregion #region Bars Support private void RefreshBars() { treeBars.Nodes.Clear(); if(GetDesignBar()!=null) { try { Bar bar=this.GetDesignBar(); this.Cursor=Cursors.WaitCursor; TreeNode barNode=treeBars.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); } barNode.Expand(); } finally { this.Cursor=Cursors.Arrow; } return; } if(this.GetDesignManager()==null) return; this.Cursor=Cursors.WaitCursor; DotNetBarManager manager=this.GetDesignManager(); if(manager.TopDockSite==null && manager.BottomDockSite==null && manager.LeftDockSite==null && manager.RightDockSite==null) { // Context Menu editing ONLY } else { } foreach(Bar bar in manager.Bars) { DisplayTreeBar(bar); } this.Cursor=Cursors.Arrow; } private void DisplayTreeBar(Bar bar) { TreeNode barNode=treeBars.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); } } #endregion #region Context Menus Support private void RefreshContextMenus() { treeMenus.Nodes.Clear(); DotNetBarManager manager=this.GetDesignManager(); if(manager==null) return; this.Cursor=Cursors.WaitCursor; try { // Load all popups foreach(BaseItem objItem in manager.ContextMenus) { TreeNode itemNode=treeMenus.Nodes.Add(GetTreeItemText(objItem)); itemNode.Tag=objItem; itemNode.ImageIndex=GetItemImageIndex(objItem); itemNode.SelectedImageIndex=itemNode.ImageIndex; AddSubItems(objItem,itemNode); } } finally { this.Cursor=Cursors.Arrow; } } #endregion #region Item Tree Loading 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); } } 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 RefreshView() { this.RefreshBars(); this.RefreshContextMenus(); this.RefreshCategories(); propertyBars.SelectedObject=null; propertyCategories.SelectedObject=null; propertyMenus.SelectedObject=null; } private void SetupToolbars() { if(!dotNetBarManager1.IsDefinitionLoaded) return; bool bVisible=true; if(m_ExternalBar!=null) bVisible=false; dotNetBarManager1.GetItem(CREATE_BARS_PARENT,true).Visible=bVisible; dotNetBarManager1.GetItem(SYNC_CATEGORIES,true).Visible=bVisible; dotNetBarManager1.GetItem(NEW_DOCK,true).Visible=bVisible; dotNetBarManager1.GetItem(NEW_DEFINITION,true).Visible=bVisible; dotNetBarManager1.GetItem(OPEN_DEFINITION,true).Visible=bVisible; dotNetBarManager1.GetItem(SAVE_DEFINITION,true).Visible=bVisible; dotNetBarManager1.GetItem(SAVE_DEFINITION_AS,true).Visible=bVisible; dotNetBarManager1.GetItem(LOAD_BAR,true).Visible=bVisible; } private void OnExternalManagerChanged() { if(m_ExternalManager!=null) { if(!dotNetBarManager1.IsDefinitionLoaded) dotNetBarManager1.ForceDefinitionLoad(); this.GetDesignManager().Style=m_ExternalManager.Style; this.GetDesignManager().ThemeAware=m_ExternalManager.ThemeAware; this.GetDesignManager().UseGlobalColorScheme=m_ExternalManager.UseGlobalColorScheme; this.GetDesignManager().ColorScheme=m_ExternalManager.ColorScheme; this.GetDesignManager().ShowCustomizeContextMenu=m_ExternalManager.ShowCustomizeContextMenu; this.GetDesignManager().ShowResetButton=m_ExternalManager.ShowResetButton; this.GetDesignManager().ShowToolTips=m_ExternalManager.ShowToolTips; this.GetDesignManager().Images=m_ExternalManager.Images; this.GetDesignManager().ImagesLarge=m_ExternalManager.ImagesLarge; this.GetDesignManager().ImagesMedium=m_ExternalManager.ImagesMedium; if(this.Visible || !this.HasFloatingBars(m_ExternalManager)) this.GetDesignManager().Definition=m_ExternalManager.Definition; else this.CreateLoadTimer(); } SetupNavigationPane(); SetupProperties(); m_DataChanged=false; } private void CreateLoadTimer() { m_LoadTimer=new Timer(); m_LoadTimer.Enabled=false; m_LoadTimer.Interval=100; m_LoadTimer.Tick+=new EventHandler(LoadTimerTick); if(m_Loaded) m_LoadTimer.Enabled=true; } private void LoadTimerTick(object sender, EventArgs e) { if(m_Loaded) { m_LoadTimer.Enabled=false; this.GetDesignManager().Definition=m_ExternalManager.Definition; m_LoadTimer.Dispose(); m_LoadTimer=null; m_DataChanged=false; this.RefreshView(); } } private bool HasFloatingBars(DotNetBarManager manager) { bool bRet=false; foreach(Bar bar in manager.Bars) { if(bar.DockSide==eDockSide.None && !bar.AutoHide) { bRet=true; break; } } return bRet; } private void OnExternalBarChanged() { if(m_ExternalBar!=null) { DotNetBarManager manager=definitionPreview.previewManager; manager.SuspendLayout=true; manager.Bars.ClearNonDocumentBars(); manager.Items.Clear(); manager.ContextMenus.Clear(); manager.Images=m_ExternalBar.Images; manager.ImagesLarge=m_ExternalBar.ImagesLarge; manager.ImagesMedium=m_ExternalBar.ImagesMedium; manager.SuspendLayout=false; manager.Bars.Add(new Bar(m_ExternalBar.Text)); manager.Bars[0].DockSide=eDockSide.Top; m_DesignBar=manager.Bars[0]; RefreshDesignBar(); } else { m_DesignBar=null; } SetupNavigationPane(); SetupProperties(); m_DataChanged=false; } private void RefreshDesignBar() { if(m_DesignBar!=null && m_ExternalBar!=null) { m_DesignBar.Definition=m_ExternalBar.Definition; m_DesignBar.DockSide=eDockSide.Top; } } private void SetupNavigationPane() { if(m_ExternalBar!=null) { buttonContext.Visible=false; buttonCategories.Visible=false; buttonBars.Checked=true; } else { if(m_ExternalManager.TopDockSite==null && m_ExternalManager.BottomDockSite==null && m_ExternalManager.LeftDockSite==null && m_ExternalManager.RightDockSite==null) { // Manager provides popups only buttonContext.Visible=true; buttonContext.Checked=true; buttonCategories.Visible=false; buttonBars.Visible=false; } else { buttonContext.Visible=true; buttonCategories.Visible=true; buttonBars.Checked=true; } } navigationPane1.RecalcLayout(); } private void SetupProperties() { if(m_ExternalBar!=null) { propertyBars.BrowsableAttributes=new AttributeCollection(new Attribute[] {BrowsableAttribute.Yes}); propertyMenus.BrowsableAttributes=new AttributeCollection(new Attribute[] {BrowsableAttribute.Yes}); propertyCategories.BrowsableAttributes=new AttributeCollection(new Attribute[] {BrowsableAttribute.Yes}); } else { propertyBars.BrowsableAttributes = new AttributeCollection(new Attribute[] { DevCoBrowsable.Yes }); propertyMenus.BrowsableAttributes = new AttributeCollection(new Attribute[] { DevCoBrowsable.Yes }); propertyCategories.BrowsableAttributes = new AttributeCollection(new Attribute[] { DevCoBrowsable.Yes }); } } #endregion #region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// private void InitializeComponent() { this.components = new System.ComponentModel.Container(); System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(DotNetBarDesigner)); this.navigationPane1 = new DevComponents.DotNetBar.NavigationPane(); this.navigationPanePanel1 = new DevComponents.DotNetBar.NavigationPanePanel(); this.propertyBars = new System.Windows.Forms.PropertyGrid(); this.splitter1 = new DevComponents.DotNetBar.ExpandableSplitter(); this.treeBars = new System.Windows.Forms.TreeView(); this.imageList = new System.Windows.Forms.ImageList(this.components); this.buttonBars = new DevComponents.DotNetBar.ButtonItem(); this.navigationPanePanel3 = new DevComponents.DotNetBar.NavigationPanePanel(); this.propertyCategories = new System.Windows.Forms.PropertyGrid(); this.splitterOffice20031 = new DevComponents.DotNetBar.ExpandableSplitter(); this.treeCategories = new System.Windows.Forms.TreeView(); this.buttonCategories = new DevComponents.DotNetBar.ButtonItem(); this.navigationPanePanel2 = new DevComponents.DotNetBar.NavigationPanePanel(); this.propertyMenus = new System.Windows.Forms.PropertyGrid(); this.splitterOffice20032 = new DevComponents.DotNetBar.ExpandableSplitter(); this.treeMenus = new System.Windows.Forms.TreeView(); this.buttonContext = new DevComponents.DotNetBar.ButtonItem(); this.panelEx1 = new DevComponents.DotNetBar.PanelEx(); this.definitionPreview = new DevComponents.DotNetBar.Design.DefinitionPreviewControl(); this.splitter2 = new DevComponents.DotNetBar.ExpandableSplitter(); #if !TRIAL this.dotNetBarManager1 = new DevComponents.DotNetBar.DotNetBarManager(this.components,true); #else this.dotNetBarManager1 = new DevComponents.DotNetBar.DotNetBarManager(this.components); #endif this.barBottomDockSite = new DevComponents.DotNetBar.DockSite(); 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.navigationPane1.SuspendLayout(); this.navigationPanePanel1.SuspendLayout(); this.navigationPanePanel3.SuspendLayout(); this.navigationPanePanel2.SuspendLayout(); this.SuspendLayout(); // // navigationPane1 // this.navigationPane1.ConfigureAddRemoveVisible = false; this.navigationPane1.ConfigureNavOptionsVisible = false; this.navigationPane1.Controls.AddRange(new System.Windows.Forms.Control[] { this.navigationPanePanel1, this.navigationPanePanel3, this.navigationPanePanel2, this.navigationPane1.TitlePanel}); this.navigationPane1.Dock = System.Windows.Forms.DockStyle.Left; this.navigationPane1.ItemPaddingBottom = 2; this.navigationPane1.ItemPaddingTop = 2; this.navigationPane1.Items.AddRange(new DevComponents.DotNetBar.BaseItem[] { this.buttonBars, this.buttonContext, this.buttonCategories}); this.navigationPane1.Location = new System.Drawing.Point(0, 48); this.navigationPane1.Name = "navigationPane1"; this.navigationPane1.NavigationBarHeight = 88; this.navigationPane1.Size = new System.Drawing.Size(304, 468); this.navigationPane1.TabIndex = 1; // // navigationPane1.TitlePanel // this.navigationPane1.TitlePanel.Dock = System.Windows.Forms.DockStyle.Top; this.navigationPane1.TitlePanel.Font = new System.Drawing.Font("Tahoma", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); this.navigationPane1.TitlePanel.Name = "panelEx1"; this.navigationPane1.TitlePanel.Size = new System.Drawing.Size(304, 24); this.navigationPane1.TitlePanel.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; this.navigationPane1.TitlePanel.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; this.navigationPane1.TitlePanel.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; this.navigationPane1.TitlePanel.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; this.navigationPane1.TitlePanel.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; this.navigationPane1.TitlePanel.Style.GradientAngle = 90; this.navigationPane1.TitlePanel.Style.MarginLeft = 4; this.navigationPane1.TitlePanel.TabIndex = 0; this.navigationPane1.TitlePanel.Text = "Bars"; this.navigationPane1.PanelChanging += new DevComponents.DotNetBar.PanelChangingEventHandler(this.navigationPane1_PanelChanging); // // navigationPanePanel1 // this.navigationPanePanel1.Controls.AddRange(new System.Windows.Forms.Control[] { this.propertyBars, this.splitter1, this.treeBars}); this.navigationPanePanel1.Dock = System.Windows.Forms.DockStyle.Fill; this.navigationPanePanel1.DockPadding.Left = 1; this.navigationPanePanel1.DockPadding.Right = 1; this.navigationPanePanel1.DockPadding.Top = 1; this.navigationPanePanel1.Location = new System.Drawing.Point(0, 24); this.navigationPanePanel1.Name = "navigationPanePanel1"; this.navigationPanePanel1.ParentItem = this.buttonBars; this.navigationPanePanel1.Size = new System.Drawing.Size(304, 356); this.navigationPanePanel1.Style.Alignment = System.Drawing.StringAlignment.Center; this.navigationPanePanel1.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground; this.navigationPanePanel1.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground2; this.navigationPanePanel1.Style.BackgroundImagePosition = DevComponents.DotNetBar.eBackgroundImagePosition.Tile; this.navigationPanePanel1.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; this.navigationPanePanel1.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; this.navigationPanePanel1.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; this.navigationPanePanel1.Style.GradientAngle = 90; this.navigationPanePanel1.TabIndex = 2; // // propertyBars // this.propertyBars.BackColor = System.Drawing.SystemColors.Control; this.propertyBars.CommandsBackColor = System.Drawing.SystemColors.Window; this.propertyBars.CommandsVisibleIfAvailable = true; this.propertyBars.Dock = System.Windows.Forms.DockStyle.Fill; this.propertyBars.HelpBackColor = System.Drawing.SystemColors.ControlLight; this.propertyBars.LargeButtons = false; this.propertyBars.LineColor = System.Drawing.SystemColors.ControlLight; this.propertyBars.Location = new System.Drawing.Point(1, 150); this.propertyBars.Name = "propertyBars"; this.propertyBars.Size = new System.Drawing.Size(302, 206); this.propertyBars.TabIndex = 3; this.propertyBars.Text = "propertyGrid1"; this.propertyBars.ViewBackColor = System.Drawing.SystemColors.Window; this.propertyBars.ViewForeColor = System.Drawing.SystemColors.WindowText; this.propertyBars.PropertyValueChanged += new System.Windows.Forms.PropertyValueChangedEventHandler(this.GridPropertyValueChanged); // // splitter1 // this.splitter1.Expandable = false; this.splitter1.Dock = System.Windows.Forms.DockStyle.Top; this.splitter1.Location = new System.Drawing.Point(1, 144); this.splitter1.Name = "splitter1"; this.splitter1.Size = new System.Drawing.Size(302, 6); this.splitter1.TabIndex = 4; this.splitter1.TabStop = false; // // treeBars // this.treeBars.BorderStyle = System.Windows.Forms.BorderStyle.None; this.treeBars.Dock = System.Windows.Forms.DockStyle.Top; this.treeBars.ImageList = this.imageList; this.treeBars.Location = new System.Drawing.Point(1, 1); this.treeBars.Name = "treeBars"; this.treeBars.Size = new System.Drawing.Size(302, 143); this.treeBars.TabIndex = 2; this.treeBars.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TreeKeyDown); this.treeBars.MouseDown += new System.Windows.Forms.MouseEventHandler(this.TreeMouseDown); this.treeBars.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.TreeAfterSelect); this.treeBars.BeforeSelect += new System.Windows.Forms.TreeViewCancelEventHandler(this.TreeBeforeSelect); this.treeBars.AfterLabelEdit += new System.Windows.Forms.NodeLabelEditEventHandler(this.TreeAfterLabelEdit); this.treeBars.BeforeCollapse += new System.Windows.Forms.TreeViewCancelEventHandler(this.TreeBeforeCollapse); this.treeBars.BeforeExpand += new System.Windows.Forms.TreeViewCancelEventHandler(this.TreeBeforeExpand); this.treeBars.HideSelection=false; // // imageList // this.imageList.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; this.imageList.ImageSize = new System.Drawing.Size(16, 16); this.imageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList.ImageStream"))); this.imageList.TransparentColor = System.Drawing.Color.Magenta; // // buttonBars // this.buttonBars.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText; this.buttonBars.Checked = true; this.buttonBars.Image = ((System.Drawing.Bitmap)(resources.GetObject("buttonBars.Image"))); this.buttonBars.Name = "buttonBars"; this.buttonBars.OptionGroup = "navBar"; this.buttonBars.Style = DevComponents.DotNetBar.eDotNetBarStyle.Office2003; this.buttonBars.Text = "Bars"; this.buttonBars.Tooltip = "View Toolbars, Menu bars and dockable windows"; // // navigationPanePanel3 // this.navigationPanePanel3.Controls.AddRange(new System.Windows.Forms.Control[] { this.propertyCategories, this.splitterOffice20031, this.treeCategories}); this.navigationPanePanel3.Dock = System.Windows.Forms.DockStyle.Fill; this.navigationPanePanel3.DockPadding.Left = 1; this.navigationPanePanel3.DockPadding.Right = 1; this.navigationPanePanel3.DockPadding.Top = 1; this.navigationPanePanel3.Location = new System.Drawing.Point(0, 24); this.navigationPanePanel3.Name = "navigationPanePanel3"; this.navigationPanePanel3.ParentItem = this.buttonCategories; this.navigationPanePanel3.Size = new System.Drawing.Size(304, 356); this.navigationPanePanel3.Style.Alignment = System.Drawing.StringAlignment.Center; this.navigationPanePanel3.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground; this.navigationPanePanel3.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground2; this.navigationPanePanel3.Style.BackgroundImagePosition = DevComponents.DotNetBar.eBackgroundImagePosition.Tile; this.navigationPanePanel3.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; this.navigationPanePanel3.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; this.navigationPanePanel3.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; this.navigationPanePanel3.Style.GradientAngle = 90; this.navigationPanePanel3.TabIndex = 4; // // propertyCategories // this.propertyCategories.BackColor = System.Drawing.SystemColors.Control; this.propertyCategories.CommandsBackColor = System.Drawing.SystemColors.Window; this.propertyCategories.CommandsVisibleIfAvailable = true; this.propertyCategories.Dock = System.Windows.Forms.DockStyle.Fill; this.propertyCategories.HelpBackColor = System.Drawing.SystemColors.ControlLight; this.propertyCategories.HelpVisible = false; this.propertyCategories.LargeButtons = false; this.propertyCategories.LineColor = System.Drawing.SystemColors.ControlLight; this.propertyCategories.Location = new System.Drawing.Point(1, 150); this.propertyCategories.Name = "propertyCategories"; this.propertyCategories.Size = new System.Drawing.Size(302, 206); this.propertyCategories.TabIndex = 6; this.propertyCategories.Text = "propertyGrid1"; this.propertyCategories.ToolbarVisible = false; this.propertyCategories.ViewBackColor = System.Drawing.SystemColors.Window; this.propertyCategories.ViewForeColor = System.Drawing.SystemColors.WindowText; this.propertyCategories.PropertyValueChanged += new System.Windows.Forms.PropertyValueChangedEventHandler(this.GridPropertyValueChanged); // // splitterOffice20031 // this.splitterOffice20031.Dock = System.Windows.Forms.DockStyle.Top; this.splitterOffice20031.Location = new System.Drawing.Point(1, 144); this.splitterOffice20031.Name = "splitterOffice20031"; this.splitterOffice20031.Size = new System.Drawing.Size(302, 6); this.splitterOffice20031.Expandable=false; this.splitterOffice20031.TabIndex = 7; this.splitterOffice20031.TabStop = false; // // treeCategories // this.treeCategories.BorderStyle = System.Windows.Forms.BorderStyle.None; this.treeCategories.Dock = System.Windows.Forms.DockStyle.Top; this.treeCategories.ImageList = this.imageList; this.treeCategories.Location = new System.Drawing.Point(1, 1); this.treeCategories.Name = "treeCategories"; this.treeCategories.Size = new System.Drawing.Size(302, 143); this.treeCategories.TabIndex = 5; this.treeCategories.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TreeKeyDown); this.treeCategories.MouseDown += new System.Windows.Forms.MouseEventHandler(this.TreeMouseDown); this.treeCategories.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.TreeAfterSelect); this.treeCategories.BeforeSelect += new System.Windows.Forms.TreeViewCancelEventHandler(this.TreeBeforeSelect); this.treeCategories.AfterLabelEdit += new System.Windows.Forms.NodeLabelEditEventHandler(this.TreeAfterLabelEdit); this.treeCategories.BeforeCollapse += new System.Windows.Forms.TreeViewCancelEventHandler(this.TreeBeforeCollapse); this.treeCategories.BeforeExpand += new System.Windows.Forms.TreeViewCancelEventHandler(this.TreeBeforeExpand); this.treeCategories.HideSelection=false; // // buttonCategories // this.buttonCategories.Image = ((System.Drawing.Bitmap)(resources.GetObject("buttonCategories.Image"))); this.buttonCategories.Name = "buttonCategories"; this.buttonCategories.OptionGroup = "navBar"; this.buttonCategories.Style = DevComponents.DotNetBar.eDotNetBarStyle.Office2003; this.buttonCategories.Text = "Categories"; this.buttonCategories.Tooltip = "View Command Categories"; // // navigationPanePanel2 // this.navigationPanePanel2.Controls.AddRange(new System.Windows.Forms.Control[] { this.propertyMenus, this.splitterOffice20032, this.treeMenus}); this.navigationPanePanel2.Dock = System.Windows.Forms.DockStyle.Fill; this.navigationPanePanel2.DockPadding.Left = 1; this.navigationPanePanel2.DockPadding.Right = 1; this.navigationPanePanel2.DockPadding.Top = 1; this.navigationPanePanel2.Location = new System.Drawing.Point(0, 24); this.navigationPanePanel2.Name = "navigationPanePanel2"; this.navigationPanePanel2.ParentItem = this.buttonContext; this.navigationPanePanel2.Size = new System.Drawing.Size(304, 356); this.navigationPanePanel2.Style.Alignment = System.Drawing.StringAlignment.Center; this.navigationPanePanel2.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground; this.navigationPanePanel2.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground2; this.navigationPanePanel2.Style.BackgroundImagePosition = DevComponents.DotNetBar.eBackgroundImagePosition.Tile; this.navigationPanePanel2.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; this.navigationPanePanel2.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; this.navigationPanePanel2.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; this.navigationPanePanel2.Style.GradientAngle = 90; this.navigationPanePanel2.TabIndex = 3; // // propertyMenus // this.propertyMenus.BackColor = System.Drawing.SystemColors.Control; this.propertyMenus.CommandsBackColor = System.Drawing.SystemColors.Window; this.propertyMenus.CommandsVisibleIfAvailable = true; this.propertyMenus.Dock = System.Windows.Forms.DockStyle.Fill; this.propertyMenus.HelpBackColor = System.Drawing.SystemColors.ControlLight; this.propertyMenus.HelpVisible = false; this.propertyMenus.LargeButtons = false; this.propertyMenus.LineColor = System.Drawing.SystemColors.ControlLight; this.propertyMenus.Location = new System.Drawing.Point(1, 150); this.propertyMenus.Name = "propertyMenus"; this.propertyMenus.Size = new System.Drawing.Size(302, 206); this.propertyMenus.TabIndex = 6; this.propertyMenus.Text = "propertyGrid1"; this.propertyMenus.ToolbarVisible = false; this.propertyMenus.ViewBackColor = System.Drawing.SystemColors.Window; this.propertyMenus.ViewForeColor = System.Drawing.SystemColors.WindowText; this.propertyMenus.PropertyValueChanged += new System.Windows.Forms.PropertyValueChangedEventHandler(this.GridPropertyValueChanged); // // splitterOffice20032 // this.splitterOffice20032.Expandable = false; this.splitterOffice20032.Dock = System.Windows.Forms.DockStyle.Top; this.splitterOffice20032.Location = new System.Drawing.Point(1, 144); this.splitterOffice20032.Name = "splitterOffice20032"; this.splitterOffice20032.Size = new System.Drawing.Size(302, 6); this.splitterOffice20032.TabIndex = 7; this.splitterOffice20032.TabStop = false; // // treeMenus // this.treeMenus.BorderStyle = System.Windows.Forms.BorderStyle.None; this.treeMenus.Dock = System.Windows.Forms.DockStyle.Top; this.treeMenus.ImageList = this.imageList; this.treeMenus.Location = new System.Drawing.Point(1, 1); this.treeMenus.Name = "treeMenus"; this.treeMenus.Size = new System.Drawing.Size(302, 143); this.treeMenus.TabIndex = 5; this.treeMenus.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TreeKeyDown); this.treeMenus.MouseDown += new System.Windows.Forms.MouseEventHandler(this.TreeMouseDown); this.treeMenus.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.TreeAfterSelect); this.treeMenus.BeforeSelect += new System.Windows.Forms.TreeViewCancelEventHandler(this.TreeBeforeSelect); this.treeMenus.AfterLabelEdit += new System.Windows.Forms.NodeLabelEditEventHandler(this.TreeAfterLabelEdit); this.treeMenus.BeforeCollapse += new System.Windows.Forms.TreeViewCancelEventHandler(this.TreeBeforeCollapse); this.treeMenus.BeforeExpand += new System.Windows.Forms.TreeViewCancelEventHandler(this.TreeBeforeExpand); this.treeMenus.HideSelection=false; // // buttonContext // this.buttonContext.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText; this.buttonContext.Image = ((System.Drawing.Bitmap)(resources.GetObject("buttonContext.Image"))); this.buttonContext.Name = "buttonContext"; this.buttonContext.OptionGroup = "navBar"; this.buttonContext.Style = DevComponents.DotNetBar.eDotNetBarStyle.Office2003; this.buttonContext.Text = "Context Menus"; this.buttonContext.Tooltip = "View Context Menus"; // // panelEx1 // this.panelEx1.Dock = System.Windows.Forms.DockStyle.Top; this.panelEx1.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); this.panelEx1.Location = new System.Drawing.Point(310, 48); this.panelEx1.Name = "panelEx1"; this.panelEx1.Size = new System.Drawing.Size(432, 25); this.panelEx1.Style.Alignment = System.Drawing.StringAlignment.Center; this.panelEx1.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; this.panelEx1.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; this.panelEx1.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; this.panelEx1.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; this.panelEx1.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; this.panelEx1.Style.GradientAngle = 90; this.panelEx1.TabIndex = 2; this.panelEx1.Text = "Layout Preview"; // // definitionPreview // this.definitionPreview.BackColor = System.Drawing.SystemColors.Control; this.definitionPreview.Dock = System.Windows.Forms.DockStyle.Fill; this.definitionPreview.Location = new System.Drawing.Point(310, 73); this.definitionPreview.Name = "definitionPreview"; this.definitionPreview.Size = new System.Drawing.Size(432, 443); this.definitionPreview.TabIndex = 3; this.definitionPreview.DataChanged+=new EventHandler(this.PreviewDataChanged); // // splitter2 // this.splitter2.Location = new System.Drawing.Point(304, 48); this.splitter2.Name = "splitter2"; this.splitter2.Size = new System.Drawing.Size(8, 468); this.splitter2.TabIndex = 4; this.splitter2.TabStop = false; this.splitter2.Dock=DockStyle.Left; this.splitter2.ExpandableControl=navigationPane1; // // dotNetBarManager1 // this.dotNetBarManager1.AutoDispatchShortcuts.Add(DevComponents.DotNetBar.eShortcut.F1); this.dotNetBarManager1.AutoDispatchShortcuts.Add(DevComponents.DotNetBar.eShortcut.CtrlC); this.dotNetBarManager1.AutoDispatchShortcuts.Add(DevComponents.DotNetBar.eShortcut.CtrlA); this.dotNetBarManager1.AutoDispatchShortcuts.Add(DevComponents.DotNetBar.eShortcut.CtrlV); this.dotNetBarManager1.AutoDispatchShortcuts.Add(DevComponents.DotNetBar.eShortcut.CtrlX); this.dotNetBarManager1.AutoDispatchShortcuts.Add(DevComponents.DotNetBar.eShortcut.CtrlZ); this.dotNetBarManager1.AutoDispatchShortcuts.Add(DevComponents.DotNetBar.eShortcut.Del); this.dotNetBarManager1.AutoDispatchShortcuts.Add(DevComponents.DotNetBar.eShortcut.Ins); this.dotNetBarManager1.BottomDockSite = this.barBottomDockSite; this.dotNetBarManager1.DefinitionName = "DotNetBarDesigner.dotNetBarManager1.xml"; this.dotNetBarManager1.LeftDockSite = this.barLeftDockSite; this.dotNetBarManager1.ParentForm = this; this.dotNetBarManager1.RightDockSite = this.barRightDockSite; this.dotNetBarManager1.Style = DevComponents.DotNetBar.eDotNetBarStyle.Office2003; this.dotNetBarManager1.TopDockSite = this.barTopDockSite; this.dotNetBarManager1.ItemClick += new System.EventHandler(this.dotNetBarManager1_ItemClick); this.dotNetBarManager1.UseHook=true; // // barBottomDockSite // this.barBottomDockSite.AccessibleRole = System.Windows.Forms.AccessibleRole.Window; this.barBottomDockSite.BackgroundImageAlpha = ((System.Byte)(255)); this.barBottomDockSite.Dock = System.Windows.Forms.DockStyle.Bottom; this.barBottomDockSite.Location = new System.Drawing.Point(0, 516); this.barBottomDockSite.Name = "barBottomDockSite"; this.barBottomDockSite.Size = new System.Drawing.Size(742, 0); this.barBottomDockSite.TabIndex = 8; this.barBottomDockSite.TabStop = false; // // barLeftDockSite // this.barLeftDockSite.AccessibleRole = System.Windows.Forms.AccessibleRole.Window; this.barLeftDockSite.BackgroundImageAlpha = ((System.Byte)(255)); this.barLeftDockSite.Dock = System.Windows.Forms.DockStyle.Left; this.barLeftDockSite.Location = new System.Drawing.Point(0, 48); this.barLeftDockSite.Name = "barLeftDockSite"; this.barLeftDockSite.Size = new System.Drawing.Size(0, 468); this.barLeftDockSite.TabIndex = 5; this.barLeftDockSite.TabStop = false; // // barRightDockSite // this.barRightDockSite.AccessibleRole = System.Windows.Forms.AccessibleRole.Window; this.barRightDockSite.BackgroundImageAlpha = ((System.Byte)(255)); this.barRightDockSite.Dock = System.Windows.Forms.DockStyle.Right; this.barRightDockSite.Location = new System.Drawing.Point(742, 48); this.barRightDockSite.Name = "barRightDockSite"; this.barRightDockSite.Size = new System.Drawing.Size(0, 468); this.barRightDockSite.TabIndex = 6; this.barRightDockSite.TabStop = false; // // barTopDockSite // this.barTopDockSite.AccessibleRole = System.Windows.Forms.AccessibleRole.Window; this.barTopDockSite.BackgroundImageAlpha = ((System.Byte)(255)); this.barTopDockSite.Dock = System.Windows.Forms.DockStyle.Top; this.barTopDockSite.Name = "barTopDockSite"; this.barTopDockSite.Size = new System.Drawing.Size(742, 48); this.barTopDockSite.TabIndex = 7; this.barTopDockSite.TabStop = false; // // m_OpenFileDialog // this.m_OpenFileDialog.Filter = "DotNetBar Files (*.dnb, *.xml)|*.dnb;*.xml|All Files (*.*)|*.*"; this.m_OpenFileDialog.ShowReadOnly = true; this.m_OpenFileDialog.Title = "Open DotNetBar Definition File"; // // m_SaveFileDialog // 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"; // // DotNetBarDesigner // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(742, 516); this.Controls.AddRange(new System.Windows.Forms.Control[] { this.definitionPreview, this.panelEx1, this.splitter2, this.navigationPane1, this.barLeftDockSite, this.barRightDockSite, this.barTopDockSite, this.barBottomDockSite}); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Name = "DotNetBarDesigner"; this.Text = "DotNetBar Designer"; this.Closing += new System.ComponentModel.CancelEventHandler(this.DotNetBarDesigner_Closing); this.Closed += new EventHandler(DotNetBarDesigner_Closed); this.Load += new System.EventHandler(this.DotNetBarDesigner_Load); this.navigationPane1.ResumeLayout(false); this.navigationPanePanel1.ResumeLayout(false); this.navigationPanePanel3.ResumeLayout(false); this.navigationPanePanel2.ResumeLayout(false); this.ResumeLayout(false); } #endregion #region Toolbar and menu bar support private void dotNetBarManager1_ItemClick(object sender, System.EventArgs e) { BaseItem item=sender as BaseItem; if(item==null) return; PropertyGrid grid=propertyBars; if(navigationPane1.SelectedPanel==navigationPanePanel2) grid=propertyMenus; if(navigationPane1.SelectedPanel==navigationPanePanel3) grid=propertyCategories; switch(item.Name) { case CREATE_BARS_PARENT: { if (!item.Expanded) item.Expanded = true; break; } case OPEN_DEFINITION: { if(m_OpenFileDialog.ShowDialog()==DialogResult.OK && System.IO.File.Exists(m_OpenFileDialog.FileName)) { DotNetBarManager manager=this.GetDesignManager(); manager.LoadDefinition(m_OpenFileDialog.FileName); m_DefinitionFileName=m_OpenFileDialog.FileName; SetupProperties(); RefreshView(); m_DataChanged=true; } break; } case RESET_IMAGE: { m_DataChanged=true; if(grid.SelectedGridItem!=null && (grid.SelectedGridItem.PropertyDescriptor.PropertyType==typeof(System.Drawing.Image) || grid.SelectedGridItem.PropertyDescriptor.PropertyType==typeof(System.Drawing.Icon))) { grid.SelectedGridItem.PropertyDescriptor.SetValue(grid.SelectedObject,null); } grid.Refresh(); break; } case CLOSE_DESIGNER: { this.DialogResult=DialogResult.OK; this.Close(); break; } case SHOW_HELP: { if(m_HtmlHelp!=null) m_HtmlHelp.ShowContents(); break; } case SHOW_HELP_SEARCH: { if(m_HtmlHelp!=null) m_HtmlHelp.ShowSearch(); break; } case NEW_TOOLBAR: case NEW_MENUBAR: case NEW_STATUSBAR: case NEW_TASKBAR: { m_DataChanged=true; Bar bar; if(item.Name==NEW_MENUBAR) { bar=CreateObject(typeof(Bar)) as Bar; bar.Text="Main Menu"; bar.MenuBar=true; bar.Stretch=true; bar.Name="mainmenu"; } else if(item.Name==NEW_STATUSBAR) { bar=CreateObject(typeof(Bar)) as Bar; bar.Text="Status"; bar.Stretch=true; bar.Name="statusBar"+((int)this.GetDesignManager().Bars.Count+1).ToString(); bar.LayoutType=eLayoutType.Toolbar; bar.GrabHandleStyle=eGrabHandleStyle.ResizeHandle; bar.ItemSpacing=2; } else if(item.Name==NEW_TASKBAR) { bar=CreateObject(typeof(Bar)) as Bar; bar.Text="Task Pane"; bar.Stretch=true; bar.Name="taskbar"+((int)this.GetDesignManager().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)this.GetDesignManager().Bars.Count+1).ToString(); } //bar.SetDesignMode(true); TreeNode barNode=treeBars.Nodes.Add(bar.Text); barNode.Tag=bar; barNode.ImageIndex=3; barNode.SelectedImageIndex=3; bar.DockLine=this.GetDesignManager().Bars.Count; this.GetDesignManager().Bars.Add(bar); if(item.Name==NEW_TASKBAR) bar.DockSide=eDockSide.Right; else if(item.Name==NEW_STATUSBAR) bar.DockSide=eDockSide.Bottom; else bar.DockSide=eDockSide.Top; if(item.Name==NEW_MENUBAR || item.Name==NEW_TOOLBAR) { ButtonItem button=CreateObject(typeof(ButtonItem)) as ButtonItem; AssignItemName(button); button.Text=button.Name; //button.GenerateCommandLink = true; //UpdateCommandLink(button); bar.Items.Add(button); bar.RecalcLayout(); TreeNode itemTreeNode=barNode.Nodes.Add(GetTreeItemText(button)); itemTreeNode.Tag=button; itemTreeNode.ImageIndex=GetItemImageIndex(button); itemTreeNode.SelectedImageIndex=itemTreeNode.ImageIndex; itemTreeNode.EnsureVisible(); treeBars.SelectedNode=barNode; barNode.EnsureVisible(); } else if(item.Name==NEW_STATUSBAR) { LabelItem status=CreateObject(typeof(LabelItem)) as LabelItem; AssignItemName(status); 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(); treeBars.SelectedNode=barNode; barNode.EnsureVisible(); } else { treeBars.SelectedNode=barNode; barNode.EnsureVisible(); } break; } case NEW_DOCKBAR: { 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"+this.GetDesignManager().Bars.Count.ToString(); DockContainerItem dockItem=CreateObject(typeof(DockContainerItem)) as DockContainerItem; AssignItemName(dockItem); dockItem.Text="Dock Container"; bar.Items.Add(dockItem); TreeNode barNode=treeBars.Nodes.Add(bar.Text); barNode.Tag=bar; barNode.ImageIndex=3; barNode.SelectedImageIndex=3; bar.DockLine=this.GetDesignManager().Bars.Count; this.GetDesignManager().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(); treeBars.SelectedNode=barNode; barNode.EnsureVisible(); break; } case DELETE: { TreeView tree=GetSelectedTreeView(); DotNetBarManager manager=this.GetDesignManager(); if(tree.SelectedNode==null) break; m_DataChanged=true; if(tree.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) break; } TreeNode nextNode=tree.SelectedNode.NextVisibleNode; if(tree.SelectedNode.Tag is BaseItem) { BaseItem selectedItem=tree.SelectedNode.Tag as BaseItem; Bar cont=selectedItem.ContainerControl as Bar; TreeNode topParentNode=tree.SelectedNode; while(topParentNode.Parent!=null) topParentNode=topParentNode.Parent; if(selectedItem.Parent!=null) selectedItem.Parent.SubItems.Remove(selectedItem); else if(tree==treeCategories) manager.Items.Remove(selectedItem); else if(tree==treeMenus) manager.ContextMenus.Remove(selectedItem); DeleteComponent(selectedItem); tree.SelectedNode.Tag=null; TreeNode parentNode=tree.SelectedNode.Parent; tree.Nodes.Remove(tree.SelectedNode); // If it is last node under one of the categories remove parent too if(parentNode!=null && parentNode.Parent==null && parentNode.Nodes.Count==0 && tree==treeCategories) tree.Nodes.Remove(parentNode); if(cont!=null) cont.RecalcLayout(); } else if(tree.SelectedNode.Tag is Bar) { Bar bar=tree.SelectedNode.Tag as Bar; manager.Bars.Remove(bar); DeleteComponent(bar); tree.SelectedNode.Tag=null; tree.Nodes.Remove(tree.SelectedNode); } else if(tree==treeCategories && tree.SelectedNode.Parent==null) { // Delete all items within this category foreach(TreeNode node in tree.SelectedNode.Nodes) { BaseItem childItem=node.Tag as BaseItem; if(childItem!=null) { manager.Items.Remove(childItem); DeleteComponent(childItem); } node.Tag=null; } tree.SelectedNode.Remove(); } if(tree.Nodes.Count==0) { propertyBars.SelectedObject=null; propertyMenus.SelectedObject=null; propertyCategories.SelectedObject=null; } RefreshDesignBar(); EnableCommands(tree, tree.SelectedNode); break; } case NEW_DEFINITION: { DotNetBarManager manager=this.GetDesignManager(); if(manager!=null) { manager.SuspendLayout=true; manager.Bars.ClearNonDocumentBars(); manager.Items.Clear(); manager.ContextMenus.Clear(); manager.SuspendLayout=false; SetupProperties(); this.RefreshView(); } break; } case SAVE_DEFINITION: case SAVE_DEFINITION_AS: { SaveDefinition((item.Name==SAVE_DEFINITION_AS)); break; } case SAVE_CLOSE: { if (m_ExternalManager != null) m_ExternalManager.Definition = this.GetDesignManager().Definition; else { if (SaveDefinition(false) == DialogResult.Cancel) return; } m_DataChanged = false; this.DialogResult = DialogResult.Yes; this.Close(); break; } case SAVE_BAR_AS: { TreeView tree=GetSelectedTreeView(); // Save currently selected bar if(tree.SelectedNode==null || !(tree.SelectedNode.Tag is Bar)) return; Bar bar=tree.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; break; } case LOAD_BAR: { 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(); this.GetDesignManager().SuspendLayout=true; this.GetDesignManager().Bars.Add(bar); bar.LoadDefinition(m_OpenFileDialog.FileName); this.GetDesignManager().SuspendLayout=false; this.DisplayTreeBar(bar); } m_OpenFileDialog.DefaultExt=defaultExt; m_OpenFileDialog.Filter=filter; break; } case MOVE_LEFT: case MOVE_RIGHT: case MOVE_UP: case MOVE_DOWN: { MoveSelectedItem(item.Name); RefreshDesignBar(); break; } case SYNC_CATEGORIES: { RescanCategories(); break; } case NEW_BUTTON: { ButtonItem btn=CreateObject(typeof(ButtonItem)) as ButtonItem; AssignItemName(btn); btn.Text=btn.Name; AddNewItem(btn); RefreshDesignBar(); //if ((btn.ContainerControl is Bar || btn.Parent != null) && navigationPane1.CheckedButton != buttonCategories) //{ // btn.GenerateCommandLink = true; // UpdateCommandLink(btn); //} break; } case NEW_TEXTBOX: { TextBoxItem tb=CreateObject(typeof(TextBoxItem)) as TextBoxItem; AssignItemName(tb); tb.Text=tb.Name; AddNewItem(tb); RefreshDesignBar(); break; } case NEW_COMBO: { ComboBoxItem cb=CreateObject(typeof(ComboBoxItem)) as ComboBoxItem; TypeDescriptor.GetProperties(cb)["DisplayMember"].SetValue(cb, "Text"); AssignItemName(cb); cb.Text=cb.Name; AddNewItem(cb); RefreshDesignBar(); break; } case NEW_CUSTOMIZE: { CustomizeItem cust=CreateObject(typeof(CustomizeItem)) as CustomizeItem; AssignItemName(cust); AddNewItem(cust); RefreshDesignBar(); break; } case NEW_LABEL: { LabelItem li=CreateObject(typeof(LabelItem)) as LabelItem; li.BorderType=eBorderType.SingleLine; AssignItemName(li); li.Text=li.Name; AddNewItem(li); RefreshDesignBar(); break; } case NEW_COLORPICKER: { ColorPickerDropDown cp=CreateObject(typeof(ColorPickerDropDown)) as ColorPickerDropDown; AssignItemName(cp); cp.Text=cp.Name; AddNewItem(cp); RefreshDesignBar(); break; } case NEW_MDILIST: { MdiWindowListItem mdi=CreateObject(typeof(MdiWindowListItem)) as MdiWindowListItem; mdi.Text="MDI Window List"; AssignItemName(mdi); AddNewItem(mdi); RefreshDesignBar(); break; } case NEW_CONTROLCONT: { ControlContainerItem cci=CreateObject(typeof(ControlContainerItem)) as ControlContainerItem; AssignItemName(cci); AddNewItem(cci); RefreshDesignBar(); break; } case NEW_DOCK: { DockContainerItem dci=CreateObject(typeof(DockContainerItem)) as DockContainerItem; dci.Text="Dockable Window"; AssignItemName(dci); AddNewItem(dci); RefreshDesignBar(); break; } case NEW_PROGRESS: { ProgressBarItem pb=CreateObject(typeof(ProgressBarItem)) as ProgressBarItem; pb.SetDesignMode(true); if(this.GetDesignManager()!=null) pb.Style=this.GetDesignManager().Style; else if(this.GetDesignBar()!=null) pb.Style=this.GetDesignBar().Style; pb.ResetBackgroundStyle(); pb.SetDesignMode(false); AssignItemName(pb); pb.Text=pb.Name; AddNewItem(pb); RefreshDesignBar(); break; } } } private DialogResult SaveDefinition(bool saveAs) { DialogResult result=DialogResult.OK; if(m_DefinitionFileName!="" && !saveAs) this.GetDesignManager().SaveDefinition(m_DefinitionFileName); else { result=m_SaveFileDialog.ShowDialog(); // Save definition as... if(result==DialogResult.OK) { this.GetDesignManager().SaveDefinition(m_SaveFileDialog.FileName); m_DefinitionFileName=m_SaveFileDialog.FileName; } } return result; } private void AssignItemName(BaseItem newItem) { DotNetBarManager manager=this.GetDesignManager(); Bar bar=this.GetDesignBar(); if(m_Designer==null || bar==null) { string name=newItem.GetType().Name; long id=1; if(manager!=null) { while(manager.GetItem(name+id,true)!=null) id++; } else if(bar!=null) { while(bar.GetItem(name+id)!=null) id++; } newItem.Name=name+id; } } private void AddNewItem(BaseItem newItem) { m_DataChanged=true; TreeView tree=GetSelectedTreeView(); DotNetBarManager manager=this.GetDesignManager(); if(tree.SelectedNode!=null && tree.SelectedNode.Tag is BaseItem) { newItem.Style=((BaseItem)tree.SelectedNode.Tag).Style; if(tree.SelectedNode.Tag is PopupItem && newItem is PopupItem) ((PopupItem)newItem).PopupType=((PopupItem)tree.SelectedNode.Tag).PopupType; } else if(tree.SelectedNode!=null && tree.SelectedNode.Tag is Bar) { newItem.Style=((Bar)tree.SelectedNode.Tag).Style; if(newItem is PopupItem && ((Bar)tree.SelectedNode.Tag).MenuBar) ((PopupItem)newItem).PopupType=ePopupType.Menu; } // We need to determine is new item being added to the Categories TreeNode itemNode=null; if(tree==treeCategories) { // Assign category to new item if(tree.SelectedNode==null) newItem.Category="(Untitled)"; else if(tree.SelectedNode.Parent==null) newItem.Category=tree.SelectedNode.Text; else newItem.Category=((BaseItem)tree.SelectedNode.Tag).Category; manager.Items.Add(newItem); itemNode=CategorizeItem(newItem); } else if(tree==treeMenus) { if(tree.SelectedNode!=null && tree.SelectedNode.Tag is BaseItem) { itemNode=tree.SelectedNode.Nodes.Add(GetTreeItemText(newItem)); BaseItem objParent=(BaseItem)tree.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=tree.Nodes.Add(GetTreeItemText(newItem)); manager.ContextMenus.Add(newItem); } } else if(tree.SelectedNode!=null) { Control cont=null; if(tree.SelectedNode.Tag is BaseItem) { BaseItem objParent=(BaseItem)tree.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); itemNode=new TreeNode(GetTreeItemText(newItem)); if(iPos!=-1) tree.SelectedNode.Nodes.Insert(iPos,itemNode); else tree.SelectedNode.Nodes.Add(itemNode); cont=newItem.ContainerControl as Control; if(cont==null) ((BaseItem)tree.SelectedNode.Tag).Refresh(); } else if(tree.SelectedNode.Tag is Bar) { Bar bar=(Bar)tree.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); itemNode=new TreeNode(GetTreeItemText(newItem)); if(iPos!=-1) tree.SelectedNode.Nodes.Insert(iPos,itemNode); else tree.SelectedNode.Nodes.Add(itemNode); cont=bar; } if(cont!=null && cont is Bar) ((Bar)cont).RecalcLayout(); } itemNode.Tag=newItem; itemNode.ImageIndex=GetItemImageIndex(newItem); itemNode.SelectedImageIndex=itemNode.ImageIndex; itemNode.EnsureVisible(); tree.SelectedNode=itemNode; } private TreeView GetPanelTreeView(NavigationPanePanel panel) { TreeView tree=treeBars; if(panel==navigationPanePanel2) tree=treeMenus; else if(panel==navigationPanePanel3) tree=treeCategories; return tree; } private TreeView GetSelectedTreeView() { TreeView tree=treeBars; if(navigationPane1.SelectedPanel==navigationPanePanel2) tree=treeMenus; else if(navigationPane1.SelectedPanel==navigationPanePanel3) tree=treeCategories; return tree; } private void MoveSelectedItem(string Direction) { TreeView tree=GetSelectedTreeView(); if(tree.SelectedNode==null) return; BaseItem objItem=tree.SelectedNode.Tag as BaseItem; if(objItem==null) return; m_DataChanged=true; DotNetBarManager manager=this.GetDesignManager(); bool bCategoryItem=false; if(tree==treeCategories) bCategoryItem=true; bool bPopupsItem=false; if(tree==treeMenus) bPopupsItem=true; TreeNode selNode=tree.SelectedNode; TreeNodeCollection parentCollection=null; if(selNode.Parent==null) parentCollection=tree.Nodes; else parentCollection=selNode.Parent.Nodes; BaseItem objParent=objItem.Parent; int i=0; if(objParent!=null) i=objParent.SubItems.IndexOf(objItem); else i=selNode.Index; if(Direction==MOVE_UP && 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(); parentCollection.Insert(i-1,selNode); tree.SelectedNode=selNode; selNode.EnsureVisible(); } else if(Direction==MOVE_RIGHT && i>0) { BaseItem objNewParent=null; if(bCategoryItem) manager.Items.Remove(objItem); else if(bPopupsItem) manager.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); tree.SelectedNode=selNode; selNode.EnsureVisible(); } else if(Direction==MOVE_DOWN && ((objParent!=null && i=0;i--) { if(objParent.SubItems[i].SystemItem) iPos=i; else break; } return iPos; } private object CreateObject(Type type) { if(m_Designer!=null && m_ExternalBar!=null) return m_Designer.CreateComponent(type); else return type.Assembly.CreateInstance(type.FullName); } private object CreateObject(Type type, string name) { if (m_Designer != null) { return m_Designer.CreateComponent(type, name); } return null; } private void DeleteComponent(IComponent o) { if (m_Designer != null) { if (o is BaseItem) { RemoveCommandLinks(o as BaseItem); } else if (o is Bar) { Bar bar = o as Bar; foreach (BaseItem item in bar.Items) RemoveCommandLinks(item); } } if(m_Designer!=null && m_ExternalBar!=null) m_Designer.DestroyComponent(o); else o.Dispose(); } private void RemoveCommandLinks(BaseItem item) { //CommandLink link = GetCommandLink(GetCommandLinkName(item)); //if (link != null && !m_CommandLinksDeleted.Contains(link)) // m_CommandLinksDeleted.Add(link); //foreach (BaseItem sub in item.SubItems) //{ // RemoveCommandLinks(sub); //} } #endregion #region Grid and Tree support private void PreviewDataChanged(object sender, EventArgs e) { m_DataChanged=true; } private void GridViewMouseDown(object sender, EventArgs e) { PropertyGrid grid=sender as PropertyGrid; if(grid.SelectedGridItem==null) return; if(!(grid.SelectedGridItem.PropertyDescriptor.PropertyType==typeof(System.Drawing.Image)) && !(grid.SelectedGridItem.PropertyDescriptor.PropertyType==typeof(System.Drawing.Icon))) return; PopupItem popup=dotNetBarManager1.ContextMenus[RESET_IMAGE_POPUP] as PopupItem; popup.PopupMenu(Control.MousePosition); } private void GridPropertyValueChanged(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=null; if(s==propertyBars) node=treeBars.SelectedNode; else if(s==propertyCategories) node=treeCategories.SelectedNode; else if(s==propertyMenus) node=treeMenus.SelectedNode; if (node == null) return; BaseItem item=node.Tag as BaseItem; if (e.ChangedItem.PropertyDescriptor.Name == "Name" && e.ChangedItem.Value != e.OldValue && item!=null) { //if (item.GenerateCommandLink) //{ // CommandLink link = GetCommandLink(GetCommandLinkName(e.OldValue.ToString())); // if (link != null) // m_CommandLinksDeleted.Add(link); // UpdateCommandLink(item); //} } if(e.ChangedItem.PropertyDescriptor.Name=="Category" && e.ChangedItem.Value!=e.OldValue && s==propertyCategories) { if(node.Tag==null || !(node.Tag is BaseItem)) return; BaseItem objItem=node.Tag as BaseItem; node.Remove(); node=CategorizeItem(objItem); node.ImageIndex=GetItemImageIndex(objItem); node.SelectedImageIndex=node.ImageIndex; AddSubItems(objItem,node); node.EnsureVisible(); treeCategories.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.DockLine=bar.DockLine; bar.RecalcLayout(); } } else if (e.ChangedItem.PropertyDescriptor.Name == "GenerateCommandLink" && e.ChangedItem.Value != e.OldValue) { UpdateCommandLink(item); } DotNetBarManager manager=this.GetDesignManager(); if(e.ChangedItem.PropertyDescriptor.Name=="Name" && manager!=null && s==propertyCategories) { if(manager.Items.Contains(e.ChangedItem.Value.ToString())) { item.Name=e.OldValue.ToString(); ((PropertyGrid)s).Refresh(); MessageBox.Show("Item with that name already exists."); } else { manager.Items.Remove(e.OldValue.ToString()); manager.Items.Add(item); } } if(item!=null) { Bar barContainer=item.ContainerControl as Bar; if(barContainer!=null) barContainer.RecalcLayout(); } RefreshDesignBar(); } //private string GetCommandLinkName(string itemName) //{ // return CommandLink.GetCommandLinkName(itemName); //} //private string GetCommandLinkName(BaseItem item) //{ // return GetCommandLinkName(item.Name); //} //private Type GetCommandLinkType(BaseItem item) //{ // if (item is ButtonItem) // return typeof(CommandLinkButtonItem); // else if (item is LabelItem) // return typeof(CommandLinkLabelItem); // else if (item is TextBoxItem) // return typeof(CommandLinkTextBoxItem); // else if (item is ColorPickerDropDown) // return typeof(CommandLinkColorPickerDropDown); // else if (item is ControlContainerItem) // return typeof(CommandLinkControlContainerItem); // else if (item is DockContainerItem) // return typeof(CommandLinkDockContainerItem); // else if (item is ProgressBarItem) // return typeof(CommandLinkProgressBarItem); // else if (item is ComboBoxItem) // return typeof(CommandLinkComboBoxItem); // else // return null; //} /// /// Updates design-time command link for the item /// /// private void UpdateCommandLink(BaseItem item) { if (m_Designer == null) { MessageBox.Show("Designer for the DotNetBarManager not assigned. This could be becouse you are using design in stand-alone mode. To use command links open designer by double-clicking DotNetBarManager in VS.NET"); return; } //if (item.GenerateCommandLink) //{ // CommandLink link = GetCommandLink(GetCommandLinkName(item)); // if (link != null) // { // if (m_CommandLinksDeleted.Contains(link)) // m_CommandLinksDeleted.Remove(link); // else // { // if (GetCommandLinkType(item) != link.GetType()) // { // item.GenerateCommandLink = false; // MessageBox.Show("Command Link with this item name already exists and is of different type. Change your item name to generate correct Command Link."); // } // } // return; // } // try // { // Type linkType = GetCommandLinkType(item); // if(linkType!=null) // link = CreateObject(linkType, GetCommandLinkName(item.Name)) as CommandLink; // else // { // MessageBox.Show("Selected item does not support Command Links."); // item.GenerateCommandLink = false; // } // } // catch // { // MessageBox.Show("Cannot create command link with the name '" + GetCommandLinkName(item.Name) + "' becouse object with that name already exists on the form. Please change the name of the item."); // link = null; // item.GenerateCommandLink = false; // } // if (link != null) // { // m_CommandLinksCreated.Add(link); // TypeDescriptor.GetProperties(link)["Manager"].SetValue(link, m_ExternalManager); // } //} //else //{ // // Remove the CommandLink // CommandLink link = GetCommandLink(GetCommandLinkName(item.Name)); // if (link != null) // { // m_CommandLinksDeleted.Add(link); // if (m_CommandLinksCreated.Contains(link)) // m_CommandLinksCreated.Remove(link); // } //} } //private CommandLink GetCommandLink(string name) //{ // foreach (CommandLink link in m_ExternalManager.CommandLinks) // { // if (link.Name == name) // return link; // } // return null; //} private void TreeKeyDown(object sender, System.Windows.Forms.KeyEventArgs e) { TreeView tree=sender as TreeView; if(e.KeyCode==Keys.F2 && tree.SelectedNode!=null && tree.LabelEdit) tree.SelectedNode.BeginEdit(); } private void TreeMouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { if(e.Button!=MouseButtons.Right) return; TreeView tree=sender as TreeView; TreeNode node=tree.GetNodeAt(e.X,e.Y); if(node!=null) tree.SelectedNode=node; else if(tree==treeMenus) tree.SelectedNode=null; // Popup menu ButtonItem popup=dotNetBarManager1.ContextMenus[CONTEXT_MENU] as ButtonItem; // If MoveTo and CopyTo are visible add items to them if(popup.SubItems[COPY_TO].Visible) { BaseItem itemCopyTo=popup.SubItems[COPY_TO]; BaseItem itemMoveTo=popup.SubItems[MOVE_TO]; itemCopyTo.SubItems.Clear(); itemMoveTo.SubItems.Clear(); bool bBars=true,bCategories=false, bPopups=false; // Don't show categories for category items... if(buttonContext.Visible) bPopups=true; if(buttonCategories.Visible) bCategories=true; if(bBars) { foreach(TreeNode barNode in treeBars.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) { ButtonItem cat=new ButtonItem(TO_CATEGORIES); 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 treeCategories.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(TO_CONTEXTMENUS); 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 this.GetDesignManager().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=tree.PointToScreen(pt); popup.PopupMenu(pt); } private void SelectObjectInPropertyGrid(object obj) { PropertyGrid propertyGrid=null; TreeView tree = null; if (navigationPane1.CheckedButton == buttonBars) { propertyGrid = propertyBars; tree = treeBars; } else if (navigationPane1.CheckedButton == buttonCategories) { propertyGrid = propertyCategories; tree = treeCategories; } else if (navigationPane1.CheckedButton == buttonContext) { propertyGrid = propertyMenus; tree = treeMenus; } propertyGrid.SelectedObject = obj; // Find object in tree and select it if (tree.SelectedNode != null && tree.SelectedNode.Tag == obj) return; TreeNode node = FindObjectInNodes(tree.Nodes, obj); tree.SelectedNode = node; if (node != null) node.EnsureVisible(); } private TreeNode FindObjectInNodes(TreeNodeCollection col, object obj) { foreach (TreeNode node in col) { if (node.Tag == obj) return node; else if (node.Nodes.Count > 0) { TreeNode tn = FindObjectInNodes(node.Nodes, obj); if (tn != null) return tn; } } return null; } private void TreeAfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e) { TreeView tree=sender as TreeView; PropertyGrid propertyGrid=null; if(tree==treeBars) propertyGrid=propertyBars; else if(tree==treeCategories) propertyGrid=propertyCategories; else if(tree==treeMenus) propertyGrid=propertyMenus; tree.LabelEdit=false; if(e.Node.Tag==null) { propertyGrid.SelectedObject=null; return; } if(e.Node.Tag is BaseItem) { propertyGrid.SelectedObject=e.Node.Tag; tree.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) { propertyGrid.SelectedObject=(Bar)e.Node.Tag; } else { propertyGrid.SelectedObject=null; } } private void TreeBeforeSelect(object sender, System.Windows.Forms.TreeViewCancelEventArgs e) { EnableCommands(sender as TreeView,e.Node); } private void EnableCommands(TreeView tree, TreeNode selectedNode) { // Disable/Enable toolbar items... bool bLeftEnabled=false, bRightEnabled=false, bUpEnabled=false, bDownEnabled=false; DotNetBarManager manager=this.GetDesignManager(); BaseItem popupItem=dotNetBarManager1.ContextMenus[CONTEXT_MENU]; if(selectedNode!=null && selectedNode.Tag is BaseItem) { BaseItem objItem=selectedNode.Tag as BaseItem; int i=0; if(objItem.Parent!=null) i=objItem.Parent.SubItems.IndexOf(objItem); else i=selectedNode.Index; if(i>0) { bUpEnabled=true; bRightEnabled=true; } int iCount=0; if(objItem.Parent!=null) iCount=objItem.Parent.SubItems.Count-1; else if(selectedNode.Parent!=null) iCount=selectedNode.Parent.Nodes.Count-1; else iCount=selectedNode.TreeView.Nodes.Count-1; if(i /// Gets or sets the DotNetBar manager that is being designed by this designer. /// public DotNetBarManager ExternalManager { get {return m_ExternalManager;} set { m_ExternalManager=value; this.OnExternalManagerChanged(); } } /// /// Gets or sets the external bar that is designed by this designer. /// public Bar ExternalBar { get {return m_ExternalBar;} set { m_ExternalBar=value; this.OnExternalBarChanged(); } } /// /// Gets or sets design-time designer services used to interact with design-time environment. /// public DevComponents.DotNetBar.Design.IDesignerServices DesignerServices { get {return m_Designer;} set {m_Designer=value;} } #endregion } }