static void ProcessTransitionNodeID(string transitionNodeId, FigmaViewRendererService rendererService, FigmaViewRendererServiceOptions options) { if (string.IsNullOrEmpty(transitionNodeId)) { return; } var node = rendererService.FindNodeById(transitionNodeId); if (node.name == SignInDialog) { LoadSignInDialog(rendererService, options); } else if (node.name == RecentItemsDialog) { LoadRecentItemsDialog(rendererService, options); } else if (node.name == LoginDialog) { LoadLoginDialog(rendererService, options); } else if (node.name == LoadingDialog) { LoadLoadingDialog(rendererService, options); } else { var selectedNode = rendererService.FindNodeById(transitionNodeId); var storyboardRedered = rendererService.RenderByNode <IView>(selectedNode); storyboardRedered.CornerRadius = 5; SetContentDialog(storyboardRedered); } }
public static void RenderInWindow(this FigmaViewRendererService sender, IWindow mainWindow, FigmaViewRendererServiceOptions options, params string[] path) { var contentPath = path.Concat(new[] { "content" }).ToArray(); var contentFigmaNode = (IAbsoluteBoundingBox)sender.FileProvider.FindByPath(contentPath); var contentView = sender.RenderByNode <IView>((FigmaNode)contentFigmaNode, options); var windowFigmaNode = (IAbsoluteBoundingBox)sender.FileProvider.FindByPath(path); mainWindow.Size = windowFigmaNode.absoluteBoundingBox.Size; var windowNodeContainer = (IFigmaNodeContainer)windowFigmaNode; var windowComponent = windowNodeContainer.children .OfType <FigmaInstance>() .FirstOrDefault(s => s.Component.key == "b666bac2b68d976c9e3e5b52a0956a9f1857c1f2"); var windowLabel = windowComponent.children .OfType <FigmaText>() .FirstOrDefault(); mainWindow.Title = windowLabel.characters; var difX = contentFigmaNode.absoluteBoundingBox.X - windowFigmaNode.absoluteBoundingBox.X; var difY = contentFigmaNode.absoluteBoundingBox.Y - windowFigmaNode.absoluteBoundingBox.Y; const int WindowTitleHeight = 20; difY -= WindowTitleHeight; mainWindow.Content.AddChild(contentView); contentView.SetPosition(difX, difY); }
public static void RenderInWindow(this FigmaViewRendererService sender, IWindow mainWindow, string windowLayerName, FigmaViewRendererServiceOptions options = null) { var windowFigmaNode = sender.FileProvider.FindByName(windowLayerName); FigmaNode content = null; if (windowFigmaNode is IFigmaNodeContainer figmaNodeContainer) { content = figmaNodeContainer.children.FirstOrDefault(s => s.IsNodeWindowContent()); var windowComponent = windowFigmaNode.GetDialogInstanceFromParentContainer(); if (options == null) { options = new FigmaViewRendererServiceOptions(); options.AreImageProcessed = false; } options.ToIgnore = new FigmaNode[] { windowComponent }; if (windowComponent != null) { var windowLabel = windowComponent.children .OfType <FigmaText>() .FirstOrDefault(); if (windowLabel != null) { mainWindow.Title = windowLabel.characters; } } } if (windowFigmaNode is IAbsoluteBoundingBox box) { mainWindow.Size = box.absoluteBoundingBox.Size; } if (content == null) { content = windowFigmaNode; } var renderContent = sender.RenderByNode(content, mainWindow.Content, options); mainWindow.Content = renderContent; }