public override DocumentTreeNodeFilterResult GetResult(ResourceElementNode node) { bool isMatch = (flags & VisibleMembersFlags.ResourceElement) != 0; if (!isMatch) { return(new DocumentTreeNodeFilterResult(FilterType.Hide, isMatch)); } return(new DocumentTreeNodeFilterResult(FilterType.Visible, isMatch)); }
void RegenerateEmbeddedResource(ModuleDef module) { TreeNode.EnsureChildrenLoaded(); var outStream = new MemoryStream(); var resources = new ResourceElementSet(); foreach (DocumentTreeNodeData child in TreeNode.DataChildren) { var resourceElement = ResourceElementNode.GetResourceElement(child); if (resourceElement is null) { throw new InvalidOperationException(); } resources.Add(resourceElement); } ResourceWriter.Write(module, outStream, resources); Resource = new EmbeddedResource(Resource.Name, outStream.ToArray(), Resource.Attributes); }
public DocumentTreeNodeData Create(ModuleDef module, ResourceElement resourceElement, ITreeNodeGroup treeNodeGroup) { if (module is null) { throw new ArgumentNullException(nameof(module)); } if (resourceElement is null) { throw new ArgumentNullException(nameof(resourceElement)); } if (treeNodeGroup is null) { throw new ArgumentNullException(nameof(treeNodeGroup)); } var node = CreateNode(module, resourceElement, treeNodeGroup); ResourceElementNode.AddResourceElement(node, resourceElement); return(node); }
public virtual DocumentTreeNodeFilterResult GetResult(ResourceElementNode node) => new DocumentTreeNodeFilterResult();
public NodeAndResourceElement(DocumentTreeNodeData node) { Debug2.Assert(ResourceElementNode.GetResourceElement(node) is not null); this.node = node; }
void Decompile(ResourceElementNode node) => node.WriteShort(output, decompiler, decompiler.Settings.GetBoolean(DecompilerOptionConstants.ShowTokenAndRvaComments_GUID));
public virtual DocumentTreeNodeFilterResult GetResult(ResourceElementNode node) => this.filter.GetResult(node);
public virtual DocumentTreeNodeFilterResult GetResult(ResourceElementNode node) => new DocumentTreeNodeFilterResult(FilterType.Hide, false);
void SearchResourceElementTreeNode(IDsDocument module, ResourceNode resTreeNode, ResourceElementNode 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, }); } } }