decodeTooltipThemeData static method

TooltipThemeData? decodeTooltipThemeData(
  1. dynamic value, {
  2. bool validate = true,
})

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

{
  "excludeFromSemantics": <bool>,
  "height": <double>,
  "margin": <EdgeInsetsGeometry>,
  "padding": <EdgeInsetsGeometry>,
  "preferBelow": <bool>
  "showDuration": <int; millis>,
  "textStyle": <TextStyle>,
  "verticalOffset": <double>,
  "waitDuration": <int; millis>,
}

See also:

Implementation

static TooltipThemeData? decodeTooltipThemeData(
  dynamic value, {
  bool validate = true,
}) {
  TooltipThemeData? result;

  if (value is TooltipThemeData) {
    result = value;
  } else if (value != null) {
    assert(SchemaValidator.validate(
      schemaId: '$_baseSchemaUrl/tooltip_theme_data',
      value: value,
      validate: validate,
    ));
    assert(
      value['decoration'] == null,
      'TooltipThemeData.decoration is not supported',
    );
    result = TooltipThemeData(
      // @unencodable
      // decoration
      excludeFromSemantics: value['excludeFromSemantics'] == null
          ? null
          : JsonClass.parseBool(value['excludeFromSemantics']),
      height: JsonClass.parseDouble(value['height']),
      margin: decodeEdgeInsetsGeometry(
        value['margin'],
        validate: false,
      ),
      padding: decodeEdgeInsetsGeometry(
        value['padding'],
        validate: false,
      ),
      preferBelow: value['preferBelow'] == null
          ? null
          : JsonClass.parseBool(value['preferBelow']),
      showDuration: JsonClass.parseDurationFromMillis(value['showDuration']),
      textStyle: decodeTextStyle(
        value['textStyle'],
        validate: false,
      ),
      verticalOffset: JsonClass.parseDouble(value['verticalOffset']),
      waitDuration: JsonClass.parseDurationFromMillis(value['waitDuration']),
    );
  }

  return result;
}