Fix missing icon props in button styleFrom
methods (#154821)
Fixes [Add missing icon props in button `styleFrom` methods.](https://github.com/flutter/flutter/issues/154798)
### Description
Add missing icon propers in the following widgets:
- `ElevatedButton.styleFrom` (missing `iconSize`)
- `FilledButton.styleFrom` (missing `iconSize`)
- `OutlinedButton.styleFrom` (missing `iconSize`)
- `TextButton.styleFrom` (missing `iconSize`)
- `MenuItemButton.styleFrom` (missing `iconSize` and `disabledIconColor`)
- `SubmenuButton.styleFrom` (missing `iconSize` and `disabledIconColor`)
- `SegmentedButton.styleFrom` (missing `iconSize`, `iconColor`, and `disabledIconColor`)
### Code sample
<details>
<summary>expand to view the code sample</summary>
```dart
import 'package:flutter/material.dart';
enum Calendar { day, week, month, year }
void main() => runApp(const MyApp());
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
Calendar calendarView = Calendar.week;
bool isEnabled = true;
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
body: Center(
child: Column(
spacing: 10.0,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ElevatedButton.icon(
style: ElevatedButton.styleFrom(
iconSize: 30,
iconColor: Colors.red,
disabledIconColor: Colors.red.withValues(alpha: 0.5),
),
onPressed: isEnabled ? () {} : null,
icon: const Icon(Icons.add),
label: const Text('ElevatedButton'),
),
FilledButton.icon(
style: ElevatedButton.styleFrom(
iconSize: 30,
iconColor: Colors.red,
disabledIconColor: Colors.red.withValues(alpha: 0.5),
),
onPressed: isEnabled ? () {} : null,
icon: const Icon(Icons.add),
label: const Text('FilledButton'),
),
FilledButton.tonalIcon(
style: ElevatedButton.styleFrom(
iconSize: 30,
iconColor: Colors.red,
disabledIconColor: Colors.red.withValues(alpha: 0.5),
),
onPressed: isEnabled ? () {} : null,
icon: const Icon(Icons.add),
label: const Text('Add'),
),
OutlinedButton.icon(
style: ElevatedButton.styleFrom(
iconSize: 30,
iconColor: Colors.red,
disabledIconColor: Colors.red.withValues(alpha: 0.5),
),
onPressed: isEnabled ? () {} : null,
icon: const Icon(Icons.add),
label: const Text('OutlinedButton'),
),
TextButton.icon(
style: ElevatedButton.styleFrom(
iconSize: 30,
iconColor: Colors.red,
disabledIconColor: Colors.red.withValues(alpha: 0.5),
),
onPressed: isEnabled ? () {} : null,
icon: const Icon(Icons.add),
label: const Text('TextButton'),
),
SizedBox(
width: 200,
child: MenuItemButton(
style: MenuItemButton.styleFrom(
iconSize: 30,
iconColor: Colors.red,
disabledIconColor: Colors.red.withValues(alpha: 0.5),
),
trailingIcon: const Icon(Icons.arrow_forward_ios),
onPressed: isEnabled ? () {} : null,
child: const Text('MenuItemButton'),
),
),
SizedBox(
width: 200,
child: SubmenuButton(
style: SubmenuButton.styleFrom(
iconSize: 30,
iconColor: Colors.red,
disabledIconColor: Colors.red.withValues(alpha: 0.5),
),
trailingIcon: const Icon(Icons.arrow_forward_ios),
menuChildren: <Widget>[
if (isEnabled) const Text('Item'),
],
child: const Text('SubmenuButton'),
),
),
SegmentedButton<Calendar>(
style: SegmentedButton.styleFrom(
iconColor: Colors.red,
iconSize: 30,
disabledIconColor: Colors.red.withValues(alpha: 0.5),
),
segments: const <ButtonSegment<Calendar>>[
ButtonSegment<Calendar>(
value: Calendar.day,
label: Text('Day'),
icon: Icon(Icons.calendar_view_day)),
ButtonSegment<Calendar>(
value: Calendar.week,
label: Text('Week'),
icon: Icon(Icons.calendar_view_week)),
ButtonSegment<Calendar>(
value: Calendar.month,
label: Text('Month'),
icon: Icon(Icons.calendar_view_month)),
ButtonSegment<Calendar>(
value: Calendar.year,
label: Text('Year'),
icon: Icon(Icons.calendar_today)),
],
selected: <Calendar>{calendarView},
onSelectionChanged:
isEnabled ? (Set<Calendar> newSelection) {} : null,
)
],
),
),
floatingActionButton: FloatingActionButton.extended(
onPressed: () {
setState(() {
isEnabled = !isEnabled;
});
},
label: Text(isEnabled ? 'Enabled' : 'Disabled'),
),
),
);
}
}
```
</details>
### Preview (Customized using icon props in `styleFrom` methods)
<img width="838" alt="Screenshot 2024-09-09 at 16 27 19" src="https://github.com/user-attachments/assets/551d328b-307f-4f63-b0e8-1358a12877f9">