diff --git a/src/application.css b/src/application.css index a0ae4fa..48e26c2 100644 --- a/src/application.css +++ b/src/application.css @@ -7,6 +7,10 @@ opacity : 0 ; } +.collatable-container flowboxchild { + padding : 0 ; +} + .open-collection-item-button { font-weight : normal ; /* No bold text by default for this kind of button */ } diff --git a/src/ui/collatable_container/collated_grid.rs b/src/ui/collatable_container/collated_grid.rs index c461563..c30e2d9 100644 --- a/src/ui/collatable_container/collated_grid.rs +++ b/src/ui/collatable_container/collated_grid.rs @@ -27,6 +27,7 @@ impl < A : MediaAdapter > CollatedMediaGrid { let grid_widget = flow_box ! ( @ orientation : Horizontal ; @ homogeneous : true ; + @ css_classes : & [ "collatable-container" ] ; @ selection_mode : SelectionMode :: None ; ) ; let media_widget_pairs = RefCell :: new ( Vec :: new () ) ; @@ -60,6 +61,7 @@ impl < A : MediaAdapter > CollatedMediaGrid { & g_box ! ( @ option_children ; @ orientation : Vertical ; + @ valign : Center ; // I.e. do not fill parent vertically @ margin_top : 20 ; @ margin_bottom : 20 ; @@ -80,10 +82,9 @@ impl < A : MediaAdapter > CollatedMediaGrid { match poster_texture { Ok (poster_texture) => Some ( image ! ( - @ paintable : & poster_texture ; - @ width_request : 300 ; - @ height_request : 300 ; @ margin_bottom : 10 ; + @ pixel_size : 300 ; + @ paintable : & poster_texture ; ) ) , Err (error) => { if error . matches ( IOErrorEnum :: NotFound ) { diff --git a/src/ui/utility.rs b/src/ui/utility.rs index 4f5e210..8dbffaf 100644 --- a/src/ui/utility.rs +++ b/src/ui/utility.rs @@ -7,11 +7,19 @@ macro_rules ! bin { ( $ ( @ vexpand : $ vexpand : expr ; ) ? ) => { { } } } macro_rules ! button { ( + $ ( @ halign : $ halign : expr ; ) ? + $ ( @ valign : $ valign : expr ; ) ? + $ ( @ hexpand : $ hexpand : expr ; ) ? + $ ( @ vexpand : $ vexpand : expr ; ) ? $ ( @ css_classes : $ css_classes : expr ; ) ? $ ( @ connect_clicked : $ connect_clicked : expr ; ) ? $ ( $ child : expr ) ? $ (,) ? ) => { { let button = gtk4 :: Button :: new () ; + $ ( button . set_halign ( $ halign ) ; ) ? + $ ( button . set_valign ( $ valign ) ; ) ? + $ ( button . set_hexpand ( $ hexpand ) ; ) ? + $ ( button . set_vexpand ( $ vexpand ) ; ) ? $ ( button . set_css_classes ( $ css_classes ) ; ) ? $ ( button . connect_clicked ( $ connect_clicked ) ; ) ? $ ( button . set_child ( Some ( $ child ) ) ; ) ? @@ -31,11 +39,13 @@ macro_rules ! dialog { ( macro_rules ! flow_box { ( $ ( @ orientation : $ orientation : expr ; ) ? $ ( @ homogeneous : $ homogeneous : expr ; ) ? + $ ( @ css_classes : $ css_classes : expr ; ) ? $ ( @ selection_mode : $ selection_mode : expr ; ) ? ) => { { let widget = gtk4 :: FlowBox :: new () ; $ ( widget . set_orientation ( $ orientation ) ; ) ? $ ( widget . set_homogeneous ( $ homogeneous ) ; ) ? + $ ( widget . set_css_classes ( $ css_classes ) ; ) ? $ ( widget . set_selection_mode ( $ selection_mode ) ; ) ? widget } } } @@ -48,6 +58,8 @@ macro_rules ! g_box { $ ( @ spacing : $ spacing : expr ; ) ? $ ( @ margin_top : $ margin_top : expr ; ) ? $ ( @ margin_bottom : $ margin_bottom : expr ; ) ? + $ ( @ hexpand : $ hexpand : expr ; ) ? + $ ( @ vexpand : $ vexpand : expr ; ) ? $ ( @ widget_name : $ widget_name : expr ; ) ? $ ( @ css_classes : $ css_classes : expr ; ) ? $ ( $ child : expr ) , * $ (,) ? @@ -59,6 +71,8 @@ macro_rules ! g_box { $ ( container . set_spacing ( $ spacing ) ; ) ? $ ( container . set_margin_top ( $ margin_top ) ; ) ? $ ( container . set_margin_bottom ( $ margin_bottom ) ; ) ? + $ ( container . set_hexpand ( $ hexpand ) ; ) ? + $ ( container . set_vexpand ( $ vexpand ) ; ) ? $ ( container . set_widget_name ( $ widget_name ) ; ) ? $ ( container . set_css_classes ( $ css_classes ) ; ) ? $ ( container . append ( $ child ) ; ) * @@ -72,6 +86,8 @@ macro_rules ! g_box { $ ( @ spacing : $ spacing : expr ; ) ? $ ( @ margin_top : $ margin_top : expr ; ) ? $ ( @ margin_bottom : $ margin_bottom : expr ; ) ? + $ ( @ hexpand : $ hexpand : expr ; ) ? + $ ( @ vexpand : $ vexpand : expr ; ) ? $ ( @ widget_name : $ widget_name : expr ; ) ? $ ( @ css_classes : $ css_classes : expr ; ) ? $ ( $ child : expr ) , * $ (,) ? @@ -83,6 +99,8 @@ macro_rules ! g_box { $ ( container . set_spacing ( $ spacing ) ; ) ? $ ( container . set_margin_top ( $ margin_top ) ; ) ? $ ( container . set_margin_bottom ( $ margin_bottom ) ; ) ? + $ ( container . set_hexpand ( $ hexpand ) ; ) ? + $ ( container . set_vexpand ( $ vexpand ) ; ) ? $ ( container . set_widget_name ( $ widget_name ) ; ) ? $ ( container . set_css_classes ( $ css_classes ) ; ) ? $ ( if let Some (child) = $ child { container . append (child) ; } ) * @@ -97,20 +115,26 @@ macro_rules ! header_bar { ( $ title_widget : expr $ (,) ? ) => { { } } } macro_rules ! image { ( - $ ( @ icon_name : $ icon_name : expr ; ) ? - $ ( @ paintable : $ paintable : expr ; ) ? + $ ( @ halign : $ halign : expr ; ) ? + $ ( @ valign : $ valign : expr ; ) ? $ ( @ width_request : $ width_request : expr ; ) ? $ ( @ height_request : $ height_request : expr ; ) ? $ ( @ margin_top : $ margin_top : expr ; ) ? $ ( @ margin_bottom : $ margin_bottom : expr ; ) ? + $ ( @ pixel_size : $ pixel_size : expr ; ) ? + $ ( @ icon_name : $ icon_name : expr ; ) ? + $ ( @ paintable : $ paintable : expr ; ) ? ) => { { let image = gtk4 :: Image :: new () ; - $ ( image . set_icon_name ( Some ( $ icon_name ) ) ; ) ? - $ ( image . set_paintable ( Some ( $ paintable ) ) ; ) ? + $ ( image . set_halign ( $ halign ) ; ) ? + $ ( image . set_valign ( $ valign ) ; ) ? $ ( image . set_width_request ( $ width_request ) ; ) ? $ ( image . set_height_request ( $ height_request ) ; ) ? $ ( image . set_margin_top ( $ margin_top ) ; ) ? $ ( image . set_margin_bottom ( $ margin_bottom ) ; ) ? + $ ( image . set_pixel_size ( $ pixel_size ) ; ) ? + $ ( image . set_icon_name ( Some ( $ icon_name ) ) ; ) ? + $ ( image . set_paintable ( Some ( $ paintable ) ) ; ) ? image } } }