use gtk4 as gtk; use crate::{ model::builder_traits::Product, view::{ components::{input::Input, wrapper::Wrapper}, properties::*, }, }; use gtk::{prelude::*, Align, WrapMode, *}; pub fn signal_reducing_page(wrapper: &Box) { let (input_height, monospace, input_alignment, input_wrapping): (i32, bool, Align, WrapMode) = (24, true, Align::Fill, WrapMode::Word); let input_label_alignment = Alignment { horizontal: Align::Start, vertical: Align::Fill, }; let wire_length_input = Input::builder() .set_label("l, м:") .set_margins(MarginData::EqualsMargin(5)) .set_align(input_label_alignment) .build(monospace, input_wrapping, input_height) .get(); wire_length_input.set_halign(input_alignment); wire_length_input.set_hexpand(true); let resistance_per_meter_input = Input::builder() .set_label("Rм, Ом:") .set_margins(MarginData::EqualsMargin(5)) .set_align(input_label_alignment) .build(monospace, input_wrapping, input_height) .get(); resistance_per_meter_input.set_halign(input_alignment); resistance_per_meter_input.set_hexpand(true); let capacity_per_meter_input = Input::builder() .set_label("Cм, пФ:") .set_margins(MarginData::EqualsMargin(5)) .set_align(input_label_alignment) .build(monospace, input_wrapping, input_height) .get(); capacity_per_meter_input.set_halign(input_alignment); capacity_per_meter_input.set_hexpand(true); let wrapper_first_row = Wrapper::col_builder() .halign(Align::Fill) .hexpand(true) .spacing(5) .build(); wrapper_first_row.append(&wire_length_input); wrapper_first_row.append(&resistance_per_meter_input); wrapper_first_row.append(&capacity_per_meter_input); let info_signal_voltage_input = Input::builder() .set_label("Vи, мВ:") .set_margins(MarginData::EqualsMargin(5)) .set_align(input_label_alignment) .build(monospace, input_wrapping, input_height) .get(); info_signal_voltage_input.set_halign(input_alignment); info_signal_voltage_input.set_hexpand(true); let resistance_of_info_voltage_source_input = Input::builder() .set_label("Rи, Ом:") .set_margins(MarginData::EqualsMargin(5)) .set_align(input_label_alignment) .build(monospace, input_wrapping, input_height) .get(); resistance_of_info_voltage_source_input.set_halign(input_alignment); resistance_of_info_voltage_source_input.set_hexpand(true); let info_voltage_source_frequency_input = Input::builder() .set_label("f, мГц:") .set_margins(MarginData::EqualsMargin(5)) .set_align(input_label_alignment) .build(monospace, input_wrapping, input_height) .get(); info_voltage_source_frequency_input.set_halign(input_alignment); info_voltage_source_frequency_input.set_hexpand(true); let wrapper_second_row = Wrapper::col_builder() .halign(Align::Fill) .hexpand(true) .spacing(5) .build(); wrapper_second_row.append(&info_signal_voltage_input); wrapper_second_row.append(&resistance_of_info_voltage_source_input); wrapper_second_row.append(&info_voltage_source_frequency_input); let main_wpapper = Wrapper::row_builder().spacing(5).build(); main_wpapper.append(&wrapper_first_row); main_wpapper.append(&wrapper_second_row); wrapper.append(&main_wpapper); }