Files
Pilz/Pilz.UI.WinForms.Telerik/Symbols/RadSymbolFactory.cs
Pilzinsel64 9a0f645e01 symbol proxy
2025-08-21 07:56:29 +02:00

72 lines
2.1 KiB
C#

using Pilz.UI.Symbols;
using Pilz.UI.WinForms.Symbols;
using Pilz.UI.WinForms.Telerik.Extensions;
using Telerik.WinControls;
namespace Pilz.UI.WinForms.Telerik.Symbols;
public abstract class RadSymbolFactory<TSymbols> : SymbolFactory<TSymbols>, IRadSymbolFactory<TSymbols>
{
public virtual RadSvgImage GetSvgImage(TSymbols svgImage, Size size)
{
using var stream = GetImageRessourceStream(svgImage);
var img = RadSvgImage.FromStream(stream);
if (!size.IsEmpty)
img.Size = size;
return img;
}
public virtual RadSvgImage GetSvgImageColored(TSymbols svgImage, SymbolSize size, Color color)
{
return GetSvgImageColored(svgImage, ResolveCommonSize(size), color);
}
public virtual RadSvgImage GetSvgImageColored(TSymbols svgImage, Size size, Color color)
{
var img = GetSvgImage(svgImage, size);
img.ApplyColor(color);
return img;
}
public override Image GetImage(TSymbols svgImage, SymbolSize size)
{
return GetImage(svgImage, ResolveCommonSize(size));
}
public override Image GetImage(TSymbols svgImage, Size size)
{
return GetImageFromSvg(GetSvgImage(svgImage, size));
}
public RadSvgImage GetSvgImage(TSymbols svgImage, SymbolSize size)
{
return GetSvgImage(svgImage, ResolveCommonSize(size));
}
public virtual Image GetImageColored(TSymbols svgImage, SymbolSize size, Color color)
{
return GetImageColored(svgImage, ResolveCommonSize(size), color);
}
public virtual Image GetImageColored(TSymbols svgImage, Size size, Color color)
{
return GetImageFromSvg(GetSvgImageColored(svgImage, size, color));
}
public virtual Image GetImageFromSvg(RadSvgImage svg)
{
return svg.ToImage();
}
public IRadSymbolProxy GetSvgImage(TSymbols svgImage)
{
return new RadSymbolProxy<TSymbols>(this, svgImage);
}
public IRadSymbolProxy GetSvgImageColored(TSymbols svgImage, Color color)
{
return new RadSymbolProxy<TSymbols>(this, svgImage, color: color);
}
}