public virtual void OnPrefixDragged(Event inputEvent) { var values = GetValues(); var mouseDownValues = MouseDownValues; float mouseDelta = this.GetMouseDelta(inputEvent, MouseDownPosition); #if DEV_MODE && PI_ASSERTATIONS Debug.Assert(values.Length == mouseDownValues.Length); Debug.Assert(mouseDownValues.Length > 0); #endif bool changed = false; for (int n = values.Length - 1; n >= 0; n--) { var valueWas = (TValue)values[n]; var mouseDownValue = (TValue)MouseDownValues[n]; var setValue = valueWas; OnPrefixDragged(ref setValue, mouseDownValue, mouseDelta); if (!setValue.Equals(valueWas)) { values[n] = setValue; changed = true; } } if (changed) { SetValues(values); } // highlight the control when prefix is being dragged // to make it clear that it is being dragged DrawGUI.DrawMouseoverEffect(ControlPosition, Inspector.Preferences.theme.CanDragPrefixToAdjustValueTint, localDrawAreaOffset); }
/// <inheritdoc /> public override void OnMouseover() { #if DEV_MODE && PI_ASSERTATIONS Debug.Assert(Clickable); #endif if (MouseOverPart == PrefixedControlPart.Control) { if (!ReadOnly) { DrawGUI.DrawMouseoverEffect(ControlPosition, localDrawAreaOffset); } } else if (MouseOverPart == PrefixedControlPart.Prefix) { if (InspectorUtility.Preferences.mouseoverEffects.prefixLabel) { DrawGUI.DrawLeftClickAreaMouseoverEffect(PrefixLabelPosition, localDrawAreaOffset); } if (IsReorderable) { DrawGUI.Active.SetCursor(MouseCursor.MoveArrow); } } }
/// <inheritdoc /> public void OnBeingReordered(float yOffset) { var rect = SelectionRect; rect.y += yOffset; DrawGUI.DrawMouseoverEffect(rect, localDrawAreaOffset); }
/// <inheritdoc cref="IDrawer.OnMouseover" /> public override void OnMouseover() { base.OnMouseover(); if (draggableMemberVisible) { #if DEV_MODE && PI_ASSERTATIONS Debug.Assert(!ReadOnly); #endif DrawGUI.Active.SetCursor(MouseCursor.SlideArrow); var color = Inspector.Preferences.theme.CanDragPrefixToAdjustValueTint; // highlight the control even when mouseovering the prefix // to make it clear than dragging will change the value of that field var draggingTargets = DraggingTargetsMembers; for (int n = draggingTargets.Length - 1; n >= 0; n--) { int index = draggingTargets[n]; var draggableMember = (IDraggablePrefix <float>)members[index]; if (draggableMember.ShouldShowInInspector) { DrawGUI.DrawMouseoverEffect(draggableMember.ControlPosition, color, localDrawAreaOffset); } } } }
/// <inheritdoc/> public override void OnMouseover() { #if DEV_MODE && PI_ASSERTATIONS Debug.Assert(Clickable); #endif if (!ReadOnly) { DrawGUI.DrawMouseoverEffect(ClickToSelectArea, localDrawAreaOffset); } }
/// <inheritdoc cref="IDrawer.OnMouseover" /> public override void OnMouseover() { var draggableMember = ValueDrawer as IDraggablePrefix; if (draggableMember != null && draggableMember.ShouldShowInInspector) { DrawGUI.Active.SetCursor(MouseCursor.SlideArrow); DrawGUI.DrawMouseoverEffect(draggableMember.ControlPosition, Inspector.Preferences.theme.CanDragPrefixToAdjustValueTint, localDrawAreaOffset); return; } base.OnMouseover(); }
/// <inheritdoc /> public override void OnMouseover() { if (!open) { if (SelectionRect.Contains(Event.current.mousePosition)) { DrawGUI.DrawMouseoverEffect(SelectionRect, localDrawAreaOffset); } DrawGUI.Active.AddCursorRect(SelectionRect, MouseCursor.Link); } }
/// <inheritdoc /> public override void OnMouseover() { var objFieldRect = ColorRectPosition; if (objFieldRect.Contains(Cursor.LocalPosition)) { DrawGUI.DrawMouseoverEffect(objFieldRect, localDrawAreaOffset); } else if (InspectorUtility.Preferences.mouseoverEffects.prefixLabel && MouseOverPart == PrefixedControlPart.Prefix) { DrawGUI.DrawLeftClickAreaMouseoverEffect(PrefixLabelPosition, localDrawAreaOffset); } }
/// <inheritdoc /> public override void OnMouseover() { if (mouseIsOverButton) { // From version 2019.3 onwards Unity has built-in mouseover effects for enum fields #if !UNITY_2019_3_OR_NEWER DrawGUI.DrawMouseoverEffect(buttonRect, localDrawAreaOffset); #endif return; } base.OnMouseover(); }
/// <inheritdoc /> public sealed override void OnMouseover() { if (mouseoveredSubPart == SliderSubPart.Slider) { OnMouseoverSlider(); } else if (mouseoveredSubPart == SliderSubPart.NumberField) { if (HasNumberField) { DrawGUI.DrawMouseoverEffect(NumberFieldPosition, localDrawAreaOffset); } var valueString = StringUtils.ToString(Value); if (valueString.Length > 6) { var tooltip = GUIContentPool.Create(valueString); var tooltipRect = labelLastDrawPosition; tooltipRect.y += 1f; tooltipRect.height -= 2f; var tooltipWidth = DrawGUI.prefixLabel.CalcSize(tooltip).x + 3f; tooltipRect.x = controlLastDrawPosition.x - tooltipWidth - DrawGUI.MiddlePadding - DrawGUI.MiddlePadding; tooltipRect.width = tooltipWidth; DrawGUI.Active.TooltipBox(tooltipRect, tooltip); GUIContentPool.Dispose(ref tooltip); } } else if (MouseOverPart == PrefixedControlPart.Prefix) { if (InspectorUtility.Preferences.mouseoverEffects.prefixLabel) { DrawGUI.DrawLeftClickAreaMouseoverEffect(PrefixLabelPosition, localDrawAreaOffset); } if (!ReadOnly) { DrawGUI.Active.SetCursor(MouseCursor.SlideArrow); if (HasNumberField) { //UPDATE: highlight the control even when mouseovering the prefix //to make it clear than dragging will change the value of that field DrawGUI.DrawMouseoverEffect(NumberFieldPosition, localDrawAreaOffset); } } } }
/// <inheritdoc/> public override void OnMouseover() { if (mouseIsOverButton) { DrawGUI.DrawMouseoverEffect(buttonRect, localDrawAreaOffset); DrawGUI.Active.SetCursor(MouseCursor.Link); } else if (preferences.mouseoverEffects.prefixLabel) { var rect = labelLastDrawPosition; rect.y += 1f; rect.height -= 2f; DrawGUI.DrawLeftClickAreaMouseoverEffect(rect, localDrawAreaOffset); } }
/// <inheritdoc cref="IDrawer.OnMouseover" /> public override void OnMouseover() { #if DEV_MODE && PI_ASSERTATIONS if (!Clickable || !ShouldShowInInspector) { Debug.LogError(StringUtils.ToColorizedString( ToString(), ".OnMouseover called with Clickable=", Clickable, ", ShowInInspector=", ShouldShowInInspector)); } #endif if (MouseOverPart == PrefixedControlPart.Prefix) { if (InspectorUtility.Preferences.mouseoverEffects.prefixLabel) { DrawGUI.DrawLeftClickAreaMouseoverEffect(PrefixLabelPosition, localDrawAreaOffset); } if (IsReorderable) { DrawGUI.Active.SetCursor(MouseCursor.MoveArrow); return; } if (!ReadOnly) { DrawGUI.Active.SetCursor(MouseCursor.SlideArrow); // highlight the control when mouseovering the prefix // to make it clear that dragging will change the value of that field DrawGUI.DrawMouseoverEffect(ControlPosition, Inspector.Preferences.theme.CanDragPrefixToAdjustValueTint, localDrawAreaOffset); } return; } if (MouseOverPart == PrefixedControlPart.Control && !ReadOnly) { //UPDATE: Don't tint the text field on mouseover when it's being edited if (SelectedAndInspectorHasFocus && DrawGUI.EditingTextField) { return; } DrawGUI.DrawMouseoverEffect(ControlPosition, localDrawAreaOffset); } }
/// <inheritdoc /> public override void OnMouseover() { if (mouseIsOverGetButton) { DrawGUI.DrawMouseoverEffect(getButtonRect, localDrawAreaOffset); DrawGUI.Active.AddCursorRect(getButtonRect, MouseCursor.Link); } else if (mouseIsOverSetButton) { DrawGUI.DrawMouseoverEffect(setButtonRect, localDrawAreaOffset); DrawGUI.Active.AddCursorRect(setButtonRect, MouseCursor.Link); } else if (InspectorUtility.Preferences.mouseoverEffects.prefixLabel) { var rect = labelLastDrawPosition; rect.y += 1f; rect.height -= 2f; DrawGUI.DrawLeftClickAreaMouseoverEffect(rect, localDrawAreaOffset); } }
/// <inheritdoc cref="OnPrefixDragged(ref Vector3,Vector3,float)" /> protected virtual void DoOnPrefixDragged(ref Vector3 inputValue, Vector3 inputMouseDownValue, float mouseDelta) { var draggingTargets = DraggingTargetsMembers; var color = Inspector.Preferences.theme.CanDragPrefixToAdjustValueTint; for (int n = draggingTargets.Length - 1; n >= 0; n--) { int index = draggingTargets[n]; var draggableMember = (IDraggablePrefix <float>)members[index]; if (draggableMember.ShouldShowInInspector) { DrawGUI.DrawMouseoverEffect(draggableMember.ControlPosition, color, localDrawAreaOffset); float memberValue = inputValue[index]; float mouseDownValue = inputMouseDownValue[index]; draggableMember.OnPrefixDragged(ref memberValue, mouseDownValue, mouseDelta); inputValue[index] = memberValue; } } }
/// <inheritdoc/> protected override void DoOnPrefixDragged(ref Vector3 inputValue, Vector3 inputMouseDownValue, float mouseDelta) { if (Inspector.State.usingLocalSpace) { base.DoOnPrefixDragged(ref inputValue, inputMouseDownValue, mouseDelta); return; } var firstTransform = Transform; if (firstTransform.parent == null) { base.DoOnPrefixDragged(ref inputValue, inputMouseDownValue, mouseDelta); return; } var forward = firstTransform.forward; var draggingTargets = DraggingTargetsMembers; for (int n = draggingTargets.Length - 1; n >= 0; n--) { int index = draggingTargets[n]; var draggableMember = (IDraggablePrefix <float>)members[index]; if (draggableMember.ShouldShowInInspector) { DrawGUI.DrawMouseoverEffect(draggableMember.ControlPosition, localDrawAreaOffset); float memberValue = inputValue[index]; float mouseDownValue = inputMouseDownValue[index]; float mouseDeltaComponent = forward[index] * mouseDelta; draggableMember.OnPrefixDragged(ref memberValue, mouseDownValue, mouseDeltaComponent); inputValue[index] = memberValue; } } }