//------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //------------------------------------------------------------------------------ /* */ namespace System.ComponentModel { using System; using System.Security.Permissions; /// /// /// DesignTimeVisibileAttribute marks a component's visibility. If /// DesignTimeVisibileAttribute.Yes is present, a visual designer can show /// this component on a designer. /// /// [AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface)] public sealed class DesignTimeVisibleAttribute : Attribute { private bool visible; /// /// Creates a new DesignTimeVisibleAttribute with the visible /// property set to the given value. /// public DesignTimeVisibleAttribute(bool visible) { this.visible = visible; } /// /// Creates a new DesignTimeVisibleAttribute set to the default /// value of true. /// public DesignTimeVisibleAttribute() { } /// /// True if this component should be shown at design time, or false /// if it shouldn't. /// public bool Visible { get { return visible; } } /// /// Marks a component as visible in a visual designer. /// public static readonly DesignTimeVisibleAttribute Yes = new DesignTimeVisibleAttribute(true); /// /// Marks a component as not visible in a visual designer. /// public static readonly DesignTimeVisibleAttribute No = new DesignTimeVisibleAttribute(false); /// /// The default visiblity. (equal to Yes.) /// public static readonly DesignTimeVisibleAttribute Default = Yes; /// /// [To be supplied.] /// public override bool Equals(object obj) { if (obj == this) { return true; } DesignTimeVisibleAttribute other = obj as DesignTimeVisibleAttribute; return other != null && other.Visible == visible; } /// /// [To be supplied.] /// public override int GetHashCode() { return typeof(DesignTimeVisibleAttribute).GetHashCode() ^ (visible ? -1 : 0); } #if !SILVERLIGHT /// /// [To be supplied.] /// public override bool IsDefaultAttribute() { return (this.Visible == Default.Visible); } #endif } }