in FigmaSharp/FigmaSharp.Cocoa/Converters/Layers/ElipseConverter.cs [76:124]
public void ConfigureProperty(string propertyName, FigmaNode node, IView view)
{
var elipseNode = (FigmaElipse)node;
var elipseView = (NSView)view.NativeObject;
var circleLayer = (CAShapeLayer)elipseView.Layer.Sublayers[0];
if (propertyName == nameof (Properties.FillColor))
{
//to define system colors
var fills = elipseNode.fills.OfType<FigmaPaint>().FirstOrDefault();
if (fills != null && fills.color != null)
circleLayer.FillColor = fills.color.ToCGColor();
else
circleLayer.FillColor = NSColor.Clear.CGColor;
return;
}
if (propertyName == nameof(Properties.StrokeColor))
{
var strokes = elipseNode.strokes.FirstOrDefault();
if (strokes?.color != null)
circleLayer.StrokeColor = strokes.color.MixOpacity(strokes.opacity).ToNSColor().CGColor;
return;
}
if (propertyName == nameof(Properties.StrokeDashes))
{
if (elipseNode.strokeDashes != null)
{
var number = new NSNumber[elipseNode.strokeDashes.Length];
for (int i = 0; i < elipseNode.strokeDashes.Length; i++)
number[i] = elipseNode.strokeDashes[i];
circleLayer.LineDashPattern = number;
}
return;
}
if (propertyName == nameof(Properties.LineWidth))
{
circleLayer.LineWidth = elipseNode.strokeWeight;
return;
}
if (propertyName == nameof(Properties.Opacity))
{
elipseView.AlphaValue = elipseNode.opacity;
return;
}
}