TNumberFieldTheme.defaultTheme constructor
TNumberFieldTheme.defaultTheme(
- ColorScheme colors
Creates a default theme derived from the context colors.
Implementation
factory TNumberFieldTheme.defaultTheme(ColorScheme colors) {
final baseTheme = TTextFieldTheme.defaultTheme(colors);
final increment = 1;
final decrement = 2;
Widget decreaseButtonBuilder(onTap, enabled) {
return TButton(
type: TButtonType.icon,
size: TButtonSize.xxs.copyWith(minW: baseTheme.fieldHeight + 3, minH: baseTheme.fieldHeight, icon: baseTheme.fieldFontSize + 3),
icon: Icons.remove,
color: colors.onSurfaceVariant,
onTap: enabled ? onTap : null,
);
}
Widget increaseButtonBuilder(onTap, enabled) {
return TButton(
type: TButtonType.icon,
size: TButtonSize.xxs.copyWith(minW: baseTheme.fieldHeight + 3, minH: baseTheme.fieldHeight, icon: baseTheme.fieldFontSize + 3),
icon: Icons.add,
color: colors.onSurfaceVariant,
onTap: enabled ? onTap : null,
);
}
return TNumberFieldTheme(
size: baseTheme.size,
decorationType: baseTheme.decorationType,
color: baseTheme.color,
backgroundColor: baseTheme.backgroundColor,
borderColor: baseTheme.borderColor,
labelStyle: baseTheme.labelStyle,
helperTextStyle: baseTheme.helperTextStyle,
errorTextStyle: baseTheme.errorTextStyle,
tagStyle: baseTheme.tagStyle,
decoration: baseTheme.decoration,
borderRadius: baseTheme.borderRadius,
borderWidth: baseTheme.borderWidth,
labelBuilder: baseTheme.labelBuilder,
helperTextBuilder: baseTheme.helperTextBuilder,
errorsBuilder: baseTheme.errorsBuilder,
preWidget: baseTheme.preWidget,
postWidget: baseTheme.postWidget,
height: baseTheme.height,
padding: baseTheme.padding,
fontSize: baseTheme.fontSize,
textStyle: baseTheme.textStyle,
hintStyle: baseTheme.hintStyle,
increment: increment,
decrement: decrement,
decimals: 2,
increaseButtonBuilder: increaseButtonBuilder,
decreaseButtonBuilder: decreaseButtonBuilder,
stepperBuilder: (ctx, onValueChanged, canIncrease, canDecrease) {
return Row(
mainAxisSize: MainAxisSize.min,
children: [
decreaseButtonBuilder(() => onValueChanged(-decrement), canDecrease),
increaseButtonBuilder(() => onValueChanged(increment), canIncrease),
],
);
},
);
}