/// <summary> /// A small button, good for a single icon like + or - with multi-index callback events /// </summary> /// <param name="label">content to place in the button</param> /// <returns>true if button selected, false otherwise</returns> public static bool SmallButton(GUIContent label, int[] indexArr, MultiListButtonEvent callback, SerializedProperty prop = null) { if (SmallButton(label)) { callback(indexArr, prop); return(true); } return(false); }
/// <summary> /// A small button, good for a single icon like + or - /// </summary> /// <param name="label"></param> /// <param name="indexArr"></param> /// <param name="callback"></param> /// <param name="prop"></param> /// <returns></returns> public static bool SmallButton(GUIContent label, int[] indexArr, MultiListButtonEvent callback, SerializedProperty prop = null) { GUIStyle smallButton = new GUIStyle(EditorStyles.miniButton); float smallButtonWidth = GUI.skin.button.CalcSize(label).x; bool triggered = false; if (GUILayout.Button(label, smallButton, GUILayout.Width(smallButtonWidth))) { callback(indexArr, prop); triggered = true; } return(triggered); }
/// <summary> /// A button that is as wide as the label /// </summary> /// <param name="label"></param> /// <param name="indexArr"></param> /// <param name="callback"></param> /// <param name="prop"></param> /// <returns></returns> public static bool FlexButton(GUIContent label, int[] indexArr, MultiListButtonEvent callback, SerializedProperty prop = null) { // delete button GUIStyle buttonStyle = new GUIStyle(GUI.skin.button); float buttonWidth = GUI.skin.button.CalcSize(label).x; EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); bool triggered = false; if (GUILayout.Button(label, buttonStyle, GUILayout.Width(buttonWidth))) { callback(indexArr, prop); triggered = true; } EditorGUILayout.EndHorizontal(); return(triggered); }
/// <summary> /// A button that is as wide as the available space /// </summary> /// <param name="label"></param> /// <param name="padding"></param> /// <param name="indexArr"></param> /// <param name="callback"></param> /// <param name="prop"></param> /// <returns></returns> public static bool FullWidthButton(GUIContent label, float padding, int[] indexArr, MultiListButtonEvent callback, SerializedProperty prop = null) { GUIStyle addStyle = new GUIStyle(GUI.skin.button); addStyle.fixedHeight = 25; float addButtonWidth = GUI.skin.button.CalcSize(label).x *padding; EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); bool triggered = false; if (GUILayout.Button(label, addStyle, GUILayout.Width(addButtonWidth))) { callback(indexArr, prop); triggered = true; } GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); return(triggered); }