Skip to content

Commit 1e836ba

Browse files
committed
feat(layouts/fader): implement background color for faders
1 parent 7f7c7f3 commit 1e836ba

2 files changed

Lines changed: 32 additions & 12 deletions

File tree

‎crates/ui/lib/extensions/color_extensions.dart‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import 'package:flex_color_picker/flex_color_picker.dart';
12
import 'package:flutter/widgets.dart';
23
import 'package:mizer/protos/layouts.pb.dart' as layouts;
34

@@ -15,3 +16,13 @@ layouts.Color fromFlutterColor(Color color) {
1516
red: color.red / 255,
1617
);
1718
}
19+
20+
extension FlutterColorExtensions on Color {
21+
Color get dimmed {
22+
return Color.fromARGB(alpha8bit, _dim(r), _dim(g), _dim(b));
23+
}
24+
}
25+
26+
int _dim(double value, { double modifier = 0.5 }) {
27+
return ((value * modifier) * 255).toInt();
28+
}

‎crates/ui/lib/widgets/inputs/fader.dart‎

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import 'package:flutter/gestures.dart';
22
import 'package:flutter/material.dart';
33
import 'package:flutter/services.dart';
44
import 'package:mizer/consts.dart';
5+
import 'package:mizer/extensions/color_extensions.dart';
56
import 'package:mizer/widgets/high_contrast_text.dart';
67

78
import 'decoration.dart';
@@ -87,20 +88,28 @@ class _FaderInputState extends State<FaderInput> {
8788
onVerticalDragUpdate: (update) => _onInput(constraints, update.localPosition),
8889
onTapDown: (update) => _onInput(constraints, update.localPosition),
8990
child: Container(
90-
decoration: BoxDecoration(color: Grey700),
91-
// decoration: ControlDecoration(
92-
// gradient: widget.gradient, color: widget.color, highlight: widget.highlight),
91+
decoration: BoxDecoration(color: widget.color?.dimmed ?? Grey700),
9392
child: MouseRegion(
9493
cursor: SystemMouseCursors.click,
95-
child: Align(
96-
alignment: AlignmentDirectional(0, y),
97-
child: Container(
98-
color: widget.highlight == true
99-
? HIGHLIGHT_CONTROL_COLOR
100-
: DEFAULT_CONTROL_COLOR,
101-
alignment: AlignmentDirectional.center,
102-
constraints: BoxConstraints.expand(height: 30),
103-
child: Text("$percentage%", textAlign: TextAlign.center))),
94+
child: Stack(
95+
alignment: AlignmentGeometry.bottomCenter,
96+
children: [
97+
Container(
98+
color: widget.color ?? Grey600,
99+
alignment: AlignmentGeometry.bottomCenter,
100+
height: this.value * constraints.maxHeight,
101+
),
102+
Align(
103+
alignment: AlignmentDirectional(0, y),
104+
child: Container(
105+
color: widget.highlight == true
106+
? HIGHLIGHT_CONTROL_COLOR
107+
: DEFAULT_CONTROL_COLOR,
108+
alignment: AlignmentDirectional.center,
109+
constraints: BoxConstraints.expand(height: 30),
110+
child: Text("$percentage%", textAlign: TextAlign.center))),
111+
],
112+
),
104113
),
105114
),
106115
);

0 commit comments

Comments
 (0)