コード例 #1
0
ファイル: BookmarksTreeView.cs プロジェクト: NHxD/NHxD
        private void FolderNodeContextMenu_Popup(object sender, EventArgs e)
        {
            ContextMenu    contextMenu = sender as ContextMenu;
            TreeNode       treeNode    = contextMenu.Tag as TreeNode;
            BookmarkFolder folder      = treeNode.Tag as BookmarkFolder;

            contextMenu.MenuItems.Clear();

            contextMenu.MenuItems.Add(new MenuItem(folder == null ? "&Add Folder..." : "&Add Subfolder...", (sender2, e2) =>
            {
                string dialogResult = PromptBox.Show("Folder path:", folder == null ? "" : (folder.Path + "/"), "Add subfolder", null);

                if (dialogResult != null)
                {
                    BookmarksModel.RegisterPath(dialogResult);
                }
            })
            {
                Name = "folder_add"
            });

            if (folder != null)
            {
                contextMenu.MenuItems.Add(new MenuItem("&Edit Folder...", (sender2, e2) =>
                {
                    string folderPath   = GetPathFileName(folder.Path);
                    string dialogResult = PromptBox.Show("Change name to:", folder.Text, string.Format("Edit Bookmark folder - {0}", folder.Path), (new string[] {
                        folder.Text,
                        CultureInfo.CurrentCulture?.TextInfo?.ToTitleCase(folder.Text),
                        folder.Text.ToLower(),
                        folder.Text.ToUpper(),
                        folderPath,
                        CultureInfo.CurrentCulture?.TextInfo?.ToTitleCase(folderPath),
                        folderPath.ToLower(),
                        folderPath.ToUpper(),
                    }).Distinct().Where(x => !string.IsNullOrEmpty(x)).ToArray());

                    if (dialogResult != null)
                    {
                        folder.Text   = dialogResult;
                        treeNode.Text = dialogResult;
                        treeView.Sort(treeNode.Parent, treeViewNodeSorter);
                    }
                })
                {
                    Name = "folder_edit"
                });

                contextMenu.MenuItems.Add(new MenuItem("&Remove Folder", (sender2, e2) =>
                {
                    treeNode.Remove();
                    BookmarksModel.RemovePath(folder.Path);
                })
                {
                    Name = "remove_folder"
                });

                // TODO: "move to..." command (to change the folder (and its children) path)
            }
        }
コード例 #2
0
        public string ShowAddBookmarkPrompt()
        {
            string defaultValue = BookmarkListSettings.RestoreMostRecentPath ? BookmarkListSettings.MostRecentPath : "";

            string[] defaultValues = BookmarksModel.BookmarkFolders.OrderBy(x => x.Key, SortOrder.Ascending).Select(x => x.Key).ToArray();
            string   result        = PromptBox.Show("Add bookmark:", defaultValue, "Add Bookmark", defaultValues);

            if (result != null)
            {
                BookmarkListSettings.MostRecentPath = result;
            }

            return(result);
        }
コード例 #3
0
        public static string Show(string header, string input, string title, string[] defaultValues)
        {
            using (PromptBox dialog = new PromptBox())
            {
                dialog.Text           = title;
                dialog.InputLabelText = header;
                dialog.InputText      = input;
                dialog.InputValues    = defaultValues != null ? new List <string>(defaultValues) : null;

                if (dialog.ShowDialog() == DialogResult.OK)
                {
                    return(dialog.InputText);
                }
            }

            return(null);
        }
コード例 #4
0
        private void FolderNodeContextMenu_Popup(object sender, EventArgs e)
        {
            ContextMenu    contextMenu = sender as ContextMenu;
            TreeNode       treeNode    = contextMenu.Tag as TreeNode;
            BookmarkFolder folder      = treeNode.Tag as BookmarkFolder;

            contextMenu.MenuItems.Clear();

            if (folder != null)
            {
                contextMenu.MenuItems.Add(new MenuItem("&Edit Folder", (sender2, e2) =>
                {
                    string dialogResult = PromptBox.Show("Change name to:", folder.Text, "Bookmark folder name", (new string[] { folder.Text, GetPathFileName(folder.Path) }).Distinct().Where(x => !string.IsNullOrEmpty(x)).ToArray());

                    if (dialogResult != null)
                    {
                        folder.Text   = dialogResult;
                        treeNode.Text = dialogResult;
                    }
                })
                {
                    Name = "folder_edit"
                });

                contextMenu.MenuItems.Add(new MenuItem("&Remove Folder", (sender2, e2) =>
                {
                    treeNode.Remove();
                    BookmarksModel.RemovePath(folder.Path);
                })
                {
                    Name = "remove_folder"
                });

                // TODO: "move to..." command (to change the folder (and its children) path)
            }
        }