Exemple #1
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #5
0
        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
        }
Exemple #6
0
        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);
        }