Box the app creator (#1373)
This commit is contained in:
parent
c8f6cae362
commit
c69f39e869
12 changed files with 46 additions and 23 deletions
|
@ -4,7 +4,11 @@ use eframe::egui;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let options = eframe::NativeOptions::default();
|
let options = eframe::NativeOptions::default();
|
||||||
eframe::run_native("Confirm exit", options, |_cc| Box::new(MyApp::default()));
|
eframe::run_native(
|
||||||
|
"Confirm exit",
|
||||||
|
options,
|
||||||
|
Box::new(|_cc| Box::new(MyApp::default())),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Default)]
|
#[derive(Default)]
|
||||||
|
|
|
@ -15,9 +15,11 @@ use std::sync::Arc;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let options = eframe::NativeOptions::default();
|
let options = eframe::NativeOptions::default();
|
||||||
eframe::run_native("Custom 3D painting in eframe", options, |cc| {
|
eframe::run_native(
|
||||||
Box::new(MyApp::new(cc))
|
"Custom 3D painting in eframe",
|
||||||
});
|
options,
|
||||||
|
Box::new(|cc| Box::new(MyApp::new(cc))),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct MyApp {
|
struct MyApp {
|
||||||
|
|
|
@ -4,9 +4,11 @@ use eframe::egui;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let options = eframe::NativeOptions::default();
|
let options = eframe::NativeOptions::default();
|
||||||
eframe::run_native("egui example: custom font", options, |cc| {
|
eframe::run_native(
|
||||||
Box::new(MyApp::new(cc))
|
"egui example: custom font",
|
||||||
});
|
options,
|
||||||
|
Box::new(|cc| Box::new(MyApp::new(cc))),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn setup_custom_fonts(ctx: &egui::Context) {
|
fn setup_custom_fonts(ctx: &egui::Context) {
|
||||||
|
|
|
@ -9,7 +9,7 @@ fn main() {
|
||||||
eframe::run_native(
|
eframe::run_native(
|
||||||
"Download and show an image with eframe/egui",
|
"Download and show an image with eframe/egui",
|
||||||
options,
|
options,
|
||||||
|_cc| Box::new(MyApp::default()),
|
Box::new(|_cc| Box::new(MyApp::default())),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ fn main() {
|
||||||
eframe::run_native(
|
eframe::run_native(
|
||||||
"Native file dialogs and drag-and-drop files",
|
"Native file dialogs and drag-and-drop files",
|
||||||
options,
|
options,
|
||||||
|_cc| Box::new(MyApp::default()),
|
Box::new(|_cc| Box::new(MyApp::default())),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,11 @@ use eframe::egui;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let options = eframe::NativeOptions::default();
|
let options = eframe::NativeOptions::default();
|
||||||
eframe::run_native("My egui App", options, |_cc| Box::new(MyApp::default()));
|
eframe::run_native(
|
||||||
|
"My egui App",
|
||||||
|
options,
|
||||||
|
Box::new(|_cc| Box::new(MyApp::default())),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct MyApp {
|
struct MyApp {
|
||||||
|
|
|
@ -5,9 +5,11 @@ use egui_extras::RetainedImage;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let options = eframe::NativeOptions::default();
|
let options = eframe::NativeOptions::default();
|
||||||
eframe::run_native("Show an image with eframe/egui", options, |_cc| {
|
eframe::run_native(
|
||||||
Box::new(MyApp::default())
|
"Show an image with eframe/egui",
|
||||||
});
|
options,
|
||||||
|
Box::new(|_cc| Box::new(MyApp::default())),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct MyApp {
|
struct MyApp {
|
||||||
|
|
|
@ -11,7 +11,11 @@ fn main() {
|
||||||
initial_window_size: Some(egui::vec2(1000.0, 700.0)),
|
initial_window_size: Some(egui::vec2(1000.0, 700.0)),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
};
|
};
|
||||||
eframe::run_native("svg example", options, |_cc| Box::new(MyApp::default()));
|
eframe::run_native(
|
||||||
|
"svg example",
|
||||||
|
options,
|
||||||
|
Box::new(|_cc| Box::new(MyApp::default())),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct MyApp {
|
struct MyApp {
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
//!
|
//!
|
||||||
//! fn main() {
|
//! fn main() {
|
||||||
//! let native_options = eframe::NativeOptions::default();
|
//! let native_options = eframe::NativeOptions::default();
|
||||||
//! eframe::run_native("My egui App", native_options, |cc| Box::new(MyEguiApp::new(cc)));
|
//! eframe::run_native("My egui App", native_options, Box::new(|cc| Box::new(MyEguiApp::new(cc))));
|
||||||
//! }
|
//! }
|
||||||
//!
|
//!
|
||||||
//! #[derive(Default)]
|
//! #[derive(Default)]
|
||||||
|
@ -54,7 +54,7 @@
|
||||||
//! #[cfg(target_arch = "wasm32")]
|
//! #[cfg(target_arch = "wasm32")]
|
||||||
//! #[wasm_bindgen]
|
//! #[wasm_bindgen]
|
||||||
//! pub fn start(canvas_id: &str) -> Result<(), eframe::wasm_bindgen::JsValue> {
|
//! pub fn start(canvas_id: &str) -> Result<(), eframe::wasm_bindgen::JsValue> {
|
||||||
//! eframe::start_web(canvas_id, |cc| Box::new(MyApp::new(cc)))
|
//! eframe::start_web(canvas_id, Box::new(|cc| Box::new(MyApp::new(cc))))
|
||||||
//! }
|
//! }
|
||||||
//! ```
|
//! ```
|
||||||
|
|
||||||
|
@ -99,7 +99,7 @@ pub use egui_web::wasm_bindgen;
|
||||||
/// #[cfg(target_arch = "wasm32")]
|
/// #[cfg(target_arch = "wasm32")]
|
||||||
/// #[wasm_bindgen]
|
/// #[wasm_bindgen]
|
||||||
/// pub fn start(canvas_id: &str) -> Result<(), eframe::wasm_bindgen::JsValue> {
|
/// pub fn start(canvas_id: &str) -> Result<(), eframe::wasm_bindgen::JsValue> {
|
||||||
/// eframe::start_web(canvas_id, |cc| Box::new(MyEguiApp::new(cc)))
|
/// eframe::start_web(canvas_id, Box::new(|cc| Box::new(MyEguiApp::new(cc))))
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
#[cfg(target_arch = "wasm32")]
|
#[cfg(target_arch = "wasm32")]
|
||||||
|
@ -122,7 +122,7 @@ pub fn start_web(canvas_id: &str, app_creator: AppCreator) -> Result<(), wasm_bi
|
||||||
///
|
///
|
||||||
/// fn main() {
|
/// fn main() {
|
||||||
/// let native_options = eframe::NativeOptions::default();
|
/// let native_options = eframe::NativeOptions::default();
|
||||||
/// eframe::run_native("MyApp", native_options, |cc| Box::new(MyEguiApp::new(cc)));
|
/// eframe::run_native("MyApp", native_options, Box::new(|cc| Box::new(MyEguiApp::new(cc))));
|
||||||
/// }
|
/// }
|
||||||
///
|
///
|
||||||
/// #[derive(Default)]
|
/// #[derive(Default)]
|
||||||
|
|
|
@ -19,5 +19,8 @@ pub fn start(canvas_id: &str) -> Result<(), wasm_bindgen::JsValue> {
|
||||||
// Redirect tracing to console.log and friends:
|
// Redirect tracing to console.log and friends:
|
||||||
tracing_wasm::set_as_global_default();
|
tracing_wasm::set_as_global_default();
|
||||||
|
|
||||||
eframe::start_web(canvas_id, |cc| Box::new(egui_demo_lib::WrapApp::new(cc)))
|
eframe::start_web(
|
||||||
|
canvas_id,
|
||||||
|
Box::new(|cc| Box::new(egui_demo_lib::WrapApp::new(cc))),
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,9 @@ fn main() {
|
||||||
drag_and_drop_support: true,
|
drag_and_drop_support: true,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
};
|
};
|
||||||
eframe::run_native("egui demo app", options, |cc| {
|
eframe::run_native(
|
||||||
Box::new(egui_demo_lib::WrapApp::new(cc))
|
"egui demo app",
|
||||||
});
|
options,
|
||||||
|
Box::new(|cc| Box::new(egui_demo_lib::WrapApp::new(cc))),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -101,7 +101,7 @@ use std::sync::{Arc, Mutex};
|
||||||
/// The is is how your app is created.
|
/// The is is how your app is created.
|
||||||
///
|
///
|
||||||
/// You can use the [`CreationContext`] to setup egui, restore state, setup OpenGL things, etc.
|
/// You can use the [`CreationContext`] to setup egui, restore state, setup OpenGL things, etc.
|
||||||
pub type AppCreator = fn(&CreationContext<'_>) -> Box<dyn App>;
|
pub type AppCreator = Box<dyn FnOnce(&CreationContext<'_>) -> Box<dyn App>>;
|
||||||
|
|
||||||
/// Data that is passed to [`AppCreator`] that can be used to setup and initialize your app.
|
/// Data that is passed to [`AppCreator`] that can be used to setup and initialize your app.
|
||||||
pub struct CreationContext<'s> {
|
pub struct CreationContext<'s> {
|
||||||
|
|
Loading…
Reference in a new issue