示例#1
0
        public bool Show(params Action[] actions)
        {
            var previousValue = Value;

            XGUILayout.VerticalLayout(() =>
            {
                var buttonContent = (Value ? "\u25BC " : "\u25BA ") + Title;

                XGUILayout.HorizontalLayout(() =>
                {
                    var expand = !string.IsNullOrEmpty(Title);
                    Value      = Value != GUILayout.Button(buttonContent, FoldoutButtonStyle, GUILayout.ExpandWidth(expand));
                    ButtonFieldAction?.Invoke();
                });

                if (Value)
                {
                    XGUILayout.VerticalLayout(() =>
                    {
                        foreach (var action in actions)
                        {
                            action();
                        }
                    }, FoldoutBoxStyle);
                }
            }, Value && BoxSkin ? GUI.skin.box : null);

            Updated = previousValue != Value;

            return(Value);
        }
示例#2
0
        public override string Show(string value)
        {
            var previousValue = value;

            XGUILayout.HorizontalLayout(() =>
            {
                base.ShowTitle();
                value = ShowTextField(value);
            });

            Updated = previousValue != value;

            return(value);
        }
示例#3
0
        public override T Show(T value)
        {
            var previousValue = value;

            XGUILayout.VerticalLayout(() =>
            {
                base.ShowTitle();

                XGUILayout.HorizontalLayout(() =>
                {
                    value = ShowComponents(value);
                });
            });

            Updated = !previousValue.Equals(value);

            return(value);
        }
示例#4
0
        public override bool Show(bool value)
        {
            var previousValue = value;

            const string emptyText = "";

            XGUILayout.HorizontalLayout(() =>
            {
                base.ShowTitle(base.Title == null);

                GUILayout.FlexibleSpace();

                value = GUILayout.Toggle(value, emptyText);
            });

            Updated = previousValue != value;

            return(value);
        }