gpui: Support window resizing for PlatformWindow
(#27477)
Support resizing windows to a specified size. ## macOS https://github.com/user-attachments/assets/8c639bc2-ee5f-4adc-a850-576dac939574 ## Wayland [wayland.webm](https://github.com/user-attachments/assets/3d593604-83b4-488f-8f63-1cf4c0c0cb9a) ## X11 [x11.webm](https://github.com/user-attachments/assets/ce8fa62e-fb74-4641-abe8-70574011e630) ## Windows https://github.com/user-attachments/assets/abb03e48-f82a-4d62-90b3-2598a4866c3f Release Notes: - N/A
This commit is contained in:
parent
f86977e2a7
commit
b4254a33e0
8 changed files with 111 additions and 2 deletions
|
@ -75,7 +75,7 @@ impl Render for WindowDemo {
|
|||
.bg(rgb(0xffffff))
|
||||
.size_full()
|
||||
.justify_center()
|
||||
.items_center()
|
||||
.content_center()
|
||||
.gap_2()
|
||||
.child(button("Normal", move |_, cx| {
|
||||
cx.open_window(
|
||||
|
@ -165,18 +165,32 @@ impl Render for WindowDemo {
|
|||
})
|
||||
.detach();
|
||||
}))
|
||||
.child(button("Resize", |window, _| {
|
||||
let content_size = window.bounds().size;
|
||||
window.resize(size(content_size.height, content_size.width));
|
||||
}))
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
Application::new().run(|cx: &mut App| {
|
||||
let bounds = Bounds::centered(None, size(px(800.0), px(600.0)), cx);
|
||||
|
||||
cx.open_window(
|
||||
WindowOptions {
|
||||
window_bounds: Some(WindowBounds::Windowed(bounds)),
|
||||
..Default::default()
|
||||
},
|
||||
|_, cx| cx.new(|_| WindowDemo {}),
|
||||
|window, cx| {
|
||||
cx.new(|cx| {
|
||||
cx.observe_window_bounds(window, move |_, window, _| {
|
||||
println!("Window bounds changed: {:?}", window.bounds());
|
||||
})
|
||||
.detach();
|
||||
|
||||
WindowDemo {}
|
||||
})
|
||||
},
|
||||
)
|
||||
.unwrap();
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue