Пример #1
0
        private void addFolderMenu_Click(object sender, EventArgs e)
        {
            var parent = tree.SelectedNode;
            var name   = Interaction.InputBox("Enter name of the folder you'd like to add", "Add Folder");

            if (string.IsNullOrEmpty(name?.Trim()))
            {
                return;
            }

            if (parent != null && parent.Tag != null)
            {
                parent = parent.Parent;
            }

            if (parent == null)
            {
                tree.Nodes.Add(new TreeNode(name)
                {
                    SelectedImageIndex = 1,
                    ImageIndex         = 1
                });
            }
            else
            {
                parent.Nodes.Add(new TreeNode(name)
                {
                    SelectedImageIndex = 1,
                    ImageIndex         = 1
                });
            }

            ProjectTree = ShiroProject.ExtractProjectTreeFromTreeViewOpenParenLOLCloseParen(Shiro, tree);
        }
Пример #2
0
        private void SaveProject()
        {
            if (string.IsNullOrEmpty(ShiroProject.CurrentlyOpenProject))
            {
                if (DialogResult.OK == saveProjectDialog.ShowDialog())
                {
                    ShiroProject.CurrentlyOpenProject = saveProjectDialog.FileName;
                }
                else
                {
                    return;
                }
            }

            File.WriteAllText(ShiroProject.CurrentlyOpenProject, ShiroProject.GetShiroProjectFileContent(Shiro, ProjectTree));
        }
Пример #3
0
        private void tree_DragDrop(object sender, DragEventArgs e)
        {
            Point    targetPoint = tree.PointToClient(new Point(e.X, e.Y));
            TreeNode targetNode  = tree.GetNodeAt(targetPoint);
            TreeNode draggedNode = (TreeNode)e.Data.GetData(typeof(TreeNode));

            if (draggedNode.Equals(targetNode))
            {
                return;
            }

            if (targetNode == null)
            {
                //Drag to top level (out of folder)
                draggedNode.Remove();
                tree.Nodes.Add(draggedNode);
            }
            else if (!ContainsNode(draggedNode, targetNode))
            {
                if (targetNode.Tag == null)
                {
                    //Dragging into a folder, everything is normal
                    draggedNode.Remove();
                    targetNode.Nodes.Add(draggedNode);
                    targetNode.Expand();
                }
                else
                {
                    //Dragged on top of an item -- drop into parent
                    if (targetNode.Parent == null)
                    {
                        //Top level
                        draggedNode.Remove();
                        tree.Nodes.Add(draggedNode);
                    }
                    else
                    {
                        //Parented Item
                        draggedNode.Remove();
                        targetNode.Parent.Nodes.Add(draggedNode);
                        targetNode.Expand();
                    }
                }
            }
            ProjectTree = ShiroProject.ExtractProjectTreeFromTreeViewOpenParenLOLCloseParen(Shiro, tree);
        }
Пример #4
0
        private void removeFileFromProjectMenu_Click(object sender, EventArgs e)
        {
            var node = tree.SelectedNode;

            if (node == null)
            {
                return;
            }

            if (string.IsNullOrEmpty(node.Tag?.ToString()))
            {
                MessageBox.Show("I can't delete directories yet, Dan is lazy.");
            }
            else if (DialogResult.Yes == MessageBox.Show($"Delete {node.Text} from the project (file will remain on disk)?", "Remove from Project?", MessageBoxButtons.YesNo))
            {
                ProjectTree.Children.GetProperty(Shiro, "proj").Children[0] = new Token(ShiroProject.DeleteFileFromTree(Shiro, node.Tag.ToString(), ProjectTree.Children.GetProperty(Shiro, "proj").Children[0]).ToArray());
                UpdateTree();
            }
        }