Rendering board
This commit is contained in:
parent
0f2ec21bf7
commit
3d533d3e54
@ -4,8 +4,9 @@
|
|||||||
mod algo;
|
mod algo;
|
||||||
|
|
||||||
use eframe::egui;
|
use eframe::egui;
|
||||||
use eframe::egui::Ui;
|
use eframe::egui::{CornerRadius, Frame, Ui};
|
||||||
use eframe::emath::Numeric;
|
use eframe::emath::Numeric;
|
||||||
|
use eframe::epaint::{Color32, Pos2, Rect, RectShape, Rounding, Shape};
|
||||||
use rand::SeedableRng;
|
use rand::SeedableRng;
|
||||||
use std::ops::RangeInclusive;
|
use std::ops::RangeInclusive;
|
||||||
use std::time::{SystemTime, UNIX_EPOCH};
|
use std::time::{SystemTime, UNIX_EPOCH};
|
||||||
@ -123,30 +124,60 @@ impl eframe::App for MyApp {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
match &self.result {
|
match self.result.clone() {
|
||||||
None => {}
|
None => {}
|
||||||
Some(result) => ui.ctx().show_viewport_immediate(
|
Some(board) => ui.ctx().show_viewport_immediate(
|
||||||
egui::ViewportId::from_hash_of("immediate_viewport"),
|
egui::ViewportId::from_hash_of("board"),
|
||||||
egui::ViewportBuilder::default()
|
egui::ViewportBuilder::default()
|
||||||
.with_title("Immediate Viewport")
|
.with_title("Board")
|
||||||
.with_inner_size([200.0, 100.0]),
|
.with_inner_size([
|
||||||
|ui, class| {
|
10.0 * self.boardSize as f32,
|
||||||
if class == egui::ViewportClass::Embedded {
|
10.0 * self.boardSize as f32,
|
||||||
/*ui.label(
|
]),
|
||||||
"This viewport is embedded in the parent window, and cannot be moved outside of it.",
|
|ui, _| {
|
||||||
);*/
|
egui::CentralPanel::default()
|
||||||
} else {
|
.frame(Frame::default().inner_margin(0.0))
|
||||||
egui::CentralPanel::default().show(ui, |ui| {
|
.show(ui, |ui| {
|
||||||
ui.label("Hello from immediate viewport");
|
let painter = ui.painter();
|
||||||
|
painter.rect_filled(
|
||||||
|
ui.available_rect_before_wrap(),
|
||||||
|
CornerRadius::from(0),
|
||||||
|
Color32::from_rgb(0, 0, 0),
|
||||||
|
);
|
||||||
|
|
||||||
|
for y in 0..self.boardSize {
|
||||||
|
for x in 0..self.boardSize {
|
||||||
|
if y % 2 == x % 2 {
|
||||||
|
painter.rect_filled(
|
||||||
|
Rect::from_min_max(
|
||||||
|
Pos2::new((10 * x) as f32, (10 * y) as f32),
|
||||||
|
Pos2::new(
|
||||||
|
(10 * (x + 1)) as f32,
|
||||||
|
(10 * (y + 1)) as f32,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
CornerRadius::from(0),
|
||||||
|
Color32::from_rgb(255, 255, 255),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for i in 0..self.boardSize {
|
||||||
|
painter.circle_filled(
|
||||||
|
Pos2::new((10 * board[i] + 5) as f32, (10 * i + 5) as f32),
|
||||||
|
4.0,
|
||||||
|
Color32::from_rgb(255, 0, 0),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
if ui.input(|i| i.viewport().close_requested()) {
|
if ui.input(|i| i.viewport().close_requested()) {
|
||||||
self.result = None
|
self.result = None
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
}
|
};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user