Kursach_StealthAction/Assets/Tremble/Editor/Manual/ManualStyles.cs
2026-10-11 19:16:11 +03:00

112 lines
3.5 KiB
C#

//
// This file is part of the Tremble package by Tiny Goose.
// Copyright (c) 2024-2026 TinyGoose Ltd., All Rights Reserved.
//
using System.IO;
using UnityEditor;
using UnityEngine;
namespace TinyGoose.Tremble.Editor
{
public class ManualStyles
{
private ManualStyles()
{
string manualPath = Path.Combine(TrembleConsts.EDITOR_GetTrembleInstallFolder(), "Editor", "Manual");
string fontPath = Path.Combine(manualPath, "FNT_UbuntuMono.ttf");
Font ubuntuMonoFont = AssetDatabase.LoadAssetAtPath<Font>(fontPath);
string bookmarkOnPath = Path.Combine(manualPath, "T_Bookmark_On.png");
m_BookmarkIconOn = AssetDatabase.LoadAssetAtPath<Texture2D>(bookmarkOnPath);
string bookmarkOffPath = Path.Combine(manualPath, "T_Bookmark_Off.png");
m_BookmarkIconOff = AssetDatabase.LoadAssetAtPath<Texture2D>(bookmarkOffPath);
m_Text = new(EditorStyles.wordWrappedLabel) { fontSize = Mathf.FloorToInt(13 * s_Scale) };
m_Code = new(EditorStyles.wordWrappedLabel) { font = ubuntuMonoFont, fontSize = Mathf.FloorToInt(13 * s_Scale)};
m_CenteredGreyMiniLabel = new(EditorStyles.centeredGreyMiniLabel) { fontSize = Mathf.FloorToInt(9 * s_Scale)};
m_Toggle = new(EditorStyles.toggle) { fontSize = Mathf.FloorToInt(13 * s_Scale) };
m_Foldout = new(EditorStyles.foldout) { fontSize = Mathf.FloorToInt(13 * s_Scale) };
m_Button = new("Button") { fontSize = Mathf.FloorToInt(13 * s_Scale) };
m_VeryLargeButton = new(m_Button) { padding = new(30, 30, 30, 30), fontSize = Mathf.FloorToInt(20 * s_Scale) };
m_B = new(m_Text) { fontStyle = FontStyle.Bold, fontSize = Mathf.FloorToInt(13 * s_Scale) };
m_HelpBox = new(EditorStyles.helpBox) { fontSize = Mathf.FloorToInt(13 * s_Scale) };
m_Title = new(m_B) { fontStyle = FontStyle.Bold, fontSize = Mathf.FloorToInt(24 * s_Scale) };
m_H1 = new(m_B) { fontSize = Mathf.FloorToInt(20 * s_Scale) };
m_H2 = new(m_B) { fontSize = Mathf.FloorToInt(18 * s_Scale) };
m_H3 = new(m_B) { fontSize = Mathf.FloorToInt(16 * s_Scale) };
}
private static ManualStyles s_ManualStyles;
private static float s_Scale = 1f;
public static ManualStyles Styles
{
get
{
s_ManualStyles ??= new();
return s_ManualStyles;
}
}
public static float Scale
{
get => s_Scale;
set
{
s_Scale = value;
s_ManualStyles = new();
}
}
private readonly Texture2D m_BookmarkIconOn;
private readonly Texture2D m_BookmarkIconOff;
private readonly GUIStyle m_Text;
private readonly GUIStyle m_Code;
private readonly GUIStyle m_CenteredGreyMiniLabel;
private readonly GUIStyle m_Button;
private readonly GUIStyle m_VeryLargeButton;
private readonly GUIStyle m_Toggle;
private readonly GUIStyle m_Foldout;
private readonly GUIStyle m_B;
private readonly GUIStyle m_HelpBox;
private readonly GUIStyle m_Title;
private readonly GUIStyle m_H1;
private readonly GUIStyle m_H2;
private readonly GUIStyle m_H3;
public const float SPACE = 20f;
public Texture2D BookmarkIconOn => m_BookmarkIconOn;
public Texture2D BookmarkIconOff => m_BookmarkIconOff;
public GUIStyle Text => m_Text;
public GUIStyle Code => m_Code;
public GUIStyle CenteredGreyMiniLabel => m_CenteredGreyMiniLabel;
public GUIStyle Button => m_Button;
public GUIStyle VeryLargeButton => m_VeryLargeButton;
public GUIStyle Toggle => m_Toggle;
public GUIStyle Foldout => m_Foldout;
public GUIStyle B => m_B;
public GUIStyle HelpBox => m_HelpBox;
public GUIStyle Title => m_Title;
public GUIStyle H1 => m_H1;
public GUIStyle H2 => m_H2;
public GUIStyle H3 => m_H3;
}
}