Beispiel #1
0
        /// <summary>
        /// Detach project editor from container control.
        /// </summary>
        public void DetachEditor()
        {
            if (_projectEditor != null)
            {
                _projectEditor.CanvasPlatform.Invalidate  = null;
                _projectEditor.CanvasPlatform.ResetZoom   = null;
                _projectEditor.CanvasPlatform.AutoFitZoom = null;

                _projectEditor.LayoutPlatform.LoadLayout  = null;
                _projectEditor.LayoutPlatform.SaveLayout  = null;
                _projectEditor.LayoutPlatform.ResetLayout = null;

                zoomBorder.InvalidatedChild = null;

                _inputProcessor.Dispose();
                _inputProcessor = null;
                _inputSource    = null;

                zoomBorder.AllowDrop  = false;
                zoomBorder.DragEnter -= ZoomBorder_DragEnter;
                zoomBorder.Drop      -= ZoomBorder_Drop;
            }

            _projectEditor = null;
        }
Beispiel #2
0
        /// <summary>
        /// Attach project editor to container control.
        /// </summary>
        public void AttachEditor()
        {
            _projectEditor = DataContext as ProjectEditor;

            if (_projectEditor != null)
            {
                _projectEditor.CanvasPlatform.Invalidate  = () => { };
                _projectEditor.CanvasPlatform.ResetZoom   = () => zoomBorder.Reset();
                _projectEditor.CanvasPlatform.AutoFitZoom = () => zoomBorder.AutoFit();

                _projectEditor.LayoutPlatform.LoadLayout  = () => OnLoadLayout();
                _projectEditor.LayoutPlatform.SaveLayout  = () => OnSaveLayout();
                _projectEditor.LayoutPlatform.ResetLayout = () => OnResetLayout();

                zoomBorder.InvalidatedChild = InvalidateChild;

                _inputSource    = new WpfInputSource(zoomBorder, drawableControl, (point) => point);
                _inputProcessor = new InputProcessor();
                _inputProcessor.Connect(_inputSource, _projectEditor);

                zoomBorder.AllowDrop  = true;
                zoomBorder.DragEnter += ZoomBorder_DragEnter;
                zoomBorder.Drop      += ZoomBorder_Drop;
            }
        }