using System;
using Robust.Client.UserInterface.Controls;
namespace Robust.Client.UserInterface
{
/// Control on which the property was changed.
///
public delegate void AttachedPropertyChangedCallback(Control owner, AttachedPropertyChangedEventArgs eventArgs);
public delegate void AttachedPropertyChangedCallback(Control owner,
AttachedPropertyChangedEventArgs eventArgs);
///
/// An attached property is a property that can be assigned to any control,
/// without having to modify the base class to add it.
/// This is useful for storing data for specific controls like
///
[Virtual]
public class AttachedProperty
{
///
/// The name of the property.
///
public string Name { get; }
///
/// The type that defines the attached property.
///
public Type OwningType { get; }
///
/// The type of the value stored in the property.
///
public Type PropertyType { get; }
///
/// The default value of the property.
/// This is returned if no value is set and is called.
///
public object? DefaultValue { get; }
///
/// An optional validation function.
/// If the value to fails this check, an exception will be thrown.
///
public Func