using Gtk 4.0; using Adw 1; template $BzUserDataTile: Adw.Bin { child: Revealer revealer { transition-type: slide_down; reveal-child: true; child: Adw.Bin { accessibility { labelled-by: title_label; described-by: description_label; } margin-bottom: 5; margin-start: 4; margin-end: 4; margin-top: 5; styles [ "card", ] child: Box { orientation: horizontal; spacing: 10; Picture icon_picture { margin-start: 10; margin-top: 10; margin-bottom: 10; height-request: 64; width-request: 64; paintable: bind template.group as <$BzEntryGroup>.ui-entry as <$BzResult>.object as <$BzEntry>.icon-paintable; visible: bind try {$invert_boolean($is_null(template.group as <$BzEntryGroup>.ui-entry as <$BzResult>.object as <$BzEntry>.icon-paintable) as ) as , false}; styles [ "icon-dropshadow", ] } Image fallback_icon { margin-start: 10; margin-top: 10; margin-bottom: 10; height-request: 64; width-request: 64; pixel-size: 64; icon-name: "application-x-executable"; visible: bind icon_picture.visible inverted; styles [ "icon-dropshadow", ] } Box { orientation: vertical; valign: center; spacing: 4; Label title_label { xalign: 0.0; ellipsize: end; single-line-mode: true; tooltip-text: bind template.group as <$BzEntryGroup>.id; label: bind template.group as <$BzEntryGroup>.title; } Label description_label { halign: start; label: bind $format_size(template.group as <$BzEntryGroup>.user-data-size as ) as ; styles [ "caption-heading", ] } } Box { hexpand: true; valign: center; halign: end; spacing: 8; margin-end: 16; Button { styles [ "flat", ] tooltip-text: _("Open User Data Folder"); icon-name: "folder-open-symbolic"; clicked => $folder_cb() swapped; } Button { styles [ "flat", "destructive-action", ] tooltip-text: _("Trash User Data"); icon-name: "user-trash-symbolic"; clicked => $remove_cb() swapped; } } }; }; }; }