// Copyright (c) 2010 Joe Moorhouse

using ICSharpCode.AvalonEdit;
using PythonConsoleControl;
using System.ComponentModel;
using FontFamily = System.Windows.Media.FontFamily;

namespace CADPythonShell
{
    public class ConsoleOptions
    {
        private TextEditor textEditor;
        private PythonConsolePad pad;

        public ConsoleOptions(PythonConsolePad pad)
        {
            this.textEditor = pad.Control;
            this.pad = pad;
        }

        [DefaultValue(false)]
        public bool ShowSpaces
        {
            get { return textEditor.TextArea.Options.ShowSpaces; }
            set { textEditor.TextArea.Options.ShowSpaces = value; }
        }

        [DefaultValue(false)]
        public bool ShowTabs
        {
            get { return textEditor.TextArea.Options.ShowTabs; }
            set { textEditor.TextArea.Options.ShowTabs = value; }
        }

        [DefaultValue(false)]
        public bool AllowScrollBelowDocument
        {
            get { return textEditor.TextArea.Options.AllowScrollBelowDocument; }
            set { textEditor.TextArea.Options.AllowScrollBelowDocument = value; }
        }

        [DefaultValue("Consolas")]
        public string FontFamily
        {
            get { return textEditor.TextArea.FontFamily.ToString(); }
            set { textEditor.TextArea.FontFamily = new FontFamily(value); }
        }

        [DefaultValue(12.0)]
        public double FontSize
        {
            get { return textEditor.TextArea.FontSize; }
            set { textEditor.TextArea.FontSize = value; }
        }

        [DefaultValue(false)]
        public bool FullAutocompletion
        {
            get { return pad.Console.AllowFullAutocompletion; }
            set { pad.Console.AllowFullAutocompletion = value; }
        }

        [DefaultValue(true)]
        public bool CtrlSpaceAutocompletion
        {
            get { return pad.Console.AllowCtrlSpaceAutocompletion; }
            set { pad.Console.AllowCtrlSpaceAutocompletion = value; }
        }
    }
}