diff options
Diffstat (limited to 'lib/widgets')
| -rw-r--r-- | lib/widgets/arrows.dart | 3 | ||||
| -rw-r--r-- | lib/widgets/level_info_chip.dart | 37 | ||||
| -rw-r--r-- | lib/widgets/level_list_entry.dart | 24 | 
3 files changed, 60 insertions, 4 deletions
| diff --git a/lib/widgets/arrows.dart b/lib/widgets/arrows.dart index cf04e59..162f0f3 100644 --- a/lib/widgets/arrows.dart +++ b/lib/widgets/arrows.dart @@ -4,9 +4,8 @@ import 'package:sense_the_rhythm/widgets/arrow.dart';  class Arrows extends StatelessWidget {    final List<Note> notes; -  final double position; -  const Arrows({super.key, required this.notes, required this.position}); +  const Arrows({super.key, required this.notes});    @override    Widget build(BuildContext context) { diff --git a/lib/widgets/level_info_chip.dart b/lib/widgets/level_info_chip.dart new file mode 100644 index 0000000..8e4146c --- /dev/null +++ b/lib/widgets/level_info_chip.dart @@ -0,0 +1,37 @@ +import 'package:flutter/material.dart'; + +class LevelInfoChip extends StatelessWidget { +  final String label; +  final IconData icon; + +  const LevelInfoChip({super.key, required this.label, required this.icon}); + +  @override +  Widget build(BuildContext context) { +    return OutlinedButton( +      style: ButtonStyle( +          shape: WidgetStateProperty.all(RoundedRectangleBorder( +              borderRadius: BorderRadius.all(Radius.circular(5)))), +          minimumSize: WidgetStateProperty.all(Size(10, 10)), +          tapTargetSize: MaterialTapTargetSize.shrinkWrap, +          padding: WidgetStateProperty.all( +              EdgeInsets.symmetric(vertical: 4.0, horizontal: 5.0)) +          ), +      onPressed: () {}, +      child: Row(children: [ +        Icon( +          icon, +          size: 16, +        ), +        SizedBox(width: 4), +        Text( +          label, +          style: TextStyle( +              fontSize: 14, +              fontWeight: +                  FontWeight.w200), // Adjust font size for smaller appearance +        ), +      ]), +    ); +  } +} diff --git a/lib/widgets/level_list_entry.dart b/lib/widgets/level_list_entry.dart index 832186f..abb4784 100644 --- a/lib/widgets/level_list_entry.dart +++ b/lib/widgets/level_list_entry.dart @@ -6,6 +6,7 @@ import 'package:sense_the_rhythm/utils/simfile.dart';  import 'package:sense_the_rhythm/screens/level.dart';  import 'package:sense_the_rhythm/widgets/esense_connect_dialog.dart';  import 'package:sense_the_rhythm/widgets/esense_not_connected_dialog.dart'; +import 'package:sense_the_rhythm/widgets/level_info_chip.dart';  class LevelListEntry extends StatelessWidget {    const LevelListEntry({ @@ -62,8 +63,27 @@ class LevelListEntry extends StatelessWidget {      return ListTile(        leading: Image.file(File(simfile.bannerPath!)),        trailing: Icon(Icons.play_arrow), -      title: Text(simfile.tags["TITLE"]!), -      subtitle: Text('3:45'), +      title: Text( +        simfile.tags["TITLE"]!, +        style: TextStyle(fontWeight: FontWeight.bold), +      ), +      subtitle: Padding( +        padding: const EdgeInsets.only(bottom: 2), +        child: Row( +          spacing: 2, +          children: [ +            LevelInfoChip( +              label: +                  '${simfile.duration!.inMinutes}:${simfile.duration!.inSeconds.remainder(60).toString().padLeft(2, "0")}', +              icon: Icons.timer_outlined, +            ), +            LevelInfoChip( +              label: '${simfile.bpms.entries.first.value.toInt()} BPM', +              icon: Icons.graphic_eq, +            ), +          ], +        ), +      ),        onTap: () {          tapHandler(context);        }, | 
