forStates<T> static method

T forStates<T>(
  1. Set<ButtonStates> states, {
  2. required T disabled,
  3. required T none,
  4. T? pressed,
  5. T? hovering,
  6. T? focused,
})

Implementation

static T forStates<T>(
  Set<ButtonStates> states, {
  required T disabled,
  required T none,
  T? pressed,
  T? hovering,
  T? focused,
}) {
  if (states.contains(ButtonStates.disabled)) return disabled;
  if (pressed != null && states.contains(ButtonStates.pressing)) {
    return pressed;
  }
  if (hovering != null && states.contains(ButtonStates.hovering)) {
    return hovering;
  }
  if (states.contains(ButtonStates.focused)) {
    return focused ?? pressed ?? none;
  }

  return none;
}