- Created generated_plugin_registrant.cc and generated_plugin_registrant.h to manage plugin registration. - Added generated_plugins.cmake for plugin configuration in CMake. - Implemented CMakeLists.txt for the Windows runner, defining build settings and dependencies. - Created Runner.rc for application resources including versioning and icons. - Developed flutter_window.cpp and flutter_window.h to manage the Flutter window lifecycle. - Implemented main.cpp as the entry point for the Windows application. - Added resource.h for resource definitions. - Included app icon in resources. - Created runner.exe.manifest for application settings. - Developed utils.cpp and utils.h for console management and command line argument handling. - Implemented win32_window.cpp and win32_window.h for high DPI-aware window management.
68 lines
1.8 KiB
Dart
68 lines
1.8 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
class MyStarRating extends StatelessWidget {
|
|
final double rating, size, spacing;
|
|
final Color activeColor, inactiveColor;
|
|
final bool inactiveStarFilled, showInactive;
|
|
final IconData? activeIcon, halfIcon, inactiveIcon;
|
|
|
|
MyStarRating(
|
|
{super.key,
|
|
this.rating = 5,
|
|
this.size = 16,
|
|
this.spacing = 0,
|
|
this.activeColor = Colors.yellow,
|
|
this.inactiveColor = Colors.black,
|
|
this.inactiveStarFilled = false,
|
|
this.showInactive = true,
|
|
this.activeIcon,
|
|
this.halfIcon,
|
|
this.inactiveIcon});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
int ratingCount = rating.floor();
|
|
|
|
bool isHalf = (ratingCount != rating);
|
|
Color? color = getColorForRating(ratingCount);
|
|
List<Widget> stars = [];
|
|
for (int i = 0; i < 5; i++) {
|
|
if (i < ratingCount) {
|
|
stars.add(Icon(activeIcon ?? Icons.star, color: color, size: size));
|
|
|
|
stars.add(SizedBox(width: spacing));
|
|
} else {
|
|
if (isHalf) {
|
|
isHalf = false;
|
|
stars.add(
|
|
Icon(halfIcon ?? Icons.star_half_outlined,
|
|
color: color, size: size),
|
|
);
|
|
} else if (showInactive) {
|
|
stars.add(Icon(
|
|
inactiveStarFilled
|
|
? (activeIcon ?? Icons.star)
|
|
: (inactiveIcon ?? Icons.star_outline),
|
|
color: inactiveColor,
|
|
size: size,
|
|
));
|
|
}
|
|
stars.add(SizedBox(width: spacing));
|
|
}
|
|
}
|
|
return Row(mainAxisSize: MainAxisSize.min, children: stars);
|
|
}
|
|
|
|
Color? getColorForRating(int ratingCount) {
|
|
if (ratingCount <= 1) {
|
|
return Colors.red;
|
|
} else if (ratingCount <= 3) {
|
|
return Colors.orange;
|
|
} else if (ratingCount <= 5) {
|
|
return Colors.green;
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
}
|