A game about forced loneliness, made by TACStudios
1using System;
2
3using UnityEditor;
4using UnityEngine;
5
6namespace Unity.PlasticSCM.Editor.UI
7{
8 internal static class DrawActionHelpBox
9 {
10 internal static void For(
11 Texture image,
12 string labelText,
13 string buttonText,
14 Action buttonAction)
15 {
16 EditorGUILayout.BeginHorizontal(
17 EditorStyles.helpBox, GUILayout.MinHeight(40));
18
19 DoNotificationLabel(image, labelText);
20
21 GUILayout.Space(10);
22
23 DoActionButton(buttonText, buttonAction);
24
25 GUILayout.FlexibleSpace();
26
27 EditorGUILayout.EndHorizontal();
28 }
29
30 static void DoNotificationLabel(
31 Texture image, string labelText)
32 {
33 GUILayout.BeginVertical();
34
35 GUILayout.FlexibleSpace();
36
37 GUILayout.Label(
38 new GUIContent(labelText, image),
39 UnityStyles.HelpBoxLabel);
40
41 GUILayout.FlexibleSpace();
42
43 GUILayout.EndVertical();
44 }
45
46 static void DoActionButton(
47 string buttonText, Action buttonAction)
48 {
49 GUILayout.BeginVertical();
50
51 GUILayout.FlexibleSpace();
52
53 GUIContent buttonContent = new GUIContent(buttonText);
54
55 float width = GetButtonWidth(
56 buttonContent, EditorStyles.miniButton);
57
58 if (GUILayout.Button(
59 buttonContent, EditorStyles.miniButton,
60 GUILayout.MinWidth(Math.Max(50, width))))
61 {
62 buttonAction();
63 }
64
65 GUILayout.FlexibleSpace();
66
67 GUILayout.EndVertical();
68 }
69
70 static float GetButtonWidth(
71 GUIContent buttonContent, GUIStyle buttonStyle)
72 {
73 return buttonStyle.CalcSize(buttonContent).x + 10;
74 }
75 }
76}