opt: change theme

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2025-04-16 22:12:24 +08:00
parent c4e7263ed6
commit cb6ead96d1
5 changed files with 37 additions and 30 deletions

View File

@@ -1,13 +1,26 @@
import 'package:flutter/material.dart';
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
enum ThemeType {
light,
dark,
system,
}
extension ThemeTypeDesc on ThemeType {
extension ThemeTypeExt on ThemeType {
String get description => ['浅色', '深色', '跟随系统'][index];
}
extension ThemeTypeCode on ThemeType {
int get code => [0, 1, 2][index];
int get code => index;
ThemeMode get toThemeMode => switch (this) {
ThemeType.light => ThemeMode.light,
ThemeType.dark => ThemeMode.dark,
ThemeType.system => ThemeMode.system,
};
IconData get iconData => switch (this) {
ThemeType.light => MdiIcons.weatherSunny,
ThemeType.dark => MdiIcons.weatherNight,
ThemeType.system => MdiIcons.themeLightDark,
};
}