Exemplo n.º 1
0
 private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e)
 {
     if (e.HasObject(this.targetPixmap))
     {
         this.pixmapView.Invalidate();
     }
 }
Exemplo n.º 2
0
        private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e)
        {
            if (this.tileset.Res != null)
            {
                bool affectsTileset =
                    e.HasObject(this.tileset.Res);
                bool affectsRenderConfig =
                    e.HasAnyObject(this.tileset.Res.RenderConfig) ||
                    e.HasProperty(TilemapsReflectionInfo.Property_Tileset_RenderConfig);

                if (!affectsTileset && !affectsRenderConfig)
                {
                    return;
                }

                if (affectsRenderConfig)
                {
                    this.OnTilesetChanged();
                }
                else if (affectsTileset)
                {
                    this.UpdateContentLayout();
                }

                this.Invalidate();
            }
        }
Exemplo n.º 3
0
 private void EditorForm_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e)
 {
     if (e.Objects.Components.Any(c => c is Transform || c is ICmpRenderer))
     {
         this.InvalidateSelectionStats();
     }
 }
Exemplo n.º 4
0
 private void EditorForm_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e)
 {
     if (this.selectedBody != null)
     {
         if (this.selectedBody.Disposed || this.selectedBody.GameObj == null || this.selectedBody.GameObj.Disposed)
         {
             this.ClearSelection();
             return;
         }
     }
     if (e.Objects.Any(o => o is Transform || o is RigidBody || o is ShapeInfo))
     {
         // Applying its Prefab invalidates a Collider's ShapeInfos: Deselect them.
         if (e is PrefabAppliedEventArgs)
         {
             DualityEditorApp.Deselect(this, ObjectSelection.Category.Other);
         }
         else
         {
             foreach (SelPolyShape sps in this.allObjSel.OfType <SelPolyShape>())
             {
                 sps.UpdatePolyStats();
             }
             //	foreach (SelEdgeShape sps in this.allObjSel.OfType<SelEdgeShape>()) sps.UpdateEdgeStats();
             foreach (SelLoopShape sps in this.allObjSel.OfType <SelLoopShape>())
             {
                 sps.UpdateLoopStats();
             }
             this.InvalidateSelectionStats();
             this.Invalidate();
         }
         this.UpdateToolbar();
     }
 }
Exemplo n.º 5
0
        private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e)
        {
            // If we changed something about our selected tileset, update the UI to reflect that
            Tileset tileset = this.SelectedTileset.Res;

            if (tileset != null)
            {
                bool affectsTileset     = e.HasObject(tileset);
                bool affectsConfigLayer =
                    e.HasAnyObject(tileset.RenderConfig) ||
                    e.HasAnyObject(tileset.AutoTileConfig) ||
                    e.HasProperty(TilemapsReflectionInfo.Property_Tileset_RenderConfig) ||
                    e.HasProperty(TilemapsReflectionInfo.Property_Tileset_AutoTileConfig);
                if (affectsTileset || affectsConfigLayer)
                {
                    if (this.activeMode != null)
                    {
                        this.activeMode.RaiseOnTilesetModified(e);
                    }

                    this.ApplyRequired = tileset.HasChangedSinceCompile;
                }
            }

            // If the user changed the assigned Tileset of a Tilemap present in the current Scene,
            // we'll need to update the implicit Tileset selection for the palette.
            if (e.Objects.ComponentCount > 0 &&
                e.HasProperty(TilemapsReflectionInfo.Property_Tilemap_Tileset) &&
                e.Objects.Components.OfType <Tilemap>().Any())
            {
                this.ApplyGlobalTilesetSelection(SelectionChangeReason.Unknown);
            }
        }
Exemplo n.º 6
0
 private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e)
 {
     if (!e.Objects.Resources.Any() && !e.Objects.OfType <DesignTimeObjectData>().Any())
     {
         return;
     }
     this.glControl.Invalidate();
 }
Exemplo n.º 7
0
 private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e)
 {
     if (e.HasObject(this.prevImageValue))
     {
         this.InvalidatePreview();
         this.PerformGetValue();
     }
 }
Exemplo n.º 8
0
		private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e)
		{
			if (e.Objects.ResourceCount > 0)
			{
				foreach (var r in e.Objects.Resources)
					this.OnResourceModified(r);
			}
		}
 private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e)
 {
     if (e.HasAnyProperty(ReflectionInfo.Property_Transform_RelativePos, ReflectionInfo.Property_Transform_RelativeAngle) &&
         e.Objects.Components.Any(c => c.GameObj == this.CameraObj))
     {
         if (!this.camBeginDragScene)
         {
             this.OnMouseMove();
         }
     }
 }
Exemplo n.º 10
0
        /// <summary>
        /// Raises the <see cref="AnnotationView.StateChanged" /> event.
        /// Invoked when the property of annotation is changed.
        /// </summary>
        /// <param name="e">An <see cref="ObjectPropertyChangedEventArgs" />
        /// that contains the event data.</param>
        protected override void OnDataPropertyChanged(ObjectPropertyChangedEventArgs e)
        {
            base.OnDataPropertyChanged(e);

            if (e.PropertyName == "Size")
            {
                if (Builder is MarkAnnotationBuilder)
                {
                    ((MarkAnnotationBuilder)Builder).InitialSize = (SizeF)e.NewValue;
                }
            }
        }
        /// <summary>
        /// The annotation data property is changed.
        /// </summary>
        /// <param name="annotationDataCollection">The annotation data collection.</param>
        /// <param name="annotationData">The annotation data.</param>
        /// <param name="e">The <see cref="ObjectPropertyChangedEventArgs" /> instance containing the event data.</param>
        protected override void OnAnnotationDataPropertyChanged(
            AnnotationDataCollection annotationDataCollection,
            AnnotationData annotationData,
            ObjectPropertyChangedEventArgs e)
        {
            IRuler ruler = annotationData as IRuler;

            if (ruler != null)
            {
                if (e.PropertyName == "UnitOfMeasure")
                {
                    StringBuilder formatString = new StringBuilder("0.0 ");
                    switch (ruler.UnitOfMeasure)
                    {
                    case UnitOfMeasure.Inches:
                        formatString.Append("in");
                        break;

                    case UnitOfMeasure.Centimeters:
                        formatString.Append("cm");
                        break;

                    case UnitOfMeasure.Millimeters:
                        formatString.Append("mm");
                        break;

                    case UnitOfMeasure.Pixels:
                        formatString.Append("px");
                        break;

                    case UnitOfMeasure.Points:
                        formatString.Append("point");
                        break;

                    case UnitOfMeasure.DeviceIndependentPixels:
                        formatString.Append("dip");
                        break;

                    case UnitOfMeasure.Twips:
                        formatString.Append("twip");
                        break;

                    case UnitOfMeasure.Emu:
                        formatString.Append("emu");
                        break;
                    }
                    ruler.FormatString = formatString.ToString();
                }
            }
        }
Exemplo n.º 12
0
        private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e)
        {
            if (this.targetPixmap == null)
            {
                return;
            }

            if (this.targetPixmap.Disposed)
            {
                this.TargetPixmap = null;
            }
            else if (e.HasObject(this.targetPixmap))
            {
                this.pixmapView.Invalidate();
            }
        }
Exemplo n.º 13
0
        protected override void OnTilesetModified(ObjectPropertyChangedEventArgs args)
        {
            Tileset tileset = this.SelectedTileset.Res;

            // If an AutoTile was modified, emit an editor-wide change event for
            // the Tileset as well, so the editor knows it will need to save this Resource.
            if (tileset != null && args.HasAnyObject(tileset.AutoTileConfig))
            {
                DualityEditorApp.NotifyObjPropChanged(
                    this,
                    new ObjectSelection(tileset),
                    TilemapsReflectionInfo.Property_Tileset_AutoTileConfig);
            }

            this.UpdateTreeModel();
        }
Exemplo n.º 14
0
 private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e)
 {
     // If the user changed the assigned Tileset of a Tilemap present in the current Scene,
     // we'll need to update the implicit Tileset selection for the palette.
     if (e.Objects.ComponentCount > 0 &&
         e.HasProperty(TilemapsReflectionInfo.Property_Tilemap_Tileset) &&
         e.Objects.Components.OfType <Tilemap>().Any())
     {
         this.ApplySelectedTileset();
     }
     // If the Scene itself has changed and we didn't have a selected Tileset, try to
     // select one from the Scene again.
     if (e.HasObject(Scene.Current) && this.SelectedTileset == null)
     {
         this.SelectTilesetFromCurrentScene();
     }
 }
Exemplo n.º 15
0
        private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e)
        {
            // Ignore changes to objects we're not previewing
            if (!e.HasObject(this.prevImageValue))
            {
                return;
            }

            // Ignore changes to AssetInfo data, as this doesn't directly affect us until Re-Import
            if (!e.CompleteChange && e.HasProperty(ReflectionInfo.Property_Resource_AssetInfo))
            {
                return;
            }

            // Update the preview to reflect changes.
            this.InvalidatePreview();
            this.PerformGetValue();
        }
Exemplo n.º 16
0
        private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e)
        {
            if (!(e is PrefabAppliedEventArgs) && (sender is PropertyEditor) && (sender as PropertyEditor).ParentGrid == this.propertyGrid)
            {
                return;
            }
            if (!(e is PrefabAppliedEventArgs) && sender == this.propertyGrid)
            {
                return;
            }

            // Update values if anything changed that relates to the grids current selection
            if (e.Objects.Components.GameObject().Any(o => this.propertyGrid.Selection.Contains(o)) ||
                e.Objects.Any(o => this.propertyGrid.Selection.Contains(o)) ||
                (e.Objects.Contains(Scene.Current) && this.propertyGrid.Selection.Any(o => o is GameObject || o is Component)))
            {
                this.propertyGrid.UpdateFromObjects(100);
            }
        }
Exemplo n.º 17
0
        private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e)
        {
            if (e.Objects.ResourceCount > 0)
            {
                List <object> modifiedObjects = new List <object>();
                foreach (Resource resource in e.Objects.Resources)
                {
                    this.PropagateDependentResourceChanges(resource, modifiedObjects);
                }

                // Notify about propagated changes, but flag them as non-persistent
                if (modifiedObjects.Count > 0)
                {
                    DualityEditorApp.NotifyObjPropChanged(
                        this,
                        new ObjectSelection(modifiedObjects),
                        false);
                }
            }
        }
 /// <summary>
 /// The annotation data property is changed.
 /// </summary>
 /// <param name="annotationDataCollection">The annotation data collection.</param>
 /// <param name="annotationData">The annotation data.</param>
 /// <param name="e">The <see cref="ObjectPropertyChangedEventArgs"/> instance containing the event data.</param>
 protected override void OnAnnotationDataPropertyChanged(
     AnnotationDataCollection annotationDataCollection,
     AnnotationData annotationData,
     ObjectPropertyChangedEventArgs e)
 {
     if (e.OldValue == null && e.NewValue == null)
     {
         AddLogMessage(string.Format("{0}.{1}",
                                     GetAnnotationInfo(annotationData),
                                     e.PropertyName));
     }
     else
     {
         AddLogMessage(string.Format("{0}.{1}: {2} -> {3}",
                                     GetAnnotationInfo(annotationData),
                                     e.PropertyName,
                                     e.OldValue,
                                     e.NewValue));
     }
 }
        [Test] public void RegularChange()
        {
            TestObject[] obj = new TestObject[]
            {
                new TestObject {
                    Foo = 42, Bar = "Hello"
                },
                new TestObject {
                    Foo = 10, Bar = "World"
                },
                new TestObject {
                    Foo = 0, Bar = "Not"
                }
            };
            ObjectPropertyChangedEventArgs args = new ObjectPropertyChangedEventArgs(
                new ObjectSelection(obj.Take(2)),
                new PropertyInfo[] { TestObject.FooProperty });

            Assert.IsTrue(args.HasObject(obj[0]));
            Assert.IsTrue(args.HasObject(obj[1]));
            Assert.IsFalse(args.HasObject(obj[2]));

            Assert.IsTrue(args.HasAnyObject(obj));
            Assert.IsTrue(args.HasAnyObject(obj.Skip(1)));
            Assert.IsFalse(args.HasAnyObject(obj.Skip(2)));

            Assert.IsTrue(args.HasProperty(TestObject.FooProperty));
            Assert.IsFalse(args.HasProperty(TestObject.BarProperty));
            Assert.IsFalse(args.HasProperty(UnrelatedObject.NotProperty));

            Assert.IsTrue(args.HasAnyProperty(TestObject.FooProperty));
            Assert.IsTrue(args.HasAnyProperty(TestObject.FooProperty, TestObject.BarProperty));
            Assert.IsFalse(args.HasAnyProperty(TestObject.BarProperty));
            Assert.IsFalse(args.HasAnyProperty(UnrelatedObject.NotProperty));

            Assert.IsFalse(args.CompleteChange);
        }
Exemplo n.º 20
0
 private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e)
 {
     // If the user changed the assigned Tileset of a Tilemap present in the current Scene,
     // we'll need to update the implicit Tileset selection for the palette.
     if (e.Objects.ComponentCount > 0 &&
         e.HasProperty(TilemapsReflectionInfo.Property_Tilemap_Tileset) &&
         e.Objects.Components.OfType<Tilemap>().Any())
     {
         this.ApplySelectedTileset();
     }
     // If the Scene itself has changed and we didn't have a selected Tileset, try to
     // select one from the Scene again.
     if (e.HasObject(Scene.Current) && this.SelectedTileset == null)
     {
         this.SelectTilesetFromCurrentScene();
     }
 }
Exemplo n.º 21
0
 internal void RaiseOnTilesetModified(ObjectPropertyChangedEventArgs args)
 {
     this.OnTilesetModified(args);
 }
Exemplo n.º 22
0
 /// <summary>
 /// Called when the currently edited <see cref="Tileset"/> was modified.
 /// </summary>
 /// <param name="args"></param>
 protected virtual void OnTilesetModified(ObjectPropertyChangedEventArgs args)
 {
 }
Exemplo n.º 23
0
 private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e)
 {
     if (e.HasProperty(TilemapsReflectionInfo.Property_Tilemap_Tiles))
     {
         this.Invalidate();
     }
     else if (e.HasObject(Scene.Current))
     {
         this.UpdateActionToolButtons();
     }
 }
 /// <summary>
 /// The annotation data property is changed.
 /// </summary>
 /// <param name="annotationDataCollection">The annotation data collection.</param>
 /// <param name="annotationData">The annotation data.</param>
 /// <param name="e">The <see cref="ObjectPropertyChangedEventArgs"/> instance containing the event data.</param>
 protected virtual void OnAnnotationDataPropertyChanged(
     AnnotationDataCollection annotationDataCollection, AnnotationData annotationData, ObjectPropertyChangedEventArgs e)
 {
 }
Exemplo n.º 25
0
 /// <summary>
 /// Called when the currently edited <see cref="Tileset"/> was modified.
 /// </summary>
 /// <param name="args"></param>
 protected virtual void OnTilesetModified(ObjectPropertyChangedEventArgs args)
 {
 }
Exemplo n.º 26
0
 internal void RaiseOnTilesetModified(ObjectPropertyChangedEventArgs args)
 {
     this.OnTilesetModified(args);
 }
Exemplo n.º 27
0
        private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e)
        {
            // If we changed something about our selected tileset, update the UI to reflect that
            Tileset tileset = this.SelectedTileset.Res;
            if (tileset != null)
            {
                bool affectsTileset = e.HasObject(tileset);
                bool affectsConfigLayer =
                    e.HasAnyObject(tileset.RenderConfig) ||
                    e.HasAnyObject(tileset.AutoTileConfig) ||
                    e.HasProperty(TilemapsReflectionInfo.Property_Tileset_RenderConfig) ||
                    e.HasProperty(TilemapsReflectionInfo.Property_Tileset_AutoTileConfig);
                if (affectsTileset || affectsConfigLayer)
                {
                    if (this.activeMode != null)
                        this.activeMode.RaiseOnTilesetModified(e);

                    this.ApplyRequired = tileset.HasChangedSinceCompile;
                }
            }

            // If the user changed the assigned Tileset of a Tilemap present in the current Scene,
            // we'll need to update the implicit Tileset selection for the palette.
            if (e.Objects.ComponentCount > 0 &&
                e.HasProperty(TilemapsReflectionInfo.Property_Tilemap_Tileset) &&
                e.Objects.Components.OfType<Tilemap>().Any())
            {
                this.ApplyGlobalTilesetSelection(SelectionChangeReason.Unknown);
            }
        }
Exemplo n.º 28
0
        protected override void OnTilesetModified(ObjectPropertyChangedEventArgs args)
        {
            Tileset tileset = this.SelectedTileset.Res;

            // If a visual layer was modified, emit an editor-wide change event for
            // the Tileset as well, so the editor knows it will need to save this Resource.
            if (tileset != null && args.HasAnyObject(tileset.RenderConfig))
            {
                DualityEditorApp.NotifyObjPropChanged(
                    this,
                    new ObjectSelection(tileset),
                    TilemapsReflectionInfo.Property_Tileset_RenderConfig);
            }

            this.UpdateTreeModel();
        }
 private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e)
 {
 }