示例#1
0
        internal BaseSlider(string label, TValueType start, TValueType end, SliderDirection direction = SliderDirection.Horizontal, float pageSize = kDefaultPageSize)
            : base(label, null)
        {
            AddToClassList(ussClassName);
            labelElement.AddToClassList(labelUssClassName);
            visualInput.AddToClassList(inputUssClassName);

            this.direction = direction;
            this.pageSize  = pageSize;
            lowValue       = start;
            highValue      = end;
            pickingMode    = PickingMode.Ignore;

            visualInput.pickingMode = PickingMode.Position;
            var trackElement = new VisualElement()
            {
                name = "unity-tracker"
            };

            trackElement.AddToClassList(trackerUssClassName);
            visualInput.Add(trackElement);

            dragElement = new VisualElement()
            {
                name = "unity-dragger"
            };
            dragElement.RegisterCallback <GeometryChangedEvent>(UpdateDragElementPosition);
            dragElement.AddToClassList(draggerUssClassName);

            visualInput.Add(dragElement);

            clampedDragger = new ClampedDragger <TValueType>(this, SetSliderValueFromClick, SetSliderValueFromDrag);
            visualInput.AddManipulator(clampedDragger);
        }
示例#2
0
        internal BaseSlider(string label, TValueType start, TValueType end, SliderDirection direction = SliderDirection.Horizontal, float pageSize = kDefaultPageSize)
            : base(label, null)
        {
            AddToClassList(ussClassName);
            labelElement.AddToClassList(labelUssClassName);
            visualInput.AddToClassList(inputUssClassName);

            this.direction = direction;
            this.pageSize  = pageSize;
            lowValue       = start;
            highValue      = end;
            pickingMode    = PickingMode.Ignore;

            dragContainer = new VisualElement()
            {
                name = "unity-drag-container"
            };
            dragContainer.AddToClassList(dragContainerUssClassName);
            visualInput.Add(dragContainer);

            trackElement = new VisualElement()
            {
                name = "unity-tracker", usageHints = UsageHints.DynamicColor
            };
            trackElement.AddToClassList(trackerUssClassName);
            dragContainer.Add(trackElement);

            dragBorderElement = new VisualElement()
            {
                name = "unity-dragger-border"
            };
            dragBorderElement.AddToClassList(draggerBorderUssClassName);
            dragContainer.Add(dragBorderElement);

            dragElement = new VisualElement()
            {
                name = "unity-dragger", usageHints = UsageHints.DynamicTransform
            };
            dragElement.RegisterCallback <GeometryChangedEvent>(UpdateDragElementPosition);
            dragElement.AddToClassList(draggerUssClassName);
            dragContainer.Add(dragElement);

            clampedDragger            = new ClampedDragger <TValueType>(this, SetSliderValueFromClick, SetSliderValueFromDrag);
            dragContainer.pickingMode = PickingMode.Position;
            dragContainer.AddManipulator(clampedDragger);

            RegisterCallback <KeyDownEvent>(OnKeyDown);
            RegisterCallback <NavigationMoveEvent>(OnNavigationMove);

            UpdateTextFieldVisibility();

            var mouseDragger = new FieldMouseDragger <TValueType>(this);

            mouseDragger.SetDragZone(labelElement);
            labelElement.AddToClassList(labelDraggerVariantUssClassName);
        }
示例#3
0
        public MinMaxSlider(string label, float minValue = 0, float maxValue = kDefaultHighValue, float minLimit = float.MinValue, float maxLimit = float.MaxValue)
            : base(label, null)
        {
            lowLimit      = minLimit;
            highLimit     = maxLimit;
            this.minValue = minValue;
            this.maxValue = maxValue;
            AddToClassList(ussClassName);
            labelElement.AddToClassList(labelUssClassName);
            visualInput.AddToClassList(inputUssClassName);

            pickingMode = PickingMode.Ignore;

            m_DragState = DragState.NoThumb;

            visualInput.pickingMode = PickingMode.Position;
            var trackElement = new VisualElement()
            {
                name = "unity-tracker"
            };

            trackElement.AddToClassList(trackerUssClassName);
            visualInput.Add(trackElement);

            dragElement = new VisualElement()
            {
                name = "unity-dragger"
            };
            dragElement.AddToClassList(draggerUssClassName);
            dragElement.RegisterCallback <GeometryChangedEvent>(UpdateDragElementPosition);
            visualInput.Add(dragElement);

            // For a better handling of the cursor style, children elements are created so that the style is automatic with the uss.
            dragMinThumb = new VisualElement()
            {
                name = "unity-thumb-min"
            };
            dragMaxThumb = new VisualElement()
            {
                name = "unity-thumb-max"
            };
            dragMinThumb.AddToClassList(minThumbUssClassName);
            dragMaxThumb.AddToClassList(maxThumbUssClassName);
            dragElement.Add(dragMinThumb);
            dragElement.Add(dragMaxThumb);

            clampedDragger = new ClampedDragger <float>(null, SetSliderValueFromClick, SetSliderValueFromDrag);
            visualInput.AddManipulator(clampedDragger);

            m_MinLimit = minLimit;
            m_MaxLimit = maxLimit;
            rawValue   = ClampValues(new Vector2(minValue, maxValue));
            UpdateDragElementPosition();
        }