logo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
use crate::{
    foundation::colorspace::Color, foundation::TargetPlatform, ui::Brightness,
    widgets::IconThemeData,
};

use super::{
    AppBarTheme, BottomAppBarTheme, BottomNavigationBarThemeData, BottomSheetThemeData,
    ButtonBarThemeData, ButtonThemeData, CardTheme, CheckboxThemeData, ChipThemeData, ColorScheme,
    DataTableThemeData, DialogTheme, DividerThemeData, ElevatedButtonThemeData,
    FloatingActionButtonThemeData, InputDecorationTheme, InteractiveInkFeatureFactory,
    MaterialBannerThemeData, MaterialColor, MaterialTapTargetSize, NavigationRailThemeData,
    OutlinedButtonThemeData, PageTransitionsTheme, PopupMenuThemeData, ProgressIndicatorThemeData,
    RadioThemeData, ScrollbarThemeData, SliderThemeData, SnackBarThemeData, SwitchThemeData,
    TabBarTheme, TextButtonThemeData, TextSelectionThemeData, TextTheme, TimePickerThemeData,
    ToggleButtonsThemeData, TooltipThemeData, Typography, VisualDensity,
};

// copyWith({Brightness? brightness, VisualDensity? visualDensity, Color? primaryColor, Brightness? primaryColorBrightness, Color? primaryColorLight, Color? primaryColorDark, Color? accentColor, Brightness? accentColorBrightness, Color? canvasColor, Color? shadowColor, Color? scaffoldBackgroundColor, Color? bottomAppBarColor, Color? cardColor, Color? dividerColor, Color? focusColor, Color? hoverColor, Color? highlightColor, Color? splashColor, InteractiveInkFeatureFactory? splashFactory, Color? selectedRowColor, Color? unselectedWidgetColor, Color? disabledColor, ButtonThemeData? buttonTheme, ToggleButtonsThemeData? toggleButtonsTheme, Color? buttonColor, Color? secondaryHeaderColor, Color? textSelectionColor, Color? cursorColor, Color? textSelectionHandleColor, Color? backgroundColor, Color? dialogBackgroundColor, Color? indicatorColor, Color? hintColor, Color? errorColor, Color? toggleableActiveColor, TextTheme? textTheme, TextTheme? primaryTextTheme, TextTheme? accentTextTheme, InputDecorationTheme? inputDecorationTheme, IconThemeData? iconTheme, IconThemeData? primaryIconTheme, IconThemeData? accentIconTheme, SliderThemeData? sliderTheme, TabBarTheme? tabBarTheme, TooltipThemeData? tooltipTheme, CardTheme? cardTheme, ChipThemeData? chipTheme, TargetPlatform? platform, MaterialTapTargetSize? materialTapTargetSize, bool? applyElevationOverlayColor, PageTransitionsTheme? pageTransitionsTheme, AppBarTheme? appBarTheme, ScrollbarThemeData? scrollbarTheme, BottomAppBarTheme? bottomAppBarTheme, ColorScheme? colorScheme, DialogTheme? dialogTheme, FloatingActionButtonThemeData? floatingActionButtonTheme, NavigationRailThemeData? navigationRailTheme, Typography? typography, NoDefaultCupertinoThemeData? cupertinoOverrideTheme, SnackBarThemeData? snackBarTheme, BottomSheetThemeData? bottomSheetTheme, PopupMenuThemeData? popupMenuTheme, MaterialBannerThemeData? bannerTheme, DividerThemeData? dividerTheme, ButtonBarThemeData? buttonBarTheme, BottomNavigationBarThemeData? bottomNavigationBarTheme, TimePickerThemeData? timePickerTheme, TextButtonThemeData? textButtonTheme, ElevatedButtonThemeData? elevatedButtonTheme, OutlinedButtonThemeData? outlinedButtonTheme, TextSelectionThemeData? textSelectionTheme, DataTableThemeData? dataTableTheme, CheckboxThemeData? checkboxTheme, RadioThemeData? radioTheme, SwitchThemeData? switchTheme, ProgressIndicatorThemeData? progressIndicatorTheme, bool? fixTextFieldOutlineLabel, bool? useTextSelectionTheme}) -> ThemeData
// Creates a copy of this theme but with the given fields replaced with the new values.
//
// debugFillProperties(DiagnosticPropertiesBuilder properties) -> void
// Add additional properties associated with the node.

pub struct ThemeData {
    pub brightness: Brightness,
    pub visual_density: VisualDensity,
    pub primary_swatch: MaterialColor,
    pub primary_color: Color,
    pub primary_color_brightness: Brightness,
    pub primary_color_light: Color,
    pub primary_color_dark: Color,
    // @Deprecated("Use colorScheme.secondary instead.")
    pub accent_color: Color,
    // @Deprecated("No longer used by the framework, please remove any reference to it.")
    pub accent_color_brightness: Brightness,
    pub canvas_color: Color,
    pub shadow_color: Color,
    pub scaffold_background_color: Color,
    pub bottom_app_bar_color: Color,
    pub card_color: Color,
    pub divider_color: Color,
    pub focus_color: Color,
    pub hover_color: Color,
    pub highlight_color: Color,
    pub splash_color: Color,
    pub splash_factory: InteractiveInkFeatureFactory,
    pub selected_row_color: Color,
    pub unselected_widget_color: Color,
    pub disabled_color: Color,
    // @Deprecated("No longer used by the framework, please remove any reference to it.")
    pub button_color: Color,
    pub button_theme: ButtonThemeData,
    pub toggle_buttons_theme: ToggleButtonsThemeData,
    pub secondary_header_color: Color,
    // @Deprecated("Use TextSelectionThemeData.selectionColor instead.")
    pub text_selection_color: Color,
    // @Deprecated("Use TextSelectionThemeData.cursorColor instead.")
    pub cursor_color: Color,
    // @Deprecated("Use TextSelectionThemeData.selectionHandleColor instead.")
    pub text_selection_handle_color: Color,
    pub background_color: Color,
    pub dialog_background_color: Color,
    pub indicator_color: Color,
    pub hint_color: Color,
    pub error_color: Color,
    pub toggleable_active_color: Color,
    pub font_family: String,
    pub text_theme: TextTheme,
    pub primary_text_theme: TextTheme,
    // @Deprecated("No longer used by the framework, please remove any reference to it.")
    pub accent_text_theme: TextTheme,
    pub input_decoration_theme: InputDecorationTheme,
    pub icon_theme: IconThemeData,
    pub primary_icon_theme: IconThemeData,
    // @Deprecated("No longer used by the framework, please remove any reference to it.")
    pub accent_icon_theme: IconThemeData,
    pub slider_theme: SliderThemeData,
    pub tab_bar_theme: TabBarTheme,
    pub tooltip_theme: TooltipThemeData,
    pub card_theme: CardTheme,
    pub chip_theme: ChipThemeData,
    pub platform: TargetPlatform,
    pub material_tap_target_size: MaterialTapTargetSize,
    pub apply_elevation_overlay_color: bool,
    pub page_transitions_theme: PageTransitionsTheme,
    pub app_bar_theme: AppBarTheme,
    pub scrollbar_theme: ScrollbarThemeData,
    pub bottom_app_bar_theme: BottomAppBarTheme,
    pub color_scheme: ColorScheme,
    pub dialog_theme: DialogTheme,
    pub floating_action_button_theme: FloatingActionButtonThemeData,
    pub navigation_rail_theme: NavigationRailThemeData,
    pub typography: Typography,
    pub snack_bar_theme: SnackBarThemeData,
    pub bottom_sheet_theme: BottomSheetThemeData,
    pub popup_menu_theme: PopupMenuThemeData,
    pub banner_theme: MaterialBannerThemeData,
    pub divider_theme: DividerThemeData,
    pub button_bar_theme: ButtonBarThemeData,
    pub bottom_navigation_bar_theme: BottomNavigationBarThemeData,
    pub time_picker_theme: TimePickerThemeData,
    pub text_button_theme: TextButtonThemeData,
    pub elevated_button_theme: ElevatedButtonThemeData,
    pub outlined_button_theme: OutlinedButtonThemeData,
    pub text_selection_theme: TextSelectionThemeData,
    pub data_table_theme: DataTableThemeData,
    pub checkbox_theme: CheckboxThemeData,
    pub radio_theme: RadioThemeData,
    pub switch_theme: SwitchThemeData,
    pub progress_indicator_theme: ProgressIndicatorThemeData,
    // @Deprecated("This "fix" is now enabled by default.")
    pub fix_text_field_outline_label: bool,
    // @Deprecated("No longer used by the framework, please remove any reference to it.")
    pub use_text_selection_theme: bool,
}

impl Default for ThemeData {
    fn default() -> Self {
        Self {
            brightness: Default::default(),
            visual_density: Default::default(),
            primary_swatch: Default::default(),
            primary_color: Default::default(),
            primary_color_brightness: Default::default(),
            primary_color_light: Default::default(),
            primary_color_dark: Default::default(),
            accent_color: Default::default(),
            accent_color_brightness: Default::default(),
            canvas_color: Default::default(),
            shadow_color: Default::default(),
            scaffold_background_color: Default::default(),
            bottom_app_bar_color: Default::default(),
            card_color: Default::default(),
            divider_color: Default::default(),
            focus_color: Default::default(),
            hover_color: Default::default(),
            highlight_color: Default::default(),
            splash_color: Default::default(),
            splash_factory: Default::default(),
            selected_row_color: Default::default(),
            unselected_widget_color: Default::default(),
            disabled_color: Default::default(),
            button_color: Default::default(),
            button_theme: Default::default(),
            toggle_buttons_theme: Default::default(),
            secondary_header_color: Default::default(),
            text_selection_color: Default::default(),
            cursor_color: Default::default(),
            text_selection_handle_color: Default::default(),
            background_color: Default::default(),
            dialog_background_color: Default::default(),
            indicator_color: Default::default(),
            hint_color: Default::default(),
            error_color: Default::default(),
            toggleable_active_color: Default::default(),
            font_family: Default::default(),
            text_theme: Default::default(),
            primary_text_theme: Default::default(),
            accent_text_theme: Default::default(),
            input_decoration_theme: Default::default(),
            icon_theme: Default::default(),
            primary_icon_theme: Default::default(),
            accent_icon_theme: Default::default(),
            slider_theme: Default::default(),
            tab_bar_theme: Default::default(),
            tooltip_theme: Default::default(),
            card_theme: Default::default(),
            chip_theme: Default::default(),
            platform: Default::default(),
            material_tap_target_size: Default::default(),
            apply_elevation_overlay_color: Default::default(),
            page_transitions_theme: Default::default(),
            app_bar_theme: Default::default(),
            scrollbar_theme: Default::default(),
            bottom_app_bar_theme: Default::default(),
            color_scheme: Default::default(),
            dialog_theme: Default::default(),
            floating_action_button_theme: Default::default(),
            navigation_rail_theme: Default::default(),
            typography: Default::default(),
            snack_bar_theme: Default::default(),
            bottom_sheet_theme: Default::default(),
            popup_menu_theme: Default::default(),
            banner_theme: Default::default(),
            divider_theme: Default::default(),
            button_bar_theme: Default::default(),
            bottom_navigation_bar_theme: Default::default(),
            time_picker_theme: Default::default(),
            text_button_theme: Default::default(),
            elevated_button_theme: Default::default(),
            outlined_button_theme: Default::default(),
            text_selection_theme: Default::default(),
            data_table_theme: Default::default(),
            checkbox_theme: Default::default(),
            radio_theme: Default::default(),
            switch_theme: Default::default(),
            progress_indicator_theme: Default::default(),
            fix_text_field_outline_label: Default::default(),
            use_text_selection_theme: Default::default(),
        }
    }
}