use bevy::prelude::*;
use bevy_egui::{egui, EguiContext, EguiPlugin};
struct Address(String);
pub struct SetupUIPlugin;
impl Plugin for SetupUIPlugin {
fn build(&self, app: &mut AppBuilder) {
app.insert_resource(Address("".to_owned()));
}
}
fn main() {
App::build()
.add_plugins(DefaultPlugins)
.add_plugin(EguiPlugin)
.add_plugin(SetupUIPlugin)
.add_system(ui_example.system())
.run();
}
fn ui_example(mut address: ResMut<Address>, egui_context: ResMut<EguiContext>) {
let ctx = egui_context.ctx();
egui::TopPanel::top("top_panel").show(ctx, |ui| {
ui.set_min_height(28.0); ui.with_layout(egui::Layout::left_to_right(), |ui| {
if ui.button("⬅").clicked() {
println!("Back clicked!");
}
if ui.button("➡").clicked() {
println!("Forward clicked!")
}
if ui.button("🔃").clicked() {
println!("Reload clicked!")
};
if ui.button("🏠").clicked() {
println!("Home clicked!")
}
let separator_and_menu_button_width = 50.0;
ui.add(
egui::TextEdit::singleline(&mut address.0)
.hint_text("Search with Google or enter address")
.id_source("address_bar")
.desired_width(ui.available_width() - separator_and_menu_button_width),
);
ui.separator();
if ui.button("☰").clicked() {
println!("Menu clicked!");
}
});
});
egui::CentralPanel::default().show(ctx, |ui| {
ui.heading("Hello world!");
});
}