Commit 75fec892 authored by Chris Bracken's avatar Chris Bracken Committed by GitHub

Propagate theme typography to slider label (#6629)

parent 67f59100
...@@ -139,11 +139,13 @@ class _SliderState extends State<Slider> with TickerProviderStateMixin { ...@@ -139,11 +139,13 @@ class _SliderState extends State<Slider> with TickerProviderStateMixin {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
assert(debugCheckHasMaterial(context)); assert(debugCheckHasMaterial(context));
ThemeData theme = Theme.of(context);
return new _SliderRenderObjectWidget( return new _SliderRenderObjectWidget(
value: (config.value - config.min) / (config.max - config.min), value: (config.value - config.min) / (config.max - config.min),
divisions: config.divisions, divisions: config.divisions,
label: config.label, label: config.label,
activeColor: config.activeColor ?? Theme.of(context).accentColor, activeColor: config.activeColor ?? theme.accentColor,
textTheme: theme.primaryTextTheme,
onChanged: config.onChanged != null ? _handleChanged : null, onChanged: config.onChanged != null ? _handleChanged : null,
vsync: this, vsync: this,
); );
...@@ -157,6 +159,7 @@ class _SliderRenderObjectWidget extends LeafRenderObjectWidget { ...@@ -157,6 +159,7 @@ class _SliderRenderObjectWidget extends LeafRenderObjectWidget {
this.divisions, this.divisions,
this.label, this.label,
this.activeColor, this.activeColor,
this.textTheme,
this.onChanged, this.onChanged,
this.vsync, this.vsync,
}) : super(key: key); }) : super(key: key);
...@@ -165,6 +168,7 @@ class _SliderRenderObjectWidget extends LeafRenderObjectWidget { ...@@ -165,6 +168,7 @@ class _SliderRenderObjectWidget extends LeafRenderObjectWidget {
final int divisions; final int divisions;
final String label; final String label;
final Color activeColor; final Color activeColor;
final TextTheme textTheme;
final ValueChanged<double> onChanged; final ValueChanged<double> onChanged;
final TickerProvider vsync; final TickerProvider vsync;
...@@ -174,6 +178,7 @@ class _SliderRenderObjectWidget extends LeafRenderObjectWidget { ...@@ -174,6 +178,7 @@ class _SliderRenderObjectWidget extends LeafRenderObjectWidget {
divisions: divisions, divisions: divisions,
label: label, label: label,
activeColor: activeColor, activeColor: activeColor,
textTheme: textTheme,
onChanged: onChanged, onChanged: onChanged,
vsync: vsync, vsync: vsync,
); );
...@@ -185,6 +190,7 @@ class _SliderRenderObjectWidget extends LeafRenderObjectWidget { ...@@ -185,6 +190,7 @@ class _SliderRenderObjectWidget extends LeafRenderObjectWidget {
..divisions = divisions ..divisions = divisions
..label = label ..label = label
..activeColor = activeColor ..activeColor = activeColor
..textTheme = textTheme
..onChanged = onChanged; ..onChanged = onChanged;
// Ticker provider cannot change since there's a 1:1 relationship between // Ticker provider cannot change since there's a 1:1 relationship between
// the _SliderRenderObjectWidget object and the _SliderState object. // the _SliderRenderObjectWidget object and the _SliderState object.
...@@ -229,11 +235,13 @@ class _RenderSlider extends RenderConstrainedBox implements SemanticsActionHandl ...@@ -229,11 +235,13 @@ class _RenderSlider extends RenderConstrainedBox implements SemanticsActionHandl
int divisions, int divisions,
String label, String label,
Color activeColor, Color activeColor,
TextTheme textTheme,
this.onChanged, this.onChanged,
TickerProvider vsync, TickerProvider vsync,
}) : _value = value, }) : _value = value,
_divisions = divisions, _divisions = divisions,
_activeColor = activeColor, _activeColor = activeColor,
_textTheme = textTheme,
super(additionalConstraints: _getAdditionalConstraints(label)) { super(additionalConstraints: _getAdditionalConstraints(label)) {
assert(value != null && value >= 0.0 && value <= 1.0); assert(value != null && value >= 0.0 && value <= 1.0);
this.label = label; this.label = label;
...@@ -290,7 +298,7 @@ class _RenderSlider extends RenderConstrainedBox implements SemanticsActionHandl ...@@ -290,7 +298,7 @@ class _RenderSlider extends RenderConstrainedBox implements SemanticsActionHandl
// https://github.com/flutter/flutter/issues/5938 // https://github.com/flutter/flutter/issues/5938
_labelPainter _labelPainter
..text = new TextSpan( ..text = new TextSpan(
style: Typography.white.body1.copyWith(fontSize: 10.0), style: _textTheme.body1.copyWith(fontSize: 10.0),
text: newLabel text: newLabel
) )
..layout(); ..layout();
...@@ -309,6 +317,15 @@ class _RenderSlider extends RenderConstrainedBox implements SemanticsActionHandl ...@@ -309,6 +317,15 @@ class _RenderSlider extends RenderConstrainedBox implements SemanticsActionHandl
markNeedsPaint(); markNeedsPaint();
} }
TextTheme get textTheme => _textTheme;
TextTheme _textTheme;
set textTheme(TextTheme value) {
if (value == _textTheme)
return;
_textTheme = value;
markNeedsPaint();
}
ValueChanged<double> onChanged; ValueChanged<double> onChanged;
double get _trackLength => size.width - 2.0 * _kReactionRadius; double get _trackLength => size.width - 2.0 * _kReactionRadius;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment