decodeSliderThemeData static method

SliderThemeData? decodeSliderThemeData(
  1. dynamic value, {
  2. bool validate = true,
})

Decodes the given value to a SliderThemeData. This expects the value to have the following structure:

{
  "activeTickMarkColor": "<Color>",
  "activeTrackColor": "<Color>",
  "allowedInteraction": "<SliderInteraction>",
  "disabledActiveTickMarkColor": "<Color>",
  "disabledActiveTrackColor": "<Color>",
  "disabledInactiveTickMarkColor": "<Color>",
  "disabledInactiveTrackColor": "<Color>",
  "disabledSecondaryActiveTrackColor": "<Color>",
  "disabledThumbColor": "<Color>",
  "inactiveTickMarkColor": "<Color>",
  "inactiveTrackColor": "<Color>",
  "minThumbSeparation": "<double>",
  "mouseCursor": "<WidgetStateProperty<MouseCursor>>",
  "overlappingShapeStrokeColor": "<Color>",
  "overlayColor": "<Color>",
  "overlayShape": "<SliderComponentShape>",
  "rangeThumbShape": "<RangeSliderThumbShape>",
  "rangeTickMarkShape": "<RangeSliderTickMarkShape>",
  "rangeTrackShape": "<RangeSliderTrackShape>",
  "rangeValueIndicatorShape": "<RangeSliderValueIndicatorShape>",
  "secondaryActiveTrackColor": "<Color>",
  "showValueIndicator": "<ShowValueIndicator>",
  "thumbColor": "<Color>",
  "thumbShape": "<SliderComponentShape>",
  "tickMarkShape": "<SliderTickMarkShape>",
  "trackHeight": "<double>",
  "trackShape": "<SliderTrackShape>",
  "valueIndicatorColor": "<Color>",
  "valueIndicatorShape": "<SliderComponentShape>",
  "valueIndicatorTextStyle": "<TextStyle>"
}

See also:

Implementation

static SliderThemeData? decodeSliderThemeData(
  dynamic value, {
  bool validate = true,
}) {
  SliderThemeData? result;

  if (value is SliderThemeData) {
    result = value;
  } else if (value != null) {
    assert(SchemaValidator.validate(
      schemaId: '$_baseSchemaUrl/slider_theme_data',
      value: value,
      validate: validate,
    ));
    result = SliderThemeData(
      activeTickMarkColor: decodeColor(
        value['activeTickMarkColor'],
        validate: false,
      ),
      activeTrackColor: decodeColor(
        value['activeTrackColor'],
        validate: false,
      ),
      allowedInteraction: decodeSliderInteraction(
        value['allowedInteraction'],
        validate: false,
      ),
      disabledActiveTickMarkColor: decodeColor(
        value['disabledActiveTickMarkColor'],
        validate: false,
      ),
      disabledActiveTrackColor: decodeColor(
        value['disabledActiveTrackColor'],
        validate: false,
      ),
      disabledInactiveTickMarkColor: decodeColor(
        value['disabledInactiveTickMarkColor'],
        validate: false,
      ),
      disabledInactiveTrackColor: decodeColor(
        value['disabledInactiveTrackColor'],
        validate: false,
      ),
      disabledSecondaryActiveTrackColor: decodeColor(
        value['disabledSecondaryActiveTrackColor'],
        validate: false,
      ),
      disabledThumbColor: decodeColor(
        value['disabledThumbColor'],
        validate: false,
      ),
      inactiveTickMarkColor: decodeColor(
        value['inactiveTickMarkColor'],
        validate: false,
      ),
      inactiveTrackColor: decodeColor(
        value['inactiveTrackColor'],
        validate: false,
      ),
      minThumbSeparation:
          JsonClass.maybeParseDouble(value['minThumbSeparation']),
      mouseCursor: decodeWidgetStatePropertyMouseCursor(
        value['mouseCursor'],
        validate: false,
      ),
      overlappingShapeStrokeColor: decodeColor(
        value['overlappingShapeStrokeColor'],
        validate: false,
      ),
      overlayColor: decodeColor(
        value['overlayColor'],
        validate: false,
      ),
      overlayShape: decodeSliderComponentShape(
        value['overlayShape'],
        validate: false,
      ),
      rangeThumbShape: decodeRangeSliderThumbShape(
        value['rangeThumbShape'],
        validate: false,
      ),
      rangeTickMarkShape: decodeRangeSliderTickMarkShape(
        value['rangeTickMarkShape'],
        validate: false,
      ),
      rangeTrackShape: decodeRangeSliderTrackShape(
        value['rangeTrackShape'],
        validate: false,
      ),
      rangeValueIndicatorShape: decodeRangeSliderValueIndicatorShape(
        value['rangeValueIndicatorShape'],
        validate: false,
      ),
      secondaryActiveTrackColor: decodeColor(
        value['secondaryActiveTrackColor'],
        validate: false,
      ),
      showValueIndicator: decodeShowValueIndicator(
        value['showValueIndicator'],
        validate: false,
      ),
      thumbColor: decodeColor(
        value['thumbColor'],
        validate: false,
      ),
      // thumbSelector: @unencodable
      thumbShape: decodeSliderComponentShape(
        value['thumbShape'],
        validate: false,
      ),
      tickMarkShape: decodeSliderTickMarkShape(
        value['tickMarkShape'],
        validate: false,
      ),
      trackHeight: JsonClass.maybeParseDouble(value['trackHeight']),
      trackShape: decodeSliderTrackShape(
        value['trackShape'],
        validate: false,
      ),
      valueIndicatorColor: decodeColor(
        value['valueIndicatorColor'],
        validate: false,
      ),
      valueIndicatorShape: decodeSliderComponentShape(
        value['valueIndicatorShape'],
        validate: false,
      ),
      valueIndicatorTextStyle: decodeTextStyle(
        value['valueIndicatorTextStyle'],
        validate: false,
      ),
    );
  }

  return result;
}