/// <summary> /// Returns true if the guid passed in has impact on geometry of the stroke /// </summary> internal static bool IsGeometricalDaGuid(Guid guid) { // Assert it is a DA guid System.Diagnostics.Debug.Assert(null != DrawingAttributes.GetDefaultDrawingAttributeValue(guid)); if (guid == KnownIds.StylusHeight || guid == KnownIds.StylusWidth || guid == KnownIds.StylusTipTransform || guid == KnownIds.StylusTip || guid == KnownIds.DrawingFlags) { return(true); } return(false); }
/// <summary> /// All DrawingAttributes are backed by an ExtendedProperty /// this is a simple helper to set a property /// </summary> /// <param name="id">id</param> /// <returns></returns> private object GetExtendedPropertyBackedProperty(Guid id) { if (!_extendedProperties.Contains(id)) { if (null != DrawingAttributes.GetDefaultDrawingAttributeValue(id)) { return(DrawingAttributes.GetDefaultDrawingAttributeValue(id)); } throw new ArgumentException(SR.Get(SRID.EPGuidNotFound), "id"); } else { return(_extendedProperties[id]); } }
/// <summary> /// All DrawingAttributes are backed by an ExtendedProperty /// this is a simple helper to set a property /// </summary> /// <param name="id">id</param> /// <param name="value">value</param> private void SetExtendedPropertyBackedProperty(Guid id, object value) { if (_extendedProperties.Contains(id)) { // // check to see if we're setting the property back // to a default value. If we are we should remove it from // the EPC // object defaultValue = DrawingAttributes.GetDefaultDrawingAttributeValue(id); if (defaultValue != null) { if (defaultValue.Equals(value)) { _extendedProperties.Remove(id); return; } } // // we're setting a non-default value on a EP that // already exists, check for equality before we do // so we don't raise unnecessary EPC changed events // object o = GetExtendedPropertyBackedProperty(id); if (!o.Equals(value)) { _extendedProperties[id] = value; } } else { // // make sure we're not setting a default value of the guid // there is no need to do this // object defaultValue = DrawingAttributes.GetDefaultDrawingAttributeValue(id); if (defaultValue == null || !defaultValue.Equals(value)) { _extendedProperties[id] = value; } } }
/// <summary> /// Whenever the base class fires the generic ExtendedPropertiesChanged /// event, we need to fire the DrawingAttributesChanged event also. /// </summary> /// <param name="sender">Should be 'this' object</param> /// <param name="args">The custom attributes that changed</param> private void ExtendedPropertiesChanged_EventForwarder(object sender, ExtendedPropertiesChangedEventArgs args) { System.Diagnostics.Debug.Assert(sender != null); System.Diagnostics.Debug.Assert(args != null); //see if the EP that changed is a drawingattribute if (args.NewProperty == null) { //a property was removed, see if it is a drawing attribute property object defaultValueIfDrawingAttribute = DrawingAttributes.GetDefaultDrawingAttributeValue(args.OldProperty.Id); if (defaultValueIfDrawingAttribute != null) { ExtendedProperty newProperty = new ExtendedProperty(args.OldProperty.Id, defaultValueIfDrawingAttribute); //this is a da guid PropertyDataChangedEventArgs dargs = new PropertyDataChangedEventArgs(args.OldProperty.Id, newProperty.Value, //the property args.OldProperty.Value); //previous value this.OnAttributeChanged(dargs); } else { PropertyDataChangedEventArgs dargs = new PropertyDataChangedEventArgs(args.OldProperty.Id, null, //the property args.OldProperty.Value); //previous value this.OnPropertyDataChanged(dargs); } } else if (args.OldProperty == null) { //a property was added, see if it is a drawing attribute property object defaultValueIfDrawingAttribute = DrawingAttributes.GetDefaultDrawingAttributeValue(args.NewProperty.Id); if (defaultValueIfDrawingAttribute != null) { if (!defaultValueIfDrawingAttribute.Equals(args.NewProperty.Value)) { //this is a da guid PropertyDataChangedEventArgs dargs = new PropertyDataChangedEventArgs(args.NewProperty.Id, args.NewProperty.Value, //the property defaultValueIfDrawingAttribute); //previous value this.OnAttributeChanged(dargs); } } else { PropertyDataChangedEventArgs dargs = new PropertyDataChangedEventArgs(args.NewProperty.Id, args.NewProperty.Value, //the property null); //previous value this.OnPropertyDataChanged(dargs); } } else { //something was modified, see if it is a drawing attribute property object defaultValueIfDrawingAttribute = DrawingAttributes.GetDefaultDrawingAttributeValue(args.NewProperty.Id); if (defaultValueIfDrawingAttribute != null) { // // we only raise DA changed when the value actually changes // if (!args.NewProperty.Value.Equals(args.OldProperty.Value)) { //this is a da guid PropertyDataChangedEventArgs dargs = new PropertyDataChangedEventArgs(args.NewProperty.Id, args.NewProperty.Value, //the da args.OldProperty.Value); //old value this.OnAttributeChanged(dargs); } } else { if (!args.NewProperty.Value.Equals(args.OldProperty.Value)) { PropertyDataChangedEventArgs dargs = new PropertyDataChangedEventArgs(args.NewProperty.Id, args.NewProperty.Value, args.OldProperty.Value); //old value this.OnPropertyDataChanged(dargs); } } } }