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
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
#![allow(unused_variables)]
#![allow(dead_code)]
use crate::{
elements::{Element, NoneElement},
ui::Size,
};
mod enums;
pub use self::enums::*;
mod action;
pub use self::action::*;
mod align;
pub use self::align::*;
mod build_context;
pub use self::build_context::*;
mod center;
pub use self::center::*;
mod clip_oval;
pub use self::clip_oval::*;
mod clip_path;
pub use self::clip_path::*;
mod column;
pub use self::column::*;
mod container;
pub use self::container::*;
mod custom_paint;
pub use self::custom_paint::*;
mod custom_scroll_view;
pub use self::custom_scroll_view::*;
mod expanded;
pub use self::expanded::*;
mod fitted_box;
pub use self::fitted_box::*;
mod flexible;
pub use self::flexible::*;
mod flow;
pub use self::flow::*;
mod focus_node;
pub use self::focus_node::*;
mod form;
pub use self::form::*;
mod generate_app_title;
pub use self::generate_app_title::*;
mod gesture_detector;
pub use self::gesture_detector::*;
mod global_key;
pub use self::global_key::*;
mod grid_view;
pub use self::grid_view::*;
mod icon_data;
pub use self::icon_data::*;
mod icon_theme_data;
pub use self::icon_theme_data::*;
mod icon;
pub use self::icon::*;
mod image_icon;
pub use self::image_icon::*;
mod image;
pub use self::image::*;
mod initial_route_list_factory;
pub use self::initial_route_list_factory::*;
mod intent;
pub use self::intent::*;
mod list_view;
pub use self::list_view::*;
mod locale_list_resolution_callback;
pub use self::locale_list_resolution_callback::*;
mod locale_resolution_callback;
pub use self::locale_resolution_callback::*;
mod media_query_data;
pub use self::media_query_data::*;
mod media_query;
pub use self::media_query::*;
mod navigation_toolbar;
pub use self::navigation_toolbar::*;
mod navigator_observer;
pub use self::navigator_observer::*;
mod navigator_state;
pub use self::navigator_state::*;
mod navigator;
pub use self::navigator::*;
mod offstage;
pub use self::offstage::*;
mod opacity;
pub use self::opacity::*;
mod padding;
pub use self::padding::*;
mod page;
pub use self::page::*;
mod placeholder;
pub use self::placeholder::*;
mod pop_page_callback;
pub use self::pop_page_callback::*;
mod positioned;
pub use self::positioned::*;
mod preferred_size_widget;
pub use self::preferred_size_widget::*;
mod preferred_size;
pub use self::preferred_size::*;
mod rich_text;
pub use self::rich_text::*;
mod route_factory;
pub use self::route_factory::*;
mod route_list_factory;
pub use self::route_list_factory::*;
mod route_settings;
pub use self::route_settings::*;
mod route;
pub use self::route::*;
mod row;
pub use self::row::*;
mod rust_logo;
pub use self::rust_logo::*;
mod safe_area;
pub use self::safe_area::*;
mod scroll_behavior;
pub use self::scroll_behavior::*;
mod scroll_controller;
pub use self::scroll_controller::*;
mod scroll_position;
pub use self::scroll_position::*;
mod shortcut_activator;
pub use self::shortcut_activator::*;
mod single_child_scroll_view;
pub use self::single_child_scroll_view::*;
mod sized_box;
pub use self::sized_box::*;
mod sliver_child_builder_delegate;
pub use self::sliver_child_builder_delegate::*;
mod sliver_child_delegate;
pub use self::sliver_child_delegate::*;
mod sliver_grid;
pub use self::sliver_grid::*;
mod sliver_list;
pub use self::sliver_list::*;
mod stack;
pub use self::stack::*;
mod state;
pub use self::state::*;
mod stateful_widget;
pub use self::stateful_widget::*;
mod stream_builder;
pub use self::stream_builder::*;
mod text_editing_controller;
pub use self::text_editing_controller::*;
mod text;
pub use self::text::*;
mod transform;
pub use self::transform::*;
mod transition_builder;
pub use self::transition_builder::*;
mod transition_delegate;
pub use self::transition_delegate::*;
mod widget_builder;
pub use self::widget_builder::*;
mod widgets_app;
pub use self::widgets_app::*;
mod wrap;
pub use self::wrap::*;
pub trait Widget {
fn create_element(&self) -> Box<dyn Element>;
fn is_none(&self) -> bool {
false
}
}
#[derive(Default)]
pub struct NoneWidget;
impl PreferredSizeWidget for NoneWidget {
fn preferred_size(&self) -> Size {
Size(0.0, 0.0)
}
}
impl Widget for NoneWidget {
fn create_element(&self) -> Box<dyn Element> {
box NoneElement::default()
}
fn is_none(&self) -> bool {
true
}
}