Ejemplo n.º 1
0
        public void StackView_Orientation(string orientation)
        {
            var stackViewLayer = provider.FindByName(orientation);

            Assert.NotNull(stackViewLayer);

            var service = new NativeViewCodeService(provider, converters);
            var options = new CodeRenderServiceOptions()
            {
                ScanChildren    = false,
                ShowComments    = false,
                ShowAddChild    = false,
                ShowSize        = false,
                ShowConstraints = false
            };

            var nodeName = "stackViewView";
            var builder  = new StringBuilder();

            service.GetCode(builder, new CodeNode(stackViewLayer, nodeName), currentRendererOptions: options);
            builder.ReplaceDefaultNameTag(nodeName);

            Assert.IsNotEmpty(builder.ToString());
            Assert.True(builder.ToString().Contains($"{nodeName}.Orientation = NSUserInterfaceLayoutOrientation.{orientation};"));
        }
Ejemplo n.º 2
0
        protected override void OnGetPartialDesignerClass(FigmaPartialDesignerClass partialDesignerClass, CodeRenderService codeRendererService, bool translateLabels)
        {
            if (FigmaNode == null)
            {
                return;
            }

            partialDesignerClass.Usings.Add(nameof(AppKit));

            //restore this state
            var builder = new System.Text.StringBuilder();

            builder.WritePropertyEquality(Members.This, nameof(AppKit.NSView.TranslatesAutoresizingMaskIntoConstraints), false);

            var options = new CodeRenderServiceOptions()
            {
                TranslateLabels = translateLabels
            };

            codeRendererService.GetCode(builder, new CodeNode(FigmaNode, null), null, options);

            if (codeRendererService is NativeViewCodeService nativeViewCodeService)
            {
                partialDesignerClass.PrivateMembers.Clear();
                partialDesignerClass.PrivateMembers.AddRange(nativeViewCodeService.PrivateMembers);
            }

            partialDesignerClass.InitializeComponentContent = builder.ToString();
        }
Ejemplo n.º 3
0
        void OutlinePanel_RaiseFirstResponder(object sender, FigmaNode e)
        {
            codeRenderer.Clear();
            currentSelectedNode = e;
            var builder = new StringBuilder();
            var options = new CodeRenderServiceOptions()
            {
                TranslateLabels = openUrlButton.State == NSCellStateValue.On
            };

            codeRenderer.GetCode(builder, new CodeNode(e, null), null, options);
            CopyToLogView(builder.ToString());
        }
Ejemplo n.º 4
0
        public void StackView_Children()
        {
            var stackViewLayer = provider.FindByName(mainNodeName);

            Assert.NotNull(stackViewLayer);

            var service = new NativeViewCodeService(provider, converters);
            var options = new CodeRenderServiceOptions()
            {
                ShowComments    = false,
                ShowSize        = false,
                ShowConstraints = false
            };

            var builder = new StringBuilder();

            service.GetCode(builder, new CodeNode(stackViewLayer), currentRendererOptions: options);

            Assert.IsNotEmpty(builder.ToString());
        }
Ejemplo n.º 5
0
        public void SkippedNodes()
        {
            var window = provider.FindByName("MyWindow");

            Assert.NotNull(window);

            var service = new NativeViewCodeService(provider, converters);
            var options = new CodeRenderServiceOptions()
            {
                ShowComments    = false,
                ShowSize        = false,
                ShowConstraints = false
            };

            var builder = new StringBuilder();

            service.GetCode(builder, new CodeNode(window), currentRendererOptions: options);
            string code = builder.ToString();

            StringAssert.DoesNotContain("labelToBeSkipped", code);
            StringAssert.Contains("labelToBeDisplayed", code);
        }
Ejemplo n.º 6
0
        protected override void OnGetPartialDesignerClass(FigmaPartialDesignerClass partialDesignerClass, CodeRenderService codeRendererService, bool translateLabels)
        {
            if (FigmaNode == null)
            {
                return;
            }

            partialDesignerClass.Usings.Add(nameof(AppKit));

            //restore this state
            var builder = new System.Text.StringBuilder();
            //builder.AppendLine ("//HACK: Temporal Window Frame Size");

            bool centers = false;

            var windowComponent = FigmaNode.GetDialogInstanceFromParentContainer();

            if (windowComponent != null)
            {
                if (windowComponent.Options() is IFigmaNodeContainer figmaNodeContainer)
                {
                    var title = ((FigmaNode)figmaNodeContainer)
                                .FirstChild(s => s.name == "title" && s.visible) as FigmaText;

                    if (title != null)
                    {
                        builder.WriteEquality(CodeGenerationHelpers.This, nameof(AppKit.NSWindow.Title), title.characters ?? "", inQuotes: true);
                    }

                    if (figmaNodeContainer.HasChildrenVisible("resize"))
                    {
                        builder.AppendLine(string.Format("{0}.{1} |= {2};",
                                                         CodeGenerationHelpers.This,
                                                         nameof(AppKit.NSWindow.StyleMask),
                                                         AppKit.NSWindowStyle.Resizable.GetFullName()
                                                         ));
                    }

                    if (figmaNodeContainer.HasChildrenVisible("close"))
                    {
                        builder.AppendLine(string.Format("{0}.{1} |= {2};",
                                                         CodeGenerationHelpers.This,
                                                         nameof(AppKit.NSWindow.StyleMask),
                                                         AppKit.NSWindowStyle.Closable.GetFullName()
                                                         ));
                    }

                    if (figmaNodeContainer.HasChildrenVisible("min"))
                    {
                        builder.AppendLine(string.Format("{0}.{1} |= {2};",
                                                         CodeGenerationHelpers.This,
                                                         nameof(AppKit.NSWindow.StyleMask),
                                                         AppKit.NSWindowStyle.Miniaturizable.GetFullName()
                                                         ));
                    }

                    if (figmaNodeContainer.HasChildrenVisible("max") == false)
                    {
                        builder.AppendLine(string.Format("{0}.{1} ({2}).{3} = {4};",
                                                         CodeGenerationHelpers.This,
                                                         nameof(NSWindow.StandardWindowButton),
                                                         NSWindowButton.ZoomButton.GetFullName(),
                                                         nameof(NSControl.Enabled),
                                                         bool.FalseString.ToLower()
                                                         ));
                    }
                }
            }

            //Window Frame
            if (FigmaNode is IAbsoluteBoundingBox box && box.absoluteBoundingBox != null)
            {
                builder.AppendLine();
                builder.WriteEquality(frameEntity, null, nameof(AppKit.NSWindow.Frame), instanciate: true);

                string instance = typeof(CoreGraphics.CGSize).
                                  GetConstructor(new string[] {
                    box.absoluteBoundingBox.Width.ToDesignerString(),
                    box.absoluteBoundingBox.Height.ToDesignerString()
                });
                builder.WriteEquality(frameEntity, nameof(AppKit.NSWindow.Frame.Size), instance, instanciate: false);

                string parameters = $"{frameEntity}, {true.ToDesignerString ()}";

                builder.WriteMethod(CodeGenerationHelpers.This, nameof(AppKit.NSWindow.SetFrame), parameters);
                builder.WriteEquality(CodeGenerationHelpers.This, nameof(AppKit.NSWindow.ContentMinSize), "this.ContentView.Frame.Size");
            }

            var options = new CodeRenderServiceOptions()
            {
                TranslateLabels = translateLabels
            };

            codeRendererService.GetCode(builder, new CodeNode(FigmaNode, null), null, options);
            partialDesignerClass.InitializeComponentContent = builder.ToString();

            if (codeRendererService is NativeViewCodeService nativeViewCodeService)
            {
                partialDesignerClass.PrivateMembers.Clear();
                partialDesignerClass.PrivateMembers.AddRange(nativeViewCodeService.PrivateMembers);
            }

            if (centers)
            {
                builder.AppendLine(string.Format("{0}.{1}();",
                                                 CodeGenerationHelpers.This,
                                                 nameof(AppKit.NSWindow.Center)
                                                 ));
            }
        }
Ejemplo n.º 7
0
 public void GetCode(StringBuilder builder, CodeNode node, CodeNode parent = null, CodeRenderServiceOptions currentRendererOptions = null, ITranslationService translateService = null)
 {
     throw new NotImplementedException();
 }