94 lines
3.6 KiB
C#
94 lines
3.6 KiB
C#
![]() |
// Copyright (c) 2015 - 2023 Doozy Entertainment. All Rights Reserved.
|
|||
|
// This code can only be used under the standard Unity Asset Store End User License Agreement
|
|||
|
// A Copy of the EULA APPENDIX 1 is available at http://unity3d.com/company/legal/as_terms
|
|||
|
|
|||
|
using System.Collections.Generic;
|
|||
|
using Doozy.Editor.EditorUI;
|
|||
|
using Doozy.Editor.EditorUI.Components;
|
|||
|
using Doozy.Editor.EditorUI.Components.Internal;
|
|||
|
using Doozy.Editor.EditorUI.ScriptableObjects.Colors;
|
|||
|
using Doozy.Editor.EditorUI.Utils;
|
|||
|
using Doozy.Editor.Interfaces;
|
|||
|
using Doozy.Runtime.UIElements.Extensions;
|
|||
|
using Doozy.Runtime.UIManager.ScriptableObjects;
|
|||
|
using UnityEditor;
|
|||
|
using UnityEditor.UIElements;
|
|||
|
using UnityEngine;
|
|||
|
// ReSharper disable RedundantUsingDirective
|
|||
|
using UnityEngine.UIElements; //leave this here to avoid errors in newer versions of Unity (THANKS UNITY)!!! - they moved IntegerField and FloatField to the UnityEngine.UIElements namespace
|
|||
|
// ReSharper restore RedundantUsingDirective
|
|||
|
|
|||
|
namespace Doozy.Editor.UIManager.Layouts.Settings
|
|||
|
{
|
|||
|
public sealed class UISettingsWindowLayout : FluidWindowLayout, IDashboardSettingsWindowLayout
|
|||
|
{
|
|||
|
public int order => 0;
|
|||
|
|
|||
|
public override string layoutName => "UI Settings";
|
|||
|
public override List<Texture2D> animatedIconTextures => EditorSpriteSheets.EditorUI.Icons.DoozyUI;
|
|||
|
public override Color accentColor => EditorColors.Default.SettingsComponent;
|
|||
|
public override EditorSelectableColorInfo selectableAccentColor => EditorSelectableColors.Default.SettingsComponent;
|
|||
|
|
|||
|
private SerializedObject serializedObject { get; set; }
|
|||
|
private SerializedProperty propertyUseOrientationDetection { get; set; }
|
|||
|
|
|||
|
private FluidToggleSwitch useOrientationDetectionSwitch { get; set; }
|
|||
|
private FluidField useOrientationDetectionFluidField { get; set; }
|
|||
|
|
|||
|
public override void OnDestroy()
|
|||
|
{
|
|||
|
base.OnDestroy();
|
|||
|
useOrientationDetectionSwitch?.Recycle();
|
|||
|
useOrientationDetectionFluidField?.Recycle();
|
|||
|
}
|
|||
|
|
|||
|
public UISettingsWindowLayout()
|
|||
|
{
|
|||
|
AddHeader("UI Settings", "Global Settings", animatedIconTextures);
|
|||
|
sideMenu.Dispose(); //remove side menu
|
|||
|
FindProperties();
|
|||
|
Initialize();
|
|||
|
Compose();
|
|||
|
}
|
|||
|
|
|||
|
private void FindProperties()
|
|||
|
{
|
|||
|
serializedObject = new SerializedObject(UIManagerSettings.instance);
|
|||
|
propertyUseOrientationDetection = serializedObject.FindProperty("UseOrientationDetection");
|
|||
|
}
|
|||
|
|
|||
|
private void Initialize()
|
|||
|
{
|
|||
|
useOrientationDetectionSwitch =
|
|||
|
FluidToggleSwitch.Get()
|
|||
|
.SetToggleAccentColor(selectableAccentColor)
|
|||
|
.BindToProperty(propertyUseOrientationDetection);
|
|||
|
|
|||
|
useOrientationDetectionFluidField =
|
|||
|
FluidField.Get()
|
|||
|
.SetStyleFlexGrow(0)
|
|||
|
.SetElementSize(ElementSize.Normal)
|
|||
|
.SetLabelText("Use Orientation Detection")
|
|||
|
.SetTooltip("Add orientation options to all relevant UI elements")
|
|||
|
.AddFieldContent
|
|||
|
(
|
|||
|
DesignUtils.row
|
|||
|
.AddFlexibleSpace()
|
|||
|
.AddChild(useOrientationDetectionSwitch)
|
|||
|
);
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
private void Compose()
|
|||
|
{
|
|||
|
content
|
|||
|
.AddChild(useOrientationDetectionFluidField)
|
|||
|
.AddFlexibleSpace()
|
|||
|
;
|
|||
|
|
|||
|
content.Bind(serializedObject);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|