use crate::model::builder_traits::*; use builders::{BoxBuilder, RevealerBuilder}; use gtk4 as gtk; use gtk::{prelude::*, Revealer, StackTransitionType::SlideLeftRight, *}; use crate::view::components::pages::Pages; #[allow(unused)] use crate::view::{ components::{wrapper::*, *}, pages::*, properties::*, }; use super::styles::load_css; pub fn ui(application: &adw::Application) { load_css(); let hamming_code = Wrapper::row_builder() .set_align(Alignment::new(Align::Fill, Align::Fill)) .set_margin(MarginData::EqualsMargin(15)) .spacing(10) .build(); let info_bar_label = Label::builder().label("test").build(); let info_bar: Revealer = Revealer::builder() .child(&info_bar_label) .transition_type(RevealerTransitionType::SlideUp) .transition_duration(200) .build(); hamming_code::hamming_code_page(&hamming_code, info_bar.clone()); let signal_reducing = Wrapper::row_builder() .set_align(Alignment::new(Align::Fill, Align::Fill)) .set_margin(MarginData::EqualsMargin(15)) .spacing(10) .build(); signal_reducing::signal_reducing_page(&signal_reducing, info_bar.clone()); let pages = Pages::builder() .set_transition(SlideLeftRight, 200) .append_items(vec![ ("Код Хэмминга", "Код Хэмминга", &hamming_code), ("Затухание сигнала", "Затухание сигнала", &signal_reducing), ]) .build(5) .get(); let application_box = Box::new(Orientation::Vertical, 0); application_box.append(&info_bar); application_box.append(&pages); let window = ApplicationWindow::builder() .title("Комплексная программа для лаб. работ") .width_request(700) .height_request(400) .application(application) .child(&application_box) .build(); window.show(); }