@@ -7,6 +7,8 @@ import 'dart:ui' show lerpDouble;
7
7
import 'package:flutter/foundation.dart' ;
8
8
import 'package:flutter/rendering.dart' ;
9
9
10
+ import 'material_state.dart' ;
11
+
10
12
/// Defines default property values for descendant [FloatingActionButton]
11
13
/// widgets.
12
14
///
@@ -51,6 +53,7 @@ class FloatingActionButtonThemeData with Diagnosticable {
51
53
this .extendedIconLabelSpacing,
52
54
this .extendedPadding,
53
55
this .extendedTextStyle,
56
+ this .mouseCursor,
54
57
});
55
58
56
59
/// Color to be used for the unselected, enabled [FloatingActionButton] 's
@@ -129,6 +132,11 @@ class FloatingActionButtonThemeData with Diagnosticable {
129
132
/// The text style for an extended [FloatingActionButton] 's label.
130
133
final TextStyle ? extendedTextStyle;
131
134
135
+ /// {@macro flutter.material.RawMaterialButton.mouseCursor}
136
+ ///
137
+ /// If specified, overrides the default value of [FloatingActionButton.mouseCursor] .
138
+ final MaterialStateProperty <MouseCursor ?>? mouseCursor;
139
+
132
140
/// Creates a copy of this object with the given fields replaced with the
133
141
/// new values.
134
142
FloatingActionButtonThemeData copyWith ({
@@ -152,6 +160,7 @@ class FloatingActionButtonThemeData with Diagnosticable {
152
160
double ? extendedIconLabelSpacing,
153
161
EdgeInsetsGeometry ? extendedPadding,
154
162
TextStyle ? extendedTextStyle,
163
+ MaterialStateProperty <MouseCursor ?>? mouseCursor,
155
164
}) {
156
165
return FloatingActionButtonThemeData (
157
166
foregroundColor: foregroundColor ?? this .foregroundColor,
@@ -174,6 +183,7 @@ class FloatingActionButtonThemeData with Diagnosticable {
174
183
extendedIconLabelSpacing: extendedIconLabelSpacing ?? this .extendedIconLabelSpacing,
175
184
extendedPadding: extendedPadding ?? this .extendedPadding,
176
185
extendedTextStyle: extendedTextStyle ?? this .extendedTextStyle,
186
+ mouseCursor: mouseCursor ?? this .mouseCursor,
177
187
);
178
188
}
179
189
@@ -208,6 +218,7 @@ class FloatingActionButtonThemeData with Diagnosticable {
208
218
extendedIconLabelSpacing: lerpDouble (a? .extendedIconLabelSpacing, b? .extendedIconLabelSpacing, t),
209
219
extendedPadding: EdgeInsetsGeometry .lerp (a? .extendedPadding, b? .extendedPadding, t),
210
220
extendedTextStyle: TextStyle .lerp (a? .extendedTextStyle, b? .extendedTextStyle, t),
221
+ mouseCursor: t < 0.5 ? a? .mouseCursor : b? .mouseCursor,
211
222
);
212
223
}
213
224
@@ -232,7 +243,10 @@ class FloatingActionButtonThemeData with Diagnosticable {
232
243
extendedSizeConstraints,
233
244
extendedIconLabelSpacing,
234
245
extendedPadding,
235
- extendedTextStyle,
246
+ Object .hash (
247
+ extendedTextStyle,
248
+ mouseCursor,
249
+ ),
236
250
);
237
251
238
252
@override
@@ -263,7 +277,8 @@ class FloatingActionButtonThemeData with Diagnosticable {
263
277
&& other.extendedSizeConstraints == extendedSizeConstraints
264
278
&& other.extendedIconLabelSpacing == extendedIconLabelSpacing
265
279
&& other.extendedPadding == extendedPadding
266
- && other.extendedTextStyle == extendedTextStyle;
280
+ && other.extendedTextStyle == extendedTextStyle
281
+ && other.mouseCursor == mouseCursor;
267
282
}
268
283
269
284
@override
@@ -290,5 +305,6 @@ class FloatingActionButtonThemeData with Diagnosticable {
290
305
properties.add (DoubleProperty ('extendedIconLabelSpacing' , extendedIconLabelSpacing, defaultValue: null ));
291
306
properties.add (DiagnosticsProperty <EdgeInsetsGeometry >('extendedPadding' , extendedPadding, defaultValue: null ));
292
307
properties.add (DiagnosticsProperty <TextStyle >('extendedTextStyle' , extendedTextStyle, defaultValue: null ));
308
+ properties.add (DiagnosticsProperty <MaterialStateProperty <MouseCursor ?>>('mouseCursor' , mouseCursor, defaultValue: null ));
293
309
}
294
310
}
0 commit comments