示例#1
0
        /// <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);
        }
示例#2
0
        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);
        }
示例#3
0
        /// <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);
        }
示例#4
0
        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);
        }
示例#5
0
 public override void InitializeFigmaComponent()
 {
     InternalInitializeComponent();
     FileProvider    = new FigmaManifestFileProvider(Assembly.GetCallingAssembly());
     RendererService = new FigmaViewRendererService(FileProvider, GetFigmaViewConverters());
 }