parseColor static method

Color? parseColor(
  1. String? colorStr,
  2. BuildContext ctx
)

Implementation

static Color? parseColor(String? colorStr, BuildContext ctx) {
  if (colorStr == null) return null;
  if (colorStr.startsWith('@theme')) {
    // built in theme pattern like '@theme.primaryColor'.
    var descriptor = colorStr.split('.').last;
    ThemeData theme = Theme.of(ctx);
    switch (descriptor) {
      case FLThemeColors.primaryColor:
        return theme.primaryColor;
      case FLThemeColors.primaryColorLight:
        return theme.primaryColorLight;
      case FLThemeColors.primaryColorDark:
        return theme.primaryColorDark;
      case FLThemeColors.accentColor:
        return theme.colorScheme.secondary;
      case FLThemeColors.canvasColor:
        return theme.canvasColor;
      case FLThemeColors.scaffoldBackgroundColor:
        return theme.scaffoldBackgroundColor;
      case FLThemeColors.cardColor:
        return theme.cardColor;
      case FLThemeColors.dividerColor:
        return theme.dividerColor;
      case FLThemeColors.focusColor:
        return theme.focusColor;
      case FLThemeColors.hoverColor:
        return theme.hoverColor;
      case FLThemeColors.highlightColor:
        return theme.highlightColor;
      case FLThemeColors.splashColor:
        return theme.splashColor;
      case FLThemeColors.unselectedWidgetColor:
        return theme.unselectedWidgetColor;
      case FLThemeColors.disabledColor:
        return theme.disabledColor;
      case FLThemeColors.secondaryHeaderColor:
        return theme.secondaryHeaderColor;
      case FLThemeColors.textSelectionColor:
        return theme.textSelectionTheme.selectionColor;
      case FLThemeColors.cursorColor:
        return theme.textSelectionTheme.cursorColor;
      case FLThemeColors.textSelectionHandleColor:
        return theme.textSelectionTheme.selectionHandleColor;
      case FLThemeColors.dialogBackgroundColor:
        return theme.dialogBackgroundColor;
      case FLThemeColors.indicatorColor:
        return theme.indicatorColor;
      case FLThemeColors.hintColor:
        return theme.hintColor;
      default:
        return null;
    }
  } else {
    return Color(num.parse(colorStr) as int);
  }
}