getSpeedButton method

Widget getSpeedButton()

Implementation

Widget getSpeedButton() {
  speedLabel ??= TextView(speedLabelModel);
  speedLabelModel.value = '${widget.model.speed}x';

  var label = Stack(alignment: Alignment.center, children: [
    const Icon(Icons.circle, color: Colors.white38, size: 40),
    speedLabel!
  ]);

  List<PopupMenuItem<double>> speeds = [];
  for (final double speed in _playbackRates) {
    speeds.add(PopupMenuItem<double>(value: speed, child: Text('${speed}x')));
  }

  PopupMenuButton popup = PopupMenuButton<double>(
      tooltip: 'Playback speed',
      onSelected: (double speed) {
        widget.model.speed = speed;
        speedLabelModel.value = '${speed}x';
      },
      itemBuilder: (BuildContext context) {
        return <PopupMenuItem<double>>[
          for (final double speed in _playbackRates)
            PopupMenuItem<double>(value: speed, child: Text('${speed}x'))
        ];
      },
      child: label);

  return Positioned(top: 5, right: 5, child: popup);
}