Files
PDFPatcher/App/Functions/Editor/Commands/BookmarkSelectionCommand.cs
T
WMJ 3873981650 +书签编辑器增加选中子书签命令
+书签编辑器增加设置当前书签为阅读器显示位置的快捷键
!修改书签编辑器非激活状态下选中项的颜色
2024-06-21 09:56:11 +08:00

60 lines
1.4 KiB
C#

using System;
using System.CodeDom;
using System.Linq;
using System.Xml;
using BrightIdeasSoftware;
namespace PDFPatcher.Functions.Editor
{
sealed class BookmarkSelectionCommand : IEditorCommand
{
readonly string _command;
public BookmarkSelectionCommand(string command) {
_command = command;
}
public void Process(Controller controller, params string[] parameters) {
var b = controller.View.Bookmark;
switch (_command) {
case Commands.SelectAllItems:
b.SelectAll();
break;
case Commands.SelectNone:
b.DeselectAll();
break;
case Commands.SelectChildren:
var s = b.GetSelectedElements(false);
foreach (var item in s) {
b.Expand(item);
}
b.SelectedObjects = s.SelectMany(i => i.SubBookmarks.Cast<Model.BookmarkElement>()).ToList();
break;
case Commands.InvertSelection:
b.InvertSelect();
break;
case Commands.CollapseAll:
b.CollapseAll();
break;
case Commands.ExpandAll:
b.ExpandAll();
break;
case Commands.CollapseChildren:
foreach (var item in b.GetSelectedElements(false)) {
foreach (XmlNode ci in item.SubBookmarks) {
b.Collapse(ci);
}
}
break;
case Commands.ExpandSelection:
b.Expand(b.SelectedObjects, true);
break;
case Commands.CollapseSelection:
b.Collapse(b.SelectedObjects, true);
break;
}
}
}
}