Files
FlaxEngine/Source/Editor/EditorIcons.cs
2021-01-02 14:28:49 +01:00

135 lines
4.5 KiB
C#

// Copyright (c) 2012-2021 Wojciech Figat. All rights reserved.
using System.Reflection;
using FlaxEngine;
#pragma warning disable 1591
namespace FlaxEditor
{
/// <summary>
/// The editor icons atlas. Cached internally to improve performance.
/// </summary>
/// <remarks>
/// Postfix number informs about the sprite resolution (in pixels).
/// </remarks>
[HideInEditor]
public sealed class EditorIcons
{
public SpriteHandle FolderClosed12;
public SpriteHandle FolderOpened12;
public SpriteHandle DragBar12;
public SpriteHandle ArrowDown12;
public SpriteHandle ArrowRight12;
public SpriteHandle Search12;
public SpriteHandle Settings12;
public SpriteHandle Cross12;
public SpriteHandle CheckBoxIntermediate12;
public SpriteHandle CheckBoxTick12;
public SpriteHandle StatusBarSizeGrip12;
public SpriteHandle ArrowRightBorder16;
public SpriteHandle World16;
public SpriteHandle ScaleStep16;
public SpriteHandle RotateStep16;
public SpriteHandle Grid16;
public SpriteHandle Translate16;
public SpriteHandle Rotate16;
public SpriteHandle Scale16;
public SpriteHandle Link16;
public SpriteHandle Docs16;
public SpriteHandle Save32;
public SpriteHandle Undo32;
public SpriteHandle Redo32;
public SpriteHandle Translate32;
public SpriteHandle Rotate32;
public SpriteHandle Scale32;
public SpriteHandle Play32;
public SpriteHandle Pause32;
public SpriteHandle Step32;
public SpriteHandle Stop32;
public SpriteHandle PageScale32;
public SpriteHandle Bone32;
public SpriteHandle Docs32;
public SpriteHandle Import32;
public SpriteHandle AddDoc32;
public SpriteHandle RemoveDoc32;
public SpriteHandle BracketsSlash32;
public SpriteHandle Find32;
public SpriteHandle Reload32;
public SpriteHandle ArrowLeft32;
public SpriteHandle ArrowRight32;
public SpriteHandle ArrowDown32;
public SpriteHandle ArrowUp32;
public SpriteHandle Error32;
public SpriteHandle Warning32;
public SpriteHandle Info32;
public SpriteHandle UV32;
public SpriteHandle Image32;
public SpriteHandle Link32;
public SpriteHandle Next32;
public SpriteHandle Camera32;
public SpriteHandle Build32;
public SpriteHandle Add48;
public SpriteHandle Paint48;
public SpriteHandle Foliage48;
public SpriteHandle Mountain48;
public SpriteHandle Plugin64;
public SpriteHandle Document64;
public SpriteHandle CSharpScript64;
public SpriteHandle CppScript64;
public SpriteHandle Folder64;
public SpriteHandle Scene64;
public SpriteHandle CodeScript64;
public SpriteHandle Logo128;
public SpriteHandle VisjectBoxOpen;
public SpriteHandle VisjectBoxClose;
public SpriteHandle VisjectArrowOpen;
public SpriteHandle VisjectArrowClose;
public SpriteHandle AssetShadow;
public SpriteHandle ColorWheel;
public SpriteHandle Windows;
public SpriteHandle XboxOne;
public SpriteHandle WindowsStore;
public SpriteHandle Linux;
public SpriteHandle PS4;
public SpriteHandle XboxSeriesX;
public SpriteHandle Android;
internal void GetIcons()
{
// Load asset
var iconsAtlas = FlaxEngine.Content.LoadAsyncInternal<SpriteAtlas>(EditorAssets.IconsAtlas);
if (iconsAtlas == null)
{
Editor.LogError("Cannot load editor icons atlas.");
return;
}
if (iconsAtlas.WaitForLoaded())
{
Editor.LogError("Failed to load editor icons atlas.");
return;
}
// Find icons
var fields = GetType().GetFields(BindingFlags.Instance | BindingFlags.Public);
for (int i = 0; i < fields.Length; i++)
{
var field = fields[i];
var sprite = iconsAtlas.FindSprite(field.Name);
if (!sprite.IsValid)
{
Editor.LogWarning(string.Format("Failed to load sprite icon \'{0}\'.", field.Name));
}
field.SetValue(this, sprite);
}
}
}
}