diff --git a/docs/example_wasm.js b/docs/example_wasm.js index baab8cf0..c6b91057 100644 --- a/docs/example_wasm.js +++ b/docs/example_wasm.js @@ -219,12 +219,12 @@ function __wbg_adapter_32(arg0, arg1, arg2) { wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h22fd33d9f501a695(arg0, arg1, addHeapObject(arg2)); } -function __wbg_adapter_35(arg0, arg1, arg2) { - wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h22fd33d9f501a695(arg0, arg1, addHeapObject(arg2)); +function __wbg_adapter_35(arg0, arg1) { + wasm._dyn_core__ops__function__FnMut_____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h5402719cc6dde927(arg0, arg1); } -function __wbg_adapter_38(arg0, arg1) { - wasm._dyn_core__ops__function__FnMut_____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h5402719cc6dde927(arg0, arg1); +function __wbg_adapter_38(arg0, arg1, arg2) { + wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h22fd33d9f501a695(arg0, arg1, addHeapObject(arg2)); } function __wbg_adapter_41(arg0, arg1, arg2) { @@ -725,28 +725,28 @@ async function init(input) { var ret = wasm.memory; return addHeapObject(ret); }; + imports.wbg.__wbindgen_closure_wrapper387 = function(arg0, arg1, arg2) { + var ret = makeMutClosure(arg0, arg1, 74, __wbg_adapter_26); + return addHeapObject(ret); + }; imports.wbg.__wbindgen_closure_wrapper383 = function(arg0, arg1, arg2) { - var ret = makeMutClosure(arg0, arg1, 72, __wbg_adapter_41); + var ret = makeMutClosure(arg0, arg1, 74, __wbg_adapter_32); + return addHeapObject(ret); + }; + imports.wbg.__wbindgen_closure_wrapper380 = function(arg0, arg1, arg2) { + var ret = makeMutClosure(arg0, arg1, 74, __wbg_adapter_38); return addHeapObject(ret); }; imports.wbg.__wbindgen_closure_wrapper385 = function(arg0, arg1, arg2) { - var ret = makeMutClosure(arg0, arg1, 72, __wbg_adapter_35); + var ret = makeMutClosure(arg0, arg1, 74, __wbg_adapter_29); return addHeapObject(ret); }; - imports.wbg.__wbindgen_closure_wrapper375 = function(arg0, arg1, arg2) { - var ret = makeMutClosure(arg0, arg1, 72, __wbg_adapter_38); - return addHeapObject(ret); - }; - imports.wbg.__wbindgen_closure_wrapper376 = function(arg0, arg1, arg2) { - var ret = makeMutClosure(arg0, arg1, 72, __wbg_adapter_26); - return addHeapObject(ret); - }; - imports.wbg.__wbindgen_closure_wrapper381 = function(arg0, arg1, arg2) { - var ret = makeMutClosure(arg0, arg1, 72, __wbg_adapter_29); + imports.wbg.__wbindgen_closure_wrapper389 = function(arg0, arg1, arg2) { + var ret = makeMutClosure(arg0, arg1, 74, __wbg_adapter_41); return addHeapObject(ret); }; imports.wbg.__wbindgen_closure_wrapper379 = function(arg0, arg1, arg2) { - var ret = makeMutClosure(arg0, arg1, 72, __wbg_adapter_32); + var ret = makeMutClosure(arg0, arg1, 74, __wbg_adapter_35); return addHeapObject(ret); }; diff --git a/docs/example_wasm_bg.wasm b/docs/example_wasm_bg.wasm new file mode 100644 index 00000000..35961b2a Binary files /dev/null and b/docs/example_wasm_bg.wasm differ diff --git a/egui/src/containers/window.rs b/egui/src/containers/window.rs index a7c3a307..a0a70f59 100644 --- a/egui/src/containers/window.rs +++ b/egui/src/containers/window.rs @@ -77,6 +77,16 @@ impl<'open> Window<'open> { self } + pub fn default_width(mut self, default_width: f32) -> Self { + self.resize = self.resize.default_width(default_width); + self + } + + pub fn default_height(mut self, default_height: f32) -> Self { + self.resize = self.resize.default_height(default_height); + self + } + pub fn default_rect(self, rect: Rect) -> Self { self.default_pos(rect.min).default_size(rect.size()) } diff --git a/example_wasm/src/lib.rs b/example_wasm/src/lib.rs index 4f4c5cd6..774960e1 100644 --- a/example_wasm/src/lib.rs +++ b/example_wasm/src/lib.rs @@ -1,7 +1,7 @@ #![deny(warnings)] #![warn(clippy::all)] -use egui::{label, Align, Layout, TextStyle}; +use egui::{label, TextStyle}; use wasm_bindgen::prelude::*; @@ -25,17 +25,12 @@ pub struct MyApp { frames_painted: u64, } -impl egui_web::App for MyApp { - fn ui(&mut self, ui: &mut egui::Ui, backend: &mut egui_web::Backend, info: &egui_web::WebInfo) { - self.example_app.ui(ui, &info.web_location_hash); - - let mut ui = ui.centered_column(ui.available().width().min(480.0)); - ui.set_layout(Layout::vertical(Align::Min)); - ui.add(label!("Egui!").text_style(TextStyle::Heading)); +impl MyApp { + fn window_ui(&mut self, ui: &mut egui::Ui, backend: &mut egui_web::Backend) { ui.label("Egui is an immediate mode GUI written in Rust, compiled to WebAssembly, rendered with WebGL."); ui.label( - "Everything you see is rendered as textured triangles. There is no DOM. There are no HTML elements." - ); + "Everything you see is rendered as textured triangles. There is no DOM. There are no HTML elements." + ); ui.label("This is not JavaScript. This is Rust, running at 60 FPS. This is the web page, reinvented with game tech."); ui.label("This is also work in progress, and not ready for production... yet :)"); ui.horizontal(|ui| { @@ -82,3 +77,15 @@ impl egui_web::App for MyApp { ui.label(format!("Total frames painted: {}", self.frames_painted)); } } + +impl egui_web::App for MyApp { + fn ui(&mut self, ui: &mut egui::Ui, backend: &mut egui_web::Backend, info: &egui_web::WebInfo) { + egui::Window::new("Egui") + .default_width(500.0) + .show(ui.ctx(), |ui| { + self.window_ui(ui, backend); + }); + + self.example_app.ui(ui, &info.web_location_hash); + } +}