You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
190 lines
6.8 KiB
190 lines
6.8 KiB
5 years ago
|
using Unity.UIWidgets.foundation;
|
||
|
using Unity.UIWidgets.service;
|
||
|
using Unity.UIWidgets.ui;
|
||
|
using TextStyle = Unity.UIWidgets.painting.TextStyle;
|
||
|
|
||
|
namespace Unity.UIWidgets.cupertino {
|
||
|
static class CupertinoTextThemeDataUtils {
|
||
|
public static readonly TextStyle _kDefaultLightTextStyle = new TextStyle(
|
||
|
inherit: false,
|
||
|
fontFamily: ".SF Pro Text",
|
||
|
fontSize: 17.0f,
|
||
|
letterSpacing: -0.41f,
|
||
|
color: CupertinoColors.black,
|
||
|
decoration: TextDecoration.none
|
||
|
);
|
||
|
|
||
|
public static readonly TextStyle _kDefaultDarkTextStyle = new TextStyle(
|
||
|
inherit: false,
|
||
|
fontFamily: ".SF Pro Text",
|
||
|
fontSize: 17.0f,
|
||
|
letterSpacing: -0.41f,
|
||
|
color: CupertinoColors.white,
|
||
|
decoration: TextDecoration.none
|
||
|
);
|
||
|
|
||
|
public static readonly TextStyle _kDefaultActionTextStyle = new TextStyle(
|
||
|
inherit: false,
|
||
|
fontFamily: ".SF Pro Text",
|
||
|
fontSize: 17.0f,
|
||
|
letterSpacing: -0.41f,
|
||
|
color: CupertinoColors.activeBlue,
|
||
|
decoration: TextDecoration.none
|
||
|
);
|
||
|
|
||
|
public static readonly TextStyle _kDefaultTabLabelTextStyle = new TextStyle(
|
||
|
inherit: false,
|
||
|
fontFamily: ".SF Pro Text",
|
||
|
fontSize: 10.0f,
|
||
|
letterSpacing: -0.24f,
|
||
|
color: CupertinoColors.inactiveGray
|
||
|
);
|
||
|
|
||
|
public static readonly TextStyle _kDefaultMiddleTitleLightTextStyle = new TextStyle(
|
||
|
inherit: false,
|
||
|
fontFamily: ".SF Pro Text",
|
||
|
fontSize: 17.0f,
|
||
|
fontWeight: FontWeight.w600,
|
||
|
letterSpacing: -0.41f,
|
||
|
color: CupertinoColors.black
|
||
|
);
|
||
|
|
||
|
public static readonly TextStyle _kDefaultMiddleTitleDarkTextStyle = new TextStyle(
|
||
|
inherit: false,
|
||
|
fontFamily: ".SF Pro Text",
|
||
|
fontSize: 17.0f,
|
||
|
fontWeight: FontWeight.w600,
|
||
|
letterSpacing: -0.41f,
|
||
|
color: CupertinoColors.white
|
||
|
);
|
||
|
|
||
|
public static readonly TextStyle _kDefaultLargeTitleLightTextStyle = new TextStyle(
|
||
|
inherit: false,
|
||
|
fontFamily: ".SF Pro Display",
|
||
|
fontSize: 34.0f,
|
||
|
fontWeight: FontWeight.w700,
|
||
|
letterSpacing: 0.41f,
|
||
|
color: CupertinoColors.black
|
||
|
);
|
||
|
|
||
|
public static readonly TextStyle _kDefaultLargeTitleDarkTextStyle = new TextStyle(
|
||
|
inherit: false,
|
||
|
fontFamily: ".SF Pro Display",
|
||
|
fontSize: 34.0f,
|
||
|
fontWeight: FontWeight.w700,
|
||
|
letterSpacing: 0.41f,
|
||
|
color: CupertinoColors.white
|
||
|
);
|
||
|
}
|
||
|
|
||
|
|
||
|
public class CupertinoTextThemeData : Diagnosticable {
|
||
|
public CupertinoTextThemeData(
|
||
|
Color primaryColor = null,
|
||
|
Brightness? brightness = null,
|
||
|
TextStyle textStyle = null,
|
||
|
TextStyle actionTextStyle = null,
|
||
|
TextStyle tabLabelTextStyle = null,
|
||
|
TextStyle navTitleTextStyle = null,
|
||
|
TextStyle navLargeTitleTextStyle = null,
|
||
|
TextStyle navActionTextStyle = null
|
||
|
) {
|
||
|
this._primaryColor = primaryColor ?? CupertinoColors.activeBlue;
|
||
|
this._brightness = brightness;
|
||
|
this._textStyle = textStyle;
|
||
|
this._actionTextStyle = actionTextStyle;
|
||
|
this._tabLabelTextStyle = tabLabelTextStyle;
|
||
|
this._navTitleTextStyle = navTitleTextStyle;
|
||
|
this._navLargeTitleTextStyle = navLargeTitleTextStyle;
|
||
|
this._navActionTextStyle = navActionTextStyle;
|
||
|
}
|
||
|
|
||
|
readonly Color _primaryColor;
|
||
|
readonly Brightness? _brightness;
|
||
|
|
||
|
bool _isLight {
|
||
|
get { return this._brightness != Brightness.dark; }
|
||
|
}
|
||
|
|
||
|
readonly TextStyle _textStyle;
|
||
|
|
||
|
public TextStyle textStyle {
|
||
|
get {
|
||
|
return this._textStyle ?? (this._isLight
|
||
|
? CupertinoTextThemeDataUtils._kDefaultLightTextStyle
|
||
|
: CupertinoTextThemeDataUtils._kDefaultDarkTextStyle);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
readonly TextStyle _actionTextStyle;
|
||
|
|
||
|
public TextStyle actionTextStyle {
|
||
|
get {
|
||
|
return this._actionTextStyle ?? CupertinoTextThemeDataUtils._kDefaultActionTextStyle.copyWith(
|
||
|
color: this._primaryColor
|
||
|
);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
readonly TextStyle _tabLabelTextStyle;
|
||
|
|
||
|
public TextStyle tabLabelTextStyle {
|
||
|
get { return this._tabLabelTextStyle ?? CupertinoTextThemeDataUtils._kDefaultTabLabelTextStyle; }
|
||
|
}
|
||
|
|
||
|
readonly TextStyle _navTitleTextStyle;
|
||
|
|
||
|
public TextStyle navTitleTextStyle {
|
||
|
get {
|
||
|
return this._navTitleTextStyle ??
|
||
|
(this._isLight
|
||
|
? CupertinoTextThemeDataUtils._kDefaultMiddleTitleLightTextStyle
|
||
|
: CupertinoTextThemeDataUtils._kDefaultMiddleTitleDarkTextStyle);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
readonly TextStyle _navLargeTitleTextStyle;
|
||
|
|
||
|
/// Typography of large titles in sliver navigation bars.
|
||
|
public TextStyle navLargeTitleTextStyle {
|
||
|
get {
|
||
|
return this._navLargeTitleTextStyle ??
|
||
|
(this._isLight
|
||
|
? CupertinoTextThemeDataUtils._kDefaultLargeTitleLightTextStyle
|
||
|
: CupertinoTextThemeDataUtils._kDefaultLargeTitleDarkTextStyle);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
readonly TextStyle _navActionTextStyle;
|
||
|
|
||
|
public TextStyle navActionTextStyle {
|
||
|
get {
|
||
|
return this._navActionTextStyle ?? CupertinoTextThemeDataUtils._kDefaultActionTextStyle.copyWith(
|
||
|
color: this._primaryColor
|
||
|
);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public CupertinoTextThemeData copyWith(
|
||
|
Color primaryColor,
|
||
|
Brightness? brightness,
|
||
|
TextStyle textStyle,
|
||
|
TextStyle actionTextStyle,
|
||
|
TextStyle tabLabelTextStyle,
|
||
|
TextStyle navTitleTextStyle,
|
||
|
TextStyle navLargeTitleTextStyle,
|
||
|
TextStyle navActionTextStyle
|
||
|
) {
|
||
|
return new CupertinoTextThemeData(
|
||
|
primaryColor: primaryColor ?? this._primaryColor,
|
||
|
brightness: brightness ?? this._brightness,
|
||
|
textStyle: textStyle ?? this._textStyle,
|
||
|
actionTextStyle: actionTextStyle ?? this._actionTextStyle,
|
||
|
tabLabelTextStyle: tabLabelTextStyle ?? this._tabLabelTextStyle,
|
||
|
navTitleTextStyle: navTitleTextStyle ?? this._navTitleTextStyle,
|
||
|
navLargeTitleTextStyle: navLargeTitleTextStyle ?? this._navLargeTitleTextStyle,
|
||
|
navActionTextStyle: navActionTextStyle ?? this._navActionTextStyle
|
||
|
);
|
||
|
}
|
||
|
}
|
||
|
}
|