Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        /// <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);
        }
Пример #4
0
        /// <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);
        }