@@ -6,13 +6,15 @@ use crate::config::Config;
66use crate :: recording_session:: SessionPath ;
77use anyhow:: Result ;
88use iced:: application:: application;
9- use iced:: widget:: { button, row} ;
9+ use iced:: widget:: { button, row, scrollable } ;
1010use iced:: { Element , Subscription , Task , Theme } ;
1111use log:: error;
1212
1313use self :: session_gui:: { SessionGui , SessionMessage } ;
1414use self :: session_selector:: SessionSelector ;
1515
16+ const SCROLLBAR_WIDTH : f32 = 20.0 ;
17+
1618pub struct Gui {
1719 session : Option < SessionGui > ,
1820 session_selector : SessionSelector ,
@@ -64,15 +66,19 @@ impl Gui {
6466
6567 fn view ( & self ) -> Element < Message > {
6668 let selector = self . session_selector . view ( ) ;
67- let session_view = self
68- . session
69- . as_ref ( )
70- . map ( |session| session. view ( ) )
71- . unwrap_or ( row ! [ ] . into ( ) )
72- . map ( |message| Message :: SessionMessage ( message) ) ;
69+ let session_view = scrollable (
70+ self . session
71+ . as_ref ( )
72+ . map ( |session| session. view ( ) )
73+ . unwrap_or ( row ! [ ] . into ( ) )
74+ . map ( |message| Message :: SessionMessage ( message) ) ,
75+ )
76+ . direction ( scrollable:: Direction :: Vertical (
77+ scrollable:: Scrollbar :: new ( ) . width ( SCROLLBAR_WIDTH ) ,
78+ ) ) ;
7379 let cut_songs =
7480 button ( "Cut songs" ) . on_press ( Message :: SessionMessage ( SessionMessage :: CutSongs ) ) ;
75- row ! [ session_view , cut_songs, selector ] . into ( )
81+ row ! [ selector , cut_songs, session_view ] . into ( )
7682 }
7783
7884 fn subscription ( & self ) -> Subscription < Message > {
0 commit comments