1 using System.Collections;
2 using System.Collections.Generic;
7 using AVR.UEditor.Core;
9 namespace AVR.UEditor.UI {
22 List<int> regular_unicodes =
new List<int>();
23 List<int> solid_unicodes =
new List<int>();
24 List<int> brand_unicodes =
new List<int>();
40 Vector2 scrollPos = Vector2.zero;
42 bool show_glyphs =
false;
46 solid_static = AVR_EditorUtility.GetFont(
"/editor/editorfonts/font-awesome-solid-static");
47 solid_dynamic = AVR_EditorUtility.GetFont(
"/editor/editorfonts/font-awesome-solid");
48 solid_runtime = AVR_EditorUtility.GetFont(
"/editor/fonts/font-awesome-solid");
50 regular_static = AVR_EditorUtility.GetFont(
"/editor/editorfonts/font-awesome-regular-static");
51 regular_dynamic = AVR_EditorUtility.GetFont(
"/editor/editorfonts/font-awesome-regular");
52 regular_runtime = AVR_EditorUtility.GetFont(
"/editor/fonts/font-awesome-regular");
54 brand_static = AVR_EditorUtility.GetFont(
"/editor/editorfonts/font-awesome-brands-static");
55 brand_dynamic = AVR_EditorUtility.GetFont(
"/editor/editorfonts/font-awesome-brands");
56 brand_runtime = AVR_EditorUtility.GetFont(
"/editor/fonts/font-awesome-brands");
58 solid_unicodes =
new List<int>();
59 foreach (var c
in solid_static.characterInfo)
61 solid_unicodes.Add(c.index);
64 regular_unicodes =
new List<int>();
65 foreach (var c
in regular_static.characterInfo)
67 regular_unicodes.Add(c.index);
70 brand_unicodes =
new List<int>();
71 foreach (var c
in brand_static.characterInfo)
73 brand_unicodes.Add(c.index);
78 if (GUILayout.Button(
"Search Glyphs", GUILayout.Height(30)))
80 Application.OpenURL(
"https://fontawesome.com/v5.15/icons?d=gallery&p=2&s=brands,regular,solid&m=free");
82 using (
new EditorGUILayout.HorizontalScope())
84 GUILayout.Label(
"Hex. Unicode:");
85 unicode_input = GUILayout.TextField(unicode_input);
86 if(GUILayout.Button(
"Set", GUILayout.Width(60))) {
87 ((
AVR_FA_GlyphHelper)target).setup(UseFont, int.Parse(unicode_input, System.Globalization.NumberStyles.HexNumber));
92 private void Glyphs(List<int> unicodes, Font DisplayFont, Font UseFont)
94 const float button_size = 30;
95 const int fontSize = 16;
97 float max_width = Screen.width - button_size;
99 float width_acc = 0.0f;
101 button_style =
new GUIStyle(GUI.skin.button);
102 button_style.margin =
new RectOffset(0, 0, 0, 0);
103 button_style.fontSize = fontSize;
104 button_style.font = DisplayFont;
106 scrollPos = EditorGUILayout.BeginScrollView(scrollPos, GUILayout.Height(500), GUILayout.Width(max_width));
107 GUILayout.BeginHorizontal();
108 for (
int i = 0; i < unicodes.Count; i++)
110 if (width_acc >= max_width)
112 GUILayout.EndHorizontal();
113 GUILayout.BeginHorizontal();
124 width_acc += button_size + 2;
126 GUILayout.EndHorizontal();
127 EditorGUILayout.EndScrollView();
132 using (
new EditorGUILayout.HorizontalScope())
134 if (!show_glyphs && GUILayout.Button(
"Show Glyphs", GUILayout.Height(60)))
139 if (show_glyphs && GUILayout.Button(
"Hide Glyphs", GUILayout.Height(60)))
144 if (GUILayout.Button(
"Remove Helper", GUILayout.Height(60), GUILayout.Width(120)))
146 DestroyImmediate(target);
150 EditorGUILayout.Space();
154 EditorGUILayout.Space();
156 using (
new EditorGUILayout.HorizontalScope())
158 if (GUILayout.Button(
"Solid Glyphs", GUILayout.Height(30))) ShowType = FA_type.SOLID;
159 if (GUILayout.Button(
"Regular Glyphs", GUILayout.Height(30))) ShowType = FA_type.REGULAR;
160 if (GUILayout.Button(
"Brand Glyphs", GUILayout.Height(30))) ShowType = FA_type.BRAND;
166 EditorGUILayout.Space();
167 FromUnicode(solid_runtime);
168 EditorGUILayout.Space();
169 Glyphs(solid_unicodes, solid_dynamic, solid_runtime);
172 case FA_type.REGULAR:
174 EditorGUILayout.Space();
175 FromUnicode(regular_runtime);
176 EditorGUILayout.Space();
177 Glyphs(regular_unicodes, regular_dynamic, regular_runtime);
182 EditorGUILayout.Space();
183 FromUnicode(brand_runtime);
184 EditorGUILayout.Space();
185 Glyphs(brand_unicodes, brand_dynamic, brand_runtime);
static string Unicode_to_String(string unicode)
void Glyphs(List< int > unicodes, Font DisplayFont, Font UseFont)
void FromUnicode(Font UseFont)
override void OnInspectorGUI()