decodeTooltipThemeData static method
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;
}