TextLayerData.fromMap constructor
TextLayerData.fromMap(
- Layer layer,
- Map map
)
Implementation
factory TextLayerData.fromMap(Layer layer, Map map) {
TextDecoration getDecoration(String decoration) {
if (decoration.contains('combine')) {
List<TextDecoration> decorations = [];
if (decoration.contains('lineThrough')) {
decorations.add(TextDecoration.lineThrough);
}
if (decoration.contains('overline')) {
decorations.add(TextDecoration.overline);
}
if (decoration.contains('underline')) {
decorations.add(TextDecoration.underline);
}
return TextDecoration.combine(decorations);
} else {
if (decoration.contains('lineThrough')) {
return TextDecoration.lineThrough;
} else if (decoration.contains('overline')) {
return TextDecoration.overline;
} else if (decoration.contains('underline')) {
return TextDecoration.underline;
}
}
return TextDecoration.none;
}
String? fontFamily = map['fontFamily'];
double? wordSpacing = map['wordSpacing'];
double? height = map['height'];
double? letterSpacing = map['letterSpacing'];
int? fontWeight = map['fontWeight'];
String? fontStyle = map['fontStyle'];
String? decoration = map['decoration'];
return TextLayerData(
flipX: layer.flipX,
flipY: layer.flipY,
offset: layer.offset,
rotation: layer.rotation,
scale: layer.scale,
text: map['text'] ?? '-',
fontScale: map['fontScale'] ?? 1.0,
textStyle: map['fontFamily'] != null
? TextStyle(
fontFamily: fontFamily,
height: height,
wordSpacing: wordSpacing,
letterSpacing: letterSpacing,
decoration: decoration != null ? getDecoration(decoration) : null,
fontStyle: fontStyle != null
? FontStyle.values
.firstWhere((element) => element.name == fontStyle)
: null,
fontWeight: fontWeight != null
? FontWeight.values
.firstWhere((element) => element.value == fontWeight)
: null,
)
: null,
colorMode: LayerBackgroundMode.values
.firstWhere((element) => element.name == map['colorMode']),
color: Color(map['color']),
background: Color(map['background']),
colorPickerPosition: map['colorPickerPosition'] ?? 0,
align: TextAlign.values
.firstWhere((element) => element.name == map['align']),
customSecondaryColor: map['customSecondaryColor'] ?? false,
);
}