public PluginUI(PluginMain plugin, FDMenus menus, FileActions fileActions, ProjectActions projectActions) { this.plugin = plugin; this.menus = menus; this.Tag = "Project"; this.Text = "Project Explorer"; #region Build TreeView menu = new ProjectContextMenu(menus); menu.Rename.Click += new EventHandler(RenameNode); treeBar = new TreeBar(menus, menu); treeBar.Dock = DockStyle.Top; treeBar.Visible = false; tree = new ProjectTreeView(); tree.Visible = false; tree.Dock = DockStyle.Fill; tree.ImageIndex = 0; tree.ImageList = Icons.ImageList; tree.LabelEdit = true; tree.SelectedImageIndex = 0; tree.ShowRootLines = false; tree.HideSelection = false; tree.ContextMenu = menu; tree.DoubleClick += new EventHandler(tree_DoubleClick); tree.AfterLabelEdit += new NodeLabelEditEventHandler(tree_AfterLabelEdit); tree.BeforeLabelEdit += new NodeLabelEditEventHandler(tree_BeforeLabelEdit); tree.AfterSelect += new TreeViewEventHandler(tree_AfterSelect); this.Controls.Add(tree); this.Controls.Add(treeBar); #endregion #region Instructions LinkLabel link = new LinkLabel(); link.Text = "Create a new project\nor\nOpen an existing project"; link.Links.Add(0, 20, "create"); link.Links.Add(24, 24, "open"); link.LinkClicked += new LinkLabelLinkClickedEventHandler(link_LinkClicked); link.TextAlign = ContentAlignment.MiddleCenter; link.Dock = DockStyle.Fill; link.ContextMenu = new ContextMenu(); this.Controls.Add(link); #endregion // we care about some of these events fileActions.FileCreated += new FileNameHandler(NewFileCreated); fileActions.ProjectModified += new ProjectModifiedHandler(ProjectModified); projectActions.ProjectModified += new ProjectModifiedHandler(ProjectModified); }
public PluginUI(PluginMain plugin, FDMenus menus, FileActions fileActions, ProjectActions projectActions) { this.menus = menus; this.AutoKeyHandling = true; this.Text = TextHelper.GetString("Title.PluginPanel"); #region Build TreeView and Toolbar menu = new ProjectContextMenu(); menu.Rename.Click += RenameNode; treeBar = new TreeBar(menus, menu); tree = new ProjectTreeView(); tree.BorderStyle = BorderStyle.None; tree.Dock = DockStyle.Fill; tree.ImageIndex = 0; tree.ImageList = Icons.ImageList; tree.LabelEdit = true; tree.SelectedImageIndex = 0; tree.ShowRootLines = false; tree.HideSelection = false; tree.ContextMenuStrip = menu; tree.AfterLabelEdit += tree_AfterLabelEdit; tree.BeforeLabelEdit += tree_BeforeLabelEdit; tree.BeforeSelect += tree_BeforeSelect; tree.AfterSelect += tree_AfterSelect; Panel panel = new Panel(); panel.Dock = DockStyle.Fill; panel.Controls.Add(tree); panel.Controls.Add(treeBar); menu.ProjectTree = tree; ScrollBarEx.Attach(tree); #endregion #region Instructions help = new LinkLabel(); string[] helpParts = String.Format(TextHelper.GetString("Info.NoProjectsOpenLink"), "\n").Split('|'); string[] helpActions = { "create", "open", "import" }; string helpText = ""; int[] linkStart = { 0, 0, 0 }; int[] linkLength = { 0, 0, 0 }; for (int i = 0; i < 3; i++) { if (helpParts.Length > i * 2) { helpText += helpParts[i * 2]; linkStart[i] = helpText.Length; helpText += helpParts[i * 2 + 1]; linkLength[i] = helpParts[i * 2 + 1].Length; } } help.Text = helpText + helpParts[helpParts.Length - 1]; for (int i = 0; i < 3; i++) { help.Links.Add(linkStart[i], linkLength[i], helpActions[i]); } help.LinkClicked += link_LinkClicked; help.Dock = DockStyle.Fill; help.TextAlign = ContentAlignment.MiddleCenter; help.ContextMenu = new ContextMenu(); #endregion this.Controls.Add(help); this.Controls.Add(panel); #region Events fileActions.FileCreated += NewFileCreated; fileActions.ProjectModified += ProjectModified; projectActions.ProjectModified += ProjectModified; #endregion }