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>,
"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
enableFeedback: value['enableFeedback'] == null
? null
: JsonClass.parseBool(value['enableFeedback']),
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,
),
triggerMode: decodeTooltipTriggerMode(
value['triggerMode'],
validate: false,
),
verticalOffset: JsonClass.parseDouble(value['verticalOffset']),
waitDuration: JsonClass.parseDurationFromMillis(value['waitDuration']),
);
}
return result;
}