// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.

import "IKeyBindings.idl";
import "IControlAppearance.idl";

namespace Microsoft.Terminal.Control
{
    enum ScrollbarState
    {
        Visible = 0,
        Hidden
    };

    enum TextAntialiasingMode
    {
        Grayscale = 0,
        Cleartype,
        Aliased
    };

    // Class Description:
    // TerminalSettings encapsulates all settings that control the
    //      TermControl's behavior. In these settings there is both the entirety
    //      of the Core ITerminalSettings interface, and any additional settings
    //      for specifically the control.
    interface IControlSettings requires Microsoft.Terminal.Core.ICoreSettings, Microsoft.Terminal.Control.IControlAppearance
    {
        String ProfileName;

        Boolean UseAcrylic;
        Double TintOpacity;
        ScrollbarState ScrollState;

        String FontFace;
        Int32 FontSize;
        Windows.UI.Text.FontWeight FontWeight;
        String Padding;

        Microsoft.Terminal.Control.IKeyBindings KeyBindings;

        Boolean CopyOnSelect;
        Boolean FocusFollowMouse;

        String Commandline;
        String StartingDirectory;
        String EnvironmentVariables;

        TextAntialiasingMode AntialiasingMode;

        // Experimental Settings
        Boolean ForceFullRepaintRendering;
        Boolean SoftwareRendering;
    };
}
