parent
4ae3a6708e
commit
38bf469539
|
|
@ -598,6 +598,7 @@ version = "0.1.0"
|
|||
dependencies = [
|
||||
"eframe",
|
||||
"egui",
|
||||
"egui_dock",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
@ -773,6 +774,17 @@ version = "0.1.2"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76"
|
||||
|
||||
[[package]]
|
||||
name = "duplicate"
|
||||
version = "2.0.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8e92f10a49176cbffacaedabfaa11d51db1ea0f80a83c26e1873b43cd1742c24"
|
||||
dependencies = [
|
||||
"heck",
|
||||
"proc-macro2",
|
||||
"proc-macro2-diagnostics",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ecolor"
|
||||
version = "0.34.2"
|
||||
|
|
@ -879,6 +891,18 @@ dependencies = [
|
|||
"winit",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "egui_dock"
|
||||
version = "0.19.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "db51b9023b9d65cb4d561fd981946f987c54f25413c75b2c8e634c774c3d70ad"
|
||||
dependencies = [
|
||||
"duplicate",
|
||||
"egui",
|
||||
"paste",
|
||||
"thiserror 2.0.18",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "egui_glow"
|
||||
version = "0.34.2"
|
||||
|
|
@ -2244,6 +2268,12 @@ dependencies = [
|
|||
"windows-link",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "paste"
|
||||
version = "1.0.15"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
|
||||
|
||||
[[package]]
|
||||
name = "peniko"
|
||||
version = "0.6.0"
|
||||
|
|
@ -2446,6 +2476,18 @@ dependencies = [
|
|||
"unicode-ident",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "proc-macro2-diagnostics"
|
||||
version = "0.10.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
"version_check",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "profiling"
|
||||
version = "1.0.18"
|
||||
|
|
|
|||
|
|
@ -6,3 +6,4 @@ edition = "2024"
|
|||
[dependencies]
|
||||
eframe = "0.34.2"
|
||||
egui = "0.34.2"
|
||||
egui_dock = "0.19.1"
|
||||
|
|
|
|||
|
|
@ -1,15 +1,61 @@
|
|||
use egui_dock::{DockArea, Style};
|
||||
|
||||
static TABS_CAN_BE_WINDOWS: bool = false;
|
||||
|
||||
enum TabTypes{
|
||||
Equipment,
|
||||
Worker,
|
||||
Position,
|
||||
Salary,
|
||||
Material,
|
||||
Recipe,
|
||||
Product,
|
||||
Order,
|
||||
Settings
|
||||
}
|
||||
struct Tab{
|
||||
tab_type: TabTypes,
|
||||
title: String,
|
||||
content: String,
|
||||
}
|
||||
|
||||
pub struct App{
|
||||
label: String,
|
||||
tree: egui_dock::DockState<Tab>,
|
||||
}
|
||||
|
||||
impl Default for App{
|
||||
fn default() -> Self{
|
||||
Self {
|
||||
label: "Добро пожаловать в СУП: Систему Управления Пивоварней!".to_owned()
|
||||
}
|
||||
}
|
||||
let mut tree = egui_dock::DockState::new(vec![
|
||||
Tab{
|
||||
tab_type: TabTypes::Equipment,
|
||||
title:"Оборудование".to_owned(),
|
||||
content:"Вкладка с оборудованием".to_owned()
|
||||
},
|
||||
Tab{
|
||||
tab_type: TabTypes::Material,
|
||||
title: "Сырьё".to_owned(),
|
||||
content:"Вкладка с сырьём".to_owned()
|
||||
},
|
||||
Tab{
|
||||
tab_type: TabTypes::Worker,
|
||||
title: "Сотрудники".to_owned(),
|
||||
content:"Сотрудники".to_owned()
|
||||
}
|
||||
]);
|
||||
|
||||
// let [a,b] =
|
||||
// tree.main_surface_mut()
|
||||
// .split_left(egui_dock::NodeIndex::root(), 0.3, vec!["tab3".to_owned()]);
|
||||
|
||||
// let [_,_] = tree
|
||||
// .main_surface_mut()
|
||||
// .split_below(a, 0.7, vec!["tab4".to_owned()]);
|
||||
// let [_,_] = tree
|
||||
// .main_surface_mut()
|
||||
// .split_below(b, 0.5, vec!["tab5".to_owned()]);
|
||||
Self{tree}
|
||||
}
|
||||
}
|
||||
impl App{
|
||||
pub fn new(_cc: &eframe::CreationContext<'_>) -> Self{
|
||||
Default::default()
|
||||
|
|
@ -19,18 +65,36 @@ impl App{
|
|||
|
||||
impl eframe::App for App{
|
||||
fn ui(&mut self, ui: &mut egui::Ui, _frame: &mut eframe::Frame){
|
||||
DockArea::new(&mut self.tree)
|
||||
.style(Style::from_egui(ui.style().as_ref()))
|
||||
.show_inside(ui, &mut TabViewer {});
|
||||
}
|
||||
}
|
||||
|
||||
egui::Panel::top("top_panel").show_inside(ui, |ui| {
|
||||
egui::MenuBar::new().ui(ui, |ui| {
|
||||
egui::widgets::global_theme_preference_buttons(ui);
|
||||
});
|
||||
});
|
||||
egui::CentralPanel::default().show_inside(ui, |ui|{
|
||||
ui.heading("Система Управления Пивоварней");
|
||||
ui.horizontal(|ui|{
|
||||
ui.label("write something: ");
|
||||
ui.text_edit_singleline(&mut self.label);
|
||||
});
|
||||
});
|
||||
struct TabViewer {}
|
||||
|
||||
impl egui_dock::TabViewer for TabViewer{
|
||||
type Tab = Tab;
|
||||
|
||||
fn title(&mut self, tab: &mut Self::Tab) -> egui::WidgetText{
|
||||
(&*tab.title).into()
|
||||
}
|
||||
fn ui(&mut self, ui: &mut egui::Ui, tab: &mut Self::Tab){
|
||||
ui.label(&tab.content);
|
||||
match &tab.tab_type{
|
||||
TabTypes::Equipment => {
|
||||
ui.label("This is Equipment");
|
||||
},
|
||||
_ =>{
|
||||
ui.label("This is not");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
fn allowed_in_windows(&self, _tab: &mut Self::Tab) -> bool {
|
||||
TABS_CAN_BE_WINDOWS
|
||||
}
|
||||
fn is_closeable(&self, _tab: &Self::Tab) -> bool {
|
||||
false
|
||||
}
|
||||
}
|
||||
|
|
@ -1,3 +1,4 @@
|
|||
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
|
||||
fn main() -> eframe::Result{
|
||||
|
||||
let native_opts = eframe::NativeOptions {
|
||||
|
|
@ -8,4 +9,4 @@ fn main() -> eframe::Result{
|
|||
};
|
||||
eframe::run_native("BCS", native_opts, Box::new(|cc| Ok(Box::new(code::App::new(cc)))),)
|
||||
|
||||
} //Код не работает, ошибка пока и должна быть.
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
Есть следующие вкладки:
|
||||
Equipment - управление оборудованием
|
||||
Worker - Управление сотрудниками
|
||||
Position - Управление должностями(внутри сотрудника)
|
||||
Salary - управление зарплатами(внутри сотрудника)
|
||||
Material - управление сырьём
|
||||
Recipe - управление рецептами
|
||||
Product - управление продукцией(внутри рецептов)
|
||||
Order - управление заказами
|
||||
Settings - настройки
|
||||
|
||||
В настройках можно:
|
||||
разрешить вкладкам становиться окнами
|
||||
Loading…
Reference in New Issue