Exemple #1
0
        private RenameOperationSortingButtonEvent DrawReorderingButtons(Rect containingRect, bool disableUpButton, bool disableDownButton)
        {
            const string BigUpArrowUnicode   = "\u25B2";
            const string BigDownArrowUnicode = "\u25BC";
            RenameOperationSortingButtonEvent buttonEvent = RenameOperationSortingButtonEvent.None;

            EditorGUI.BeginDisabledGroup(disableUpButton);

            var leftButtonStyle = new GUIStyle(EditorStyles.miniButtonLeft);

            leftButtonStyle.margin   = new RectOffset(-1, -1, leftButtonStyle.margin.top, leftButtonStyle.margin.bottom);
            leftButtonStyle.fontSize = 8;
            var leftSplit = containingRect.GetSplitHorizontal(1, 3, 0.0f);

            if (GUI.Button(leftSplit, BigUpArrowUnicode, leftButtonStyle))
            {
                buttonEvent = RenameOperationSortingButtonEvent.MoveUp;
            }

            EditorGUI.EndDisabledGroup();

            EditorGUI.BeginDisabledGroup(disableDownButton);

            var midButtonStyle = new GUIStyle(EditorStyles.miniButtonMid);

            midButtonStyle.margin   = new RectOffset(-1, -1, midButtonStyle.margin.top, midButtonStyle.margin.bottom);
            midButtonStyle.fontSize = 8;
            var midSplit = containingRect.GetSplitHorizontal(2, 3, 0.0f);

            if (GUI.Button(midSplit, BigDownArrowUnicode, midButtonStyle))
            {
                buttonEvent = RenameOperationSortingButtonEvent.MoveDown;
            }

            EditorGUI.EndDisabledGroup();

            var rightButtonStyle = new GUIStyle(EditorStyles.miniButtonRight);

            rightButtonStyle.margin   = new RectOffset(-1, -1, rightButtonStyle.margin.top, rightButtonStyle.margin.bottom);
            rightButtonStyle.fontSize = 10;
            var rightSplit = containingRect.GetSplitHorizontal(3, 3, 0.0f);

            if (GUI.Button(rightSplit, "X", rightButtonStyle))
            {
                buttonEvent = RenameOperationSortingButtonEvent.Delete;
            }

            return(buttonEvent);
        }
Exemple #2
0
        /// <summary>
        /// Draws the element, returning an event that indicates how the minibuttons are pressed.
        /// </summary>
        /// <param name="containingRect">The rect to draw the element inside.</param>
        /// <param name = "guiOptions">Options to use when drawing the operation GUI.</param>
        /// <returns>A ListButtonEvent indicating if a button was clicked.</returns>
        public RenameOperationSortingButtonEvent DrawGUI(Rect containingRect, RenameOperationGUIOptions guiOptions)
        {
            var paddedContainer = containingRect.AddPadding(Padding.left, Padding.right, Padding.top, Padding.bottom);
            var operationStyle  = new GUIStyle("ScriptText");

            GUI.Box(containingRect, "", operationStyle);
            var headerRect = new Rect(paddedContainer);

            headerRect.height = HeaderHeight;
            RenameOperationSortingButtonEvent buttonEvent = this.DrawHeaderAndReorderButtons(
                headerRect,
                this.HeadingLabel,
                guiOptions.DisableUpButton,
                guiOptions.DisableDownButton);

            EditorGUI.indentLevel++;
            var contentsRect = new Rect(paddedContainer);

            contentsRect.y      += headerRect.height + HeaderAndContentSpacing;
            contentsRect.height -= headerRect.height;
            this.DrawContents(contentsRect, guiOptions.ControlPrefix);
            EditorGUI.indentLevel--;

            var coloredHighlightRect = new Rect(containingRect);

            coloredHighlightRect.yMin += 2.0f;
            coloredHighlightRect.yMax -= 1.0f;
            coloredHighlightRect.xMin += 2.0f;
            coloredHighlightRect.width = 3.0f;
            var oldColor = GUI.color;

            GUI.color = this.HighlightColor;
            GUI.DrawTexture(coloredHighlightRect, Texture2D.whiteTexture);
            GUI.color = oldColor;

            return(buttonEvent);
        }
Exemple #3
0
        /// <summary>
        /// Draws the header and reorder buttons.
        /// </summary>
        /// <returns>The header and reorder buttons.</returns>
        /// <param name="header">Header text to display.</param>
        /// <param name="disableUpButton">If set to <c>true</c> disable the MoveUp button.</param>
        /// <param name="disableDownButton">If set to <c>true</c> disable the MoveDown button.</param>
        protected RenameOperationSortingButtonEvent DrawHeaderAndReorderButtons(Rect containingRect, string header, bool disableUpButton, bool disableDownButton)
        {
            // Add some padding for the colored highlight
            var labelRect     = new Rect(containingRect);
            var labelPaddingX = 4.0f;

            labelRect.x     += labelPaddingX;
            labelRect.width -= labelPaddingX;
            EditorGUI.LabelField(labelRect, header, EditorStyles.boldLabel);

            RenameOperationSortingButtonEvent buttonEvent = RenameOperationSortingButtonEvent.None;
            var buttonPaddingTop    = 1.0f;
            var buttonPaddingBottom = 1.0f;
            var buttonGroupWidth    = 60.0f;
            var buttonRect          = new Rect(
                labelRect.x + labelRect.width - buttonGroupWidth,
                labelRect.y + buttonPaddingTop,
                buttonGroupWidth,
                labelRect.height - (buttonPaddingBottom + buttonPaddingTop));

            buttonEvent = this.DrawReorderingButtons(buttonRect, disableUpButton, disableDownButton);

            return(buttonEvent);
        }