private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e) { if (e.HasObject(this.targetPixmap)) { this.pixmapView.Invalidate(); } }
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(); } }
private void EditorForm_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e) { if (e.Objects.Components.Any(c => c is Transform || c is ICmpRenderer)) { this.InvalidateSelectionStats(); } }
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(); } }
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); } }
private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e) { if (!e.Objects.Resources.Any() && !e.Objects.OfType <DesignTimeObjectData>().Any()) { return; } this.glControl.Invalidate(); }
private void DualityEditorApp_ObjectPropertyChanged(object sender, ObjectPropertyChangedEventArgs e) { if (e.HasObject(this.prevImageValue)) { this.InvalidatePreview(); this.PerformGetValue(); } }
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(); } } }
/// <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(); } } }
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(); } }
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(); }
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(); } }
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(); }
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); } }
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); }
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(); } }
internal void RaiseOnTilesetModified(ObjectPropertyChangedEventArgs args) { this.OnTilesetModified(args); }
/// <summary> /// Called when the currently edited <see cref="Tileset"/> was modified. /// </summary> /// <param name="args"></param> protected virtual void OnTilesetModified(ObjectPropertyChangedEventArgs args) { }
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) { }
/// <summary> /// Called when the currently edited <see cref="Tileset"/> was modified. /// </summary> /// <param name="args"></param> protected virtual void OnTilesetModified(ObjectPropertyChangedEventArgs args) { }
internal void RaiseOnTilesetModified(ObjectPropertyChangedEventArgs args) { this.OnTilesetModified(args); }
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); } }
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) { }