Skip to content

Commit

Permalink
Avalonia v11 - Updated IBitmap to Bitmap
Browse files Browse the repository at this point in the history
  • Loading branch information
DamianSuess committed Jul 21, 2023
1 parent 3480227 commit 01deb70
Show file tree
Hide file tree
Showing 13 changed files with 90 additions and 90 deletions.
8 changes: 4 additions & 4 deletions ILSpy.Core/Controls/SearchBox.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@ public class SearchBox : TextBox
{
#region Dependency properties

public static StyledProperty<IBitmap> SearchIconProperty = AvaloniaProperty.Register<SearchBox, IBitmap>(nameof(SearchIcon));
public static StyledProperty<Bitmap> SearchIconProperty = AvaloniaProperty.Register<SearchBox, Bitmap>(nameof(SearchIcon));

public static StyledProperty<IBitmap> ClearSearchIconProperty = AvaloniaProperty.Register<SearchBox, IBitmap>(nameof(ClearSearchIcon));
public static StyledProperty<Bitmap> ClearSearchIconProperty = AvaloniaProperty.Register<SearchBox, Bitmap>(nameof(ClearSearchIcon));

public static StyledProperty<IBrush> WatermarkColorProperty = AvaloniaProperty.Register<SearchBox, IBrush>(nameof(WatermarkColor));

Expand Down Expand Up @@ -65,13 +65,13 @@ public TimeSpan UpdateDelay
set { SetValue(UpdateDelayProperty, value); }
}

public IBitmap SearchIcon
public Bitmap SearchIcon
{
get { return GetValue(SearchIconProperty); }
set { SetValue(SearchIconProperty, value); }
}

public IBitmap ClearSearchIcon
public Bitmap ClearSearchIcon
{
get { return GetValue(ClearSearchIconProperty); }
set { SetValue(ClearSearchIconProperty, value); }
Expand Down
3 changes: 2 additions & 1 deletion ILSpy.Core/ISmartTextOutput.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public static class SmartTextOutputExtensions
/// <summary>
/// Creates a button.
/// </summary>
public static void AddButton(this ISmartTextOutput output, IBitmap icon, string text, EventHandler<RoutedEventArgs> click)
public static void AddButton(this ISmartTextOutput output, Bitmap icon, string text, EventHandler<RoutedEventArgs> click)
{
output.AddUIElement(
delegate {
Expand All @@ -67,6 +67,7 @@ public static void AddButton(this ISmartTextOutput output, IBitmap icon, string
} else {
button.Content = text;
}

button.Click += click;
return button;
});
Expand Down
143 changes: 71 additions & 72 deletions ILSpy.Core/Images/Images.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,83 +27,82 @@ namespace ICSharpCode.ILSpy
{
static class Images
{
static IBitmap LoadBitmap(string name)
static Bitmap LoadBitmap(string name)
{
Bitmap image = new Bitmap("Images/" + name + ".png");
//image.Freeze();
return image;
}

public static readonly IBitmap Breakpoint = LoadBitmap("Breakpoint");
public static readonly IBitmap CurrentLine = LoadBitmap("CurrentLine");
public static readonly Bitmap Breakpoint = LoadBitmap("Breakpoint");
public static readonly Bitmap CurrentLine = LoadBitmap("CurrentLine");

public static readonly IBitmap ViewCode = LoadBitmap("ViewCode");
public static readonly IBitmap Save = LoadBitmap("SaveFile");
public static readonly IBitmap OK = LoadBitmap("OK");
public static readonly Bitmap ViewCode = LoadBitmap("ViewCode");
public static readonly Bitmap Save = LoadBitmap("SaveFile");
public static readonly Bitmap OK = LoadBitmap("OK");

public static readonly IBitmap Delete = LoadBitmap("Delete");
public static readonly IBitmap Search = LoadBitmap("Search");
public static readonly Bitmap Delete = LoadBitmap("Delete");
public static readonly Bitmap Search = LoadBitmap("Search");

public static readonly IBitmap Assembly = LoadBitmap("Assembly");
public static readonly IBitmap AssemblyWarning = LoadBitmap("AssemblyWarning");
public static readonly IBitmap AssemblyLoading = LoadBitmap("FindAssembly");
public static readonly Bitmap Assembly = LoadBitmap("Assembly");
public static readonly Bitmap AssemblyWarning = LoadBitmap("AssemblyWarning");
public static readonly Bitmap AssemblyLoading = LoadBitmap("FindAssembly");

public static readonly IBitmap Library = LoadBitmap("Library");
public static readonly IBitmap Namespace = LoadBitmap("NameSpace");
public static readonly Bitmap Library = LoadBitmap("Library");
public static readonly Bitmap Namespace = LoadBitmap("NameSpace");

public static readonly IBitmap ReferenceFolderOpen = LoadBitmap("ReferenceFolder.Open");
public static readonly IBitmap ReferenceFolderClosed = LoadBitmap("ReferenceFolder.Closed");
public static readonly Bitmap ReferenceFolderOpen = LoadBitmap("ReferenceFolder.Open");
public static readonly Bitmap ReferenceFolderClosed = LoadBitmap("ReferenceFolder.Closed");

public static readonly IBitmap SubTypes = LoadBitmap("SubTypes");
public static readonly IBitmap SuperTypes = LoadBitmap("SuperTypes");
public static readonly Bitmap SubTypes = LoadBitmap("SubTypes");
public static readonly Bitmap SuperTypes = LoadBitmap("SuperTypes");

public static readonly IBitmap FolderOpen = LoadBitmap("Folder.Open");
public static readonly IBitmap FolderClosed = LoadBitmap("Folder.Closed");
public static readonly Bitmap FolderOpen = LoadBitmap("Folder.Open");
public static readonly Bitmap FolderClosed = LoadBitmap("Folder.Closed");

public static readonly IBitmap Resource = LoadBitmap("Resource");
public static readonly IBitmap ResourceImage = LoadBitmap("ResourceImage");
public static readonly IBitmap ResourceResourcesFile = LoadBitmap("ResourceResourcesFile");
public static readonly IBitmap ResourceXml = LoadBitmap("ResourceXml");
public static readonly IBitmap ResourceXsd = LoadBitmap("ResourceXsd");
public static readonly IBitmap ResourceXslt = LoadBitmap("ResourceXslt");
public static readonly Bitmap Resource = LoadBitmap("Resource");
public static readonly Bitmap ResourceImage = LoadBitmap("ResourceImage");
public static readonly Bitmap ResourceResourcesFile = LoadBitmap("ResourceResourcesFile");
public static readonly Bitmap ResourceXml = LoadBitmap("ResourceXml");
public static readonly Bitmap ResourceXsd = LoadBitmap("ResourceXsd");
public static readonly Bitmap ResourceXslt = LoadBitmap("ResourceXslt");

public static readonly IBitmap Class = LoadBitmap("Class");
public static readonly IBitmap Struct = LoadBitmap("Struct");
public static readonly IBitmap Interface = LoadBitmap("Interface");
public static readonly IBitmap Delegate = LoadBitmap("Delegate");
public static readonly IBitmap Enum = LoadBitmap("Enum");
public static readonly IBitmap StaticClass = LoadBitmap("StaticClass");
public static readonly Bitmap Class = LoadBitmap("Class");
public static readonly Bitmap Struct = LoadBitmap("Struct");
public static readonly Bitmap Interface = LoadBitmap("Interface");
public static readonly Bitmap Delegate = LoadBitmap("Delegate");
public static readonly Bitmap Enum = LoadBitmap("Enum");
public static readonly Bitmap StaticClass = LoadBitmap("StaticClass");

public static readonly Bitmap Field = LoadBitmap("Field");
public static readonly Bitmap FieldReadOnly = LoadBitmap("FieldReadOnly");
public static readonly Bitmap Literal = LoadBitmap("Literal");
public static readonly Bitmap EnumValue = LoadBitmap("EnumValue");

public static readonly IBitmap Field = LoadBitmap("Field");
public static readonly IBitmap FieldReadOnly = LoadBitmap("FieldReadOnly");
public static readonly IBitmap Literal = LoadBitmap("Literal");
public static readonly IBitmap EnumValue = LoadBitmap("EnumValue");
public static readonly Bitmap Method = LoadBitmap("Method");
public static readonly Bitmap Constructor = LoadBitmap("Constructor");
public static readonly Bitmap VirtualMethod = LoadBitmap("VirtualMethod");
public static readonly Bitmap Operator = LoadBitmap("Operator");
public static readonly Bitmap ExtensionMethod = LoadBitmap("ExtensionMethod");
public static readonly Bitmap PInvokeMethod = LoadBitmap("PInvokeMethod");

public static readonly IBitmap Method = LoadBitmap("Method");
public static readonly IBitmap Constructor = LoadBitmap("Constructor");
public static readonly IBitmap VirtualMethod = LoadBitmap("VirtualMethod");
public static readonly IBitmap Operator = LoadBitmap("Operator");
public static readonly IBitmap ExtensionMethod = LoadBitmap("ExtensionMethod");
public static readonly IBitmap PInvokeMethod = LoadBitmap("PInvokeMethod");
public static readonly Bitmap Property = LoadBitmap("Property");
public static readonly Bitmap Indexer = LoadBitmap("Indexer");

public static readonly IBitmap Property = LoadBitmap("Property");
public static readonly IBitmap Indexer = LoadBitmap("Indexer");
public static readonly Bitmap Event = LoadBitmap("Event");

public static readonly IBitmap Event = LoadBitmap("Event");
private static readonly Bitmap OverlayProtected = LoadBitmap("OverlayProtected");
private static readonly Bitmap OverlayInternal = LoadBitmap("OverlayInternal");
private static readonly Bitmap OverlayProtectedInternal = LoadBitmap("OverlayProtectedInternal");
private static readonly Bitmap OverlayPrivate = LoadBitmap("OverlayPrivate");
private static readonly Bitmap OverlayPrivateProtected = LoadBitmap("OverlayPrivateProtected");
private static readonly Bitmap OverlayCompilerControlled = LoadBitmap("OverlayCompilerControlled");

private static readonly IBitmap OverlayProtected = LoadBitmap("OverlayProtected");
private static readonly IBitmap OverlayInternal = LoadBitmap("OverlayInternal");
private static readonly IBitmap OverlayProtectedInternal = LoadBitmap("OverlayProtectedInternal");
private static readonly IBitmap OverlayPrivate = LoadBitmap("OverlayPrivate");
private static readonly IBitmap OverlayPrivateProtected = LoadBitmap("OverlayPrivateProtected");
private static readonly IBitmap OverlayCompilerControlled = LoadBitmap("OverlayCompilerControlled");
private static readonly Bitmap OverlayStatic = LoadBitmap("OverlayStatic");

private static readonly IBitmap OverlayStatic = LoadBitmap("OverlayStatic");

public static IBitmap LoadImage(object part, string icon)
public static Bitmap LoadImage(object part, string icon)
{
IBitmap image;
Bitmap image;
var assembly = part.GetType().Assembly;
if (assembly == typeof(Images).Assembly) {
image = new Bitmap(icon);
Expand All @@ -112,20 +111,20 @@ public static IBitmap LoadImage(object part, string icon)
var embededResourceStream = assembly.GetManifestResourceStream(icon);
image = new Bitmap(embededResourceStream);
}

return image;
}


private static readonly TypeIconCache typeIconCache = new TypeIconCache();
private static readonly MemberIconCache memberIconCache = new MemberIconCache();

public static IBitmap GetIcon(TypeIcon icon, AccessOverlayIcon overlay, bool isStatic = false)
public static Bitmap GetIcon(TypeIcon icon, AccessOverlayIcon overlay, bool isStatic = false)
{
lock (typeIconCache)
return typeIconCache.GetIcon(icon, overlay, isStatic);
}

public static IBitmap GetIcon(MemberIcon icon, AccessOverlayIcon overlay, bool isStatic)
public static Bitmap GetIcon(MemberIcon icon, AccessOverlayIcon overlay, bool isStatic)
{
lock (memberIconCache)
return memberIconCache.GetIcon(icon, overlay, isStatic);
Expand All @@ -145,9 +144,9 @@ public TypeIconCache()
PreloadPublicIconToCache(TypeIcon.StaticClass, Images.StaticClass);
}

protected override IBitmap GetBaseImage(TypeIcon icon)
protected override Bitmap GetBaseImage(TypeIcon icon)
{
IBitmap baseImage;
Bitmap baseImage;
switch (icon) {
case TypeIcon.Class:
baseImage = Images.Class;
Expand Down Expand Up @@ -194,9 +193,9 @@ public MemberIconCache()
PreloadPublicIconToCache(MemberIcon.Event, Images.Event);
}

protected override IBitmap GetBaseImage(MemberIcon icon)
protected override Bitmap GetBaseImage(MemberIcon icon)
{
IBitmap baseImage;
Bitmap baseImage;
switch (icon) {
case MemberIcon.Field:
baseImage = Images.Field;
Expand Down Expand Up @@ -258,39 +257,39 @@ public WbFb(WriteableBitmap bitmap)

private abstract class IconCache<T>
{
private readonly Dictionary<Tuple<T, AccessOverlayIcon, bool>, IBitmap> cache = new Dictionary<Tuple<T, AccessOverlayIcon, bool>, IBitmap>();
private readonly Dictionary<Tuple<T, AccessOverlayIcon, bool>, Bitmap> cache = new Dictionary<Tuple<T, AccessOverlayIcon, bool>, Bitmap>();

protected void PreloadPublicIconToCache(T icon, IBitmap image)
protected void PreloadPublicIconToCache(T icon, Bitmap image)
{
var iconKey = new Tuple<T, AccessOverlayIcon, bool>(icon, AccessOverlayIcon.Public, false);
cache.Add(iconKey, image);
}

public IBitmap GetIcon(T icon, AccessOverlayIcon overlay, bool isStatic)
public Bitmap GetIcon(T icon, AccessOverlayIcon overlay, bool isStatic)
{
var iconKey = new Tuple<T, AccessOverlayIcon, bool>(icon, overlay, isStatic);
if (cache.ContainsKey(iconKey)) {
return cache[iconKey];
} else {
IBitmap result = BuildMemberIcon(icon, overlay, isStatic);
Bitmap result = BuildMemberIcon(icon, overlay, isStatic);
cache.Add(iconKey, result);
return result;
}
}

private IBitmap BuildMemberIcon(T icon, AccessOverlayIcon overlay, bool isStatic)
private Bitmap BuildMemberIcon(T icon, AccessOverlayIcon overlay, bool isStatic)
{
IBitmap baseImage = GetBaseImage(icon);
IBitmap overlayImage = GetOverlayImage(overlay);
Bitmap baseImage = GetBaseImage(icon);
Bitmap overlayImage = GetOverlayImage(overlay);

return CreateOverlayImage(baseImage, overlayImage, isStatic);
}

protected abstract IBitmap GetBaseImage(T icon);
protected abstract Bitmap GetBaseImage(T icon);

private static IBitmap GetOverlayImage(AccessOverlayIcon overlay)
private static Bitmap GetOverlayImage(AccessOverlayIcon overlay)
{
IBitmap overlayImage;
Bitmap overlayImage;
switch (overlay) {
case AccessOverlayIcon.Public:
overlayImage = null;
Expand Down Expand Up @@ -321,7 +320,7 @@ private static IBitmap GetOverlayImage(AccessOverlayIcon overlay)

private static readonly Rect iconRect = new Rect(0, 0, 16, 16);

private static IBitmap CreateOverlayImage(IBitmap baseImage, IBitmap overlay, bool isStatic)
private static Bitmap CreateOverlayImage(Bitmap baseImage, Bitmap overlay, bool isStatic)
{
var image = new WriteableBitmap(new PixelSize(16, 16), new Vector(96, 96), PixelFormat.Rgba8888, AlphaFormat.Unpremul);

Expand Down
2 changes: 1 addition & 1 deletion ILSpy.Core/Languages/CSharpLanguage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -349,7 +349,7 @@ void AddReferenceAssemblyWarningMessage(PEFile module, ITextOutput output)
}

void AddWarningMessage(PEFile module, ITextOutput output, string line1, string line2 = null,
string buttonText = null, IBitmap buttonImage = null, EventHandler<Avalonia.Interactivity.RoutedEventArgs> buttonClickHandler = null)
string buttonText = null, Bitmap buttonImage = null, EventHandler<Avalonia.Interactivity.RoutedEventArgs> buttonClickHandler = null)
{
if (output is ISmartTextOutput fancyOutput)
{
Expand Down
2 changes: 1 addition & 1 deletion ILSpy.Core/Search/AbstractSearchStrategy.cs
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ string GetLanguageSpecificName(IEntity member)
}
}

IBitmap GetIcon(IEntity member)
Bitmap GetIcon(IEntity member)
{
switch (member)
{
Expand Down
4 changes: 2 additions & 2 deletions ILSpy.Core/Search/SearchPane.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -433,8 +433,8 @@ public sealed class SearchResult : IMemberTreeNode
public string Location { get; set; }
public string Name { get; set; }
public object ToolTip { get; set; }
public IBitmap Image { get; set; }
public IBitmap LocationImage { get; set; }
public Bitmap Image { get; set; }
public Bitmap LocationImage { get; set; }

public override string ToString()
{
Expand Down
2 changes: 1 addition & 1 deletion ILSpy.Core/TreeNodes/EventTreeNode.cs
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public static object GetText(IEvent ev, Language language)

public override object Icon => GetIcon(EventDefinition);

public static IBitmap GetIcon(IEvent @event)
public static Bitmap GetIcon(IEvent @event)
{
return Images.GetIcon(MemberIcon.Event, MethodTreeNode.GetOverlayIcon(@event.Accessibility), @event.IsStatic);
}
Expand Down
2 changes: 1 addition & 1 deletion ILSpy.Core/TreeNodes/FieldTreeNode.cs
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public static object GetText(IField field, Language language)

public override object Icon => GetIcon(FieldDefinition);

public static IBitmap GetIcon(IField field)
public static Bitmap GetIcon(IField field)
{
if (field.DeclaringType.Kind == TypeKind.Enum && field.ReturnType.Kind == TypeKind.Enum)
return Images.GetIcon(MemberIcon.EnumValue, MethodTreeNode.GetOverlayIcon(field.Accessibility), false);
Expand Down
2 changes: 1 addition & 1 deletion ILSpy.Core/TreeNodes/MethodTreeNode.cs
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public static object GetText(IMethod method, Language language)

public override object Icon => GetIcon(MethodDefinition);

public static IBitmap GetIcon(IMethod method)
public static Bitmap GetIcon(IMethod method)
{
if (method.IsOperator)
return Images.GetIcon(MemberIcon.Operator, GetOverlayIcon(method.Accessibility), false);
Expand Down
2 changes: 1 addition & 1 deletion ILSpy.Core/TreeNodes/PropertyTreeNode.cs
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public static object GetText(IProperty property, Language language)

public override object Icon => GetIcon(PropertyDefinition);

public static IBitmap GetIcon(IProperty property)
public static Bitmap GetIcon(IProperty property)
{
return Images.GetIcon(property.IsIndexer ? MemberIcon.Indexer : MemberIcon.Property,
MethodTreeNode.GetOverlayIcon(property.Accessibility), property.IsStatic);
Expand Down
4 changes: 2 additions & 2 deletions ILSpy.Core/TreeNodes/ResourceNodes/IconResourceEntryNode.cs
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,9 @@ namespace ICSharpCode.ILSpy.TreeNodes
// }
// }

// private static void AddIcon(AvaloniaEditTextOutput output, IBitmap frame)
// private static void AddIcon(AvaloniaEditTextOutput output, Bitmap frame)
// {
// output.AddUIElement(() => new Image { Source = frame });
// }
//}
}
}
4 changes: 2 additions & 2 deletions ILSpy.Core/TreeNodes/ResourceNodes/ImageResourceEntryNode.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (c) 2011 AlphaSierraPapa for the SharpDevelop Team
// Copyright (c) 2011 AlphaSierraPapa for the SharpDevelop Team
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this
// software and associated documentation files (the "Software"), to deal in the Software
Expand Down Expand Up @@ -69,7 +69,7 @@ public override bool View(DecompilerTextView textView)
try {
AvaloniaEditTextOutput output = new AvaloniaEditTextOutput();
Data.Position = 0;
IBitmap image = new Bitmap(Data);
Bitmap image = new Bitmap(Data);
output.AddUIElement(() => new Image { Source = image });
output.WriteLine();
output.AddButton(Images.Save, Resources.Save, async delegate {
Expand Down
2 changes: 1 addition & 1 deletion ILSpy.Core/TreeNodes/TypeTreeNode.cs
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ public override void Decompile(Language language, ITextOutput output, Decompilat

public override object Icon => GetIcon(TypeDefinition);

public static IBitmap GetIcon(ITypeDefinition type)
public static Bitmap GetIcon(ITypeDefinition type)
{
return Images.GetIcon(GetTypeIcon(type), GetOverlayIcon(type));
}
Expand Down

0 comments on commit 01deb70

Please sign in to comment.