diff options
author | rabite <rabite@posteo.de> | 2019-02-18 21:19:50 +0100 |
---|---|---|
committer | rabite <rabite@posteo.de> | 2019-02-18 21:19:50 +0100 |
commit | fe542047c231cff6c1959fe05cb51e177ddfbcc6 (patch) | |
tree | 6aa62fe09c1906fbc7416cd5330f9db3a84aa3b5 /src/file_browser.rs | |
parent | 52c4a1586ea8d8023329f272bc0d1f76de60ab58 (diff) |
traitified(er) tabview
Diffstat (limited to 'src/file_browser.rs')
-rw-r--r-- | src/file_browser.rs | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/src/file_browser.rs b/src/file_browser.rs index f5809a5..322137c 100644 --- a/src/file_browser.rs +++ b/src/file_browser.rs @@ -8,20 +8,38 @@ use crate::files::{File, Files}; use crate::listview::ListView; use crate::miller_columns::MillerColumns; use crate::widget::Widget; -use crate::tabview::Tabbable; +use crate::tabview::{TabView, Tabbable}; #[derive(PartialEq)] pub struct FileBrowser { pub columns: MillerColumns<ListView<Files>>, } -impl Tabbable<FileBrowser> for FileBrowser { - fn new_tab(&self) -> FileBrowser { - FileBrowser::new().unwrap() +impl Tabbable for TabView<FileBrowser> { + fn new_tab(&mut self) { + let tab = FileBrowser::new().unwrap(); + self.push_widget(tab); + self.active += 1; + } + + fn close_tab(&mut self) { + self.close_tab_(); + } + + fn next_tab(&mut self) { + self.next_tab_(); + } + + fn active_tab(& self) -> & dyn Widget { + self.active_tab_() + } + + fn active_tab_mut(&mut self) -> &mut dyn Widget { + self.active_tab_mut_() } fn on_next_tab(&mut self) { - self.update_preview(); + self.active_tab_mut().refresh(); } } |