Skip to content

Commit 8f2519a

Browse files
Theme Enhancement (#2955)
* initial commit * HexColor.fromString default value * Cleanup + Reformat * TimePickerTheme * MouseCursor moved to types --------- Co-authored-by: Feodor Fitsner <[email protected]>
1 parent bbea284 commit 8f2519a

File tree

22 files changed

+1712
-164
lines changed

22 files changed

+1712
-164
lines changed

packages/flet/lib/src/controls/tabs.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,7 @@ class _TabsControlState extends State<TabsControl>
117117
overlayColor = getMaterialStateProperty<Color?>(
118118
json.decode(overlayColorStr),
119119
(jv) =>
120-
HexColor.fromString(Theme.of(context), jv as String),
121-
null) ??
120+
HexColor.fromString(Theme.of(context), jv as String)) ??
122121
TabBarTheme.of(context).overlayColor;
123122
}
124123

packages/flet/lib/src/utils/borders.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ BorderRadius borderRadiusFromJSON(dynamic json) {
6969
);
7070
}
7171

72-
Border borderFromJSON(
73-
ThemeData? theme, Map<String, dynamic> json, Color? defaultSideColor) {
72+
Border borderFromJSON(ThemeData? theme, Map<String, dynamic> json,
73+
[Color? defaultSideColor]) {
7474
return Border(
7575
top: borderSideFromJSON(theme, json['t'], defaultSideColor) ??
7676
BorderSide.none,
@@ -82,8 +82,8 @@ Border borderFromJSON(
8282
BorderSide.none);
8383
}
8484

85-
BorderSide? borderSideFromJSON(
86-
ThemeData? theme, dynamic json, Color? defaultSideColor) {
85+
BorderSide? borderSideFromJSON(ThemeData? theme, dynamic json,
86+
[Color? defaultSideColor]) {
8787
return json != null
8888
? BorderSide(
8989
color: json['c'] != null

packages/flet/lib/src/utils/buttons.dart

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -40,18 +40,16 @@ ButtonStyle? parseButtonStyle(ThemeData theme, Control control, String propName,
4040
defaultShape);
4141
}
4242

43-
ButtonStyle? buttonStyleFromJSON(
44-
ThemeData theme,
45-
Map<String, dynamic> json,
46-
Color defaultForegroundColor,
47-
Color defaultBackgroundColor,
48-
Color defaultOverlayColor,
49-
Color defaultShadowColor,
50-
Color defaultSurfaceTintColor,
51-
double defaultElevation,
52-
EdgeInsets defaultPadding,
53-
BorderSide defaultBorderSide,
54-
OutlinedBorder defaultShape) {
43+
ButtonStyle? buttonStyleFromJSON(ThemeData theme, Map<String, dynamic> json,
44+
[Color? defaultForegroundColor,
45+
Color? defaultBackgroundColor,
46+
Color? defaultOverlayColor,
47+
Color? defaultShadowColor,
48+
Color? defaultSurfaceTintColor,
49+
double? defaultElevation,
50+
EdgeInsets? defaultPadding,
51+
BorderSide? defaultBorderSide,
52+
OutlinedBorder? defaultShape]) {
5553
return ButtonStyle(
5654
foregroundColor: getMaterialStateProperty<Color?>(
5755
json["color"],

packages/flet/lib/src/utils/colors.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ Map<String, MaterialAccentColor> _materialAccentColors = {
137137

138138
// https://stackoverflow.com/questions/50081213/how-do-i-use-hexadecimal-color-strings-in-flutter
139139
extension HexColor on Color {
140-
static Color? fromString(ThemeData? theme, String colorString) {
140+
static Color? fromString(ThemeData? theme, [String colorString = ""]) {
141141
var colorParts = colorString.split(",");
142142

143143
var colorValue = colorParts[0];
@@ -245,5 +245,5 @@ MaterialStateProperty<Color?>? parseMaterialStateColor(
245245

246246
final j1 = json.decode(v);
247247
return getMaterialStateProperty<Color?>(
248-
j1, (jv) => HexColor.fromString(theme, jv as String), null);
248+
j1, (jv) => HexColor.fromString(theme, jv as String));
249249
}

packages/flet/lib/src/utils/icons.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,5 @@ MaterialStateProperty<Icon?>? parseMaterialStateIcon(
2121
final j1 = json.decode(v);
2222

2323
return getMaterialStateProperty<Icon?>(
24-
j1, (jv) => Icon(parseIcon(jv as String)), null);
24+
j1, (jv) => Icon(parseIcon(jv as String)));
2525
}

packages/flet/lib/src/utils/material_state.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import 'package:flutter/material.dart';
22

3-
MaterialStateProperty<T?>? getMaterialStateProperty<T>(dynamic jsonDictValue,
4-
T Function(dynamic) converterFromJson, T defaultValue) {
3+
MaterialStateProperty<T?>? getMaterialStateProperty<T>(dynamic jsonDictValue, T Function(dynamic) converterFromJson,
4+
[T? defaultValue]) {
55
if (jsonDictValue == null) {
66
return null;
77
}
@@ -14,9 +14,9 @@ MaterialStateProperty<T?>? getMaterialStateProperty<T>(dynamic jsonDictValue,
1414

1515
class MaterialStateFromJSON<T> extends MaterialStateProperty<T?> {
1616
late final Map<String, T> _states;
17-
late final T _defaultValue;
17+
late final T? _defaultValue;
1818
MaterialStateFromJSON(Map<String, dynamic>? jsonDictValue,
19-
T Function(dynamic) converterFromJson, T defaultValue) {
19+
T Function(dynamic) converterFromJson, T? defaultValue) {
2020
_defaultValue = defaultValue;
2121
_states = {};
2222
if (jsonDictValue != null) {

packages/flet/lib/src/utils/menu.dart

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,18 +41,16 @@ MenuStyle? parseMenuStyle(ThemeData theme, Control control, String propName,
4141
defaultShape);
4242
}
4343

44-
MenuStyle? menuStyleFromJSON(
45-
ThemeData theme,
46-
Map<String, dynamic> json,
47-
Color? defaultBackgroundColor,
44+
MenuStyle? menuStyleFromJSON(ThemeData theme, Map<String, dynamic> json,
45+
[Color? defaultBackgroundColor,
4846
Color? defaultShadowColor,
4947
Color? defaultSurfaceTintColor,
5048
double? defaultElevation,
5149
Alignment? defaultAlignment,
5250
MouseCursor? defaultMouseCursor,
5351
EdgeInsets? defaultPadding,
5452
BorderSide? defaultBorderSide,
55-
OutlinedBorder? defaultShape) {
53+
OutlinedBorder? defaultShape]) {
5654
return MenuStyle(
5755
alignment: json["alignment"] != null
5856
? alignmentFromJson(json["alignment"])

0 commit comments

Comments
 (0)