public void CreateCodeMember(CodeNode codeNode, CocoaStringBuilder builder, bool constructor, bool renderVar) { var viewObject = new CocoaNodeStringObject(codeNode, typeof(NSView)); var elipseNode = (FigmaElipse)codeNode.Node; if (constructor) { builder.WriteConstructor(viewObject, renderVar); } builder.WritePropertyEquality(viewObject, nameof(NSView.WantsLayer), true); builder.WritePropertyEquality(viewObject, nameof(NSView.TranslatesAutoresizingMaskIntoConstraints), false); var circleShareLayerObject = viewObject.CreateChildStringObject("ElipseNode", typeof(CAShapeLayer)); builder.WriteConstructor(circleShareLayerObject, includesVar: true); builder.WriteMethod( viewObject.CreatePropertyName(nameof(NSView.Layer)), nameof(NSView.Layer.AddSublayer), circleShareLayerObject); var rectangle = new CGRect(elipseNode.strokeWeight, elipseNode.strokeWeight, elipseNode.absoluteBoundingBox.Width - (elipseNode.strokeWeight * 2), elipseNode.absoluteBoundingBox.Height - (elipseNode.strokeWeight * 2)); var bezierPathObject = new CocoaStringObject(Members.Draw.BezierPath.FromOvalInRect(rectangle), typeof(NSBezierPath)); bezierPathObject.AddEnclose(); builder.WriteEquality( circleShareLayerObject.CreatePropertyName(nameof(CAShapeLayer.Path)), bezierPathObject.Draw.ToCGPath() ); }
public void CocoaStringObject_GenerationTest() { var shapeLayerObject = new CocoaStringObject("test", default(Type)); Assert.AreEqual("test", shapeLayerObject.ToString()); shapeLayerObject.AddChild("test1"); Assert.AreEqual("test.test1", shapeLayerObject.ToString()); shapeLayerObject.AddArrayChild("Views", 2); Assert.AreEqual("test.test1.Views[2]", shapeLayerObject.ToString()); shapeLayerObject.AddCast(typeof(System.String)); Assert.AreEqual("(System.String)test.test1.Views[2]", shapeLayerObject.ToString()); shapeLayerObject.AddEnclose(); Assert.AreEqual("((System.String)test.test1.Views[2])", shapeLayerObject.ToString()); }
public static string CreateChildObjectName(this CocoaStringObject sender, string propertyName) { return(string.Format("{0}{1}", sender.Name, propertyName)); }