示例#1
0
        public override FileTreeNodeFilterResult GetResult(IResourceElementNode node)
        {
            bool isMatch = (flags & VisibleMembersFlags.ResourceElement) != 0;

            if (!isMatch)
            {
                return(new FileTreeNodeFilterResult(FilterType.Hide, isMatch));
            }
            return(new FileTreeNodeFilterResult(FilterType.Visible, isMatch));
        }
示例#2
0
		SerializedImageListStreamerResourceElementSettingsCommand(IResourceElementNode rsrcElNode, ResourceElementOptions options)
			: base(rsrcElNode, options) {
		}
示例#3
0
		ImageResourceElementSettingsCommand(IResourceElementNode rsrcElNode, ResourceElementOptions options)
			: base(rsrcElNode, options) {
		}
示例#4
0
		protected ResourceElementSettingsBaseCommand(IResourceElementNode rsrcElNode, ResourceElementOptions options) {
			this.rsrcSetNode = (IResourceElementSetNode)rsrcElNode.TreeNode.Parent.Data;
			this.rsrcElNode = rsrcElNode;
			this.newOptions = options.Create();
			this.origOptions = rsrcElNode.ResourceElement;

			this.module = rsrcSetNode.GetModule();
			Debug.Assert(this.module != null);
			this.resource = rsrcSetNode.Resource;
			this.resourceIndex = module.Resources.IndexOf(this.resource);
			Debug.Assert(this.resourceIndex >= 0);
			if (this.resourceIndex < 0)
				throw new InvalidOperationException();

			this.origParentChildIndex = this.rsrcSetNode.TreeNode.Children.IndexOf(rsrcElNode.TreeNode);
			Debug.Assert(this.origParentChildIndex >= 0);
			if (this.origParentChildIndex < 0)
				throw new InvalidOperationException();

			this.nameChanged = origOptions.Name != newOptions.Name;
		}
 public virtual DocumentTreeNodeFilterResult GetResult(IResourceElementNode node) => new DocumentTreeNodeFilterResult();
示例#6
0
 void Decompile(IResourceElementNode node)
 {
     node.WriteShort(output, language, language.Settings.GetBoolean(DecompilerOptionConstants.ShowTokenAndRvaComments_GUID));
 }
示例#7
0
 void Decompile(IResourceElementNode node)
 {
     node.WriteShort(output, language, language.Settings.GetBoolean(DecompilerOptionConstants.ShowTokenAndRvaComments_GUID));
 }
示例#8
0
        void SearchResourceElementTreeNode(IDsDocument module, IResourceNode resTreeNode, IResourceElementNode resElNode)
        {
            var res = options.Filter.GetResult(resElNode);

            if (res.FilterType == FilterType.Hide)
            {
                return;
            }

            if (res.IsMatch)
            {
                bool m = IsMatch(resElNode.Name, resElNode);
                if (!m)
                {
                    var builtin = resElNode.ResourceElement.ResourceData as BuiltInResourceData;
                    if (builtin != null)
                    {
                        var val = builtin.Data;
                        if (builtin.Code == ResourceTypeCode.TimeSpan)
                        {
                            val = ((TimeSpan)val).Ticks;
                        }
                        m = IsMatch(val as string, val);
                    }
                }
                if (!m)
                {
                    m = IsMatch(ToString(resElNode), null);
                }
                if (m)
                {
                    options.OnMatch(new SearchResult {
                        Context                = options.Context,
                        Object                 = resElNode,
                        NameObject             = resElNode,
                        ObjectImageReference   = resElNode.Icon,
                        LocationObject         = resTreeNode,
                        LocationImageReference = resTreeNode.Icon,
                        Document               = module,
                    });
                }
            }
        }
示例#9
0
		protected CreateResourceElementCommandBase(IResourceElementSetNode rsrcSetNode, IResourceElementNode[] nodes) {
			this.module = rsrcSetNode.GetModule();
			Debug.Assert(this.module != null);
			this.rsrcSetNode = rsrcSetNode;
			this.nodes = nodes;
			this.resource = rsrcSetNode.Resource;
			this.resourceIndex = module.Resources.IndexOf(this.resource);
			Debug.Assert(this.resourceIndex >= 0);
			if (this.resourceIndex < 0)
				throw new InvalidOperationException();
		}
 public virtual FileTreeNodeFilterResult GetResult(IResourceElementNode node) => new FileTreeNodeFilterResult();
示例#11
0
 public virtual FileTreeNodeFilterResult GetResult(IResourceElementNode node)
 {
     return(this.filter.GetResult(node));
 }
示例#12
0
 public virtual FileTreeNodeFilterResult GetResult(IResourceElementNode node)
 {
     return new FileTreeNodeFilterResult();
 }
 public override FileTreeNodeFilterResult GetResult(IResourceElementNode node)
 {
     bool isMatch = (flags & VisibleMembersFlags.ResourceElement) != 0;
     if (!isMatch)
         return new FileTreeNodeFilterResult(FilterType.Hide, isMatch);
     return new FileTreeNodeFilterResult(FilterType.Visible, isMatch);
 }
 public virtual FileTreeNodeFilterResult GetResult(IResourceElementNode node)
 {
     return new FileTreeNodeFilterResult(FilterType.Hide, false);
 }
示例#15
0
		DeleteResourceElementCommand(IResourceElementNode[] rsrcNodes) {
			this.nodes = new DeletableNodes<IResourceElementNode>(rsrcNodes);
		}
示例#16
0
		internal static void Execute(Lazy<IUndoCommandManager> undoCommandManager, IAppWindow appWindow, IResourceNodeFactory resourceNodeFactory, IFileTreeNodeData[] nodes, ResourceTypeCode typeCode, Func<IResourceElementSetNode, IResourceElementNode[], IUndoCommand> createCommand) {
			var rsrcSetNode = nodes[0] as IResourceElementSetNode;
			if (rsrcSetNode == null)
				rsrcSetNode = nodes[0].TreeNode.Parent.Data as IResourceElementSetNode;
			Debug.Assert(rsrcSetNode != null);

			var module = nodes[0].GetModule();
			Debug.Assert(module != null);
			if (module == null)
				throw new InvalidOperationException();

			var dlg = new WF.OpenFileDialog {
				RestoreDirectory = true,
				Multiselect = true,
				Filter = PickFilenameConstants.AnyFilenameFilter,
			};
			if (dlg.ShowDialog() != WF.DialogResult.OK)
				return;
			var fnames = dlg.FileNames;
			if (fnames.Length == 0)
				return;

			var newNodes = new IResourceElementNode[fnames.Length];
			var treeView = appWindow.FileTreeView.TreeView;
			var treeNodeGroup = appWindow.FileTreeView.FileTreeNodeGroups.GetGroup(FileTreeNodeGroupType.ResourceElementTreeNodeGroup);
			for (int i = 0; i < fnames.Length; i++) {
				var fn = fnames[i];
				try {
					var rsrcElem = new ResourceElement {
						Name = Path.GetFileName(fn),
						ResourceData = new BuiltInResourceData(typeCode, File.ReadAllBytes(fn)),
					};
					newNodes[i] = (IResourceElementNode)treeView.Create(resourceNodeFactory.Create(module, rsrcElem, treeNodeGroup)).Data;
				}
				catch (Exception ex) {
					Shared.App.MsgBox.Instance.Show(string.Format(dnSpy_AsmEditor_Resources.Error_ReadingFiles, ex.Message));
					return;
				}
			}

			undoCommandManager.Value.Add(createCommand(rsrcSetNode, newNodes.ToArray()));
			appWindow.FileTabManager.FollowReference(newNodes[0]);
		}
 public virtual DocumentTreeNodeFilterResult GetResult(IResourceElementNode node) => this.filter.GetResult(node);
示例#18
0
		CreateByteArrayResourceElementCommand(IResourceElementSetNode rsrcSetNode, IResourceElementNode[] nodes)
			: base(rsrcSetNode, nodes) {
		}
示例#19
0
 public virtual FileTreeNodeFilterResult GetResult(IResourceElementNode node)
 {
     return(new FileTreeNodeFilterResult());
 }
示例#20
0
		CreateStreamResourceElementCommand(IResourceElementSetNode rsrcSetNode, IResourceElementNode[] nodes)
			: base(rsrcSetNode, nodes) {
		}
示例#21
0
        void SearchResourceElementTreeNode(IDnSpyFile module, IResourceNode resTreeNode, IResourceElementNode resElNode)
        {
            var res = options.Filter.GetResult(resElNode);
            if (res.FilterType == FilterType.Hide)
                return;

            if (res.IsMatch) {
                bool m = IsMatch(resElNode.Name, resElNode);
                if (!m) {
                    var builtin = resElNode.ResourceElement.ResourceData as BuiltInResourceData;
                    if (builtin != null) {
                        var val = builtin.Data;
                        if (builtin.Code == ResourceTypeCode.TimeSpan)
                            val = ((TimeSpan)val).Ticks;
                        m = IsMatch(val as string, val);
                    }
                }
                if (!m)
                    m = IsMatch(ToString(resElNode), null);
                if (m) {
                    options.OnMatch(new SearchResult {
                        Context = options.Context,
                        Object = resElNode,
                        NameObject = resElNode,
                        ObjectImageReference = resElNode.Icon,
                        LocationObject = resTreeNode,
                        LocationImageReference = resTreeNode.Icon,
                        DnSpyFile = module,
                    });
                }
            }
        }
示例#22
0
		CreateResourceElementCommand(IResourceElementSetNode rsrcSetNode, IResourceElementNode node)
			: base(rsrcSetNode, new[] { node }) {
		}
示例#23
0
 public virtual FileTreeNodeFilterResult GetResult(IResourceElementNode node) => new FileTreeNodeFilterResult(FilterType.Hide, false);
示例#24
0
 public virtual FileTreeNodeFilterResult GetResult(IResourceElementNode node)
 {
     return this.filter.GetResult(node);
 }