From 184fe9b650e5e114e466d4106a76ec9f90acb044 Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Fri, 15 May 2026 10:54:00 +0200 Subject: [PATCH] ImageListResourceEntryNode + factory wiring Assisted-by: Claude:claude-opus-4-7:Claude Code Assisted-by: Claude:claude-opus-4-7:Claude Code --- .../Abstractions/IResourceNodeFactory.cs | 8 + .../ILSpy.Tests.Windows.csproj | 4 + .../ImageListResourceEntryNodeTests.cs | 158 ++++++++++++ ILSpy/TreeNodes/ImageListResourceEntryNode.cs | 228 ++++++++++++++++++ .../TreeNodes/ImageListResourceNodeFactory.cs | 55 +++++ ILSpy/TreeNodes/ResourcesFileTreeNode.cs | 23 +- 6 files changed, 475 insertions(+), 1 deletion(-) create mode 100644 ILSpy.Tests.Windows/ImageList/ImageListResourceEntryNodeTests.cs create mode 100644 ILSpy/TreeNodes/ImageListResourceEntryNode.cs create mode 100644 ILSpy/TreeNodes/ImageListResourceNodeFactory.cs diff --git a/ICSharpCode.ILSpyX/Abstractions/IResourceNodeFactory.cs b/ICSharpCode.ILSpyX/Abstractions/IResourceNodeFactory.cs index 782e5fd42..0edf7d4a6 100644 --- a/ICSharpCode.ILSpyX/Abstractions/IResourceNodeFactory.cs +++ b/ICSharpCode.ILSpyX/Abstractions/IResourceNodeFactory.cs @@ -17,6 +17,7 @@ // DEALINGS IN THE SOFTWARE. using ICSharpCode.Decompiler.Metadata; +using ICSharpCode.Decompiler.Util; namespace ICSharpCode.ILSpyX.Abstractions { @@ -28,5 +29,12 @@ namespace ICSharpCode.ILSpyX.Abstractions // Null means "this factory doesn't claim the resource"; callers iterate factories until // one returns non-null and otherwise fall back to a generic node. ITreeNode? CreateNode(Resource resource); + + /// + /// Builds a node for a serialized-object entry inside an embedded .resources + /// file (e.g. an ImageListStreamer blob). Default no-op — only factories that + /// understand a specific serialized payload type need to override this. + /// + ITreeNode? CreateNode(string key, ResourceSerializedObject serializedObject) => null; } } diff --git a/ILSpy.Tests.Windows/ILSpy.Tests.Windows.csproj b/ILSpy.Tests.Windows/ILSpy.Tests.Windows.csproj index cf34ed841..35a3d7360 100644 --- a/ILSpy.Tests.Windows/ILSpy.Tests.Windows.csproj +++ b/ILSpy.Tests.Windows/ILSpy.Tests.Windows.csproj @@ -45,6 +45,10 @@ + +