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:

{
  "enableFeedback": "<bool>",
  "excludeFromSemantics": "<bool>",
  "height": "<double>",
  "margin": "<EdgeInsetsGeometry>",
  "padding": "<EdgeInsetsGeometry>",
  "preferBelow": "<bool>"
  "showDuration": "<int; millis>",
  "textAlign": "<TextAlign>",
  "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(
      // decoration: @unencodable
      enableFeedback: JsonClass.maybeParseBool(value['enableFeedback']),
      excludeFromSemantics: JsonClass.maybeParseBool(
        value['excludeFromSemantics'],
      ),
      height: JsonClass.maybeParseDouble(value['height']),
      margin: decodeEdgeInsetsGeometry(
        value['margin'],
        validate: false,
      ),
      padding: decodeEdgeInsetsGeometry(
        value['padding'],
        validate: false,
      ),
      preferBelow: JsonClass.maybeParseBool(value['preferBelow']),
      showDuration: JsonClass.maybeParseDurationFromMillis(
        value['showDuration'],
      ),
      textAlign: decodeTextAlign(
        value['textAlign'],
        validate: false,
      ),
      textStyle: decodeTextStyle(
        value['textStyle'],
        validate: false,
      ),
      triggerMode: decodeTooltipTriggerMode(
        value['triggerMode'],
        validate: false,
      ),
      verticalOffset: JsonClass.maybeParseDouble(value['verticalOffset']),
      waitDuration:
          JsonClass.maybeParseDurationFromMillis(value['waitDuration']),
    );
  }

  return result;
}