using AlicizaX; using AlicizaX.UI; using UnityEngine; using UnityEngine.EventSystems; public sealed class TestScrollItemRender : ItemRender { public override ItemInteractionFlags InteractionFlags => ItemInteractionFlags.PointerClick | ItemInteractionFlags.PointerEnter | ItemInteractionFlags.PointerExit | ItemInteractionFlags.Select | ItemInteractionFlags.Deselect | ItemInteractionFlags.Submit | ItemInteractionFlags.Move; protected override void OnHolderAttached() { base.OnHolderAttached(); baseui.BtnTest.onClick.AddListener(OnInnerButtonClick); } protected override void OnHolderDetached() { baseui.BtnTest.onClick.RemoveListener(OnInnerButtonClick); } protected override void OnBind(TestData data, int index) { baseui.Text.text = data.Name; } protected override void OnPointerClick(PointerEventData eventData) { Log.Info(CurrentData.Name + " item clicked"); } protected override void OnPointerEnter(PointerEventData eventData) { baseui.Text.fontStyle = TMPro.FontStyles.Bold; // Log.Info(CurrentData.Name + " Pointer Enter"); } protected override void OnPointerExit(PointerEventData eventData) { baseui.Text.fontStyle = TMPro.FontStyles.Normal; // Log.Info(CurrentData.Name + " Pointer Exit"); } protected override void OnItemSelected(BaseEventData eventData) { baseui.Text.color = UnityEngine.Color.yellow; Log.Info(CurrentData.Name + " Selected"); } protected override void OnItemDeselected(BaseEventData eventData) { baseui.Text.color = UnityEngine.Color.black; Log.Info(CurrentData.Name + " OnItemDeselected"); } protected override void OnSubmit(BaseEventData eventData) { Log.Info(CurrentData.Name + " submitted"); } protected override void OnSelectionChanged(bool selected) { if (selected) { Log.Info(CurrentData.Name + $" selection changed {selected}"); } } protected override bool OnMove(AxisEventData eventData) { if (eventData.moveDir == MoveDirection.Down || eventData.moveDir == MoveDirection.Up) return false; Debug.Log($"{CurrentData.Name} Moved {eventData.moveDir}"); return true; } protected override void OnClear() { base.OnClear(); baseui.Text.fontStyle = TMPro.FontStyles.Normal; baseui.Text.color = UnityEngine.Color.black; } private void OnInnerButtonClick() { Log.Info(CurrentData.Name + " button clicked"); } }