| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- import 'package:flutter/widgets.dart';
- const _kDefaultFontSize = 13.0;
- const _kDefaultHeight = 1.2;
- const _kDefaultFontFamily = 'monospace';
- const _kDefaultFontFamilyFallback = [
- 'Menlo',
- 'Monaco',
- 'Consolas',
- 'Liberation Mono',
- 'Courier New',
- 'Noto Sans Mono CJK SC',
- 'Noto Sans Mono CJK TC',
- 'Noto Sans Mono CJK KR',
- 'Noto Sans Mono CJK JP',
- 'Noto Sans Mono CJK HK',
- 'Noto Color Emoji',
- 'Noto Sans Symbols',
- 'monospace',
- 'sans-serif',
- ];
- class TerminalStyle {
- const TerminalStyle({
- this.fontSize = _kDefaultFontSize,
- this.height = _kDefaultHeight,
- this.fontFamily = _kDefaultFontFamily,
- this.fontFamilyFallback = _kDefaultFontFamilyFallback,
- });
- factory TerminalStyle.fromTextStyle(TextStyle textStyle) {
- return TerminalStyle(
- fontSize: textStyle.fontSize ?? _kDefaultFontSize,
- height: textStyle.height ?? _kDefaultHeight,
- fontFamily: textStyle.fontFamily ??
- textStyle.fontFamilyFallback?.first ??
- _kDefaultFontFamily,
- fontFamilyFallback:
- textStyle.fontFamilyFallback ?? _kDefaultFontFamilyFallback,
- );
- }
- final double fontSize;
- final double height;
- final String fontFamily;
- final List<String> fontFamilyFallback;
- TextStyle toTextStyle({
- Color? color,
- Color? backgroundColor,
- bool bold = false,
- bool italic = false,
- bool underline = false,
- }) {
- return TextStyle(
- fontSize: fontSize,
- height: height,
- fontFamily: fontFamily,
- fontFamilyFallback: fontFamilyFallback,
- color: color,
- backgroundColor: backgroundColor,
- fontWeight: bold ? FontWeight.bold : FontWeight.normal,
- fontStyle: italic ? FontStyle.italic : FontStyle.normal,
- decoration: underline ? TextDecoration.underline : TextDecoration.none,
- );
- }
- TerminalStyle copyWith({
- double? fontSize,
- double? height,
- String? fontFamily,
- List<String>? fontFamilyFallback,
- }) {
- return TerminalStyle(
- fontSize: fontSize ?? this.fontSize,
- height: height ?? this.height,
- fontFamily: fontFamily ?? this.fontFamily,
- fontFamilyFallback: fontFamilyFallback ?? this.fontFamilyFallback,
- );
- }
- }
|