Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Controls Enhancement #2882

Merged
merged 106 commits into from
Apr 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
106 commits
Select commit Hold shift + click to select a range
a38e461
initial commit
ndonkoHenri Mar 4, 2024
548b3ba
Merge branch 'main' into controls-enhancement
ndonkoHenri Mar 9, 2024
fe3d122
Pass data to Control.__init__
ndonkoHenri Mar 9, 2024
d25f41c
CircleAvatar: on_image_error
ndonkoHenri Mar 9, 2024
1dd103f
Card: clip_behavior, is_semantic_container, show_border_on_foreground
ndonkoHenri Mar 9, 2024
962c208
Checkbox: semantics_label, shape, splash_radius, border_side, is_error
ndonkoHenri Mar 9, 2024
45eb224
DragTarget: on_move, deprecated DragTargetAcceptEvent in favour of Dr…
ndonkoHenri Mar 9, 2024
d635f0e
Draggable: on_drag_start, on_drag_end
ndonkoHenri Mar 9, 2024
293045e
More types
ndonkoHenri Mar 9, 2024
0ea62fb
Divider: indent, end_indent
ndonkoHenri Mar 9, 2024
ad1c65b
Fix #2839
ndonkoHenri Mar 9, 2024
334da3e
Stack: alignment, fit
ndonkoHenri Mar 10, 2024
184fb04
Divider: rename indent to leading_indent and end_indent to trailing_i…
ndonkoHenri Mar 12, 2024
7ad5296
Draggable: rename on_drag_end to on_drag_complete
ndonkoHenri Mar 12, 2024
b92ce30
Checkbox: rename border_side to border
ndonkoHenri Mar 12, 2024
b34b589
Revert "Checkbox: rename border_side to border"
ndonkoHenri Mar 12, 2024
56f9d29
Card: variant
ndonkoHenri Mar 12, 2024
d762c7c
VerticalDivider: leading_indent, trailing_indent
ndonkoHenri Mar 12, 2024
a626e21
Tooltip: exclude_from_semantics, enable_tap_to_dismiss
ndonkoHenri Mar 12, 2024
b7a91d7
Reformat _set_attr calls
ndonkoHenri Mar 12, 2024
6afc0fc
TimePicker: orientation
ndonkoHenri Mar 12, 2024
e93ce7e
FAB - dart: colors, elevation, enableFeedback
ndonkoHenri Mar 13, 2024
7e433ea
ProgressRing: stroke_cap, stroke_align, semantics_label, semantics_value
ndonkoHenri Mar 14, 2024
1b22c5c
ProgressBar: border_radius, semantics_label, semantics_value
ndonkoHenri Mar 14, 2024
3417cf0
OutlinedButton: clip_behavior
ndonkoHenri Mar 14, 2024
1cc4a4c
NavBar: animation_duration
ndonkoHenri Mar 14, 2024
593addb
AlertDialog: action_button_padding, clip_behavior, icon_padding, shad…
ndonkoHenri Mar 14, 2024
f68b5dc
ListTile: enable_feedback, horizontal_spacing, min_leading_width, min…
ndonkoHenri Mar 14, 2024
c0d10ab
Image: exclude_from_semantics, filter_quality, semantics_label
ndonkoHenri Mar 14, 2024
8d4d306
SelectionArea: on_change
ndonkoHenri Mar 14, 2024
c8307bf
ListView: semantic_child_count, clipBehavior
ndonkoHenri Mar 14, 2024
b7fe87d
FAB: colors, elevations, enable_feedback, clip_behavior
ndonkoHenri Mar 14, 2024
6cf8e83
ElevatedButton: clip_behavior,
ndonkoHenri Mar 14, 2024
a859697
SnackBar: clip_behavior, shape, on_visible
ndonkoHenri Mar 14, 2024
c9bd7ba
Slider: interaction, overlay_color
ndonkoHenri Mar 14, 2024
092fdf8
IconButton: alignment, disabled_color, enable_feedback, hover_color, …
ndonkoHenri Mar 14, 2024
04c2d6f
Radio: focus_color, hover_color, overlay_color, splash_radius, toggle…
ndonkoHenri Mar 14, 2024
00d541f
GridView: semantic_child_count, clipBehavior
ndonkoHenri Mar 14, 2024
f1083a3
Tabs: divider_height, enable_feedback, indicator_thickness
ndonkoHenri Mar 14, 2024
ea6fecc
Cleanup + Code Reformat
ndonkoHenri Mar 14, 2024
1159733
Fix CI: import enum
ndonkoHenri Mar 14, 2024
aa82183
Reformat: replace is_dataclass with isinstance
ndonkoHenri Mar 14, 2024
8ca57bf
add kwargs in run_task
ndonkoHenri Mar 14, 2024
c973ef2
Tabs: secondary
ndonkoHenri Mar 14, 2024
2adc9e9
Fix CI: typing error
ndonkoHenri Mar 14, 2024
7f89509
Option: alignment, on_click
ndonkoHenri Mar 15, 2024
b78bc06
Dropdown: hint_content, icon_content, elevation, item_height, max_men…
ndonkoHenri Mar 15, 2024
9958867
Cleanup
ndonkoHenri Mar 15, 2024
f9384d7
PopupMenuButton: clip_behavior, splash_radius, elevation, enable_feed…
ndonkoHenri Mar 16, 2024
08fdce0
Dropdown: remove dense getter and setter
ndonkoHenri Mar 16, 2024
7ab47a2
PopupMenuItem: padding, height
ndonkoHenri Mar 18, 2024
e1438dc
Page: locale_configuration
ndonkoHenri Mar 18, 2024
aed623d
Merge branch 'main' into controls-enhancement
ndonkoHenri Mar 18, 2024
386a896
Card: rename NORMAL to ELEVATED
ndonkoHenri Mar 20, 2024
faf1444
CircleAvatar: rename foreground_image_url and background_image_url to…
ndonkoHenri Mar 20, 2024
80d70dd
UrlTarget enum
ndonkoHenri Mar 21, 2024
e2b74ca
PopupMenuButton: reintroduce on_cancelled, but as deprecated
ndonkoHenri Mar 21, 2024
65f7e90
Reformat: created control.attrColor to ease color parsing
ndonkoHenri Mar 21, 2024
e4b00d2
ListView+GridView: cache_extent
ndonkoHenri Mar 21, 2024
7ceb22c
AppBar: elevation_on_scroll, shadow_color, surface_tint_color, clip_b…
ndonkoHenri Mar 21, 2024
0c7f83d
Reformat: avoid spamming warnings
ndonkoHenri Mar 21, 2024
03d5e81
TextField: fill_color, hover_color
ndonkoHenri Mar 22, 2024
73ce01c
Dropdown: fill_color
ndonkoHenri Mar 22, 2024
0d83cee
Fix failing CI: omitted parenthesis
ndonkoHenri Mar 22, 2024
39dd396
Locale: script_code
ndonkoHenri Mar 22, 2024
f2ee6d1
Locale: rename used_locale to default_locale
ndonkoHenri Mar 23, 2024
c87ab1b
CupertinoBottomSheet default values
ndonkoHenri Mar 23, 2024
9340e9b
CupertinoBottomSheet: check the type of content control
ndonkoHenri Mar 23, 2024
c91c73e
Locale: rename default_locale to current_locale :)
ndonkoHenri Mar 23, 2024
28366fe
TimePicker.value: avoid splitting None
ndonkoHenri Mar 25, 2024
1bab980
AlertDialog: alignment, icon_color, scrollable, content_text_style, …
ndonkoHenri Mar 28, 2024
aca3b2f
AppBar: toolbar_opacity, title_text_style, toolbar_text_style,shape
ndonkoHenri Mar 28, 2024
e53d7bb
parseMouseCursor: defaultMouseCursor
ndonkoHenri Mar 28, 2024
6bccaff
Checkbox: visual_density, mouse_cursor
ndonkoHenri Mar 28, 2024
3f92df2
Banner: content_text_style, margin, elevation, divider_color, shadow_…
ndonkoHenri Mar 28, 2024
3153dba
CupertinoListTile: leading_size, leading_to_title
ndonkoHenri Mar 28, 2024
7ad9c52
Chip: surface_tint_color, color, click_elevation, clip_behavior, visu…
ndonkoHenri Mar 28, 2024
097f818
CupertinoRadio: toggleable, focus_color
ndonkoHenri Mar 28, 2024
aedcbf1
CupertinoSegmentedButton: click_color
ndonkoHenri Mar 28, 2024
ee02266
CupertinoSwitch: on_label_color, off_label_color
ndonkoHenri Mar 28, 2024
88a5d61
Switch: hover_color, splash_radius, overlay_color, track_outline_colo…
ndonkoHenri Mar 28, 2024
85c128d
Snackbar: action_overflow_threshold
ndonkoHenri Mar 28, 2024
17d652e
Tabs: is_secondary, mouseCursor, clipBehavior
ndonkoHenri Mar 28, 2024
43cb566
Slider: mouse_cursor, secondary_track_value, secondary_active_color
ndonkoHenri Mar 28, 2024
5b084a9
PopupMenuItem: mouse_cursor
ndonkoHenri Mar 28, 2024
4189d7c
NavigationDrawerDestination: bgcolor
ndonkoHenri Mar 28, 2024
e5869ce
NavigationDestination: bgcolor
ndonkoHenri Mar 28, 2024
df240ad
NavigationBar: overlay_color
ndonkoHenri Mar 28, 2024
e5cc38c
CupertinoTimerPicker: item_extent
ndonkoHenri Mar 28, 2024
1de76d6
ExpansionTile: dense, enable_feedback, visual_density
ndonkoHenri Mar 28, 2024
a1f6ac3
SearchBar: keyboard_type, view_surface_tint_color, autofocus
ndonkoHenri Mar 28, 2024
3b4cb65
NavigationRail: (un)selected_label_text_style | Destination: indicato…
ndonkoHenri Mar 28, 2024
5008f82
IconButton: mouse_cursor, visual_density
ndonkoHenri Mar 28, 2024
b646785
Radio: mouse_cursor
ndonkoHenri Mar 28, 2024
efd37fd
FAB: mouse_cursor
ndonkoHenri Mar 28, 2024
1ae31ba
DataTable: clip_behavior
ndonkoHenri Mar 28, 2024
e310648
DatePicker: on_entry_mode_change
ndonkoHenri Mar 28, 2024
0052708
ListTile: title_alignment, icon_color, text_color, shape, visual_dens…
ndonkoHenri Mar 28, 2024
862810f
TimePicker: on_entry_mode_change
ndonkoHenri Mar 28, 2024
dceaa26
Cleanup
ndonkoHenri Mar 28, 2024
5a2882b
Fix failing CI concerning circular import
ndonkoHenri Mar 28, 2024
f216bfc
Cleanup
ndonkoHenri Apr 1, 2024
83432db
Remove None from enums
ndonkoHenri Apr 1, 2024
c133ee8
Merge branch 'main' into controls-enhancement
FeodorFitsner Apr 1, 2024
ae01358
Updated rive package version
FeodorFitsner Apr 1, 2024
266cf63
Added Rive to CI
FeodorFitsner Apr 1, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ for:
python3 ci/patch_pubspec.py packages/flet_audio/pubspec.yaml $PKG_VER
python3 ci/patch_pubspec.py packages/flet_audio_recorder/pubspec.yaml $PKG_VER
python3 ci/patch_pubspec.py packages/flet_lottie/pubspec.yaml $PKG_VER
python3 ci/patch_pubspec.py packages/flet_rive/pubspec.yaml $PKG_VER
python3 ci/patch_pubspec.py packages/flet_video/pubspec.yaml $PKG_VER
python3 ci/patch_pubspec.py packages/flet_webview/pubspec.yaml $PKG_VER

Expand All @@ -142,6 +143,10 @@ for:
dart pub publish --force || exit 1
cd $APPVEYOR_BUILD_FOLDER

cd packages/flet_rive
dart pub publish --force || exit 1
cd $APPVEYOR_BUILD_FOLDER

cd packages/flet_video
dart pub publish --force || exit 1
cd $APPVEYOR_BUILD_FOLDER
Expand Down Expand Up @@ -169,6 +174,10 @@ for:
dart pub publish --dry-run
cd $APPVEYOR_BUILD_FOLDER

cd packages/flet_rive
dart pub publish --dry-run
cd $APPVEYOR_BUILD_FOLDER

cd packages/flet_video
dart pub publish --dry-run
cd $APPVEYOR_BUILD_FOLDER
Expand Down
13 changes: 13 additions & 0 deletions client/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -300,6 +300,11 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.4"
flutter_localizations:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
flutter_markdown:
dependency: transitive
description:
Expand Down Expand Up @@ -392,6 +397,14 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
intl:
dependency: transitive
description:
name: intl
sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d"
url: "https://pub.dev"
source: hosted
version: "0.18.1"
js:
dependency: transitive
description:
Expand Down
26 changes: 22 additions & 4 deletions packages/flet/lib/src/controls/alert_dialog.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import '../flet_control_backend.dart';
import '../models/control.dart';
import '../utils/alignment.dart';
import '../utils/borders.dart';
import '../utils/colors.dart';
import '../utils/edge_insets.dart';
import '../utils/text.dart';
import 'create_control.dart';
import 'cupertino_alert_dialog.dart';
import 'error.dart';
Expand Down Expand Up @@ -49,10 +49,15 @@ class _AlertDialogControlState extends State<AlertDialogControl>
var actionCtrls =
widget.children.where((c) => c.name == "action" && c.isVisible);
final actionsAlignment = parseMainAxisAlignment(
widget.control, "actionsAlignment", MainAxisAlignment.start);
widget.control, "actionsAlignment", MainAxisAlignment.end);
if (titleCtrls.isEmpty && contentCtrls.isEmpty && actionCtrls.isEmpty) {
return const ErrorControl("AlertDialog does not have any content.");
}
var clipBehavior = Clip.values.firstWhere(
(e) =>
e.name.toLowerCase() ==
widget.control.attrString("clipBehavior", "")!.toLowerCase(),
orElse: () => Clip.none);

return AlertDialog(
title: titleCtrls.isNotEmpty
Expand All @@ -76,13 +81,26 @@ class _AlertDialogControlState extends State<AlertDialogControl>
semanticLabel: widget.control.attrString("semanticsLabel"),
insetPadding: parseEdgeInsets(widget.control, "insetPadding") ??
const EdgeInsets.symmetric(horizontal: 40.0, vertical: 24.0),
backgroundColor: HexColor.fromString(
Theme.of(context), widget.control.attrString("bgcolor", "")!),
iconPadding: parseEdgeInsets(widget.control, "iconPadding"),
backgroundColor: widget.control.attrColor("bgcolor", context),
ndonkoHenri marked this conversation as resolved.
Show resolved Hide resolved
buttonPadding: parseEdgeInsets(widget.control, "actionButtonPadding"),
surfaceTintColor: widget.control.attrColor("surfaceTintColor", context),
shadowColor: widget.control.attrColor("shadowColor", context),
elevation: widget.control.attrDouble("elevation"),
clipBehavior: clipBehavior,
icon: iconCtrls.isNotEmpty
? createControl(widget.control, iconCtrls.first.id, disabled,
parentAdaptive: adaptive)
: null,
iconColor: widget.control.attrColor("iconColor", context),
scrollable: widget.control.attrBool("scrollable", false)!,
actionsOverflowButtonSpacing:
widget.control.attrDouble("actionsOverflowButtonSpacing"),
alignment: parseAlignment(widget.control, "alignment"),
contentTextStyle:
parseTextStyle(Theme.of(context), widget.control, "contentTextStyle"),
titleTextStyle:
parseTextStyle(Theme.of(context), widget.control, "titleTextStyle"),
);
}

Expand Down
40 changes: 35 additions & 5 deletions packages/flet/lib/src/controls/app_bar.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
import 'package:collection/collection.dart';
import 'package:flutter/material.dart';

import '../models/control.dart';
import '../utils/colors.dart';
import '../utils/borders.dart';
import '../utils/text.dart';
import '../utils/theme.dart';
import 'create_control.dart';
import 'cupertino_app_bar.dart';
Expand Down Expand Up @@ -50,13 +52,27 @@ class AppBarControl extends StatelessWidget

var leadingWidth = control.attrDouble("leadingWidth");
var elevation = control.attrDouble("elevation");
var toolbarOpacity = control.attrDouble("toolbarOpacity", 1)!;
var centerTitle = control.attrBool("centerTitle", false)!;
var automaticallyImplyLeading =
control.attrBool("automaticallyImplyLeading", true)!;
var color = HexColor.fromString(
Theme.of(context), control.attrString("color", "")!);
var bgcolor = HexColor.fromString(
Theme.of(context), control.attrString("bgcolor", "")!);
var color = control.attrColor("color", context);
var bgcolor = control.attrColor("bgcolor", context);
var shadowColor = control.attrColor("shadowColor", context);
var surfaceTintColor = control.attrColor("surfaceTintColor", context);
var elevationOnScroll = control.attrDouble("elevationOnScroll");
var forceMaterialTransparency =
control.attrBool("forceMaterialTransparency", false)!;
var isSecondary = control.attrBool("isSecondary", false)!;
var excludeHeaderSemantics =
control.attrBool("excludeHeaderSemantics", false)!;
var titleSpacing = control.attrDouble("titleSpacing");

var clipBehavior = Clip.values.firstWhereOrNull(
(e) =>
e.name.toLowerCase() ==
control.attrString("clipBehavior", "")!.toLowerCase(),
);

return AppBar(
leading: leadingCtrls.isNotEmpty
Expand All @@ -81,6 +97,20 @@ class AppBarControl extends StatelessWidget
systemOverlayStyle: Theme.of(context)
.extension<SystemUiOverlayStyleTheme>()
?.systemUiOverlayStyle,
shadowColor: shadowColor,
surfaceTintColor: surfaceTintColor,
scrolledUnderElevation: elevationOnScroll,
forceMaterialTransparency: forceMaterialTransparency,
primary: !isSecondary,
titleSpacing: titleSpacing,
excludeHeaderSemantics: excludeHeaderSemantics,
clipBehavior: clipBehavior,
titleTextStyle:
parseTextStyle(Theme.of(context), control, "titleTextStyle"),
shape: parseOutlinedBorder(control, "shape"),
toolbarOpacity: toolbarOpacity,
toolbarTextStyle:
parseTextStyle(Theme.of(context), control, "toolbarTextStyle"),
);
});
}
Expand Down
7 changes: 2 additions & 5 deletions packages/flet/lib/src/controls/badge.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import 'package:flutter/material.dart';

import '../models/control.dart';
import '../utils/alignment.dart';
import '../utils/colors.dart';
import '../utils/edge_insets.dart';
import '../utils/text.dart';
import '../utils/transforms.dart';
Expand Down Expand Up @@ -40,11 +39,9 @@ class BadgeControl extends StatelessWidget {

var offsetDetails = parseOffset(control, "offset");

var bgColor = HexColor.fromString(
Theme.of(context), control.attrString("bgColor", "")!);
var bgColor = control.attrColor("bgcolor", context);

var textColor = HexColor.fromString(
Theme.of(context), control.attrString("textColor", "")!);
var textColor = control.attrColor("textColor", context);

bool isLabelVisible = control.attrBool("isLabelVisible", true)!;
var largeSize = control.attrDouble("largeSize");
Expand Down
20 changes: 16 additions & 4 deletions packages/flet/lib/src/controls/banner.dart
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import 'package:flutter/material.dart';

import '../flet_control_backend.dart';
import '../models/control.dart';
import '../utils/colors.dart';
import '../utils/edge_insets.dart';
import '../utils/text.dart';
import 'create_control.dart';
import 'error.dart';

Expand All @@ -13,6 +14,7 @@ class BannerControl extends StatefulWidget {
final bool parentDisabled;
final bool? parentAdaptive;
final Widget? nextChild;
final FletControlBackend backend;

const BannerControl(
{super.key,
Expand All @@ -21,7 +23,8 @@ class BannerControl extends StatefulWidget {
required this.children,
required this.parentDisabled,
required this.parentAdaptive,
required this.nextChild});
required this.nextChild,
required this.backend});

@override
State<BannerControl> createState() => _BannerControlState();
Expand Down Expand Up @@ -59,8 +62,17 @@ class _BannerControlState extends State<BannerControl> {
parentAdaptive: widget.parentAdaptive))
.toList(),
forceActionsBelow: widget.control.attrBool("forceActionsBelow", false)!,
backgroundColor: HexColor.fromString(
Theme.of(context), widget.control.attrString("bgcolor", "")!),
backgroundColor: widget.control.attrColor("bgcolor", context),
contentTextStyle:
parseTextStyle(Theme.of(context), widget.control, "contentTextStyle"),
surfaceTintColor: widget.control.attrColor("surfaceTintColor", context),
shadowColor: widget.control.attrColor("shadowColor", context),
dividerColor: widget.control.attrColor("dividerColor", context),
elevation: widget.control.attrDouble("elevation"),
margin: parseEdgeInsets(widget.control, "margin"),
onVisible: () {
widget.backend.triggerControlEvent(widget.control.id, "visible");
},
);
}

Expand Down
17 changes: 6 additions & 11 deletions packages/flet/lib/src/controls/barchart.dart
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import '../models/control.dart';
import '../utils/animations.dart';
import '../utils/borders.dart';
import '../utils/charts.dart';
import '../utils/colors.dart';
import '../utils/gradient.dart';
import '../utils/text.dart';
import 'charts.dart';
Expand Down Expand Up @@ -205,8 +204,7 @@ class _BarChartControlState extends State<BarChartControl> {

var chart = BarChart(
BarChartData(
backgroundColor: HexColor.fromString(
Theme.of(context), widget.control.attrString("bgcolor", "")!),
backgroundColor: widget.control.attrColor("bgcolor", context),
minY: widget.control.attrDouble("miny"),
maxY: widget.control.attrDouble("maxy"),
baselineY: widget.control.attrDouble("baseliney"),
Expand All @@ -231,8 +229,8 @@ class _BarChartControlState extends State<BarChartControl> {
barTouchData: BarTouchData(
enabled: interactive,
touchTooltipData: BarTouchTooltipData(
tooltipBgColor: HexColor.fromString(Theme.of(context),
widget.control.attrString("tooltipBgcolor", "")!),
tooltipBgColor:
widget.control.attrColor("tooltipBgColor", context),
getTooltipItem: (group, groupIndex, rod, rodIndex) {
var dp = viewModel.barGroups[groupIndex].barRods[rodIndex];

Expand Down Expand Up @@ -333,16 +331,14 @@ class _BarChartControlState extends State<BarChartControl> {
bool interactiveChart, BarChartRodViewModel rodViewModel) {
var bgFromY = rodViewModel.control.attrDouble("bgFromY");
var bgToY = rodViewModel.control.attrDouble("bgToY");
var bgColor = HexColor.fromString(
theme, rodViewModel.control.attrString("bgColor", "")!);
var bgColor = rodViewModel.control.attrColor("bgColor", context);
var bgGradient = parseGradient(theme, rodViewModel.control, "bgGradient");

return BarChartRodData(
fromY: rodViewModel.control.attrDouble("fromY"),
toY: rodViewModel.control.attrDouble("toY", 0)!,
width: rodViewModel.control.attrDouble("width"),
color: HexColor.fromString(
theme, rodViewModel.control.attrString("color", "")!),
color: rodViewModel.control.attrColor("color", context),
gradient: parseGradient(theme, rodViewModel.control, "gradient"),
borderRadius: parseBorderRadius(rodViewModel.control, "borderRadius"),
borderSide:
Expand Down Expand Up @@ -370,8 +366,7 @@ class _BarChartControlState extends State<BarChartControl> {
return BarChartRodStackItem(
stackItemViewModel.control.attrDouble("fromY")!,
stackItemViewModel.control.attrDouble("toY", 0)!,
HexColor.fromString(
theme, stackItemViewModel.control.attrString("color", "")!)!,
stackItemViewModel.control.attrColor("color", context)!,
parseBorderSide(theme, stackItemViewModel.control, "borderSide") ??
BorderSide.none);
}
Expand Down
10 changes: 3 additions & 7 deletions packages/flet/lib/src/controls/bottom_app_bar.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import 'package:flutter/material.dart';

import '../models/control.dart';
import '../utils/colors.dart';
import '../utils/edge_insets.dart';
import 'create_control.dart';
import 'error.dart';
Expand Down Expand Up @@ -65,12 +64,9 @@ class _BottomAppBarControlState extends State<BottomAppBarControl>
height: widget.control.attrDouble("height"),
elevation: elevation,
shape: shape,
shadowColor: HexColor.fromString(
Theme.of(context), widget.control.attrString("shadowColor", "")!),
surfaceTintColor: HexColor.fromString(Theme.of(context),
widget.control.attrString("surfaceTintColor", "")!),
color: HexColor.fromString(
Theme.of(context), widget.control.attrString("bgColor", "")!),
shadowColor: widget.control.attrColor("shadowColor", context),
surfaceTintColor: widget.control.attrColor("surfaceTintColor", context),
color: widget.control.attrColor("bgColor", context),
notchMargin: widget.control.attrDouble("notchMargin", 4.0)!,
child: contentCtrls.isNotEmpty
? createControl(widget.control, contentCtrls.first.id, disabled,
Expand Down
4 changes: 1 addition & 3 deletions packages/flet/lib/src/controls/bottom_sheet.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import 'package:flutter/material.dart';

import '../flet_control_backend.dart';
import '../models/control.dart';
import '../utils/colors.dart';
import 'create_control.dart';
import 'error.dart';

Expand Down Expand Up @@ -89,8 +88,7 @@ class _BottomSheetControlState extends State<BottomSheetControl> {
return content;
},
isDismissible: dismissible,
backgroundColor: HexColor.fromString(Theme.of(context),
widget.control.attrString("bgColor", "")!),
backgroundColor: widget.control.attrColor("bgColor", context),
elevation: widget.control.attrDouble("elevation"),
isScrollControlled: isScrollControlled,
enableDrag: enableDrag,
Expand Down
9 changes: 2 additions & 7 deletions packages/flet/lib/src/controls/canvas.dart
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import '../models/control.dart';
import '../models/control_tree_view_model.dart';
import '../utils/alignment.dart';
import '../utils/borders.dart';
import '../utils/colors.dart';
import '../utils/dash_path.dart';
import '../utils/drawing.dart';
import '../utils/numbers.dart';
Expand Down Expand Up @@ -232,9 +231,7 @@ class FletCustomPainter extends CustomPainter {
}

void drawColor(Canvas canvas, ControlTreeViewModel shape) {
var color =
HexColor.fromString(theme, shape.control.attrString("color", "")!) ??
Colors.black;
var color = shape.control.attrColor("color", context) ?? Colors.black;
var blendMode = BlendMode.values.firstWhere(
(e) =>
e.name.toLowerCase() ==
Expand Down Expand Up @@ -333,9 +330,7 @@ class FletCustomPainter extends CustomPainter {

void drawShadow(Canvas canvas, ControlTreeViewModel shape) {
var path = buildPath(json.decode(shape.control.attrString("path", "[]")!));
var color =
HexColor.fromString(theme, shape.control.attrString("color", "")!) ??
Colors.black;
var color = shape.control.attrColor("color", context) ?? Colors.black;
var elevation = shape.control.attrDouble("elevation", 0)!;
var transparentOccluder =
shape.control.attrBool("transparentOccluder", false)!;
Expand Down
Loading