//------------------------------------------------------------------------------
//
// 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
}
}