Exemplo n.º 1
0
 private void MakeBlack()
 {
     PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.EditColor);
     this.BeginUpdate();
     this.ColorModel.Color = Colors.Black;
     this.EndUpdate();
 }
Exemplo n.º 2
0
        private void OnSplitterResized(object sender, DragDeltaEventArgs args)
        {
            SplitterGrip splitterGrip = args.OriginalSource as SplitterGrip;

            if (splitterGrip == null)
            {
                return;
            }
            PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.ResizePalette);
            args.Handled = true;
            for (int index = 0; index < this.InternalChildren.Count; ++index)
            {
                if (this.InternalChildren[index].IsAncestorOf((DependencyObject)splitterGrip))
                {
                    double pixelAmount = this.Orientation == Orientation.Horizontal ? args.HorizontalChange : args.VerticalChange;
                    switch (splitterGrip.ResizeBehavior)
                    {
                    case GridResizeBehavior.CurrentAndNext:
                        this.ResizeChildren(index, index + 1, pixelAmount);
                        continue;

                    case GridResizeBehavior.PreviousAndCurrent:
                        this.ResizeChildren(index - 1, index, pixelAmount);
                        continue;

                    case GridResizeBehavior.PreviousAndNext:
                        this.ResizeChildren(index - 1, index + 1, pixelAmount);
                        continue;

                    default:
                        throw new InvalidOperationException("BasedOnAlignment is not a valid resize behavior");
                    }
                }
            }
        }
Exemplo n.º 3
0
            private void HidePalettes()
            {
                List <ViewElement> list = Enumerable.ToList <ViewElement>(this.HideableViews);

                if (!Enumerable.Any <ViewElement>((IEnumerable <ViewElement>)list))
                {
                    return;
                }
                PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.TogglePalettes);
                Microsoft.VisualStudio.PlatformUI.Shell.View activeView = ViewManager.Instance.ActiveView;
                if (list.Contains((ViewElement)activeView))
                {
                    this.SavedActiveView = activeView;
                }
                foreach (ViewElement viewElement in list)
                {
                    ExpressionView expressionView = viewElement as ExpressionView;
                    if (expressionView != null)
                    {
                        expressionView.WasSelectedBeforeAutoHide = expressionView.IsSelected;
                    }
                }
                foreach (ViewElement viewElement in list)
                {
                    DockOperations.AutoHide(viewElement);
                }
            }
Exemplo n.º 4
0
            private void RestorePalettes()
            {
                List <ViewElement> list = Enumerable.ToList <ViewElement>(this.AutoHiddenViews);

                if (!Enumerable.Any <ViewElement>((IEnumerable <ViewElement>)list))
                {
                    return;
                }
                PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.TogglePalettes);
                foreach (ViewElement element in list)
                {
                    DockOperations.SnapToBookmark(element);
                }
                foreach (ViewElement viewElement in list)
                {
                    ExpressionView expressionView = viewElement as ExpressionView;
                    if (expressionView != null)
                    {
                        expressionView.IsSelected = expressionView.WasSelectedBeforeAutoHide;
                    }
                }
                if (this.SavedActiveView != null && this.SavedActiveView.WindowProfile == ViewManager.Instance.WindowProfile)
                {
                    ViewManager.Instance.ActiveView = this.SavedActiveView;
                }
                this.SavedActiveView = (Microsoft.VisualStudio.PlatformUI.Shell.View)null;
            }
Exemplo n.º 5
0
 private void MakeInitialColor()
 {
     PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.EditColor);
     this.BeginUpdate();
     this.ColorModel.Color = this.InitialColor;
     this.EndUpdate();
 }
Exemplo n.º 6
0
 private void MakeLastColor()
 {
     PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.EditColor);
     this.BeginUpdate();
     this.ColorModel.CopyFrom(this.LastColorModel);
     this.EndUpdate();
 }
Exemplo n.º 7
0
        private void SetActiveView(IView view)
        {
            PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.SwitchView);
            IDocumentView documentView = view as IDocumentView;

            DocumentService.Item obj = documentView != null ? this.items[documentView.Document] : (DocumentService.Item)null;
            this.SetActiveDocumentAndView(view, obj);
        }
Exemplo n.º 8
0
 private void ExpandoSplitter_DragDelta(object sender, DragDeltaEventArgs e)
 {
     if (!(this.Parent is Grid))
     {
         return;
     }
     PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.ResizePalette);
     this.MoveSplitter(e.HorizontalChange, e.VerticalChange);
 }
Exemplo n.º 9
0
        private static void ZoomPropertyChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e)
        {
            PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.AdjustZoom);
            Artboard artboard = (Artboard)dependencyObject;

            artboard.UpdateChildren();
            if (artboard.ZoomChanged == null)
            {
                return;
            }
            artboard.ZoomChanged((object)artboard, EventArgs.Empty);
        }
Exemplo n.º 10
0
        public override void Execute()
        {
            List <SceneElement> list = Enumerable.ToList <SceneElement>(this.ApplicableElements);

            if (!Enumerable.Any <SceneElement>((IEnumerable <SceneElement>)list))
            {
                throw new InvalidOperationException();
            }
            this.SceneView.DesignerContext.AnnotationsOptionsModel.InitAuthorInfoIfNeeded();
            PerformanceUtility.MeasurePerformanceUntilRender(list.Count != 1 || list[0] != this.SceneView.ViewModel.RootNode ? PerformanceEvent.AnnotationCreationAttached : PerformanceEvent.AnnotationCreationFloating);
            this.AnnotationService.Create((IEnumerable <SceneElement>)list, true);
        }
Exemplo n.º 11
0
        private void Me_Click(object sender, RoutedEventArgs e)
        {
            PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.CommandBarCheckBoxClicked);
            bool   flag            = true;
            object commandProperty = this.commandService.GetCommandProperty(this.command, "IsChecked");

            if (commandProperty != null)
            {
                flag = !(bool)commandProperty;
            }
            this.commandService.SetCommandProperty(this.command, "IsChecked", flag);
        }
Exemplo n.º 12
0
 protected override bool OnDrag(Point dragStartPosition, Point dragCurrentPosition, bool scrollNow)
 {
     PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.EditPath);
     if (this.currentEditingElement != null && this.pathPartAdorner != null)
     {
         this.MoveSelection();
         this.ActiveView.EnsureVisible(dragCurrentPosition, scrollNow);
         if (this.IsEditTransactionOpen)
         {
             this.UpdateEditTransaction();
         }
     }
     return(true);
 }
Exemplo n.º 13
0
        protected override void OnBegin(PathEditContext pathEditContext, MouseDevice mouseDevice)
        {
            PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.EditPath);
            Point            viewRootCoordinates    = this.GetPointInViewRootCoordinates(mouseDevice, false);
            PathFigureEditor pathFigureEditor       = new PathFigureEditor(pathEditContext.GetPathFigure(this.Path), this.PathEditorTarget.PathDiffChangeList, pathEditContext.FigureIndex);
            Matrix           elementTransformToRoot = this.EditingElementTransformToRoot;
            int    partIndex = pathEditContext.PartIndex;
            Point  closestPoint;
            double distanceSquared;
            double ofUpstreamSegment = pathFigureEditor.GetClosestPointOfUpstreamSegment(partIndex, viewRootCoordinates, elementTransformToRoot, Tolerances.CurveFlatteningTolerance, out closestPoint, out distanceSquared);

            this.InsertPoint(pathEditContext, ofUpstreamSegment);
            base.OnBegin(pathEditContext, mouseDevice);
            this.End();
        }
Exemplo n.º 14
0
 public override void Execute()
 {
     this.HandleBasicExceptions(() => {
         string str = base.SelectProject(StringTable.OpenProjectDialogTitle);
         if (!string.IsNullOrEmpty(str))
         {
             PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.OpenProjectInner);
             ISolution solution = this.ProjectManager().OpenSolution(DocumentReference.Create(str), true, true);
             PerformanceUtility.MarkInterimStep(PerformanceEvent.OpenProjectInner, "Finished loading, now closing all projects.");
             if (solution != null)
             {
                 this.ProjectManager().DefaultOpenProjectPath = Path.GetDirectoryName(Path.GetDirectoryName(solution.DocumentReference.Path));
             }
         }
     });
 }
Exemplo n.º 15
0
        protected override void Initialize()
        {
            PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.MultipleElementRotate);
            this.FireNotifications(false);
            CanonicalDecomposition canonicalDecomposition = this.EditingElementSet.CalculateSharedTransform();

            this.UnsnappedAngle = canonicalDecomposition.RotationAngle;
            this.initialBounds  = this.EditingElementSet.Bounds;
            this.intialRenderTransformOrigin = this.EditingElementSet.RenderTransformOrigin;
            this.initialSharedTransform      = canonicalDecomposition;
            this.initialElementSetCenter     = this.EditingElementSet.RenderTransformOriginInElementCoordinates;
            foreach (SceneElement element in this.EditingElementSet.Elements)
            {
                this.initialTransforms[element] = new CanonicalTransform((Transform)element.GetComputedValueAsWpf(element.Platform.Metadata.CommonProperties.RenderTransform));
                this.elementsToElement[element] = ElementUtilities.GetInverseMatrix(this.EditingElementSet.GetTransformToElementSpaceFromMemberElement(element));
            }
            this.initialArtboardOrigin = this.EditingElement.DesignerContext.ActiveView.Artboard.ArtboardBounds.TopLeft;
        }
Exemplo n.º 16
0
        protected virtual void UpdateAdorners(DragAbsoluteEventArgs args, FloatingElement floatingElement, IList <DockSiteType> types, ViewElement element)
        {
            DockManager.DockSiteHitTestResult hitElement = this.FindHitElement(args.ScreenPoint, (Predicate <DockManager.DockSite>)(s =>
            {
                if (s.Visual != floatingElement)
                {
                    return(!(s.Visual is DockAdornerWindow));
                }
                return(false);
            }));
            ICollection <DockAdornerWindow> addedAdorners = (ICollection <DockAdornerWindow>) new List <DockAdornerWindow>();

            PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.DisplayDockingAdorner);
            if (hitElement != null)
            {
                addedAdorners = this.AddAdorners(hitElement.DockSite, hitElement.VisualHit, types, element);
            }
            this.ClearAdorners((Predicate <Visual>)(visual => !addedAdorners.Contains(visual as DockAdornerWindow)));
        }
Exemplo n.º 17
0
        private void OnActivateCommand()
        {
            PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.ActivateProjectItem);
            INamedProject namedProject = base.Services.ProjectManager().CurrentSolution.FindProjectContainingOpenItem(this.projectItem.DocumentReference);

            if (namedProject != null && namedProject != this.ProjectItem.Project)
            {
                base.Services.MessageDisplayService().ShowError(StringTable.ProjectItemAlreadyOpenMessage);
                return;
            }
            IView activeView = base.Services.ViewService().ActiveView;

            if (!this.projectItem.DocumentType.CanView)
            {
                if (this.projectItem is FolderStandIn || this.projectItem.DocumentType == base.Services.DocumentTypes()[DocumentTypeNamesHelper.Folder])
                {
                    this.IsExpanded = !this.IsExpanded;
                    return;
                }
                if (activeView != null && this.projectItem.DocumentType.CanInsertTo(this.projectItem, activeView))
                {
                    this.projectItem.DocumentType.AddToDocument(this.projectItem, activeView);
                    return;
                }
                if (Microsoft.Expression.Framework.Documents.PathHelper.FileExists(this.projectItem.DocumentReference.Path))
                {
                    CommandTarget commandTarget = base.Services.ProjectManager() as CommandTarget;
                    if (commandTarget != null)
                    {
                        string str = "Project_EditExternally";
                        commandTarget.SetCommandProperty(str, "TargetDocument", this.ProjectItem);
                        commandTarget.Execute(str, CommandInvocationSource.Palette);
                    }
                }
            }
            else
            {
                using (IDisposable disposable = TemporaryCursor.SetWaitCursor())
                {
                    this.projectItem.OpenView(true);
                }
            }
        }
Exemplo n.º 18
0
        private bool CreateAndExecuteCodeAidAction(TextCompositionEventArgs e, bool matchingModeOnly)
        {
            PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.TextInsertLetter);
            if (this.completionBroker == null)
            {
                return(false);
            }
            CodeAidContext codeAidContext = this.CreateCodeAidContext();
            CodeAidAction  action         = this.codeAidEngine.ProcessTextInput(e.Text, codeAidContext);

            if (!action.IsNone)
            {
                this.ExecuteCodeAidAction(action, matchingModeOnly);
            }
            if (!action.TestFlag(CodeAidActionType.EatInput) && !matchingModeOnly)
            {
                this.editorOperations.InsertText(e.Text, this.undoHistory);
            }
            return(true);
        }
Exemplo n.º 19
0
 protected override bool OnButtonDown(Point pointerPosition)
 {
     PerformanceUtility.StartPerformanceSequence(PerformanceEvent.ResizeElement);
     PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.ResizeViaAdorners);
     this.EnsureEditTransaction();
     this.CreateSubTransaction();
     this.layoutRoundingOverride.SetValue((IEnumerable <SceneElement>) this.EditingElementSet.Elements, false);
     this.elementToDocumentTransform = this.ComputeElementToDocumentTransform();
     this.startBounds            = this.BaseEditingElement.GetComputedTightBounds();
     this.startBoundsInParent    = this.ActiveView.GetActualBoundsInParent(this.BaseEditingElement.Visual);
     this.startPointerPosition   = this.ActiveAdorner.GetAnchorPoint(Matrix.Identity);
     this.adornerOffset          = this.startPointerPosition * this.elementToDocumentTransform - pointerPosition;
     this.startTransform         = new CanonicalTransform((Transform)this.EditingElement.GetComputedValueAsWpf(Base2DElement.RenderTransformProperty));
     this.startCenter            = this.BaseEditingElement.RenderTransformOriginInElementCoordinates;
     this.constrainAspectRatio   = this.ShouldConstrainAspectRatio;
     this.scaleAroundCenter      = this.ShouldScaleAroundCenter;
     this.currentPointerPosition = this.startPointerPosition;
     this.UpdateCenter();
     this.Initialize();
     return(true);
 }
Exemplo n.º 20
0
        protected override void OnBegin(PathEditContext pathEditContext, MouseDevice mouseDevice)
        {
            PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.EditPath);
            Vector lastTangent = this.LastTangent;

            base.OnBegin(pathEditContext, mouseDevice);
            PathGeometryEditor pathGeometryEditor     = this.BeginEditing();
            Matrix             elementTransformToRoot = this.EditingElementTransformToRoot;
            Point  lastPoint       = this.GetLastPoint(pathEditContext.FigureIndex);
            Point  point1          = elementTransformToRoot.Transform(lastPoint);
            Vector vector          = this.GetPointInViewRootCoordinates(mouseDevice, true) - point1;
            Size   devicePixelSize = DeviceUtilities.GetDevicePixelSize(this.View.Zoom);

            if (Math.Abs(vector.X) < devicePixelSize.Width / 2.0)
            {
                vector.X = 0.0;
            }
            if (Math.Abs(vector.Y) < devicePixelSize.Height / 2.0)
            {
                vector.Y = 0.0;
            }
            Vector correspondingVector = ElementUtilities.GetCorrespondingVector(vector, elementTransformToRoot, this.IsShiftDown ? this.AxisConstraint : (AxisConstraint)null);
            Point  point2 = lastPoint + correspondingVector;

            if (VectorUtilities.IsZero(lastTangent))
            {
                pathGeometryEditor.AppendLineSegment(point2, pathEditContext.FigureIndex);
            }
            else
            {
                Point q = lastPoint + lastTangent;
                pathGeometryEditor.AppendCubicBezier(q, point2, point2, pathEditContext.FigureIndex);
            }
            int        figureIndex = pathEditContext.FigureIndex;
            PathFigure figure      = this.Path.Figures[figureIndex];

            this.PathEditContext = new PathEditContext(figureIndex, PathFigureUtilities.PointCount(figure) - 1);
            this.Initialize(elementTransformToRoot.Transform(point2), true, elementTransformToRoot);
        }
Exemplo n.º 21
0
        protected override void OnSubmenuOpened(RoutedEventArgs e)
        {
            base.OnSubmenuOpened(e);
            int count = this.Items.Count;

            PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.OpenCommandBarDynamicMenu);
            IEnumerable enumerable = (IEnumerable)this.commandService.GetCommandProperty(this.command, "Items");
            bool        flag       = false;

            foreach (object newItem in enumerable)
            {
                this.Items.Add(newItem);
                flag = true;
            }
            if (!flag)
            {
                return;
            }
            for (int index = 0; index < count; ++index)
            {
                this.Items.RemoveAt(0);
            }
        }
Exemplo n.º 22
0
        public void PerformDrop(DragAbsoluteEventArgs args)
        {
            DragUndockHeader dragUndockHeader = args.OriginalSource as DragUndockHeader;
            FloatingWindow   floatingWindow   = Microsoft.VisualStudio.PlatformUI.ExtensionMethods.FindAncestor <FloatingWindow>((Visual)dragUndockHeader);

            DockManager.DockSiteHitTestResult hitElement = this.FindHitElement(args.ScreenPoint, (Predicate <DockManager.DockSite>)(s => s.Visual != floatingWindow));
            if (hitElement != null)
            {
                DockSiteAdorner   ancestorOrSelf1 = Microsoft.VisualStudio.PlatformUI.ExtensionMethods.FindAncestorOrSelf <DockSiteAdorner>(hitElement.VisualHit);
                DockAdornerWindow ancestorOrSelf2 = Microsoft.VisualStudio.PlatformUI.ExtensionMethods.FindAncestorOrSelf <DockAdornerWindow>(hitElement.VisualHit);
                DockTarget        dockTarget      = Microsoft.VisualStudio.PlatformUI.ExtensionMethods.FindAncestorOrSelf <DockTarget>(hitElement.VisualHit);
                DockDirection     dockDirection   = DockDirection.Fill;
                bool flag = false;
                bool createDocumentGroup = false;
                if (floatingWindow != null && this.IsValidFillPreviewOperation(dockTarget, dragUndockHeader.ViewElement))
                {
                    dockDirection = DockDirection.Fill;
                    flag          = true;
                }
                if (ancestorOrSelf1 != null && ancestorOrSelf2 != null && ancestorOrSelf2.AdornedElement != null)
                {
                    dockDirection = ancestorOrSelf1.DockDirection;
                    dockTarget    = ancestorOrSelf2.AdornedElement as DockTarget;
                    if (DockOperations.AreDockRestrictionsFulfilled(dragUndockHeader.ViewElement, dockTarget.TargetElement))
                    {
                        flag = true;
                        createDocumentGroup = ancestorOrSelf1.CreatesDocumentGroup;
                    }
                }
                if (flag)
                {
                    PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.DockPalette);
                    dockTarget.RaiseEvent((RoutedEventArgs) new FloatingElementDockedEventArgs(DockManager.FloatingElementDockedEvent, dragUndockHeader.ViewElement, dockDirection, createDocumentGroup));
                }
            }
            this.ClearAdorners();
        }
Exemplo n.º 23
0
        public override SceneNode CreateAndSetBindingOrData(SceneNodeProperty property)
        {
            PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.DatabindCommand);
            SceneNode sceneNode = (SceneNode)((object[])this.Objects)[0];
            SceneNode target;

            if (property.Reference.Count == 1 || this.IsTextRange)
            {
                target = sceneNode;
            }
            else
            {
                using (SceneEditTransaction editTransaction = sceneNode.ViewModel.CreateEditTransaction("Build local value tree", true))
                {
                    sceneNode.EnsureNodeTree(property.Reference, true, true);
                    editTransaction.Commit();
                }
                PropertyReference propertyReference = property.Reference.Subreference(0, property.Reference.Count - 2);
                target = sceneNode.GetLocalValueAsSceneNode(propertyReference);
            }
            ReferenceStep lastStep = property.Reference.LastStep;

            return(DataBindingDialog.CreateAndSetBindingOrData(this.designerContext, target, lastStep));
        }
Exemplo n.º 24
0
        public static SceneNode CreateClrObjectDataSource(out string dataSourceName, out Type dataSourceType, DataPanelModel model)
        {
            SceneNode sceneNode = (SceneNode)null;

            dataSourceName = (string)null;
            dataSourceType = (Type)null;
            ClrObjectDataSourceDialog dataSourceDialog = new ClrObjectDataSourceDialog(model);
            bool?nullable = dataSourceDialog.ShowDialog();

            if ((!nullable.GetValueOrDefault() ? 0 : (nullable.HasValue ? true : false)) != 0)
            {
                PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.AddClrDataSource);
                dataSourceType = dataSourceDialog.ObjectType;
                dataSourceName = dataSourceDialog.DataSourceName;
                if (dataSourceDialog.ObjectType != (Type)null)
                {
                    dataSourceName = dataSourceName.Trim();
                    SceneViewModel activeSceneViewModel = model.DesignerContext.ActiveSceneViewModel;
                    DocumentNode   node = (DocumentNode)activeSceneViewModel.Document.DocumentContext.CreateNode(dataSourceDialog.ObjectType);
                    sceneNode = activeSceneViewModel.GetSceneNode(node);
                }
            }
            return(sceneNode);
        }
Exemplo n.º 25
0
 private void InitializeActiveCompletionSession()
 {
     PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.XamlIntellisenseCreateMenu);
     this.activeSessionStartPoint  = this.textView.TextBuffer.CurrentSnapshot.CreateTrackingPoint(this.textView.Caret.Position.Index, PointTrackingMode.Negative);
     this.activeSession.Committed += new EventHandler(this.ActiveSession_Committed);
     this.activeSession.Dismissed += new EventHandler(this.ActiveSession_Dismissed);
     this.activeSession.Presenter.ReleaseKeyboard();
     if (this.activeSession.Completions.Count == 1)
     {
         CompletionSelectionOptions selectionOptions = CompletionSelectionOptions.Unique;
         if (this.activeSession.Completions[0].ApplicableTo.GetSpan(this.textView.TextBuffer.CurrentSnapshot).Length == 0)
         {
             this.activeSession.SetSelectionStatus(this.activeSession.Completions[0], selectionOptions | CompletionSelectionOptions.Selected);
         }
         else
         {
             this.CompletionSessionMatchTrackingWorker();
         }
     }
     else
     {
         this.CompletionSessionMatchTrackingWorker();
     }
 }
Exemplo n.º 26
0
 private void SetActiveItem(DocumentService.Item item)
 {
     PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.SwitchView);
     this.SetActiveDocumentAndView(item == null || item.Views.Count <= 0 ? (IView)null : item.Views[0], item);
 }
Exemplo n.º 27
0
 protected override void OnSubmenuOpened(RoutedEventArgs e)
 {
     PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.OpenCommandBarMenu);
     this.UpdateState();
 }
Exemplo n.º 28
0
 private void BindingSourcesView_CurrentChanging(object sender, CurrentChangingEventArgs e)
 {
     PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.SwitchDataSourceType);
 }
Exemplo n.º 29
0
        private void ModifyTextValue(IViewTextRange textRange, PropertyReference propertyReference, int index, object value, SceneNode.Modification modification)
        {
            if (value is Microsoft.Expression.DesignModel.DocumentModel.DocumentNode || value is MarkupExtension)
            {
                return;
            }
            PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.TextSetProperty);
            value = RichTextBoxRangeElement.GetUpdatedComplexProperty(textRange, propertyReference, index, value, modification);
            ReferenceStep firstStep = propertyReference.FirstStep;
            IProperty     property  = textRange.Platform.Metadata.ResolveProperty((IPropertyId)firstStep);

            if (property != null)
            {
                if (modification == SceneNode.Modification.ClearValue)
                {
                    value = this.ViewModel.DefaultView.ConvertToWpfValue(this.ViewModel.DefaultView.ConvertFromWpfPropertyReference(propertyReference).LastStep.GetDefaultValue(typeof(object)));
                }
                if (property.Equals((object)RichTextBoxRangeElement.TextIndentPropertyId) && (double)value < 0.0)
                {
                    value = (object)0.0;
                }
                textRange.ApplyPropertyValue((IPropertyId)property, value);
                bool flag = RichTextBoxElement.IsParagraphProperty(propertyReference);
                PropertyReference propertyReference1 = DesignTimeProperties.GetShadowPropertyReference(propertyReference, (ITypeId)this.Type);
                if (propertyReference1 != null && !DesignTimeProperties.UseShadowPropertyForInstanceBuilding(this.ViewModel.Document.DocumentContext.TypeResolver, (IPropertyId)propertyReference1.FirstStep))
                {
                    propertyReference1 = (PropertyReference)null;
                }
                if (modification == SceneNode.Modification.ClearValue && propertyReference1 == null)
                {
                    propertyReference1 = propertyReference;
                }
                if (propertyReference1 != null)
                {
                    IViewTextElement viewTextElement1 = (IViewTextElement)null;
                    if (textRange.Start.CompareTo(textRange.End) != 0 || textRange.Start.CompareTo(((IViewTextElement)textRange.Start.Parent).ContentStart) != 0 && textRange.Start.CompareTo(((IViewTextElement)textRange.Start.Parent).ContentEnd) != 0)
                    {
                        for (IViewTextPointer viewTextPointer = textRange.Start; viewTextPointer != null && viewTextPointer.CompareTo(textRange.End) <= 0; viewTextPointer = viewTextPointer.GetNextInsertionPosition(LogicalDirection.Forward))
                        {
                            IViewTextElement viewTextElement2 = viewTextPointer.Parent as IViewTextElement;
                            if (viewTextElement2 != null && (viewTextElement1 == null || viewTextElement1.PlatformSpecificObject != viewTextElement2.PlatformSpecificObject))
                            {
                                viewTextElement1 = viewTextElement2;
                                if (viewTextElement1 != null && (flag && viewTextElement1 is Paragraph || !flag && viewTextElement1 is Run))
                                {
                                    if (modification == SceneNode.Modification.ClearValue)
                                    {
                                        propertyReference1.ClearValue((object)viewTextElement1);
                                    }
                                    else
                                    {
                                        propertyReference1.SetValue((object)viewTextElement1, value);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            if (property.Equals((object)RichTextBoxRangeElement.ForegroundProperty) || property.Equals((object)RichTextBoxRangeElement.TextElementForegroundProperty))
            {
                TextBlockEditProxy textBlockEditProxy = this.TextEditProxy as TextBlockEditProxy;
                if (textBlockEditProxy != null)
                {
                    textBlockEditProxy.UpdateCaretBrush();
                }
            }
            if (this.TextEditProxy == null)
            {
                return;
            }
            this.TextEditProxy.Serialize();
            this.TextEditProxy.UpdateDocumentModel();
        }
Exemplo n.º 30
0
        public virtual SceneNode CreateInstance(ITypeId instanceType, ISceneInsertionPoint insertionPoint, Rect rect, OnCreateInstanceAction action)
        {
            PerformanceUtility.StartPerformanceSequence(PerformanceEvent.PropertyInspectorFromCreate);
            PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.CreateElement);
            SceneView sceneView = this.sceneView;

            if (sceneView == null || !sceneView.IsEditable || insertionPoint == null)
            {
                return((SceneNode)null);
            }
            SceneNode rawInstance = this.CreateRawInstance(instanceType);

            if (rawInstance == null || !insertionPoint.CanInsert((ITypeId)rawInstance.Type))
            {
                return((SceneNode)null);
            }
            if (rect.IsEmpty)
            {
                rect = new Rect(0.0, 0.0, double.NaN, double.NaN);
            }
            if (double.IsInfinity(rect.Width))
            {
                rect.Width = double.NaN;
            }
            if (double.IsInfinity(rect.Height))
            {
                rect.Height = double.NaN;
            }
            using (this.ViewModel.ForceBaseValue())
            {
                using (SceneEditTransaction editTransaction = this.ViewModel.CreateEditTransaction(string.Format((IFormatProvider)CultureInfo.CurrentCulture, StringTable.UndoUnitCreateControlFormat, new object[1]
                {
                    (object)instanceType.Name
                })))
                {
                    IExpandable expandable = insertionPoint.SceneElement as IExpandable;
                    if (expandable != null)
                    {
                        insertionPoint.SceneNode.SetValue(expandable.ExpansionProperty, (object)true);
                    }
                    bool flag = this.ShouldUseDefaultInitializer && Enumerable.Any <FeatureProvider>(DefaultTypeInstantiator.GetDefaultInitializers(rawInstance));
                    IList <SceneNode> nodes = (IList <SceneNode>)null;
                    if (!flag)
                    {
                        nodes = this.CreateNodeTreeOnInsertion(rawInstance);
                        this.ApplyBeforeInsertionDefaultsToElements(nodes, rawInstance, new DefaultTypeInstantiator.SceneElementNamingCallback(DefaultTypeInstantiator.TypeNameCallback));
                    }
                    SceneNode    layoutTarget    = DefaultTypeInstantiator.GetLayoutTarget(rawInstance);
                    SceneElement selectionTarget = DefaultTypeInstantiator.GetSelectionTarget(rawInstance);
                    this.ViewModel.ElementSelectionSet.Clear();
                    insertionPoint.Insert(rawInstance);
                    editTransaction.Update();
                    this.ApplyDefaultInitializers(rawInstance);
                    if (action != null)
                    {
                        action(rawInstance);
                        editTransaction.Update();
                    }
                    if (!flag)
                    {
                        this.ApplyAfterInsertionDefaultsToElements(nodes, rawInstance);
                    }
                    SceneElement sceneElement1 = layoutTarget as SceneElement;
                    EffectNode   effectNode    = layoutTarget as EffectNode;
                    if (sceneElement1 != null && sceneElement1.IsViewObjectValid)
                    {
                        if (selectionTarget != null)
                        {
                            this.ViewModel.ElementSelectionSet.SetSelection(selectionTarget);
                        }
                        this.SetLayout(insertionPoint, rect, rawInstance, layoutTarget, editTransaction);
                    }
                    else if (effectNode != null)
                    {
                        this.ViewModel.ChildPropertySelectionSet.SetSelection((SceneNode)effectNode);
                    }
                    else
                    {
                        for (SceneNode sceneNode = layoutTarget; sceneNode != null; sceneNode = sceneNode.Parent)
                        {
                            SceneElement sceneElement2 = sceneNode as SceneElement;
                            if (sceneElement2 != null && sceneElement2.Visual != null && sceneElement2.Visual is IViewVisual)
                            {
                                this.sceneView.EnsureVisible(sceneElement2.Visual);
                                break;
                            }
                        }
                    }
                    if (this.ViewModel.DesignerContext.AmbientPropertyManager != null)
                    {
                        this.ViewModel.DesignerContext.AmbientPropertyManager.ApplyAmbientProperties(rawInstance);
                    }
                    editTransaction.Commit();
                }
            }
            return(rawInstance);
        }