//------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //------------------------------------------------------------------------------ /* */ namespace System.ComponentModel { using System; using System.ComponentModel; using System.Diagnostics; using System.Security.Permissions; /// /// Specifies that /// this property can be combined with properties belonging to /// other objects in a properties window. /// [AttributeUsage(AttributeTargets.All)] public sealed class MergablePropertyAttribute : Attribute { /// /// /// Specifies that a property can be combined with properties belonging to other /// objects in a properties window. This field is read-only. /// /// public static readonly MergablePropertyAttribute Yes = new MergablePropertyAttribute(true); /// /// /// Specifies that a property cannot be combined with properties belonging to /// other objects in a properties window. This field is /// read-only. /// /// public static readonly MergablePropertyAttribute No = new MergablePropertyAttribute(false); /// /// /// Specifies the default value, which is , that is a property can be combined with /// properties belonging to other objects in a properties window. This field is read-only. /// /// public static readonly MergablePropertyAttribute Default = Yes; private bool allowMerge; /// /// /// Initializes a new instance of the /// class. /// /// public MergablePropertyAttribute(bool allowMerge) { this.allowMerge = allowMerge; } /// /// /// Gets a value indicating whether this /// property can be combined with properties belonging to other objects in a /// properties window. /// /// public bool AllowMerge { get { return allowMerge; } } /// /// /// public override bool Equals(object obj) { if (obj == this) { return true; } MergablePropertyAttribute other = obj as MergablePropertyAttribute; return other != null && other.AllowMerge == this.allowMerge; } /// /// /// Returns the hashcode for this object. /// /// public override int GetHashCode() { return base.GetHashCode(); } /// /// /// public override bool IsDefaultAttribute() { return (this.Equals(Default)); } } }