Beispiel #1
0
        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());
        }
Beispiel #3
0
 public static string CreateChildObjectName(this CocoaStringObject sender, string propertyName)
 {
     return(string.Format("{0}{1}", sender.Name, propertyName));
 }