//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//------------------------------------------------------------------------------
namespace System.ComponentModel {
using System;
using System.Security.Permissions;
///
/// If this attribute is placed on a property or a type, its text representation in a property window
/// will appear as dots or astrisks to indicate a password field. This indidation in no way
/// represents any type of encryption or security.
///
[AttributeUsage(AttributeTargets.All)]
public sealed class PasswordPropertyTextAttribute : Attribute {
///
/// Sets the System.ComponentModel.Design.PasswordPropertyText
/// attribute by default to true.
///
public static readonly PasswordPropertyTextAttribute Yes = new PasswordPropertyTextAttribute(true);
///
/// Sets the System.ComponentModel.Design.PasswordPropertyText
/// attribute by default to false.
///
public static readonly PasswordPropertyTextAttribute No = new PasswordPropertyTextAttribute(false);
///
/// Sets the System.ComponentModel.Design.PasswordPropertyText
/// attribute by default to false.
///
public static readonly PasswordPropertyTextAttribute Default = No;
private bool _password;
///
/// Creates a default PasswordPropertyTextAttribute.
///
public PasswordPropertyTextAttribute() : this(false) {
}
///
/// Creates a PasswordPropertyTextAttribute with the given password value.
///
public PasswordPropertyTextAttribute(bool password) {
_password = password;
}
///
/// Gets a value indicating if the property this attribute is defined for should be shown as password text.
///
public bool Password {
get {
return _password;
}
}
///
/// Overload for object equality
///
public override bool Equals(object o) {
if (o is PasswordPropertyTextAttribute) {
return ((PasswordPropertyTextAttribute)o).Password == _password;
}
return false;
}
///
/// Returns the hashcode for this object.
///
public override int GetHashCode() {
return base.GetHashCode();
}
///
/// Gets a value indicating whether this attribute is set to true by default.
///
public override bool IsDefaultAttribute() {
return this.Equals(Default);
}
}
}