Exemple #1
0
        /// <summary>
        /// Adds new signed integer (up to long range) value element.
        /// </summary>
        /// <returns>The created element.</returns>
        public SignedIntegerValueElement SignedIntegerValue()
        {
            var element = new SignedIntegerValueElement();

            OnAddElement(element);
            return(element);
        }
        /// <inheritdoc />
        public override void Initialize(LayoutElementsContainer layout)
        {
            _element = null;

            GetLimits(out var min, out var max);

            // Try get limit attribute for value min/max range setting and slider speed
            var attributes = Values.GetAttributes();

            if (attributes != null)
            {
                var limit = attributes.FirstOrDefault(x => x is LimitAttribute);
                if (limit != null)
                {
                    // Use int value editor with limit
                    var element = layout.SignedIntegerValue();
                    element.LongValue.SetLimits((LimitAttribute)limit);
                    element.LongValue.SetLimits(Mathf.Max(element.LongValue.MinValue, min), Mathf.Min(element.LongValue.MaxValue, max));
                    element.LongValue.ValueChanged += OnValueChanged;
                    element.LongValue.SlidingEnd   += ClearToken;
                    _element = element;
                    return;
                }
            }
            if (_element == null)
            {
                // Use int value editor
                var element = layout.SignedIntegerValue();
                element.LongValue.SetLimits(Mathf.Max(element.LongValue.MinValue, min), Mathf.Min(element.LongValue.MaxValue, max));
                element.LongValue.ValueChanged += OnValueChanged;
                element.LongValue.SlidingEnd   += ClearToken;
                _element = element;
            }
        }