You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.9 KiB
C#
59 lines
1.9 KiB
C#
1 month ago
|
using TMPro;
|
||
|
using UnityEngine;
|
||
|
using UnityEngine.EventSystems;
|
||
|
using UnityEngine.UI;
|
||
|
|
||
|
namespace WalletConnectUnity.UI
|
||
|
{
|
||
|
public class WCInputField : TMP_InputField
|
||
|
{
|
||
|
[SerializeField] private Image _backgroundImage;
|
||
|
[SerializeField] private Image _borderImage;
|
||
|
[SerializeField] private Image _ringImage;
|
||
|
|
||
|
[SerializeField] private ComponentState _defaultState;
|
||
|
[SerializeField] private ComponentState _selectedState;
|
||
|
[SerializeField] private ComponentState _highlightedState;
|
||
|
|
||
|
public override void OnSelect(BaseEventData eventData)
|
||
|
{
|
||
|
// Unity automatically 'selects' the input field after pressed which we don't want when using a cursor
|
||
|
var currentState = currentSelectionState;
|
||
|
if (currentState is SelectionState.Highlighted) return;
|
||
|
|
||
|
base.OnSelect(eventData);
|
||
|
}
|
||
|
|
||
|
protected override void DoStateTransition(SelectionState state, bool instant)
|
||
|
{
|
||
|
base.DoStateTransition(state, instant);
|
||
|
|
||
|
#if UNITY_EDITOR
|
||
|
if (!Application.isPlaying)
|
||
|
return;
|
||
|
#endif
|
||
|
|
||
|
var targetState = state switch
|
||
|
{
|
||
|
SelectionState.Normal => _defaultState,
|
||
|
SelectionState.Highlighted => _highlightedState,
|
||
|
SelectionState.Selected => _selectedState,
|
||
|
_ => _defaultState
|
||
|
};
|
||
|
|
||
|
ApplyComponentState(targetState);
|
||
|
}
|
||
|
|
||
|
private void ApplyComponentState(ComponentState state)
|
||
|
{
|
||
|
_backgroundImage.enabled = state.backgroundEnabled;
|
||
|
_backgroundImage.color = state.backgroundColor;
|
||
|
|
||
|
_borderImage.enabled = state.borderEnabled;
|
||
|
_borderImage.color = state.borderColor;
|
||
|
|
||
|
_ringImage.enabled = state.ringEnabled;
|
||
|
_ringImage.color = state.ringColor;
|
||
|
}
|
||
|
}
|
||
|
}
|