Example #1
0
 CreateImageResourceElementCommand(ResourceElementSetTreeNode rsrcSetNode, ResourceElementTreeNode[] nodes)
     : base(rsrcSetNode, nodes)
 {
 }
Example #2
0
        internal static void Execute(ILSpyTreeNode[] nodes, ResourceTypeCode typeCode, Func<ResourceElementSetTreeNode, ResourceElementTreeNode[], IUndoCommand> createCommand)
        {
            var rsrcSetNode = nodes[0] as ResourceElementSetTreeNode;
            if (rsrcSetNode == null)
                rsrcSetNode = nodes[0].Parent as ResourceElementSetTreeNode;
            Debug.Assert(rsrcSetNode != null);

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

            var dlg = new WF.OpenFileDialog {
                RestoreDirectory = true,
                Multiselect = true,
                Filter = "All files (*.*)|*.*",
            };
            if (dlg.ShowDialog() != WF.DialogResult.OK)
                return;
            var fnames = dlg.FileNames;
            if (fnames.Length == 0)
                return;

            var newNodes = new ResourceElementTreeNode[fnames.Length];
            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] = ResourceFactory.Create(module, rsrcElem);
                }
                catch (Exception ex) {
                    MainWindow.Instance.ShowMessageBox(string.Format("Error reading files: {0}", ex.Message));
                    return;
                }
            }

            UndoCommandManager.Instance.Add(createCommand(rsrcSetNode, newNodes.ToArray()));
        }
Example #3
0
 SerializedImageResourceElementSettingsCommand(ResourceElementTreeNode rsrcElNode, ResourceElementOptions options)
     : base(rsrcElNode, options)
 {
 }
Example #4
0
        protected ResourceElementSettingsBaseCommand(ResourceElementTreeNode rsrcElNode, ResourceElementOptions options)
        {
            this.rsrcSetNode = (ResourceElementSetTreeNode)rsrcElNode.Parent;
            this.rsrcElNode = rsrcElNode;
            this.newOptions = options.Create();
            this.origOptions = rsrcElNode.ResourceElement;

            this.module = ILSpyTreeNode.GetModule(rsrcSetNode);
            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.Children.IndexOf(rsrcElNode);
            Debug.Assert(this.origParentChildIndex >= 0);
            if (this.origParentChildIndex < 0)
                throw new InvalidOperationException();

            this.nameChanged = origOptions.Name != newOptions.Name;
        }
Example #5
0
 CreateByteArrayResourceElementCommand(ResourceElementSetTreeNode rsrcSetNode, ResourceElementTreeNode[] nodes)
     : base(rsrcSetNode, nodes)
 {
 }
Example #6
0
 protected CreateResourceElementCommandBase(ResourceElementSetTreeNode rsrcSetNode, ResourceElementTreeNode[] nodes)
 {
     this.module = ILSpyTreeNode.GetModule(rsrcSetNode);
     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();
 }
Example #7
0
 DeleteResourceElementCommand(ResourceElementTreeNode[] rsrcNodes)
 {
     this.nodes = new DeletableNodes<ResourceElementTreeNode>(rsrcNodes);
 }
Example #8
0
 CreateResourceElementCommand(ResourceElementSetTreeNode rsrcSetNode, ResourceElementTreeNode node)
     : base(rsrcSetNode, new[] { node })
 {
 }
 public virtual TreeViewNodeFilterResult GetFilterResult(ResourceElementTreeNode node)
 {
     return filter.GetFilterResult(node);
 }
Example #10
0
        void SearchResourceElementTreeNode(LoadedAssembly module, ResourceTreeNode resTreeNode, ResourceElementTreeNode resElNode)
        {
            var res = filter.GetFilterResult(resElNode);
            if (res.FilterResult == FilterResult.Hidden)
                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(resElNode.GetStringContents(), null);
                if (m) {
                    onMatch(new SearchResult {
                        Language = language,
                        Object = resElNode,
                        NameObject = resElNode,
                        TypeImageInfo = GetImage(resElNode.IconName),
                        LocationObject = resTreeNode,
                        LocationImageInfo = GetImage(resTreeNode.IconName),
                        LoadedAssembly = module,
                    });
                }
            }
        }
 public virtual TreeViewNodeFilterResult GetFilterResult(ResourceElementTreeNode node)
 {
     return new TreeViewNodeFilterResult(FilterResult.Hidden, false);
 }
 public override TreeViewNodeFilterResult GetFilterResult(ResourceElementTreeNode node)
 {
     bool isMatch = (flags & VisibleMembersFlags.ResourceElement) != 0;
     if (!isMatch)
         return new TreeViewNodeFilterResult(FilterResult.Hidden, isMatch);
     return new TreeViewNodeFilterResult(FilterResult.Match, isMatch);
 }