zoodex/src/ui/mod.rs

43 lines
1.3 KiB
Rust
Raw Normal View History

mod collatable_container ;
mod collated_grid ;
mod collation_menu ;
2024-11-20 16:32:37 +01:00
mod internal ;
mod utility ;
use { gtk4 :: prelude :: * , libadwaita :: * } ;
use crate :: {
collection :: * ,
ui :: { collatable_container :: * , internal :: * , utility :: * } ,
} ;
2024-11-20 16:32:37 +01:00
pub struct UI {
window : ApplicationWindow ,
films_container : CollatableFilmsContainer ,
series_container : CollatableSeriesContainer ,
2024-11-20 16:32:37 +01:00
}
impl UI {
pub fn new ( application : & Application ) -> UI {
let films_container = CollatableFilmsContainer :: new ( vec ! () ) ;
let series_container = CollatableSeriesContainer :: new ( vec ! () ) ;
2024-11-20 16:32:37 +01:00
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 ( & self , collection : Collection ) {
2024-11-20 16:32:37 +01:00
self . films_container . set_films ( collection . films ) ;
self . series_container . set_series ( collection . series ) ;
}
}