1
0
mirror of https://github.com/emilk/egui.git synced 2026-09-02 06:40:06 -04:00

Calculate preferred size from Galley; Pass it back up the Uis, Frames, etc..

This commit is contained in:
Lucas Meurer
2025-03-04 22:51:55 +01:00
parent 80d218cf71
commit 166e8e2092
30 changed files with 198 additions and 92 deletions

View File

@@ -2,7 +2,7 @@ use egui::{
containers::{Frame, Window},
emath, epaint,
epaint::PathStroke,
hex_color, lerp, pos2, remap, vec2, Color32, Context, Pos2, Rect, Ui,
hex_color, lerp, pos2, remap, vec2, Color32, Context, Pos2, Rect, Ui, Vec2,
};
#[derive(Default)]
@@ -43,7 +43,7 @@ impl crate::View for DancingStrings {
let time = ui.input(|i| i.time);
let desired_size = ui.available_width() * vec2(1.0, 0.35);
let (_id, rect) = ui.allocate_space(desired_size);
let (_id, rect) = ui.allocate_space(desired_size, Vec2::ZERO); // TODO
let to_screen =
emath::RectTransform::from_to(Rect::from_x_y_ranges(0.0..=1.0, -1.0..=1.0), rect);

View File

@@ -189,7 +189,8 @@ impl View for MiscDemoWindow {
for i in 0..100 {
let r = i as f32 * 0.5;
let size = Vec2::splat(2.0 * r + 5.0);
let (rect, _response) = ui.allocate_at_least(size, Sense::hover());
let (rect, _response) =
ui.allocate_at_least(size, Sense::hover(), Vec2::ZERO); // TODO
ui.painter()
.circle_filled(rect.center(), r, ui.visuals().text_color());
}
@@ -384,7 +385,7 @@ impl BoxPainting {
ui.horizontal_wrapped(|ui| {
for _ in 0..self.num_boxes {
let (rect, _response) = ui.allocate_at_least(self.size, Sense::hover());
let (rect, _response) = ui.allocate_at_least(self.size, Sense::hover(), Vec2::ZERO); // TODO
ui.painter().rect(
rect,
self.corner_radius,

View File

@@ -225,7 +225,7 @@ fn huge_content_painter(ui: &mut egui::Ui) {
used_rect = used_rect.union(text_rect);
}
ui.allocate_rect(used_rect, Sense::hover()); // make sure it is visible!
ui.allocate_rect(used_rect, Sense::hover(), Vec2::ZERO); // TODO // make sure it is visible!
});
}

View File

@@ -1,3 +1,5 @@
use egui::Vec2;
pub struct WindowResizeTest {
text: String,
}
@@ -91,7 +93,7 @@ impl crate::Demo for WindowResizeTest {
ui.vertical_centered(|ui| {
ui.add(crate::egui_github_link_file!());
});
ui.allocate_space(ui.available_size());
ui.allocate_space(ui.available_size(), Vec2::ZERO); // TODO
});
}
}

View File

@@ -269,7 +269,7 @@ impl ColorTest {
}
fn vertex_gradient(ui: &mut Ui, bg_fill: Color32, gradient: &Gradient) -> Response {
let (rect, response) = ui.allocate_at_least(GRADIENT_SIZE, Sense::hover());
let (rect, response) = ui.allocate_at_least(GRADIENT_SIZE, Sense::hover(), Vec2::ZERO); // TODO
let rect = rect.round_to_pixels(ui.pixels_per_point());
if bg_fill != Default::default() {
let mut mesh = Mesh::default();