Repository URL to install this package:
Version:
1.3.1 ▾
|
using Fluctio.FluctioSim.Common.Configuration;
using Fluctio.FluctioSim.Common.Icons;
using Fluctio.FluctioSim.EditorUtils.Gui;
using UnityEditor;
using UnityEngine;
namespace Fluctio.FluctioSim.EditorCore.EditorGeneral
{
public class AboutWindow : ConfigurableEditorWindow
{
private const float Width = 400;
private const float MainHeight = 125;
private const float DetailsWidth = 150;
private const float DescriptionHeight = 70;
private const float DebugHeight = 40;
private const float Margin = Width / 15;
private const float Padding = Margin / 2;
private static readonly float EffectiveDebugHeight = Config.IsDebug ? Padding + DebugHeight : 0;
private static readonly Vector2 Size = new(
Width + 2 * Margin,
Margin + MainHeight + Padding + DescriptionHeight + EffectiveDebugHeight + Margin);
public override Vector2 MinSize => Size;
public override Vector2 MaxSize => Size;
public override string Title => $"About {Config.RawName}";
protected override void OnGUI()
{
base.OnGUI();
using var horizontalScope = new EditorGUILayout.HorizontalScope();
GUILayout.Space(Margin);
using (new EditorGUILayout.VerticalScope())
{
GUILayout.Space(Margin);
DrawMain();
GUILayout.Space(Padding);
DrawDescription();
DrawDebug();
GUILayout.Space(Margin);
}
GUILayout.Space(Margin);
}
private static void DrawMain()
{
using var horizontalScope = new EditorGUILayout.HorizontalScope();
GUILayout.Space((Width - Padding - MainHeight - DetailsWidth)/2);
GUILayout.Box(DefinedIcons.Logo, EditorStyles.label, GUILayout.Width(MainHeight), GUILayout.Height(MainHeight));
GUILayout.Space(Padding);
using (new EditorGUILayout.VerticalScope())
{
DrawDetails();
}
}
private static void DrawDetails()
{
EditorGUILayout.LabelField(Config.RawName, EditorStyles.boldLabel);
EditorGUILayout.LabelField(Config.PackageId);
EditorGUILayout.LabelField($"Version {Config.PackageInfo.version}");
EditorGUILayout.LabelField($"Made by {Config.PackageInfo.author.name}");
EditorGUILayout.TextField(Config.PackageInfo.author.email, EditorStyles.label);
EditorGUIExtensions.WebLink(Config.PackageInfo.author.url);
}
private static void DrawDescription()
{
EditorGUILayout.LabelField(Config.PackageInfo.description ?? "Description loading...", EditorStyles.textArea, GUILayout.Width(Width), GUILayout.Height(DescriptionHeight));
//TODO: add some legal info?
}
private static void DrawDebug()
{
if (!Config.IsDebug)
{
return;
}
GUILayout.Space(Padding);
EditorGUILayout.HelpBox("DEVELOPER MODE ENABLED", MessageType.Warning);
}
}
}