Resizeable sandbox panels
This commit is contained in:
parent
a648ef360e
commit
7b2a110c12
|
@ -70,6 +70,7 @@ impl eframe::App for App {
|
||||||
index,
|
index,
|
||||||
msg_buf: String::new(),
|
msg_buf: String::new(),
|
||||||
show_msg: false,
|
show_msg: false,
|
||||||
|
current_size: Default::default(),
|
||||||
};
|
};
|
||||||
|
|
||||||
self.panels.push(panel);
|
self.panels.push(panel);
|
||||||
|
@ -91,6 +92,7 @@ pub struct PanelWindow {
|
||||||
pub index: usize,
|
pub index: usize,
|
||||||
pub msg_buf: String,
|
pub msg_buf: String,
|
||||||
pub show_msg: bool,
|
pub show_msg: bool,
|
||||||
|
pub current_size: egui::Vec2,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl PanelWindow {
|
impl PanelWindow {
|
||||||
|
@ -101,14 +103,24 @@ impl PanelWindow {
|
||||||
ui.checkbox(&mut self.show_msg, "Show Message Editor");
|
ui.checkbox(&mut self.show_msg, "Show Message Editor");
|
||||||
});
|
});
|
||||||
|
|
||||||
let size = egui::vec2(800.0, 800.0);
|
|
||||||
let sense = egui::Sense {
|
let sense = egui::Sense {
|
||||||
click: true,
|
click: true,
|
||||||
drag: true,
|
drag: true,
|
||||||
focusable: true,
|
focusable: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
let (rect, response) = ui.allocate_at_least(size, sense);
|
let desired_size = ui.available_size();
|
||||||
|
let response = ui.allocate_response(desired_size, sense);
|
||||||
|
let rect = response.rect;
|
||||||
|
|
||||||
|
if rect.size() != self.current_size {
|
||||||
|
let size = rect.size();
|
||||||
|
self.current_size = size;
|
||||||
|
|
||||||
|
let size = canary::Vec2::new(size.x, size.y);
|
||||||
|
println!("resizing: {:?}", size);
|
||||||
|
self.panel.on_resize(size / PX_PER_MM);
|
||||||
|
}
|
||||||
|
|
||||||
if let Some(hover_pos) = response.hover_pos() {
|
if let Some(hover_pos) = response.hover_pos() {
|
||||||
let local = (hover_pos - rect.left_top()) * PX_PER_MM;
|
let local = (hover_pos - rect.left_top()) * PX_PER_MM;
|
||||||
|
|
Loading…
Reference in New Issue