e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
102 lines
3.6 KiB
C#
102 lines
3.6 KiB
C#
//------------------------------------------------------------------------------
|
|
// <copyright file="MergablePropertyAttribute.cs" company="Microsoft">
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// </copyright>
|
|
//------------------------------------------------------------------------------
|
|
|
|
/*
|
|
*/
|
|
namespace System.ComponentModel {
|
|
using System;
|
|
using System.ComponentModel;
|
|
using System.Diagnostics;
|
|
using System.Security.Permissions;
|
|
|
|
/// <devdoc>
|
|
/// <para>Specifies that
|
|
/// this property can be combined with properties belonging to
|
|
/// other objects in a properties window.</para>
|
|
/// </devdoc>
|
|
[AttributeUsage(AttributeTargets.All)]
|
|
public sealed class MergablePropertyAttribute : Attribute {
|
|
|
|
/// <devdoc>
|
|
/// <para>
|
|
/// Specifies that a property can be combined with properties belonging to other
|
|
/// objects in a properties window. This <see langword='static '/>field is read-only.
|
|
/// </para>
|
|
/// </devdoc>
|
|
public static readonly MergablePropertyAttribute Yes = new MergablePropertyAttribute(true);
|
|
|
|
/// <devdoc>
|
|
/// <para>
|
|
/// Specifies that a property cannot be combined with properties belonging to
|
|
/// other objects in a properties window. This <see langword='static '/>field is
|
|
/// read-only.
|
|
/// </para>
|
|
/// </devdoc>
|
|
public static readonly MergablePropertyAttribute No = new MergablePropertyAttribute(false);
|
|
|
|
/// <devdoc>
|
|
/// <para>
|
|
/// Specifies the default value, which is <see cref='System.ComponentModel.MergablePropertyAttribute.Yes'/>, that is a property can be combined with
|
|
/// properties belonging to other objects in a properties window. This <see langword='static '/>field is read-only.
|
|
/// </para>
|
|
/// </devdoc>
|
|
public static readonly MergablePropertyAttribute Default = Yes;
|
|
|
|
private bool allowMerge;
|
|
|
|
/// <devdoc>
|
|
/// <para>
|
|
/// Initializes a new instance of the <see cref='System.ComponentModel.MergablePropertyAttribute'/>
|
|
/// class.
|
|
/// </para>
|
|
/// </devdoc>
|
|
public MergablePropertyAttribute(bool allowMerge) {
|
|
this.allowMerge = allowMerge;
|
|
}
|
|
|
|
/// <devdoc>
|
|
/// <para>
|
|
/// Gets a value indicating whether this
|
|
/// property can be combined with properties belonging to other objects in a
|
|
/// properties window.
|
|
/// </para>
|
|
/// </devdoc>
|
|
public bool AllowMerge {
|
|
get {
|
|
return allowMerge;
|
|
}
|
|
}
|
|
|
|
/// <internalonly/>
|
|
/// <devdoc>
|
|
/// </devdoc>
|
|
public override bool Equals(object obj) {
|
|
if (obj == this) {
|
|
return true;
|
|
}
|
|
|
|
MergablePropertyAttribute other = obj as MergablePropertyAttribute;
|
|
return other != null && other.AllowMerge == this.allowMerge;
|
|
}
|
|
|
|
/// <devdoc>
|
|
/// <para>
|
|
/// Returns the hashcode for this object.
|
|
/// </para>
|
|
/// </devdoc>
|
|
public override int GetHashCode() {
|
|
return base.GetHashCode();
|
|
}
|
|
|
|
/// <devdoc>
|
|
/// </devdoc>
|
|
/// <internalonly/>
|
|
public override bool IsDefaultAttribute() {
|
|
return (this.Equals(Default));
|
|
}
|
|
}
|
|
}
|