zoodex/src/ui/mod.rs

42 lines
1.2 KiB
Rust
Raw Normal View History

2024-11-20 16:32:37 +01:00
mod collection_menu ;
mod dynamic_container ;
2024-11-20 16:32:37 +01:00
mod internal ;
mod utility ;
use { gtk4 :: prelude :: * , libadwaita :: * } ;
use crate :: {
collection :: * ,
ui :: { dynamic_container :: * , internal :: * , utility :: * } ,
} ;
2024-11-20 16:32:37 +01:00
pub struct UI {
window : ApplicationWindow ,
films_container : FilmsContainer ,
series_container : SeriesContainer ,
}
impl UI {
pub fn new ( application : & Application ) -> UI {
let films_container = FilmsContainer :: new ( vec ! () ) ;
let series_container = SeriesContainer :: new ( vec ! () ) ;
let collection_view_stack = create_view_stack ! (
"Films" , "camera-video-symbolic" , films_container . get_widget () ,
"Series" , "video-display-symbolic" , series_container . get_widget () ,
) ;
let header_bar = create_header_bar ( & collection_view_stack ) ;
let window = create_window ( application , & header_bar , & collection_view_stack ) ;
UI { window , films_container , series_container }
}
pub fn show_window ( & self ) { self . window . set_visible (true) }
pub fn render_collection ( & mut self , collection : Collection ) {
self . films_container . set_films ( collection . films ) ;
self . series_container . set_series ( collection . series ) ;
}
}