aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Editors/IConfigurable.cs
blob: a30b9d8a93503b6ccfcdbfe6121bc5abf63f48f7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Tango.Editors
{
    /// <summary>
    /// Represents the base interface for all configurable types.
    /// </summary>
    public interface IConfigurable
    {
        /// <summary>
        /// Gets a configuration object representing the configurable properties. This configuration can be serialized to a stream or file, and later be loaded and applied to the configurable object.
        /// </summary>
        /// <returns></returns>
        IConfiguration GetConfiguration();

        /// <summary>
        /// Applies the specified configuration with an optional animation if supported by the configurable type.
        /// </summary>
        /// <param name="configuration">The configuration.</param>
        /// <param name="animation">The animation.</param>
        void SetConfiguration(IConfiguration configuration, ConfigurationAnimation animation);
    }
}