in FigmaSharp/FigmaSharp.Cocoa/Converters/Layers/ElipseConverter.cs [180:246]
public void ConfigureCodeProperty(string propertyName, CodeNode codeNode, CocoaStringBuilder code)
{
var elipseNode = (FigmaElipse)codeNode.Node;
var circleLayer = new CocoaNodeStringObject(codeNode, typeof(NSView))
.AddChild(nameof(NSView.Layer))
.AddArrayChild(nameof(NSView.Layer.Sublayers), 0);
circleLayer.AddCast(typeof(CAShapeLayer));
circleLayer.AddEnclose();
if (propertyName == nameof(Properties.FillColor))
{
//to define system colors
var fills = elipseNode.fills.OfType<FigmaPaint>().FirstOrDefault();
if (fills != null && fills.color != null)
code.WritePropertyEquality(circleLayer.ToString(), nameof(CAShapeLayer.FillColor), fills.color.ToDesignerString(true));
else
code.WritePropertyEquality(circleLayer.ToString(), nameof(CAShapeLayer.FillColor), Members.Colors.Clear);
return;
}
if (propertyName == nameof(Properties.StrokeColor))
{
var strokes = elipseNode.strokes.FirstOrDefault();
if (strokes?.color != null)
code.WritePropertyEquality(circleLayer.ToString (),
nameof(CAShapeLayer.StrokeColor),
strokes.color.MixOpacity(strokes.opacity).ToDesignerString(true)
);
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];
code.WritePropertyEquality(circleLayer.ToString (),
nameof(CAShapeLayer.LineDashPattern),
number.ToDesignerString()
);
}
return;
}
if (propertyName == nameof(Properties.LineWidth))
{
code.WritePropertyEquality(circleLayer.ToString (),
nameof(CAShapeLayer.LineWidth),
elipseNode.strokeWeight.ToString()
);
return;
}
if (propertyName == nameof(Properties.Opacity))
{
code.WritePropertyEquality(codeNode.Name,
nameof(NSView.AlphaValue),
elipseNode.opacity.ToString()
);
return;
}
}