public TreeBar(FDMenus menus, ProjectContextMenu treeMenu) { this.treeMenu = treeMenu; this.ImageScalingSize = ScaleHelper.Scale(new Size(16, 16)); this.Size = new Size(200, 26); this.Renderer = new DockPanelStripRenderer(); this.GripStyle = ToolStripGripStyle.Hidden; this.Padding = new Padding(2, 1, 2, 1); this.CanOverflow = false; RefreshSelected = new ToolStripButton(Icons.Refresh.Img); RefreshSelected.ToolTipText = TextHelper.GetString("ToolTip.Refresh"); RefreshSelected.Padding = new Padding(0); ShowHidden = new ToolStripButton(Icons.HiddenItems.Img); ShowHidden.ToolTipText = TextHelper.GetString("ToolTip.ShowHiddenItems"); ShowHidden.Padding = new Padding(0); ProjectProperties = new ToolStripButton(Icons.Options.Img); ProjectProperties.ToolTipText = TextHelper.GetString("ToolTip.ProjectProperties"); ProjectProperties.Padding = new Padding(0); PluginBase.MainForm.RegisterSecondaryItem("ProjectMenu.Properties", ProjectProperties); Synchronize = new ToolStripButton(Icons.SyncToFile.Img); Synchronize.ToolTipText = TextHelper.GetString("ToolTip.Synchronize"); Synchronize.Padding = new Padding(0); Synchronize.Checked = PluginMain.Settings.TrackActiveDocument; PluginBase.MainForm.RegisterShortcutItem("ProjectTree.LocateActiveFile", Keys.Shift | Keys.Alt | Keys.L); PluginBase.MainForm.RegisterSecondaryItem("ProjectTree.LocateActiveFile", Synchronize); SynchronizeMain = new ToolStripButton(Icons.ActionScriptCompile.Img); SynchronizeMain.ToolTipText = TextHelper.GetString("ToolTip.SynchronizeMain"); SynchronizeMain.Padding = new Padding(0); CollapseAll = new ToolStripButton(Icons.CollapseAll.Img); CollapseAll.ToolTipText = TextHelper.GetString("FlashDevelop.Label.CollapseAll"); CollapseAll.Padding = new Padding(0); ProjectTypes = new ToolStripButton(Icons.AllClasses.Img); ProjectTypes.ToolTipText = TextHelper.GetString("ToolTip.ProjectTypes"); ProjectTypes.Alignment = ToolStripItemAlignment.Right; ProjectTypes.Padding = new Padding(0); PluginBase.MainForm.RegisterSecondaryItem("FlashToolsMenu.TypeExplorer", ProjectTypes); Separator = new ToolStripSeparator(); Separator.Margin = new Padding(0, 0, 1, 0); Items.Add(ShowHidden); Items.Add(Synchronize); Items.Add(SynchronizeMain); Items.Add(RefreshSelected); Items.Add(CollapseAll); Items.Add(Separator); Items.Add(ProjectProperties); Items.Add(ProjectTypes); }
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 TreeBar(FDMenus menus, ProjectContextMenu treeMenu) { this.treeMenu = treeMenu; this.ImageScalingSize = ScaleHelper.Scale(new Size(16, 16)); this.Size = new Size(200, 26); this.Renderer = new DockPanelStripRenderer(); this.GripStyle = ToolStripGripStyle.Hidden; this.Padding = new Padding(2, 1, 2, 1); this.CanOverflow = false; RefreshSelected = new ToolStripButton(Icons.Refresh.Img); RefreshSelected.ToolTipText = TextHelper.GetString("ToolTip.Refresh"); RefreshSelected.Padding = new Padding(0); ShowHidden = new ToolStripButton(Icons.HiddenItems.Img); ShowHidden.ToolTipText = TextHelper.GetString("ToolTip.ShowHiddenItems"); ShowHidden.Padding = new Padding(0); ProjectProperties = new ToolStripButton(Icons.Options.Img); ProjectProperties.ToolTipText = TextHelper.GetString("ToolTip.ProjectProperties"); ProjectProperties.Padding = new Padding(0); Synchronize = new ToolStripButton(Icons.SyncToFile.Img); Synchronize.ToolTipText = TextHelper.GetString("ToolTip.Synchronize"); Synchronize.Padding = new Padding(0); SynchronizeMain = new ToolStripButton(Icons.ActionScriptCompile.Img); SynchronizeMain.ToolTipText = TextHelper.GetString("ToolTip.Synchronize"); SynchronizeMain.Padding = new Padding(0); ProjectTypes = new ToolStripButton(Icons.AllClasses.Img); ProjectTypes.ToolTipText = TextHelper.GetString("ToolTip.ProjectTypes"); ProjectTypes.Alignment = ToolStripItemAlignment.Right; ProjectTypes.Padding = new Padding(0); Separator = new ToolStripSeparator(); Separator.Margin = new Padding(0, 0, 1, 0); Items.Add(ShowHidden); Items.Add(Synchronize); Items.Add(SynchronizeMain); Items.Add(RefreshSelected); Items.Add(Separator); Items.Add(ProjectProperties); Items.Add(ProjectTypes); }
public TreeBar(FDMenus menus, ProjectContextMenu treeMenu) { this.menus = menus; this.treeMenu = treeMenu; Refresh = new CommandBarButton("Refresh"); Refresh.Image = Icons.Refresh.Img; EnableTrace = new CommandBarCheckBox(Icons.Debug.Img, "Enable Trace"); Items.Add(treeMenu.ShowHidden); Items.Add(Refresh); Items.Add(new CommandBarSeparator()); Items.Add(menus.ProjectMenu.Properties); Items.Add(new CommandBarSeparator()); Items.Add(EnableTrace); }
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 }
private void ShowProjectContextMenu(MouseEventArgs e) { var p = new Point(e.X, e.Y); TreeNode selectedNode = ProjectTree.GetNodeAt(p); if (selectedNode == null) { return; } ProjectTree.SelectedNode = selectedNode; var currentElement = (Element)selectedNode.Tag; IList <Type> childTypes = Engine.GetChildTypes(currentElement.GetType()); ProjectContextMenu.Items.Clear(); var addNewLabel = new ToolStripLabel("Elements:") { Font = BoldFont.Font }; ProjectContextMenu.Items.Add(addNewLabel); foreach (Type childType in childTypes) { bool allowNew = true; var allowMultipleAttrib = childType.GetAttribute <AllowMultipleAttribute>(); if (allowMultipleAttrib != null && allowMultipleAttrib.Allow == false) { foreach (Element childElement in currentElement.AllChildren) { if (childElement.GetType() == childType) { allowNew = false; break; } } } string itemText = string.Format("Add {0}", childType.GetElementName()); var item = new ToolStripMenuItem(itemText) { Tag = childType }; item.Click += NewElement_Click; item.Enabled = allowNew; item.Image = childType.GetElementIcon(); if (allowNew) { } else { item.ToolTipText = "Only one instance of this item is allowed"; } ProjectContextMenu.Items.Add(item); } var separator1 = new ToolStripSeparator(); ProjectContextMenu.Items.Add(separator1); var verbLabel = new ToolStripLabel("Verbs:") { Font = BoldFont.Font }; ProjectContextMenu.Items.Add(verbLabel); List <MethodInfo> elementVerbs = currentElement.GetType().GetElementVerbs(); foreach (MethodInfo method in elementVerbs) { string verbName = method.GetVerbName(); var item = new ToolStripMenuItem(verbName) { Tag = method }; item.Click += ElementVerb_Click; ProjectContextMenu.Items.Add(item); } ProjectContextMenu.Show(ProjectTree, e.Location); }