namespace Toolbox.Docking.Api.Objects
{
    /// <inheritdoc />
    /// <summary>
    /// Interface for object which has options to adjust
    /// </summary>
    public interface ITbObjectTunable : ITbObject
    {
        /// <summary>
        /// Set options to an object. The factory producing this object must be ITbObjectFactoryTunable.
        /// The newOptions string is obtained from: factory.DefaultOptions or client implementation of ITbOptionsPlugin
        /// Each object is responsible for Serialization/Deserialization to/from string. 
        /// </summary>
        /// <param name="newOptions">The new options to be set.</param>
        void SetOptions(string newOptions);
    }
}