Beispiel #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;

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

            var trackElement = new VisualElement()
            {
                name = "unity-tracker"
            };

            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"
            };
            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);

            UpdateTextFieldVisibility();

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

            mouseDragger.SetDragZone(labelElement);
            labelElement.AddToClassList(labelDraggerVariantUssClassName);
        }
Beispiel #2
0
        void PostDisplaySetup()
        {
            if (m_Content.childCount != 2)
            {
                Debug.LogError("TwoPaneSplitView needs exactly 2 children.");
                return;
            }

            m_LeftPane = m_Content[0];
            if (m_FixedPaneIndex == 0)
            {
                m_FixedPane = m_LeftPane;
                if (m_Orientation == Orientation.Horizontal)
                {
                    m_LeftPane.style.width = m_FixedPaneInitialDimension;
                }
                else
                {
                    m_LeftPane.style.height = m_FixedPaneInitialDimension;
                }
            }
            else
            {
                m_FlexedPane = m_LeftPane;
            }

            m_RightPane = m_Content[1];
            if (m_FixedPaneIndex == 1)
            {
                m_FixedPane = m_RightPane;
                if (m_Orientation == Orientation.Horizontal)
                {
                    m_RightPane.style.width = m_FixedPaneInitialDimension;
                }
                else
                {
                    m_RightPane.style.height = m_FixedPaneInitialDimension;
                }
            }
            else
            {
                m_FlexedPane = m_RightPane;
            }

            m_FixedPane.style.flexShrink  = 0;
            m_FixedPane.style.flexGrow    = 0;
            m_FlexedPane.style.flexGrow   = 1;
            m_FlexedPane.style.flexShrink = 0;
            m_FlexedPane.style.flexBasis  = 0;

            if (m_Orientation == Orientation.Horizontal)
            {
                if (m_FixedPaneIndex == 0)
                {
                    m_DragLineAnchor.style.left = m_FixedPaneInitialDimension;
                }
                else
                {
                    m_DragLineAnchor.style.left = this.resolvedStyle.width - m_FixedPaneInitialDimension;
                }
            }
            else
            {
                if (m_FixedPaneIndex == 0)
                {
                    m_DragLineAnchor.style.top = m_FixedPaneInitialDimension;
                }
                else
                {
                    m_DragLineAnchor.style.top = this.resolvedStyle.height - m_FixedPaneInitialDimension;
                }
            }

            int direction = 1;

            if (m_FixedPaneIndex == 0)
            {
                direction = 1;
            }
            else
            {
                direction = -1;
            }

            if (m_FixedPaneIndex == 0)
            {
                m_Resizer = new Spliter(this, direction, m_Orientation);
            }
            else
            {
                m_Resizer = new Spliter(this, direction, m_Orientation);
            }

            m_DragLineAnchor.AddManipulator(m_Resizer);

            UnregisterCallback <GeometryChangedEvent>(OnPostDisplaySetup);
            RegisterCallback <GeometryChangedEvent>(OnSizeChange);
        }