AIT/src/view/view.rs

54 lines
1.5 KiB
Rust
Raw Normal View History

use crate::model::builder_traits::*;
2024-03-10 11:54:32 +03:00
use gtk4 as gtk;
use gtk::{*, prelude::*, StackTransitionType::SlideLeftRight};
2024-03-10 11:54:32 +03:00
use crate::{
view::{
properties::*,
components::{
*,
wrapper::*,
},
pages::*
},
2024-03-10 11:54:32 +03:00
};
use crate::view::components::pages::Pages;
2024-03-10 11:54:32 +03:00
pub fn ui(application: &adw::Application) {
2024-03-10 11:54:32 +03:00
let hamming_code = Wrapper::row_builder()
2024-03-10 11:54:32 +03:00
.set_align(Alignment::new(Align::Fill, Align::Fill))
.set_margin(MarginData::EqualsMargin(15))
.spacing(10)
.build();
hamming_code::hamming_code_page(&hamming_code);
2024-03-10 11:54:32 +03:00
let signal_reducing = Wrapper::row_builder()
2024-03-10 11:54:32 +03:00
.set_align(Alignment::new(Align::Fill, Align::Fill))
.set_margin(MarginData::EqualsMargin(15))
.spacing(10)
.build();
signal_reducing::signal_reducing_page(&signal_reducing);
2024-03-10 11:54:32 +03:00
let pages = Pages::builder()
.set_transition(SlideLeftRight, 200)
.append_items(vec![
("Код Хэмминга", "Код Хэмминга", &hamming_code),
("Затухание сигнала", "Затухание сигнала", &signal_reducing)
])
.build(5)
2024-03-10 11:54:32 +03:00
.get();
let window = ApplicationWindow::builder()
.title("Комплексная программа для лаб. работ")
.width_request(700)
2024-03-10 11:54:32 +03:00
.height_request(400)
.application(application)
.child(&pages)
2024-03-10 11:54:32 +03:00
.build();
window.show();
}