1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- using System;
-
- using UnityEditor;
- using UnityEngine;
-
- namespace Unity.PlasticSCM.Editor.UI
- {
- internal static class DrawActionButtonWithMenu
- {
- internal static void For(string buttonText, Action buttonAction, GenericMenu actionMenu)
- {
- // Action button
- GUIContent buttonContent = new GUIContent(buttonText);
-
- GUIStyle buttonStyle = new GUIStyle(EditorStyles.miniButtonLeft);
- buttonStyle.stretchWidth = false;
-
- float width = MeasureMaxWidth.ForTexts(buttonStyle, buttonText);
-
- Rect rt = GUILayoutUtility.GetRect(
- buttonContent,
- buttonStyle,
- GUILayout.MinWidth(width),
- GUILayout.MaxWidth(width));
-
- if (GUI.Button(rt, buttonContent, buttonStyle))
- {
- buttonAction();
- }
-
- // Menu dropdown
- GUIStyle dropDownStyle = new GUIStyle(EditorStyles.miniButtonRight);
-
- GUIContent dropDownContent = new GUIContent(string.Empty, Images.GetDropDownIcon());
-
- Rect dropDownRect = GUILayoutUtility.GetRect(
- dropDownContent,
- dropDownStyle,
- GUILayout.MinWidth(DROPDOWN_BUTTON_WIDTH),
- GUILayout.MaxWidth(DROPDOWN_BUTTON_WIDTH));
-
- if (EditorGUI.DropdownButton(dropDownRect, dropDownContent, FocusType.Passive, dropDownStyle))
- {
- actionMenu.DropDown(dropDownRect);
- }
- }
-
- const int DROPDOWN_BUTTON_WIDTH = 16;
- }
- }
|