| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- using System;
- using UnityEngine;
- namespace UnityEditor.U2D.Path.GUIFramework
- {
- public class SliderAction : ClickAction
- {
- private SliderData m_SliderData;
- public Action<IGUIState, Control, Vector3> onSliderBegin;
- public Action<IGUIState, Control, Vector3> onSliderChanged;
- public Action<IGUIState, Control, Vector3> onSliderEnd;
- public SliderAction(Control control) : base(control, 0, false)
- {
- }
- protected override bool GetFinishContidtion(IGUIState guiState)
- {
- return guiState.eventType == EventType.MouseUp && guiState.mouseButton == 0;
- }
- protected override void OnTrigger(IGUIState guiState)
- {
- base.OnTrigger(guiState);
- m_SliderData.position = hoveredControl.hotLayoutData.position;
- m_SliderData.forward = hoveredControl.hotLayoutData.forward;
- m_SliderData.right = hoveredControl.hotLayoutData.right;
- m_SliderData.up = hoveredControl.hotLayoutData.up;
- if (onSliderBegin != null)
- onSliderBegin(guiState, hoveredControl, m_SliderData.position);
- }
- protected override void OnFinish(IGUIState guiState)
- {
- if (onSliderEnd != null)
- onSliderEnd(guiState, hoveredControl, m_SliderData.position);
- guiState.UseEvent();
- guiState.Repaint();
- }
- protected override void OnPerform(IGUIState guiState)
- {
- Vector3 newPosition;
- var changed = guiState.Slider(ID, m_SliderData, out newPosition);
- if (changed)
- {
- m_SliderData.position = newPosition;
- if (onSliderChanged != null)
- onSliderChanged(guiState, hoveredControl, newPosition);
- }
- }
- }
- }
|