Add retained paints and shared text selection
This commit is contained in:
1 parent
1e6d3b1edd
commit
a33fbca966
42 files changed
+2424
-470
No files matched your search
+28
-27
@@ -19,8 +19,9 @@ struct FixedRect(f32);
|
||||
impl Widget for FixedRect {
|
||||
fn draw(&mut self, painter: &mut Painter) {
|
||||
let size = Size::from_axis(Axis::Y, Len::abs(self.0), Len::REST);
|
||||
let paint = painter.paint(&PaintId::WHITE);
|
||||
painter.primitive_within(
|
||||
RectPrimitive::color(UiColor::WHITE),
|
||||
RectPrimitive::color(paint),
|
||||
size.to_uivec2(painter.density())
|
||||
.align(RegionAlign::TOP_LEFT),
|
||||
);
|
||||
@@ -89,8 +90,8 @@ fn a_widget_retains_its_entry_layer_not_its_child_cursor() {
|
||||
let mut rsc = TestRsc {
|
||||
ui: UiData::default(),
|
||||
};
|
||||
let back = rsc.ui.widgets.add_strong(Rect::new(UiColor::WHITE));
|
||||
let front = rsc.ui.widgets.add_strong(Rect::new(UiColor::RED));
|
||||
let back = rsc.ui.widgets.add_strong(Rect::new(PaintId::WHITE));
|
||||
let front = rsc.ui.widgets.add_strong(Rect::new(PaintId::RED));
|
||||
let stack = rsc.ui.widgets.add_strong(Stack {
|
||||
children: vec![back.any(), front.any()],
|
||||
size: StackSize::Default,
|
||||
@@ -277,7 +278,7 @@ fn a_hinted_rest_draws_once_and_only_moves_the_fixed_child_after_it() {
|
||||
ui: UiData::default(),
|
||||
};
|
||||
let first = rsc.ui.widgets.add_strong(FixedRect(40.0));
|
||||
let fill = rsc.ui.widgets.add_strong(Rect::new(UiColor::WHITE));
|
||||
let fill = rsc.ui.widgets.add_strong(Rect::new(PaintId::WHITE));
|
||||
let fill = rsc.ui.widgets.add_strong(Sized {
|
||||
inner: fill.any(),
|
||||
x: None,
|
||||
@@ -309,7 +310,7 @@ fn scrolled_rects(
|
||||
let mut span = Span::empty(Dir::DOWN);
|
||||
let mut rects = Vec::with_capacity(n);
|
||||
for _ in 0..n {
|
||||
let rect = rsc.ui.widgets.add_strong(Rect::new(UiColor::WHITE));
|
||||
let rect = rsc.ui.widgets.add_strong(Rect::new(PaintId::WHITE));
|
||||
rects.push(rect.weak());
|
||||
let row = rsc.ui.widgets.add_strong(Sized {
|
||||
inner: rect.any(),
|
||||
@@ -459,13 +460,13 @@ fn composer_like_tree(rsc: &mut TestRsc) -> (WeakWidget<TextEdit>, StrongWidget)
|
||||
.text_align(Align::LEFT)
|
||||
.wrap(true)
|
||||
.size(18)
|
||||
.color(UiColor::WHITE)
|
||||
.color(PaintId::WHITE)
|
||||
.add(rsc);
|
||||
let bar = (field.pad(dp(12)).width(rest(1)),)
|
||||
.span(Dir::RIGHT)
|
||||
.background(rect(UiColor::new(40, 40, 46, 255)))
|
||||
.background(rect(Srgba8::new(40, 40, 46, 255)))
|
||||
.add(rsc);
|
||||
let list_stand_in = rect(UiColor::BLACK).height(rest(1)).add(rsc);
|
||||
let list_stand_in = rect(PaintId::BLACK).height(rest(1)).add(rsc);
|
||||
let tree = (list_stand_in, bar).span(Dir::DOWN).add_strong(rsc).any();
|
||||
(field, tree)
|
||||
}
|
||||
@@ -517,7 +518,7 @@ fn a_scroll_measures_the_box_it_was_offered_not_the_window() {
|
||||
let mut rsc = TestRsc {
|
||||
ui: UiData::default(),
|
||||
};
|
||||
let rect = rsc.ui.widgets.add_strong(Rect::new(UiColor::WHITE));
|
||||
let rect = rsc.ui.widgets.add_strong(Rect::new(PaintId::WHITE));
|
||||
let tall = rsc.ui.widgets.add_strong(Sized {
|
||||
inner: rect.any(),
|
||||
x: None,
|
||||
@@ -567,7 +568,7 @@ fn a_panned_widgets_own_hit_box_moves_exactly_once() {
|
||||
let mut rsc = TestRsc {
|
||||
ui: UiData::default(),
|
||||
};
|
||||
let rect = rsc.ui.widgets.add_strong(Rect::new(UiColor::WHITE));
|
||||
let rect = rsc.ui.widgets.add_strong(Rect::new(PaintId::WHITE));
|
||||
let tall = rsc.ui.widgets.add_strong(Sized {
|
||||
inner: rect.any(),
|
||||
x: None,
|
||||
@@ -609,7 +610,7 @@ fn a_masked_widget_keeps_one_mask_slot_that_is_always_its_own_region() {
|
||||
inner: inner_root,
|
||||
});
|
||||
let masked_id = masked.id();
|
||||
let filler = rsc.ui.widgets.add_strong(Rect::new(UiColor::BLACK));
|
||||
let filler = rsc.ui.widgets.add_strong(Rect::new(PaintId::BLACK));
|
||||
let filler = rsc.ui.widgets.add_strong(Sized {
|
||||
inner: filler.any(),
|
||||
x: None,
|
||||
@@ -650,7 +651,7 @@ fn a_dp_cap_is_reported_in_pixels_so_a_span_can_place_it() {
|
||||
let mut rsc = TestRsc {
|
||||
ui: UiData::default(),
|
||||
};
|
||||
let rect = rsc.ui.widgets.add_strong(Rect::new(UiColor::WHITE));
|
||||
let rect = rsc.ui.widgets.add_strong(Rect::new(PaintId::WHITE));
|
||||
let tall = rsc.ui.widgets.add_strong(Sized {
|
||||
inner: rect.any(),
|
||||
x: None,
|
||||
@@ -662,7 +663,7 @@ fn a_dp_cap_is_reported_in_pixels_so_a_span_can_place_it() {
|
||||
y: Some(Len::dp(100.0)),
|
||||
});
|
||||
let capped_w = capped.weak();
|
||||
let filler = rsc.ui.widgets.add_strong(Rect::new(UiColor::BLACK));
|
||||
let filler = rsc.ui.widgets.add_strong(Rect::new(PaintId::BLACK));
|
||||
let filler = rsc.ui.widgets.add_strong(Sized {
|
||||
inner: filler.any(),
|
||||
x: None,
|
||||
@@ -692,14 +693,14 @@ fn a_size_independent_widget_moved_by_its_parent_has_the_hit_box_it_is_drawn_at(
|
||||
let mut rsc = TestRsc {
|
||||
ui: UiData::default(),
|
||||
};
|
||||
let top = rsc.ui.widgets.add_strong(Rect::new(UiColor::WHITE));
|
||||
let top = rsc.ui.widgets.add_strong(Rect::new(PaintId::WHITE));
|
||||
let spacer = rsc.ui.widgets.add_strong(Sized {
|
||||
inner: top.any(),
|
||||
x: None,
|
||||
y: Some(Len::abs(100.0)),
|
||||
});
|
||||
let spacer_w = spacer.weak();
|
||||
let below = rsc.ui.widgets.add_strong(Rect::new(UiColor::WHITE));
|
||||
let below = rsc.ui.widgets.add_strong(Rect::new(PaintId::WHITE));
|
||||
let below_w = below.weak();
|
||||
let mut span = Span::empty(Dir::DOWN);
|
||||
span.push(spacer.any());
|
||||
@@ -759,7 +760,7 @@ fn a_widget_moved_by_its_parent_and_then_placed_inside_it_lands_at_the_placement
|
||||
let mut rsc = TestRsc {
|
||||
ui: UiData::default(),
|
||||
};
|
||||
let rect = rsc.ui.widgets.add_strong(Rect::new(UiColor::WHITE));
|
||||
let rect = rsc.ui.widgets.add_strong(Rect::new(PaintId::WHITE));
|
||||
let child = rsc.ui.widgets.add_strong(Sized {
|
||||
inner: rect.any(),
|
||||
x: None,
|
||||
@@ -800,12 +801,12 @@ fn a_widget_moved_by_its_parent_and_then_placed_inside_it_lands_at_the_placement
|
||||
const RADIUS: f32 = 20.0;
|
||||
|
||||
fn rounded_container(rsc: &mut TestRsc) -> (UiRenderState, MaskIdx, WidgetId, u32) {
|
||||
let child = rsc.ui.widgets.add_strong(Rect::new(UiColor::WHITE));
|
||||
let child = rsc.ui.widgets.add_strong(Rect::new(PaintId::WHITE));
|
||||
let child_id = child.id();
|
||||
let shape = rsc
|
||||
.ui
|
||||
.widgets
|
||||
.add_strong(Rect::new(UiColor::BLACK).radius(Len::abs(RADIUS)));
|
||||
.add_strong(Rect::new(PaintId::BLACK).radius(Len::abs(RADIUS)));
|
||||
let shape_id = shape.id();
|
||||
let root = rsc
|
||||
.ui
|
||||
@@ -909,13 +910,13 @@ fn nested_masks_multiply_their_coverage() {
|
||||
let mut rsc = TestRsc {
|
||||
ui: UiData::default(),
|
||||
};
|
||||
let child = rsc.ui.widgets.add_strong(Rect::new(UiColor::WHITE));
|
||||
let child = rsc.ui.widgets.add_strong(Rect::new(PaintId::WHITE));
|
||||
let child_id = child.id();
|
||||
|
||||
let inner_shape = rsc
|
||||
.ui
|
||||
.widgets
|
||||
.add_strong(Rect::new(UiColor::BLACK).radius(Len::abs(RADIUS)));
|
||||
.add_strong(Rect::new(PaintId::BLACK).radius(Len::abs(RADIUS)));
|
||||
let inner_shape_id = inner_shape.id();
|
||||
let inner = rsc.ui.widgets.add_strong(Masked {
|
||||
shape: Some(inner_shape.any()),
|
||||
@@ -924,7 +925,7 @@ fn nested_masks_multiply_their_coverage() {
|
||||
let outer_shape = rsc
|
||||
.ui
|
||||
.widgets
|
||||
.add_strong(Rect::new(UiColor::BLACK).radius(Len::abs(RADIUS)));
|
||||
.add_strong(Rect::new(PaintId::BLACK).radius(Len::abs(RADIUS)));
|
||||
let outer_shape_id = outer_shape.id();
|
||||
let root = rsc
|
||||
.ui
|
||||
@@ -1004,7 +1005,7 @@ fn a_scroll_area_opens_at_the_start_of_content_it_has_not_measured_yet() {
|
||||
let mut rsc = TestRsc {
|
||||
ui: UiData::default(),
|
||||
};
|
||||
let fill = rsc.ui.widgets.add_strong(Rect::new(UiColor::WHITE)).any();
|
||||
let fill = rsc.ui.widgets.add_strong(Rect::new(PaintId::WHITE)).any();
|
||||
let tall = rsc.ui.widgets.add_strong(Sized {
|
||||
inner: fill,
|
||||
x: None,
|
||||
@@ -1039,7 +1040,7 @@ fn a_span_of_padded_children_inside_a_span_draws_each_where_its_box_is() {
|
||||
let mut rsc = TestRsc {
|
||||
ui: UiData::default(),
|
||||
};
|
||||
let header_fill = rsc.ui.widgets.add_strong(Rect::new(UiColor::RED)).any();
|
||||
let header_fill = rsc.ui.widgets.add_strong(Rect::new(PaintId::RED)).any();
|
||||
let header_id = header_fill.id();
|
||||
let header = rsc.ui.widgets.add_strong(Sized {
|
||||
inner: header_fill,
|
||||
@@ -1049,7 +1050,7 @@ fn a_span_of_padded_children_inside_a_span_draws_each_where_its_box_is() {
|
||||
let mut inner = Span::empty(Dir::DOWN);
|
||||
let mut rects = Vec::new();
|
||||
for _ in 0..3 {
|
||||
let rect = rsc.ui.widgets.add_strong(Rect::new(UiColor::WHITE));
|
||||
let rect = rsc.ui.widgets.add_strong(Rect::new(PaintId::WHITE));
|
||||
rects.push(rect.weak());
|
||||
let sized = rsc.ui.widgets.add_strong(Sized {
|
||||
inner: rect.any(),
|
||||
@@ -1061,7 +1062,7 @@ fn a_span_of_padded_children_inside_a_span_draws_each_where_its_box_is() {
|
||||
inner: sized.any(),
|
||||
exact_region: false,
|
||||
});
|
||||
let fill = rsc.ui.widgets.add_strong(Rect::new(UiColor::BLUE)).any();
|
||||
let fill = rsc.ui.widgets.add_strong(Rect::new(PaintId::BLUE)).any();
|
||||
let card = rsc.ui.widgets.add_strong(Stack {
|
||||
children: vec![fill, padded.any()],
|
||||
size: StackSize::Child(1),
|
||||
@@ -1122,7 +1123,7 @@ fn a_new_child_in_a_growing_lazy_row_uses_its_final_box_immediately() {
|
||||
let mut rsc = TestRsc {
|
||||
ui: UiData::default(),
|
||||
};
|
||||
let first = rsc.ui.widgets.add_strong(Rect::new(UiColor::WHITE));
|
||||
let first = rsc.ui.widgets.add_strong(Rect::new(PaintId::WHITE));
|
||||
let first_id = first.id();
|
||||
let first = rsc.ui.widgets.add_strong(Sized {
|
||||
inner: first.any(),
|
||||
@@ -1146,7 +1147,7 @@ fn a_new_child_in_a_growing_lazy_row_uses_its_final_box_immediately() {
|
||||
render.resize((200.0, 200.0));
|
||||
render.update(&root, &mut rsc);
|
||||
|
||||
let second = rsc.ui.widgets.add_strong(Rect::new(UiColor::WHITE));
|
||||
let second = rsc.ui.widgets.add_strong(Rect::new(PaintId::WHITE));
|
||||
let second_id = second.id();
|
||||
let second = rsc.ui.widgets.add_strong(Sized {
|
||||
inner: second.any(),
|
||||
|
||||
Reference in new issue
Block a user