From 9e2b51c8e698d8216f680b61dd3908d2f1823b38 Mon Sep 17 00:00:00 2001 From: krolxon Date: Wed, 24 Apr 2024 15:49:40 +0530 Subject: use tabs instead of layouts --- src/app.rs | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) (limited to 'src/app.rs') diff --git a/src/app.rs b/src/app.rs index dddcd75..3315e6b 100755 --- a/src/app.rs +++ b/src/app.rs @@ -1,7 +1,6 @@ use crate::connection::Connection; use crate::list::ContentList; use mpd::Client; -use std::collections::VecDeque; // Application result type pub type AppResult = std::result::Result>; @@ -15,6 +14,25 @@ pub struct App { pub song_list: ContentList, pub queue_list: ContentList, pub pl_list: ContentList, + pub selected_tab: SelectedTab, +} + + +#[derive(Debug, PartialEq, Clone)] +pub enum SelectedTab { + SongList, + Queue, + Playlists, +} + +impl SelectedTab { + fn as_usize(&self) { + match self { + SelectedTab::SongList => 0, + SelectedTab::Queue => 1, + SelectedTab::Playlists => 2, + }; + } } impl App { @@ -35,6 +53,7 @@ impl App { song_list, queue_list, pl_list, + selected_tab: SelectedTab::SongList, }) } @@ -73,4 +92,12 @@ impl App { Self::get_playlist(&mut self.conn.conn)?; Ok(()) } + + pub fn cycle_tabls(&mut self) { + self.selected_tab = match self.selected_tab { + SelectedTab::SongList => SelectedTab::Queue, + SelectedTab::Queue => SelectedTab::Playlists, + SelectedTab::Playlists=> SelectedTab::SongList, + }; + } } -- cgit v1.2.3