// Copyright (c) 2012-2020 Wojciech Figat. All rights reserved. using System.ComponentModel; using FlaxEngine; namespace FlaxEditor.Options { /// /// Editor interface options data container. /// [CustomEditor(typeof(Editor))] public class InterfaceOptions { /// /// The log timestamp modes. /// public enum TimestampsFormats { /// /// No prefix. /// None, /// /// The UTC time format. /// Utc, /// /// The local time format. /// LocalTime, /// /// The time since startup (in seconds). /// TimeSinceStartup, } /// /// Gets or sets the Editor User Interface scale. Applied to all UI elements, windows and text. Can be used to scale the interface up on a bigger display. Editor restart required. /// [DefaultValue(1.0f), Limit(0.1f, 10.0f)] [EditorDisplay("Interface"), EditorOrder(10), Tooltip("Editor User Interface scale. Applied to all UI elements, windows and text. Can be used to scale the interface up on a bigger display. Editor restart required.")] public float InterfaceScale { get; set; } = 1.0f; /// /// Gets or sets a value indicating whether use native window title bar. Editor restart required. /// [DefaultValue(false)] [EditorDisplay("Interface"), EditorOrder(70), Tooltip("Determines whether use native window title bar. Editor restart required.")] public bool UseNativeWindowSystem { get; set; } = false; /// /// Gets or sets a value indicating whether show selected camera preview in the editor window. /// [DefaultValue(true)] [EditorDisplay("Interface"), EditorOrder(80), Tooltip("Determines whether show selected camera preview in the edit window.")] public bool ShowSelectedCameraPreview { get; set; } = true; /// /// Gets or sets a value indicating whether center mouse position on window focus in play mode. Helps when working with games that lock mouse cursor. /// [DefaultValue(false)] [EditorDisplay("Interface", "Center Mouse On Game Window Focus"), EditorOrder(100), Tooltip("Determines whether center mouse position on window focus in play mode. Helps when working with games that lock mouse cursor.")] public bool CenterMouseOnGameWinFocus { get; set; } = false; /// /// Gets or sets the timestamps prefix mode for debug log messages. /// [DefaultValue(TimestampsFormats.None)] [EditorDisplay("Interface"), EditorOrder(210), Tooltip("The timestamps prefix mode for debug log messages.")] public TimestampsFormats DebugLogTimestampsFormat { get; set; } = TimestampsFormats.None; /// /// Gets or sets the timestamps prefix mode for output log messages. /// [DefaultValue(TimestampsFormats.TimeSinceStartup)] [EditorDisplay("Output Log", "Timestamps Format"), EditorOrder(300), Tooltip("The timestamps prefix mode for output log messages.")] public TimestampsFormats OutputLogTimestampsFormat { get; set; } = TimestampsFormats.TimeSinceStartup; /// /// Gets or sets the timestamps prefix mode for output log messages. /// [DefaultValue(true)] [EditorDisplay("Output Log", "Show Log Type"), EditorOrder(310), Tooltip("Determines whether show log type prefix in output log messages.")] public bool OutputLogShowLogType { get; set; } = true; /// /// Gets or sets the output log text font. /// [EditorDisplay("Output Log", "Text Font"), EditorOrder(320), Tooltip("The output log text font.")] public FontReference OutputLogTextFont { get; set; } = new FontReference(FlaxEngine.Content.LoadAsyncInternal(EditorAssets.InconsolataRegularFont), 10); /// /// Gets or sets the output log text color. /// [DefaultValue(typeof(Color), "1,1,1,1")] [EditorDisplay("Output Log", "Text Color"), EditorOrder(330), Tooltip("The output log text color.")] public Color OutputLogTextColor { get; set; } = Color.White; /// /// Gets or sets the output log text shadow color. /// [DefaultValue(typeof(Color), "0,0,0,0.5")] [EditorDisplay("Output Log", "Text Shadow Color"), EditorOrder(340), Tooltip("The output log text shadow color.")] public Color OutputLogTextShadowColor { get; set; } = new Color(0, 0, 0, 0.5f); /// /// Gets or sets the output log text shadow offset. Set to 0 to disable this feature. /// [DefaultValue(typeof(Vector2), "1,1")] [EditorDisplay("Output Log", "Text Shadow Offset"), EditorOrder(340), Tooltip("The output log text shadow offset. Set to 0 to disable this feature.")] public Vector2 OutputLogTextShadowOffset { get; set; } = new Vector2(1); /// /// Gets or sets a value indicating whether auto-focus output log window on code compilation error. /// [DefaultValue(true)] [EditorDisplay("Output Log", "Focus Output Log On Compilation Error"), EditorOrder(350), Tooltip("Determines whether auto-focus output log window on code compilation error.")] public bool FocusOutputLogOnCompilationError { get; set; } = true; /// /// Gets or sets a value indicating whether auto-focus output log window on game build error. /// [DefaultValue(true)] [EditorDisplay("Output Log", "Focus Output Log On Game Build Error"), EditorOrder(360), Tooltip("Determines whether auto-focus output log window on game build error.")] public bool FocusOutputLogOnGameBuildError { get; set; } = true; /// /// Gets or sets a value indicating whether auto-focus game window on play mode start. /// [DefaultValue(true)] [EditorDisplay("Play In-Editor", "Focus Game Window On Play"), EditorOrder(200), Tooltip("Determines whether auto-focus game window on play mode start.")] public bool FocusGameWinOnPlay { get; set; } = true; private static FontAsset DefaultFont => FlaxEngine.Content.LoadAsyncInternal(EditorAssets.PrimaryFont); /// /// Gets or sets the title font for editor UI. /// [EditorDisplay("Fonts"), EditorOrder(500), Tooltip("The title font for editor UI.")] public FontReference TitleFont { get; set; } = new FontReference(DefaultFont, 18); /// /// Gets or sets the large font for editor UI. /// [EditorDisplay("Fonts"), EditorOrder(510), Tooltip("The large font for editor UI.")] public FontReference LargeFont { get; set; } = new FontReference(DefaultFont, 14); /// /// Gets or sets the medium font for editor UI. /// [EditorDisplay("Fonts"), EditorOrder(520), Tooltip("The medium font for editor UI.")] public FontReference MediumFont { get; set; } = new FontReference(DefaultFont, 9); /// /// Gets or sets the small font for editor UI. /// [EditorDisplay("Fonts"), EditorOrder(530), Tooltip("The small font for editor UI.")] public FontReference SmallFont { get; set; } = new FontReference(DefaultFont, 9); } }