applyTheme method

  1. @override
void applyTheme(
  1. GeneratedPalette palette
)
override

Apply colors from a GeneratedPalette to this component's state.

This method is called when the theme changes or when a new palette is generated. It should update all color properties based on the palette's values.

Implementation should use ThemeColorMapper.forComponent() for component-specific color resolution.

Implementation

@override
void applyTheme(GeneratedPalette palette) {
  super.applyTheme(palette);

  final colors = ThemeColorMapper.forComponent(palette, componentName);

  // Rest state colors
  restSoundNameColorLight = colors.restTextColorLight;
  restSoundNameColorDark = colors.restTextColorDark;
  restTimerColorLight = colors.restTextColorLight;
  restTimerColorDark = colors.restTextColorDark;
  restControlColorLight = colors.accentColorLight;
  restControlColorDark = colors.accentColorDark;

  // Hover state colors
  hoverSoundNameColorLight = colors.hoverTextColorLight;
  hoverSoundNameColorDark = colors.hoverTextColorDark;
  hoverTimerColorLight = colors.hoverTextColorLight;
  hoverTimerColorDark = colors.hoverTextColorDark;
  hoverControlColorLight = colors.accentColorLight;
  hoverControlColorDark = colors.accentColorDark;

  // Pressed state colors
  pressedSoundNameColorLight = colors.pressedTextColorLight;
  pressedSoundNameColorDark = colors.pressedTextColorDark;
  pressedTimerColorLight = colors.pressedTextColorLight;
  pressedTimerColorDark = colors.pressedTextColorDark;
  pressedControlColorLight = colors.accentColorLight;
  pressedControlColorDark = colors.accentColorDark;

  // Disabled state colors
  disabledSoundNameColorLight = colors.disabledTextColorLight;
  disabledSoundNameColorDark = colors.disabledTextColorDark;
  disabledTimerColorLight = colors.disabledTextColorLight;
  disabledTimerColorDark = colors.disabledTextColorDark;
  disabledControlColorLight = colors.disabledIconColorLight;
  disabledControlColorDark = colors.disabledIconColorDark;

  // Update border color
  borderColor = colors.accentColorLight;
}