added inputs components and created page for fifth lab

This commit is contained in:
2024-03-17 21:34:12 +04:00
parent 5bd783b75b
commit 5687d6773a
11 changed files with 359 additions and 168 deletions

View File

@@ -12,7 +12,7 @@ use gtk::{
prelude::{BoxExt, IsA},
};
use crate::view::components::builder_pattern_traits::{Builder, Product};
use crate::view::components::builder_traits::{Builder, Product};
pub type Page<'a> = (&'a str, &'a str, &'a Box);
@@ -25,6 +25,7 @@ pub struct PagesBuilder{
}
impl Product<PagesBuilder, Box> for Pages {
fn builder() -> PagesBuilder {
PagesBuilder {
pages_content: Stack::new(),
@@ -34,9 +35,11 @@ impl Product<PagesBuilder, Box> for Pages {
fn get(self) -> Box {
self.wrapper
}
}
impl Builder<Pages, Page<'_>, i32> for PagesBuilder{
fn build(&self, build_param: i32) -> Pages {
let stack_sidebar = StackSidebar::new();
let stack_switcher = StackSwitcher::new();
@@ -56,17 +59,18 @@ impl Builder<Pages, Page<'_>, i32> for PagesBuilder{
fn append_item(self, item: Page) -> Self {
self.append_page_private(item);
self
}
fn append_items(self, items: Vec<Page>) -> Self {
items.iter()
.for_each(|&item| {
self.append_page_private(item);
});
for item in items {
self.append_page_private(item);
}
self
}
}
impl PagesBuilder {