From aa1095a02de2dc90c5fc59855bc21d23a0646e79 Mon Sep 17 00:00:00 2001 From: zii-dmg Date: Thu, 22 Apr 2021 17:50:39 +0300 Subject: [PATCH] Use embedded resources in CssProvider.LoadFromResource (#238) --- Source/Libs/GtkSharp/CssProvider.cs | 27 ++++++++++++++++++++++++++ Source/Libs/GtkSharp/GtkSharp.metadata | 2 ++ 2 files changed, 29 insertions(+) create mode 100644 Source/Libs/GtkSharp/CssProvider.cs diff --git a/Source/Libs/GtkSharp/CssProvider.cs b/Source/Libs/GtkSharp/CssProvider.cs new file mode 100644 index 000000000..764498150 --- /dev/null +++ b/Source/Libs/GtkSharp/CssProvider.cs @@ -0,0 +1,27 @@ +namespace Gtk +{ + using System; + using System.IO; + using System.Reflection; + + public partial class CssProvider + { + public bool LoadFromResource(string resource) => LoadFromResource(Assembly.GetCallingAssembly(), resource); + + public bool LoadFromResource(Assembly assembly, string resource) + { + if (assembly == null) + assembly = Assembly.GetCallingAssembly(); + + Stream stream = assembly.GetManifestResourceStream(resource); + if (stream == null) + throw new ArgumentException("'" + resource + "' is not a valid resource name of assembly '" + assembly + "'.", nameof(resource)); + + using (var reader = new StreamReader(stream)) + { + string data = reader.ReadToEnd(); + return LoadFromData(data); + } + } + } +} diff --git a/Source/Libs/GtkSharp/GtkSharp.metadata b/Source/Libs/GtkSharp/GtkSharp.metadata index 1293f72e6..c0ff7cd3a 100644 --- a/Source/Libs/GtkSharp/GtkSharp.metadata +++ b/Source/Libs/GtkSharp/GtkSharp.metadata @@ -1017,6 +1017,8 @@ async async + 1 + true true