/// <inheritdoc /> protected override void OnControlClicked(Event inputEvent) { mouseDownOverSubPart = mouseoveredSubPart; HandleOnClickSelection(inputEvent, ReasonSelectionChanged.ControlClicked); if (mouseoveredSubPart == SliderSubPart.Slider) { sliderFocused = true; return; } if (mouseoveredSubPart == SliderSubPart.NumberField) { focusSlider = 0; sliderFocused = false; //if field was already selected when it was clicked, don't use the event //this way Unity can handle positioning the cursor in a specific point on the text field etc. if (Selected) { return; } DrawGUI.Use(inputEvent); StartEditingField(); } }
/// <inheritdoc/> public override void Dispose() { focusSlider = 0; sliderFocused = false; mouseoveredSubPart = SliderSubPart.None; mouseDownOverSubPart = SliderSubPart.None; base.Dispose(); }
/// <inheritdoc /> protected override void OnPrefixClicked(Event inputEvent) { mouseDownOverSubPart = mouseoveredSubPart; HandleOnClickSelection(inputEvent, ReasonSelectionChanged.PrefixClicked); DrawGUI.EditingTextField = false; DrawGUI.Use(inputEvent); FocusSlider(); }
/// <inheritdoc/> protected sealed override void OnLayoutEvent(Rect position) { base.OnLayoutEvent(position); if (sliderClickableAreaRect.MouseIsOver()) { mouseoveredSubPart = SliderSubPart.Slider; } else if (HasNumberField && numberFieldPosition.MouseIsOver()) { mouseoveredSubPart = SliderSubPart.NumberField; } else { mouseoveredSubPart = SliderSubPart.None; } }