//------------------------------------------------------------------------------ // <copyright file="NonVisualControlAttribute.cs" company="Microsoft"> // Copyright (c) Microsoft Corporation. All rights reserved. // </copyright> //------------------------------------------------------------------------------ namespace System.Web.UI { using System; using System.Collections; using System.ComponentModel; /// <devdoc> /// </devdoc> [AttributeUsage(AttributeTargets.Class)] public sealed class NonVisualControlAttribute : Attribute { /// <internalonly/> /// <devdoc> /// <para></para> /// </devdoc> public static readonly NonVisualControlAttribute NonVisual = new NonVisualControlAttribute(true); /// <internalonly/> /// <devdoc> /// <para></para> /// </devdoc> public static readonly NonVisualControlAttribute Visual = new NonVisualControlAttribute(false); /// <internalonly/> /// <devdoc> /// <para></para> /// </devdoc> public static readonly NonVisualControlAttribute Default = Visual; private bool _nonVisual; /// <devdoc> /// </devdoc> public NonVisualControlAttribute() : this(true) { } /// <devdoc> /// </devdoc> public NonVisualControlAttribute(bool nonVisual) { _nonVisual = nonVisual; } /// <devdoc> /// <para>Indicates if the control is non-visual.</para> /// </devdoc> public bool IsNonVisual { get { return _nonVisual; } } /// <internalonly/> public override bool Equals(object obj) { if (obj == this) { return true; } NonVisualControlAttribute other = obj as NonVisualControlAttribute; return (other != null) && (other.IsNonVisual == IsNonVisual); } /// <internalonly/> public override int GetHashCode() { return _nonVisual.GetHashCode(); } /// <internalonly/> public override bool IsDefaultAttribute() { return this.Equals(Default); } } }