/// <summary> /// Initializes a new instance of the <see cref="T:FigmaSharp.FigmaFile"/> class. /// </summary> /// <param name="file">File.</param> /// <param name="figmaViewConverters">Figma view converters.</param> public FigmaFile(string file, FigmaViewConverter[] figmaViewConverters) { this.file = file; ContentView = AppContext.Current.CreateEmptyView(); FigmaImages = new List <IImageView>(); var assembly = System.Reflection.Assembly.GetCallingAssembly(); figmaLocalFileProvider = new FigmaManifestFileProvider(assembly); fileService = new FigmaFileRendererService(figmaLocalFileProvider, figmaViewConverters); rendererService = new FigmaViewRendererDistributionService(fileService); }
public override void ViewDidLoad() { base.ViewDidLoad(); scrollViewWrapper = new ScrollViewWrapper(scrollview); outlinePanel = new OutlinePanel(); var converters = FigmaSharp.AppContext.Current.GetFigmaConverters(); //we load all the services fileProvider = new FigmaManifestFileProvider(this.GetType().Assembly); rendererService = new FigmaFileRendererService(fileProvider, converters); distributionService = new FigmaViewRendererDistributionService(rendererService); designerDelegate = new FigmaDesignerDelegate(); //figma session handles session = new FigmaDesignerSession(fileProvider, rendererService, distributionService); designerSurface = new FigmaDesignerSurface(designerDelegate, session); // we set to our surface current window to listen changes on it var window = NSApplication.SharedApplication.DangerousWindows .FirstOrDefault(s => s is WindowWrapper) as WindowWrapper; designerSurface.SetWindow(window); //time to reload a figma document in the current session session.Reload(scrollViewWrapper, "FigmaStoryboard.figma", new FigmaViewRendererServiceOptions()); // designerSurface.StartHoverSelection(); var second = new NSWindow(new CGRect(0, 0, 300, 600), NSWindowStyle.Titled | NSWindowStyle.Resizable | NSWindowStyle.Closable, NSBackingStore.Buffered, false); window.AddChildWindow(second, NSWindowOrderingMode.Above); //propertyPanel = new FigmaPropertyPanel(); //second.ContentView = propertyPanel.View; //propertyPanel.Initialize(); //surface.FocusedViewChanged += (sender, e) => //{ // var model = session.GetModel(e); // propertyPanel.Select(model); //}; //propertyPanel.Select(session.MainViews[0].FigmaNode); }
/// <summary> /// Initializes a new instance of the <see cref="T:FigmaSharp.FigmaFile"/> class. /// </summary> /// <param name="file">File.</param> /// <param name="figmaViewConverters">Figma view converters.</param> public FigmaFile(string file, FigmaViewConverter[] figmaViewConverters, FigmaViewPropertySetterBase propertySetter) { this.file = file; ContentView = AppContext.Current.CreateEmptyView(); FigmaImages = new List <IImageView>(); if (propertySetter == null) { propertySetter = AppContext.Current.GetPropertySetter(); } var assembly = System.Reflection.Assembly.GetCallingAssembly(); figmaLocalFileProvider = new FigmaManifestFileProvider(assembly, file); rendererService = new FigmaViewRendererService(figmaLocalFileProvider, figmaViewConverters, propertySetter); }
protected override async Task OnInitialize(ModelDescriptor modelDescriptor, Properties status) { if (!(modelDescriptor is FileDescriptor fileDescriptor)) { throw new InvalidOperationException(); } if (session == null) { Owner = fileDescriptor.Owner; fileName = fileDescriptor.FilePath; DocumentTitle = fileDescriptor.FilePath.FileName; figmaDelegate = new FigmaDesignerDelegate(); var converters = FigmaSharp.AppContext.Current.GetFigmaConverters(); fileProvider = new FigmaManifestFileProvider(this.GetType().Assembly); rendererService = new FigmaFileRendererService(fileProvider, converters); distributionService = new FigmaViewRendererDistributionService(rendererService); session = new FigmaDesignerSession(fileProvider, rendererService, distributionService); //session.ModifiedChanged += HandleModifiedChanged; session.ReloadFinished += Session_ReloadFinished; surface = new FigmaDesignerSurface(figmaDelegate, session) { Session = session }; surface.FocusedViewChanged += Surface_FocusedViewChanged; var window = NSApplication.SharedApplication.MainWindow; surface.SetWindow(new WindowInternalWrapper(window)); surface.StartHoverSelection(); //IdeApp.Workbench.ActiveDocumentChanged += OnActiveDocumentChanged; IdeApp.Workbench.DocumentOpened += OnDocumentOpened; } if (fileDescriptor.Owner is DotNetProject project) { session.Reload(scrollViewWrapper, fileName, new FigmaViewRendererServiceOptions()); } await base.OnInitialize(modelDescriptor, status); }
public override void InitializeFigmaComponent() { InternalInitializeComponent(); FileProvider = new FigmaManifestFileProvider(Assembly.GetCallingAssembly()); RendererService = new FigmaViewRendererService(FileProvider, GetFigmaViewConverters()); }