Move web app contents to own window

This commit is contained in:
Emil Ernerfeldt 2020-07-19 01:09:37 +02:00
parent 57ae03f52d
commit cb6b3bb58f
4 changed files with 44 additions and 27 deletions

View file

@ -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)); 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) { function __wbg_adapter_35(arg0, arg1) {
wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h22fd33d9f501a695(arg0, arg1, addHeapObject(arg2)); wasm._dyn_core__ops__function__FnMut_____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h5402719cc6dde927(arg0, arg1);
} }
function __wbg_adapter_38(arg0, arg1) { function __wbg_adapter_38(arg0, arg1, arg2) {
wasm._dyn_core__ops__function__FnMut_____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h5402719cc6dde927(arg0, arg1); 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) { function __wbg_adapter_41(arg0, arg1, arg2) {
@ -725,28 +725,28 @@ async function init(input) {
var ret = wasm.memory; var ret = wasm.memory;
return addHeapObject(ret); 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) { 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); return addHeapObject(ret);
}; };
imports.wbg.__wbindgen_closure_wrapper385 = function(arg0, arg1, arg2) { 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); return addHeapObject(ret);
}; };
imports.wbg.__wbindgen_closure_wrapper375 = function(arg0, arg1, arg2) { imports.wbg.__wbindgen_closure_wrapper389 = function(arg0, arg1, arg2) {
var ret = makeMutClosure(arg0, arg1, 72, __wbg_adapter_38); var ret = makeMutClosure(arg0, arg1, 74, __wbg_adapter_41);
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);
return addHeapObject(ret); return addHeapObject(ret);
}; };
imports.wbg.__wbindgen_closure_wrapper379 = function(arg0, arg1, arg2) { 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); return addHeapObject(ret);
}; };

BIN
docs/example_wasm_bg.wasm Normal file

Binary file not shown.

View file

@ -77,6 +77,16 @@ impl<'open> Window<'open> {
self 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 { pub fn default_rect(self, rect: Rect) -> Self {
self.default_pos(rect.min).default_size(rect.size()) self.default_pos(rect.min).default_size(rect.size())
} }

View file

@ -1,7 +1,7 @@
#![deny(warnings)] #![deny(warnings)]
#![warn(clippy::all)] #![warn(clippy::all)]
use egui::{label, Align, Layout, TextStyle}; use egui::{label, TextStyle};
use wasm_bindgen::prelude::*; use wasm_bindgen::prelude::*;
@ -25,17 +25,12 @@ pub struct MyApp {
frames_painted: u64, frames_painted: u64,
} }
impl egui_web::App for MyApp { impl MyApp {
fn ui(&mut self, ui: &mut egui::Ui, backend: &mut egui_web::Backend, info: &egui_web::WebInfo) { fn window_ui(&mut self, ui: &mut egui::Ui, backend: &mut egui_web::Backend) {
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));
ui.label("Egui is an immediate mode GUI written in Rust, compiled to WebAssembly, rendered with WebGL."); ui.label("Egui is an immediate mode GUI written in Rust, compiled to WebAssembly, rendered with WebGL.");
ui.label( 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 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.label("This is also work in progress, and not ready for production... yet :)");
ui.horizontal(|ui| { ui.horizontal(|ui| {
@ -82,3 +77,15 @@ impl egui_web::App for MyApp {
ui.label(format!("Total frames painted: {}", self.frames_painted)); 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);
}
}