using Gtk 4.0; using Adw 1; template $UiWindow: Adw.ApplicationWindow { title: _("audrey"); default-width: 800; default-height: 600; content: Adw.BottomSheet bottom_sheet { can-open: false; // broken in libadwaita [content] Adw.ToolbarView { margin-bottom: bind bottom_sheet.bottom-bar-height; [top] Adw.HeaderBar { [start] Button { icon-name: "media-playlist-shuffle"; sensitive: bind template.can_click_shuffle_all; clicked => $shuffle_all (); } title-widget: Adw.ViewSwitcher { stack: stack; policy: wide; }; [end] Button { icon-name: "applications-system"; clicked => $show_setup_dialog (); } } content: Adw.ViewStack stack { Adw.ViewStackPage { icon-name: "audio-input-microphone"; title: _("Artists"); child: Box {}; } Adw.ViewStackPage { icon-name: "media-optical-cd"; title: _("Albums"); child: Box {}; } Adw.ViewStackPage { icon-name: "media-playback-start"; title: _("Play queue"); name: "play-queue"; child: Box { name: "play-queue-page"; homogeneous: true; Adw.Clamp { halign: center; margin-top: 24; margin-bottom: 24; margin-start: 24; margin-end: 24; Picture { valign: center; styles [ "frame" ] halign: center; paintable: bind template.playing_cover_art; } } $UiPlayQueue play_queue { hexpand: true; halign: fill; margin-top: 48; margin-bottom: 48; margin-start: 24; margin-end: 24; styles [ "frame" ] playbin: bind template.playbin; } }; } }; } [bottom-bar] $UiPlaybar playbar { song: bind template.song; playbin: bind template.playbin; playing_cover_art: bind template.playing_cover_art; show_cover_art: bind $show_playbar_cover_art (stack.visible-child-name) as ; } }; }