You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
1.8 KiB
76 lines
1.8 KiB
using System; |
|
|
|
using UnityEditor; |
|
using UnityEngine; |
|
|
|
namespace Unity.PlasticSCM.Editor.UI |
|
{ |
|
internal static class DrawActionHelpBox |
|
{ |
|
internal static void For( |
|
Texture image, |
|
string labelText, |
|
string buttonText, |
|
Action buttonAction) |
|
{ |
|
EditorGUILayout.BeginHorizontal( |
|
EditorStyles.helpBox, GUILayout.MinHeight(40)); |
|
|
|
DoNotificationLabel(image, labelText); |
|
|
|
GUILayout.Space(10); |
|
|
|
DoActionButton(buttonText, buttonAction); |
|
|
|
GUILayout.FlexibleSpace(); |
|
|
|
EditorGUILayout.EndHorizontal(); |
|
} |
|
|
|
static void DoNotificationLabel( |
|
Texture image, string labelText) |
|
{ |
|
GUILayout.BeginVertical(); |
|
|
|
GUILayout.FlexibleSpace(); |
|
|
|
GUILayout.Label( |
|
new GUIContent(labelText, image), |
|
UnityStyles.HelpBoxLabel); |
|
|
|
GUILayout.FlexibleSpace(); |
|
|
|
GUILayout.EndVertical(); |
|
} |
|
|
|
static void DoActionButton( |
|
string buttonText, Action buttonAction) |
|
{ |
|
GUILayout.BeginVertical(); |
|
|
|
GUILayout.FlexibleSpace(); |
|
|
|
GUIContent buttonContent = new GUIContent(buttonText); |
|
|
|
float width = GetButtonWidth( |
|
buttonContent, EditorStyles.miniButton); |
|
|
|
if (GUILayout.Button( |
|
buttonContent, EditorStyles.miniButton, |
|
GUILayout.MinWidth(Math.Max(50, width)))) |
|
{ |
|
buttonAction(); |
|
} |
|
|
|
GUILayout.FlexibleSpace(); |
|
|
|
GUILayout.EndVertical(); |
|
} |
|
|
|
static float GetButtonWidth( |
|
GUIContent buttonContent, GUIStyle buttonStyle) |
|
{ |
|
return buttonStyle.CalcSize(buttonContent).x + 10; |
|
} |
|
} |
|
}
|
|
|