mirror of
https://github.com/wanghongenpin/proxypin.git
synced 2026-05-20 16:15:47 +08:00
64 lines
1.7 KiB
Dart
64 lines
1.7 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
class SystemChineseFont {
|
|
const SystemChineseFont._();
|
|
|
|
/// Chinese font family fallback, for windows
|
|
static const List<String> windowsFontFamily = [
|
|
'Microsoft YaHei',
|
|
];
|
|
|
|
static const systemFont = "system-font";
|
|
|
|
static bool systemFontLoaded = false;
|
|
|
|
/// Chinese font family fallback, for most platforms
|
|
static List<String> get fontFamilyFallback {
|
|
return [
|
|
systemFont,
|
|
"sans-serif",
|
|
...windowsFontFamily,
|
|
];
|
|
}
|
|
|
|
/// Text style with updated fontFamilyFallback & fontVariations
|
|
static TextStyle get textStyle {
|
|
return const TextStyle().useSystemChineseFont();
|
|
}
|
|
|
|
/// Text theme with updated fontFamilyFallback & fontVariations
|
|
static TextTheme get textTheme {
|
|
return Typography().dense.apply(fontFamilyFallback: fontFamilyFallback);
|
|
}
|
|
}
|
|
|
|
extension TextStyleUseSystemChineseFont on TextStyle {
|
|
/// Add fontFamilyFallback & fontVariation to original font style
|
|
TextStyle useSystemChineseFont() {
|
|
return copyWith(
|
|
fontFamilyFallback: [
|
|
...?fontFamilyFallback,
|
|
...SystemChineseFont.fontFamilyFallback,
|
|
],
|
|
fontVariations: [
|
|
...?fontVariations,
|
|
if (fontWeight != null) FontVariation('wght', (fontWeight!.index + 1) * 100),
|
|
],
|
|
);
|
|
}
|
|
}
|
|
|
|
extension TextThemeUseSystemChineseFont on TextTheme {
|
|
/// Add fontFamilyFallback & fontVariation to original text theme
|
|
TextTheme useSystemChineseFont() {
|
|
return SystemChineseFont.textTheme.merge(this);
|
|
}
|
|
}
|
|
|
|
extension ThemeDataUseSystemChineseFont on ThemeData {
|
|
/// Add fontFamilyFallback & fontVariation to original theme data
|
|
ThemeData useSystemChineseFont() {
|
|
return copyWith(textTheme: textTheme.useSystemChineseFont());
|
|
}
|
|
}
|