//
// System.ComponentModel.DesignerAttribute.cs
//
// Author:
// Alejandro Sánchez Acosta (raciel@es.gnu.org)
//
// (C) Alejandro Sánchez Acosta
//
namespace System.ComponentModel {
///
/// Designer Attribute for classes.
///
///
///
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface)]
public sealed class DesignerAttribute : Attribute
{
string name;
string basetypename;
Type type;
Type basetype;
public DesignerAttribute (string designerTypeName)
{
name = designerTypeName;
}
public DesignerAttribute (Type designerType)
{
type = designerType;
}
public DesignerAttribute (string designerTypeName, string designerBaseTypeName)
{
name = designerTypeName;
basetypename = designerBaseTypeName;
}
public DesignerAttribute (string designerTypeName, Type designerBaseType)
{
name = designerTypeName;
basetype = designerBaseType;
}
public DesignerAttribute (Type designerType, Type designerBaseType)
{
type = designerType;
basetype = designerBaseType;
}
public string DesignerBaseTypeName {
get {
return basetypename;
}
}
public string DesignerTypeName {
get {
return name;
}
}
public override object TypeId {
get {
return this.GetType ();
}
}
public override bool Equals (object obj)
{
if (!(obj is DesignerAttribute))
return false;
return (((DesignerAttribute) obj).name == name) &&
(((DesignerAttribute) obj).basetype == basetype) &&
(((DesignerAttribute) obj).type == type) &&
(((DesignerAttribute) obj).basetypename == basetypename);
}
public override int GetHashCode ()
{
return base.GetHashCode ();
}
}
}