pub struct HorizontalLayout { /* private fields */ }Expand description
This is the HorizontalLayout storage structure for the HorizontalLayout implementation.
Implementations§
Source§impl HorizontalLayout
Creates a new HorizontalLayout manager.
impl HorizontalLayout
Creates a new HorizontalLayout manager.
Sourcepub fn new(x: i32, y: i32, w: u32, h: u32, padding: PaddingConstraint) -> Self
pub fn new(x: i32, y: i32, w: u32, h: u32, padding: PaddingConstraint) -> Self
Examples found in repository?
examples/layout.rs (line 43)
33pub fn main() {
34 let sdl_context = sdl2::init().unwrap();
35 let video_subsystem = sdl_context.video().unwrap();
36 let window = video_subsystem
37 .window("pushrod-render horizontal layout demo", 400, 300)
38 .position_centered()
39 .opengl()
40 .build()
41 .unwrap();
42 let mut engine = Engine::new(400, 300, 60);
43 let mut layout = HorizontalLayout::new(20, 20, 360, 80, PaddingConstraint::new(0, 0, 0, 0, 1));
44 let mut layout2 =
45 VerticalLayout::new(250, 120, 130, 160, PaddingConstraint::new(0, 0, 0, 0, 1));
46 let mut widget1 = BaseWidget::new(make_points_origin(), make_size(0, 0));
47
48 widget1
49 .get_config()
50 .set_color(CONFIG_COLOR_BORDER, Color::RGB(0, 0, 0));
51 widget1.get_config().set_numeric(CONFIG_BORDER_WIDTH, 2);
52
53 let mut widget2 = BaseWidget::new(make_points_origin(), make_size(0, 0));
54
55 widget2
56 .get_config()
57 .set_color(CONFIG_COLOR_BORDER, Color::RGB(0, 0, 0));
58 widget2.get_config().set_numeric(CONFIG_BORDER_WIDTH, 2);
59
60 let mut widget3 = BaseWidget::new(make_points_origin(), make_size(0, 0));
61
62 widget3
63 .get_config()
64 .set_color(CONFIG_COLOR_BORDER, Color::RGB(0, 0, 0));
65 widget3.get_config().set_numeric(CONFIG_BORDER_WIDTH, 2);
66
67 let mut widget4 = BaseWidget::new(make_points_origin(), make_size(0, 0));
68
69 widget4
70 .get_config()
71 .set_color(CONFIG_COLOR_BORDER, Color::RGB(0, 0, 0));
72 widget4.get_config().set_numeric(CONFIG_BORDER_WIDTH, 2);
73
74 let widget1_id = engine.add_widget(Box::new(widget1), String::from("widget1"));
75 let widget2_id = engine.add_widget(Box::new(widget2), String::from("widget2"));
76 let widget3_id = engine.add_widget(Box::new(widget3), String::from("widget3"));
77 let widget4_id = engine.add_widget(Box::new(widget4), String::from("widget4"));
78
79 layout.append_widget(widget1_id);
80 layout.append_widget(widget2_id);
81 layout2.append_widget(widget3_id);
82 layout2.append_widget(widget4_id);
83 engine.add_layout(Box::new(layout));
84 engine.add_layout(Box::new(layout2));
85
86 let mut text_widget1 = TextWidget::new(
87 String::from("assets/OpenSans-Regular.ttf"),
88 sdl2::ttf::FontStyle::NORMAL,
89 16,
90 TextJustify::Right,
91 String::from("Spacing:"),
92 make_points(20, 116),
93 make_size(70, 22),
94 );
95
96 text_widget1
97 .get_config()
98 .set_color(CONFIG_COLOR_TEXT, Color::RGB(0, 0, 0));
99
100 let mut text_widget2 = TextWidget::new(
101 String::from("assets/OpenSans-Regular.ttf"),
102 sdl2::ttf::FontStyle::NORMAL,
103 16,
104 TextJustify::Left,
105 String::from("1"),
106 make_points(100, 116),
107 make_size(40, 22),
108 );
109
110 text_widget2
111 .get_config()
112 .set_color(CONFIG_COLOR_TEXT, Color::RGB(0, 0, 255));
113
114 let mut button1 = PushButtonWidget::new(
115 make_points(130, 112),
116 make_size(50, 30),
117 String::from("<"),
118 20,
119 );
120
121 button1.set_color(CONFIG_COLOR_BORDER, Color::RGB(0, 0, 0));
122 button1.set_numeric(CONFIG_BORDER_WIDTH, 2);
123 button1.on_click(|_, _widgets, _layouts| {
124 let mut spacing = _layouts[0].layout.borrow_mut().get_padding().spacing - 1;
125 let top = _layouts[0].layout.borrow_mut().get_padding().top;
126 let bottom = _layouts[0].layout.borrow_mut().get_padding().bottom;
127 let left = _layouts[0].layout.borrow_mut().get_padding().left;
128 let right = _layouts[0].layout.borrow_mut().get_padding().right;
129 let text_widget2_id = widget_id_for_name(_widgets, String::from("text_widget2"));
130
131 if spacing <= 0 {
132 spacing = 0;
133 }
134
135 let spacing_new = PaddingConstraint::new(top, bottom, left, right, spacing);
136
137 _layouts[0]
138 .layout
139 .borrow_mut()
140 .set_padding(spacing_new.clone());
141 _layouts[1]
142 .layout
143 .borrow_mut()
144 .set_padding(spacing_new.clone());
145
146 refresh_widgets(_widgets);
147
148 cast!(_widgets, text_widget2_id, TextWidget).set_text(format!("{}", spacing));
149 });
150
151 let mut button2 = PushButtonWidget::new(
152 make_points(180, 112),
153 make_size(50, 30),
154 String::from(">"),
155 20,
156 );
157
158 button2.set_color(CONFIG_COLOR_BORDER, Color::RGB(0, 0, 0));
159 button2.set_numeric(CONFIG_BORDER_WIDTH, 2);
160 button2.on_click(|_, _widgets, _layouts| {
161 let mut spacing = _layouts[0].layout.borrow_mut().get_padding().spacing + 1;
162 let top = _layouts[0].layout.borrow_mut().get_padding().top;
163 let bottom = _layouts[0].layout.borrow_mut().get_padding().bottom;
164 let left = _layouts[0].layout.borrow_mut().get_padding().left;
165 let right = _layouts[0].layout.borrow_mut().get_padding().right;
166 let text_widget2_id = widget_id_for_name(_widgets, String::from("text_widget2"));
167
168 if spacing >= MAX_SPACING {
169 spacing = MAX_SPACING;
170 }
171
172 let spacing_new = PaddingConstraint::new(top, bottom, left, right, spacing);
173
174 _layouts[0]
175 .layout
176 .borrow_mut()
177 .set_padding(spacing_new.clone());
178 _layouts[1]
179 .layout
180 .borrow_mut()
181 .set_padding(spacing_new.clone());
182
183 refresh_widgets(_widgets);
184
185 cast!(_widgets, text_widget2_id, TextWidget).set_text(format!("{}", spacing));
186 });
187
188 let mut text_widget3 = TextWidget::new(
189 String::from("assets/OpenSans-Regular.ttf"),
190 sdl2::ttf::FontStyle::NORMAL,
191 16,
192 TextJustify::Right,
193 String::from("Top:"),
194 make_points(20, 146),
195 make_size(70, 22),
196 );
197
198 text_widget3
199 .get_config()
200 .set_color(CONFIG_COLOR_TEXT, Color::RGB(0, 0, 0));
201
202 let mut text_widget4 = TextWidget::new(
203 String::from("assets/OpenSans-Regular.ttf"),
204 sdl2::ttf::FontStyle::NORMAL,
205 16,
206 TextJustify::Left,
207 String::from("0"),
208 make_points(100, 146),
209 make_size(40, 22),
210 );
211
212 text_widget4
213 .get_config()
214 .set_color(CONFIG_COLOR_TEXT, Color::RGB(0, 0, 255));
215
216 let mut button3 = PushButtonWidget::new(
217 make_points(130, 142),
218 make_size(50, 30),
219 String::from("<"),
220 20,
221 );
222
223 button3.set_color(CONFIG_COLOR_BORDER, Color::RGB(0, 0, 0));
224 button3.set_numeric(CONFIG_BORDER_WIDTH, 2);
225 button3.on_click(|_, _widgets, _layouts| {
226 let spacing = _layouts[0].layout.borrow_mut().get_padding().spacing;
227 let mut top = _layouts[0].layout.borrow_mut().get_padding().top - 1;
228 let bottom = _layouts[0].layout.borrow_mut().get_padding().bottom;
229 let left = _layouts[0].layout.borrow_mut().get_padding().left;
230 let right = _layouts[0].layout.borrow_mut().get_padding().right;
231 let text_widget4_id = widget_id_for_name(_widgets, String::from("text_widget4"));
232
233 if top <= 0 {
234 top = 0;
235 }
236
237 let spacing_new = PaddingConstraint::new(top, bottom, left, right, spacing);
238
239 _layouts[0]
240 .layout
241 .borrow_mut()
242 .set_padding(spacing_new.clone());
243 _layouts[1]
244 .layout
245 .borrow_mut()
246 .set_padding(spacing_new.clone());
247
248 refresh_widgets(_widgets);
249
250 cast!(_widgets, text_widget4_id, TextWidget).set_text(format!("{}", top));
251 });
252
253 let mut button4 = PushButtonWidget::new(
254 make_points(180, 142),
255 make_size(50, 30),
256 String::from(">"),
257 20,
258 );
259
260 button4.set_color(CONFIG_COLOR_BORDER, Color::RGB(0, 0, 0));
261 button4.set_numeric(CONFIG_BORDER_WIDTH, 2);
262 button4.on_click(|_, _widgets, _layouts| {
263 let spacing = _layouts[0].layout.borrow_mut().get_padding().spacing;
264 let mut top = _layouts[0].layout.borrow_mut().get_padding().top + 1;
265 let bottom = _layouts[0].layout.borrow_mut().get_padding().bottom;
266 let left = _layouts[0].layout.borrow_mut().get_padding().left;
267 let right = _layouts[0].layout.borrow_mut().get_padding().right;
268 let text_widget4_id = widget_id_for_name(_widgets, String::from("text_widget4"));
269
270 if top >= MAX_SPACING {
271 top = MAX_SPACING;
272 }
273
274 let spacing_new = PaddingConstraint::new(top, bottom, left, right, spacing);
275
276 _layouts[0]
277 .layout
278 .borrow_mut()
279 .set_padding(spacing_new.clone());
280 _layouts[1]
281 .layout
282 .borrow_mut()
283 .set_padding(spacing_new.clone());
284
285 refresh_widgets(_widgets);
286
287 cast!(_widgets, text_widget4_id, TextWidget).set_text(format!("{}", top));
288 });
289
290 let mut text_widget5 = TextWidget::new(
291 String::from("assets/OpenSans-Regular.ttf"),
292 sdl2::ttf::FontStyle::NORMAL,
293 16,
294 TextJustify::Right,
295 String::from("Bottom:"),
296 make_points(20, 176),
297 make_size(70, 22),
298 );
299
300 text_widget5
301 .get_config()
302 .set_color(CONFIG_COLOR_TEXT, Color::RGB(0, 0, 0));
303
304 let mut text_widget6 = TextWidget::new(
305 String::from("assets/OpenSans-Regular.ttf"),
306 sdl2::ttf::FontStyle::NORMAL,
307 16,
308 TextJustify::Left,
309 String::from("0"),
310 make_points(100, 176),
311 make_size(40, 22),
312 );
313
314 text_widget6
315 .get_config()
316 .set_color(CONFIG_COLOR_TEXT, Color::RGB(0, 0, 255));
317
318 let mut button5 = PushButtonWidget::new(
319 make_points(130, 172),
320 make_size(50, 30),
321 String::from("<"),
322 20,
323 );
324
325 button5.set_color(CONFIG_COLOR_BORDER, Color::RGB(0, 0, 0));
326 button5.set_numeric(CONFIG_BORDER_WIDTH, 2);
327 button5.on_click(|_, _widgets, _layouts| {
328 let spacing = _layouts[0].layout.borrow_mut().get_padding().spacing;
329 let top = _layouts[0].layout.borrow_mut().get_padding().top;
330 let mut bottom = _layouts[0].layout.borrow_mut().get_padding().bottom - 1;
331 let left = _layouts[0].layout.borrow_mut().get_padding().left;
332 let right = _layouts[0].layout.borrow_mut().get_padding().right;
333 let text_widget6_id = widget_id_for_name(_widgets, String::from("text_widget6"));
334
335 if bottom <= 0 {
336 bottom = 0;
337 }
338
339 let spacing_new = PaddingConstraint::new(top, bottom, left, right, spacing);
340
341 _layouts[0]
342 .layout
343 .borrow_mut()
344 .set_padding(spacing_new.clone());
345 _layouts[1]
346 .layout
347 .borrow_mut()
348 .set_padding(spacing_new.clone());
349
350 refresh_widgets(_widgets);
351
352 cast!(_widgets, text_widget6_id, TextWidget).set_text(format!("{}", bottom));
353 });
354
355 let mut button6 = PushButtonWidget::new(
356 make_points(180, 172),
357 make_size(50, 30),
358 String::from(">"),
359 20,
360 );
361
362 button6.set_color(CONFIG_COLOR_BORDER, Color::RGB(0, 0, 0));
363 button6.set_numeric(CONFIG_BORDER_WIDTH, 2);
364 button6.on_click(|_, _widgets, _layouts| {
365 let spacing = _layouts[0].layout.borrow_mut().get_padding().spacing;
366 let top = _layouts[0].layout.borrow_mut().get_padding().top;
367 let mut bottom = _layouts[0].layout.borrow_mut().get_padding().bottom + 1;
368 let left = _layouts[0].layout.borrow_mut().get_padding().left;
369 let right = _layouts[0].layout.borrow_mut().get_padding().right;
370 let text_widget6_id = widget_id_for_name(_widgets, String::from("text_widget6"));
371
372 if bottom >= MAX_SPACING {
373 bottom = MAX_SPACING;
374 }
375
376 let spacing_new = PaddingConstraint::new(top, bottom, left, right, spacing);
377
378 _layouts[0]
379 .layout
380 .borrow_mut()
381 .set_padding(spacing_new.clone());
382 _layouts[1]
383 .layout
384 .borrow_mut()
385 .set_padding(spacing_new.clone());
386
387 refresh_widgets(_widgets);
388
389 cast!(_widgets, text_widget6_id, TextWidget).set_text(format!("{}", bottom));
390 });
391
392 let mut text_widget7 = TextWidget::new(
393 String::from("assets/OpenSans-Regular.ttf"),
394 sdl2::ttf::FontStyle::NORMAL,
395 16,
396 TextJustify::Right,
397 String::from("Left:"),
398 make_points(20, 206),
399 make_size(70, 22),
400 );
401
402 text_widget7
403 .get_config()
404 .set_color(CONFIG_COLOR_TEXT, Color::RGB(0, 0, 0));
405
406 let mut text_widget8 = TextWidget::new(
407 String::from("assets/OpenSans-Regular.ttf"),
408 sdl2::ttf::FontStyle::NORMAL,
409 16,
410 TextJustify::Left,
411 String::from("0"),
412 make_points(100, 206),
413 make_size(40, 22),
414 );
415
416 text_widget8
417 .get_config()
418 .set_color(CONFIG_COLOR_TEXT, Color::RGB(0, 0, 255));
419
420 let mut button7 = PushButtonWidget::new(
421 make_points(130, 202),
422 make_size(50, 30),
423 String::from("<"),
424 20,
425 );
426
427 button7.set_color(CONFIG_COLOR_BORDER, Color::RGB(0, 0, 0));
428 button7.set_numeric(CONFIG_BORDER_WIDTH, 2);
429 button7.on_click(|_, _widgets, _layouts| {
430 let spacing = _layouts[0].layout.borrow_mut().get_padding().spacing;
431 let top = _layouts[0].layout.borrow_mut().get_padding().top;
432 let bottom = _layouts[0].layout.borrow_mut().get_padding().bottom;
433 let mut left = _layouts[0].layout.borrow_mut().get_padding().left - 1;
434 let right = _layouts[0].layout.borrow_mut().get_padding().right;
435 let text_widget8_id = widget_id_for_name(_widgets, String::from("text_widget8"));
436
437 if left <= 0 {
438 left = 0;
439 }
440
441 let spacing_new = PaddingConstraint::new(top, bottom, left, right, spacing);
442
443 _layouts[0]
444 .layout
445 .borrow_mut()
446 .set_padding(spacing_new.clone());
447 _layouts[1]
448 .layout
449 .borrow_mut()
450 .set_padding(spacing_new.clone());
451
452 refresh_widgets(_widgets);
453
454 cast!(_widgets, text_widget8_id, TextWidget).set_text(format!("{}", left));
455 });
456
457 let mut button8 = PushButtonWidget::new(
458 make_points(180, 202),
459 make_size(50, 30),
460 String::from(">"),
461 20,
462 );
463
464 button8.set_color(CONFIG_COLOR_BORDER, Color::RGB(0, 0, 0));
465 button8.set_numeric(CONFIG_BORDER_WIDTH, 2);
466 button8.on_click(|_, _widgets, _layouts| {
467 let spacing = _layouts[0].layout.borrow_mut().get_padding().spacing;
468 let top = _layouts[0].layout.borrow_mut().get_padding().top;
469 let bottom = _layouts[0].layout.borrow_mut().get_padding().bottom;
470 let mut left = _layouts[0].layout.borrow_mut().get_padding().left + 1;
471 let right = _layouts[0].layout.borrow_mut().get_padding().right;
472 let text_widget8_id = widget_id_for_name(_widgets, String::from("text_widget8"));
473
474 if left >= MAX_SPACING {
475 left = MAX_SPACING;
476 }
477
478 let spacing_new = PaddingConstraint::new(top, bottom, left, right, spacing);
479
480 _layouts[0]
481 .layout
482 .borrow_mut()
483 .set_padding(spacing_new.clone());
484 _layouts[1]
485 .layout
486 .borrow_mut()
487 .set_padding(spacing_new.clone());
488
489 refresh_widgets(_widgets);
490
491 cast!(_widgets, text_widget8_id, TextWidget).set_text(format!("{}", left));
492 });
493
494 let mut text_widget9 = TextWidget::new(
495 String::from("assets/OpenSans-Regular.ttf"),
496 sdl2::ttf::FontStyle::NORMAL,
497 16,
498 TextJustify::Right,
499 String::from("Right:"),
500 make_points(20, 236),
501 make_size(70, 22),
502 );
503
504 text_widget9
505 .get_config()
506 .set_color(CONFIG_COLOR_TEXT, Color::RGB(0, 0, 0));
507
508 let mut text_widget10 = TextWidget::new(
509 String::from("assets/OpenSans-Regular.ttf"),
510 sdl2::ttf::FontStyle::NORMAL,
511 16,
512 TextJustify::Left,
513 String::from("0"),
514 make_points(100, 236),
515 make_size(40, 22),
516 );
517
518 text_widget10
519 .get_config()
520 .set_color(CONFIG_COLOR_TEXT, Color::RGB(0, 0, 255));
521
522 let mut button9 = PushButtonWidget::new(
523 make_points(130, 232),
524 make_size(50, 30),
525 String::from("<"),
526 20,
527 );
528
529 button9.set_color(CONFIG_COLOR_BORDER, Color::RGB(0, 0, 0));
530 button9.set_numeric(CONFIG_BORDER_WIDTH, 2);
531 button9.on_click(|_, _widgets, _layouts| {
532 let spacing = _layouts[0].layout.borrow_mut().get_padding().spacing;
533 let top = _layouts[0].layout.borrow_mut().get_padding().top;
534 let bottom = _layouts[0].layout.borrow_mut().get_padding().bottom;
535 let left = _layouts[0].layout.borrow_mut().get_padding().left;
536 let mut right = _layouts[0].layout.borrow_mut().get_padding().right - 1;
537 let text_widget10_id = widget_id_for_name(_widgets, String::from("text_widget10"));
538
539 if right <= 0 {
540 right = 0;
541 }
542
543 let spacing_new = PaddingConstraint::new(top, bottom, left, right, spacing);
544
545 _layouts[0]
546 .layout
547 .borrow_mut()
548 .set_padding(spacing_new.clone());
549 _layouts[1]
550 .layout
551 .borrow_mut()
552 .set_padding(spacing_new.clone());
553
554 refresh_widgets(_widgets);
555
556 cast!(_widgets, text_widget10_id, TextWidget).set_text(format!("{}", right));
557 });
558
559 let mut button10 = PushButtonWidget::new(
560 make_points(180, 232),
561 make_size(50, 30),
562 String::from(">"),
563 20,
564 );
565
566 button10.set_color(CONFIG_COLOR_BORDER, Color::RGB(0, 0, 0));
567 button10.set_numeric(CONFIG_BORDER_WIDTH, 2);
568 button10.on_click(|_, _widgets, _layouts| {
569 let spacing = _layouts[0].layout.borrow_mut().get_padding().spacing;
570 let top = _layouts[0].layout.borrow_mut().get_padding().top;
571 let bottom = _layouts[0].layout.borrow_mut().get_padding().bottom;
572 let left = _layouts[0].layout.borrow_mut().get_padding().left;
573 let mut right = _layouts[0].layout.borrow_mut().get_padding().right + 1;
574 let text_widget10_id = widget_id_for_name(_widgets, String::from("text_widget10"));
575
576 if right >= MAX_SPACING {
577 right = MAX_SPACING;
578 }
579
580 let spacing_new = PaddingConstraint::new(top, bottom, left, right, spacing);
581
582 _layouts[0]
583 .layout
584 .borrow_mut()
585 .set_padding(spacing_new.clone());
586 _layouts[1]
587 .layout
588 .borrow_mut()
589 .set_padding(spacing_new.clone());
590
591 refresh_widgets(_widgets);
592
593 cast!(_widgets, text_widget10_id, TextWidget).set_text(format!("{}", right));
594 });
595
596 engine.add_widget(Box::new(text_widget1), String::from("text_widget1"));
597 engine.add_widget(Box::new(text_widget2), String::from("text_widget2"));
598 engine.add_widget(Box::new(button1), String::from("button1"));
599 engine.add_widget(Box::new(button2), String::from("button2"));
600 engine.add_widget(Box::new(text_widget3), String::from("text_widget3"));
601 engine.add_widget(Box::new(text_widget4), String::from("text_widget4"));
602 engine.add_widget(Box::new(button3), String::from("button3"));
603 engine.add_widget(Box::new(button4), String::from("button4"));
604 engine.add_widget(Box::new(text_widget5), String::from("text_widget5"));
605 engine.add_widget(Box::new(text_widget6), String::from("text_widget6"));
606 engine.add_widget(Box::new(button5), String::from("button5"));
607 engine.add_widget(Box::new(button6), String::from("button6"));
608 engine.add_widget(Box::new(text_widget7), String::from("text_widget7"));
609 engine.add_widget(Box::new(text_widget8), String::from("text_widget8"));
610 engine.add_widget(Box::new(button7), String::from("button7"));
611 engine.add_widget(Box::new(button8), String::from("button8"));
612 engine.add_widget(Box::new(text_widget9), String::from("text_widget9"));
613 engine.add_widget(Box::new(text_widget10), String::from("text_widget10"));
614 engine.add_widget(Box::new(button9), String::from("button9"));
615 engine.add_widget(Box::new(button10), String::from("button10"));
616
617 engine.run(sdl_context, window);
618}Trait Implementations§
Source§impl Layout for HorizontalLayout
This is the Layout implementation for the HorizontalLayout manager. This Layout manager will
not reposition any objects within the bounds of the Layout until at least 2 objects have been
added to the bounds of the Layout.
impl Layout for HorizontalLayout
This is the Layout implementation for the HorizontalLayout manager. This Layout manager will
not reposition any objects within the bounds of the Layout until at least 2 objects have been
added to the bounds of the Layout.
Source§fn insert_widget(&mut self, widget_id: i32, widget_position: LayoutPosition)
fn insert_widget(&mut self, widget_id: i32, widget_position: LayoutPosition)
Adds a widget to the HorizontalLayout managed stack.
Source§fn append_widget(&mut self, widget_id: i32)
fn append_widget(&mut self, widget_id: i32)
Appends a widget to the HorizontalLayout managed stack.
Source§fn do_layout(&mut self, _widgets: &[WidgetContainer])
fn do_layout(&mut self, _widgets: &[WidgetContainer])
Adjusts the layout of the Widgets managed by this Layout manager. Currently only obeys
the spacing in the object. The rest of the padding is not (yet) honored.
Source§fn set_padding(&mut self, padding: PaddingConstraint)
fn set_padding(&mut self, padding: PaddingConstraint)
Changes the
PaddingConstraint for this Layout.Source§fn get_padding(&self) -> PaddingConstraint
fn get_padding(&self) -> PaddingConstraint
Retrieves the current
PaddingConstraint.Source§fn needs_layout(&self) -> bool
fn needs_layout(&self) -> bool
Indicates whether or not the
Layout needs to have do_layout re-run. This is generally
needed when the LayoutPosition changes, or when PaddingConstraints change.Auto Trait Implementations§
impl Freeze for HorizontalLayout
impl RefUnwindSafe for HorizontalLayout
impl Send for HorizontalLayout
impl Sync for HorizontalLayout
impl Unpin for HorizontalLayout
impl UnwindSafe for HorizontalLayout
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more