A game about forced loneliness, made by TACStudios
at master 1.9 kB view raw
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}