Refactor Ui::next_auto_id_source
This commit is contained in:
parent
a59c8ac2c3
commit
07da54ad08
1 changed files with 12 additions and 15 deletions
|
@ -38,7 +38,7 @@ pub struct Ui {
|
|||
/// and the value is increment with each added child widget.
|
||||
/// This works as an Id source only as long as new widgets aren't added or removed.
|
||||
/// They are therefore only good for Id:s that has no state.
|
||||
next_auto_id: u64,
|
||||
next_auto_id_source: u64,
|
||||
|
||||
/// Specifies paint layer, clip rectangle and a reference to `Context`.
|
||||
painter: Painter,
|
||||
|
@ -64,7 +64,7 @@ impl Ui {
|
|||
let style = ctx.style();
|
||||
Ui {
|
||||
id,
|
||||
next_auto_id: id.with("auto").value(),
|
||||
next_auto_id_source: id.with("auto").value(),
|
||||
painter: Painter::new(ctx, layer_id, clip_rect),
|
||||
style,
|
||||
placer: Placer::new(max_rect, Layout::default()),
|
||||
|
@ -74,11 +74,12 @@ impl Ui {
|
|||
|
||||
pub fn child_ui(&mut self, max_rect: Rect, layout: Layout) -> Self {
|
||||
debug_assert!(!max_rect.any_nan());
|
||||
self.next_auto_id = self.next_auto_id.wrapping_add(1);
|
||||
let next_auto_id_source = Id::new(self.next_auto_id_source).with("child").value();
|
||||
self.next_auto_id_source = self.next_auto_id_source.wrapping_add(1);
|
||||
|
||||
Ui {
|
||||
id: self.id.with("child"),
|
||||
next_auto_id: Id::new(self.next_auto_id).with("child").value(),
|
||||
next_auto_id_source,
|
||||
painter: self.painter.clone(),
|
||||
style: self.style.clone(),
|
||||
placer: Placer::new(max_rect, layout),
|
||||
|
@ -457,20 +458,15 @@ impl Ui {
|
|||
self.id.with(&id_source)
|
||||
}
|
||||
|
||||
#[deprecated = "This id now returned from ui.allocate_space"]
|
||||
pub fn make_position_id(&self) -> Id {
|
||||
Id::new(self.next_auto_id)
|
||||
}
|
||||
|
||||
pub(crate) fn next_auto_id(&self) -> Id {
|
||||
Id::new(self.next_auto_id.wrapping_add(1))
|
||||
Id::new(self.next_auto_id_source)
|
||||
}
|
||||
|
||||
pub(crate) fn auto_id_with<IdSource>(&self, id_source: IdSource) -> Id
|
||||
where
|
||||
IdSource: Hash + std::fmt::Debug,
|
||||
{
|
||||
Id::new(self.next_auto_id).with(id_source)
|
||||
Id::new(self.next_auto_id_source).with(id_source)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -633,8 +629,8 @@ impl Ui {
|
|||
}
|
||||
}
|
||||
|
||||
self.next_auto_id = self.next_auto_id.wrapping_add(1);
|
||||
let id = Id::new(self.next_auto_id);
|
||||
let id = Id::new(self.next_auto_id_source);
|
||||
self.next_auto_id_source = self.next_auto_id_source.wrapping_add(1);
|
||||
|
||||
(id, rect)
|
||||
}
|
||||
|
@ -671,8 +667,9 @@ impl Ui {
|
|||
self.placer.debug_paint_cursor(&painter);
|
||||
}
|
||||
|
||||
self.next_auto_id = self.next_auto_id.wrapping_add(1);
|
||||
Id::new(self.next_auto_id)
|
||||
let id = Id::new(self.next_auto_id_source);
|
||||
self.next_auto_id_source = self.next_auto_id_source.wrapping_add(1);
|
||||
id
|
||||
}
|
||||
|
||||
pub(crate) fn placer(&self) -> &Placer {
|
||||
|
|
Loading…
Reference in a new issue