Show menu bar in main window instead of in example window
This commit is contained in:
parent
cce94676b6
commit
8c0942bf1e
3 changed files with 19 additions and 11 deletions
|
@ -16,7 +16,13 @@ pub struct ExampleApp {
|
|||
}
|
||||
|
||||
impl ExampleApp {
|
||||
pub fn ui(&mut self, ctx: &Arc<Context>) {
|
||||
pub fn ui(&mut self, ui: &mut Ui) {
|
||||
show_menu_bar(ui, &mut self.open_windows);
|
||||
ui.add(Separator::new());
|
||||
self.windows(ui.ctx());
|
||||
}
|
||||
|
||||
pub fn windows(&mut self, ctx: &Arc<Context>) {
|
||||
// TODO: Make it even simpler to show a window
|
||||
|
||||
// TODO: window manager for automatic positioning?
|
||||
|
@ -42,10 +48,10 @@ impl ExampleApp {
|
|||
}
|
||||
|
||||
Window::new("Examples")
|
||||
.open(&mut open_windows.examples)
|
||||
.default_pos(pos2(32.0, 100.0))
|
||||
.default_size(vec2(430.0, 600.0))
|
||||
.show(ctx, |ui| {
|
||||
show_menu_bar(ui, open_windows);
|
||||
example_window.ui(ui);
|
||||
});
|
||||
|
||||
|
@ -79,6 +85,7 @@ impl ExampleApp {
|
|||
|
||||
#[derive(Deserialize, Serialize)]
|
||||
struct OpenWindows {
|
||||
examples: bool,
|
||||
settings: bool,
|
||||
inspection: bool,
|
||||
memory: bool,
|
||||
|
@ -88,8 +95,9 @@ struct OpenWindows {
|
|||
impl Default for OpenWindows {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
examples: true,
|
||||
settings: false,
|
||||
inspection: true,
|
||||
inspection: false,
|
||||
memory: false,
|
||||
fractal_clock: false,
|
||||
}
|
||||
|
@ -107,13 +115,15 @@ fn show_menu_bar(ui: &mut Ui, windows: &mut OpenWindows) {
|
|||
// TODO: open on top when clicking a new.
|
||||
// Maybe an Window or Area can detect that: if wasn't open last frame, but is now,
|
||||
// then automatically go to front?
|
||||
ui.add(Checkbox::new(&mut windows.examples, "Examples"));
|
||||
ui.add(Checkbox::new(&mut windows.settings, "Settings"));
|
||||
ui.add(Checkbox::new(&mut windows.inspection, "Inspection"));
|
||||
ui.add(Checkbox::new(&mut windows.memory, "Memory"));
|
||||
ui.add(Checkbox::new(&mut windows.fractal_clock, "Fractal Clock"));
|
||||
});
|
||||
menu::menu(ui, "About", |ui| {
|
||||
ui.add(label!("This is Emigui, but you already knew that!"));
|
||||
ui.add(label!("This is Emigui"));
|
||||
ui.add(Hyperlink::new("https://github.com/emilk/emigui/").text("Emigui home page"));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
|
@ -79,7 +79,7 @@ fn main() {
|
|||
let mut running = true;
|
||||
let mut frame_start = Instant::now();
|
||||
let mut frame_times = emigui::MovementTracker::new(1000, 1.0);
|
||||
let mut examples = ExampleApp::default();
|
||||
let mut example_app = ExampleApp::default();
|
||||
let mut clipboard = emigui_glium::init_clipboard();
|
||||
|
||||
emigui_glium::read_memory(&ctx, memory_path);
|
||||
|
@ -109,6 +109,7 @@ fn main() {
|
|||
let emigui_start = Instant::now();
|
||||
ctx.begin_frame(raw_input.clone()); // TODO: avoid clone
|
||||
let mut ui = ctx.fullscreen_ui();
|
||||
example_app.ui(&mut ui);
|
||||
let mut ui = ui.centered_column(ui.available_width().min(480.0));
|
||||
ui.set_align(Align::Min);
|
||||
ui.add(label!("Emigui running inside of Glium").text_style(emigui::TextStyle::Heading));
|
||||
|
@ -131,8 +132,6 @@ fn main() {
|
|||
.text_style(TextStyle::Monospace),
|
||||
);
|
||||
|
||||
examples.ui(&ctx);
|
||||
|
||||
let (output, paint_batches) = ctx.end_frame();
|
||||
|
||||
frame_times.add(
|
||||
|
|
|
@ -15,7 +15,7 @@ use wasm_bindgen::prelude::*;
|
|||
|
||||
#[wasm_bindgen]
|
||||
pub struct State {
|
||||
examples: ExampleApp,
|
||||
example_app: ExampleApp,
|
||||
ctx: Arc<Context>,
|
||||
webgl_painter: emigui_wasm::webgl::Painter,
|
||||
|
||||
|
@ -27,7 +27,7 @@ impl State {
|
|||
let ctx = Context::new(pixels_per_point);
|
||||
emigui_wasm::load_memory(&ctx);
|
||||
Ok(State {
|
||||
examples: Default::default(),
|
||||
example_app: Default::default(),
|
||||
ctx,
|
||||
webgl_painter: emigui_wasm::webgl::Painter::new(canvas_id)?,
|
||||
frame_times: emigui::MovementTracker::new(1000, 1.0),
|
||||
|
@ -41,6 +41,7 @@ impl State {
|
|||
self.ctx.begin_frame(raw_input);
|
||||
|
||||
let mut ui = self.ctx.fullscreen_ui();
|
||||
self.example_app.ui(&mut ui);
|
||||
let mut ui = ui.centered_column(ui.available_width().min(480.0));
|
||||
ui.set_align(Align::Min);
|
||||
ui.add(label!("Emigui!").text_style(TextStyle::Heading));
|
||||
|
@ -77,8 +78,6 @@ impl State {
|
|||
.text_style(TextStyle::Monospace),
|
||||
);
|
||||
|
||||
self.examples.ui(&self.ctx);
|
||||
|
||||
let bg_color = srgba(0, 0, 0, 0); // Use background css color.
|
||||
let (output, batches) = self.ctx.end_frame();
|
||||
|
||||
|
|
Loading…
Reference in a new issue