add Pilz.UI & Pilz.UI.Gtk
This commit is contained in:
@@ -1,31 +1,9 @@
|
||||
using System.Reflection;
|
||||
using Pilz.UI.Symbols;
|
||||
|
||||
namespace Pilz.UI.WinForms.Symbols;
|
||||
|
||||
public abstract class SymbolFactory<TSymbols> : ISymbolFactory<TSymbols>
|
||||
public abstract class SymbolFactory<TSymbols> : BaseSymbolFactory<TSymbols>, ISymbolFactory<TSymbols>
|
||||
{
|
||||
public abstract string GetImageRessourcePath(TSymbols svgImage);
|
||||
public abstract Assembly GetImageResourceAssembly();
|
||||
|
||||
protected virtual Size ResolveCommonSize(SymbolSize size)
|
||||
{
|
||||
return size switch
|
||||
{
|
||||
SymbolSize.Default => Size.Empty,
|
||||
SymbolSize.Small => new Size(16, 16),
|
||||
SymbolSize.Medium => new Size(20, 20),
|
||||
SymbolSize.Large => new Size(32, 32),
|
||||
_ => new Size((int)size, (int)size),
|
||||
};
|
||||
}
|
||||
|
||||
public virtual Stream? GetImageRessourceStream(TSymbols svgImage)
|
||||
{
|
||||
var asm = GetImageResourceAssembly();
|
||||
var path = GetImageRessourcePath(svgImage);
|
||||
return asm.GetManifestResourceStream(path);
|
||||
}
|
||||
|
||||
public virtual Image? GetImage(TSymbols svgImage, SymbolSize size)
|
||||
{
|
||||
return GetImage(svgImage, ResolveCommonSize(size));
|
||||
|
||||
Reference in New Issue
Block a user