Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
 /// <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]);
     }
 }
Beispiel #3
0
 /// <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;
         }
     }
 }
Beispiel #4
0
        /// <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);
                    }
                }
            }
        }