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