diff options
Diffstat (limited to 'src/windows/info_bar.py')
-rw-r--r-- | src/windows/info_bar.py | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/src/windows/info_bar.py b/src/windows/info_bar.py deleted file mode 100644 index abd956cd..00000000 --- a/src/windows/info_bar.py +++ /dev/null @@ -1,106 +0,0 @@ -""" -Module defining the global info bar - -This window is the one listing the current opened tabs in poezio. -The GlobalInfoBar can be either horizontal or vertical -(VerticalGlobalInfoBar). -""" -import logging -log = logging.getLogger(__name__) - -import curses - - -from config import config -from . import Win -from theming import get_theme, to_curses_attr - -class GlobalInfoBar(Win): - def __init__(self): - Win.__init__(self) - - def refresh(self): - log.debug('Refresh: %s', self.__class__.__name__) - self._win.erase() - self.addstr(0, 0, "[", to_curses_attr(get_theme().COLOR_INFORMATION_BAR)) - - create_gaps = config.get('create_gaps') - show_names = config.get('show_tab_names') - show_nums = config.get('show_tab_numbers') - use_nicks = config.get('use_tab_nicks') - show_inactive = config.get('show_inactive_tabs') - # ignore any remaining gap tabs if the feature is not enabled - if create_gaps: - sorted_tabs = self.core.tabs[:] - else: - sorted_tabs = [tab for tab in self.core.tabs if tab] - - for nb, tab in enumerate(sorted_tabs): - if not tab: continue - color = tab.color - if not show_inactive and color is get_theme().COLOR_TAB_NORMAL: - continue - try: - if show_nums or not show_names: - self.addstr("%s" % str(nb), to_curses_attr(color)) - if show_names: - self.addstr(' ', to_curses_attr(color)) - if show_names: - if use_nicks: - self.addstr("%s" % str(tab.get_nick()), to_curses_attr(color)) - else: - self.addstr("%s" % tab.name, to_curses_attr(color)) - self.addstr("|", to_curses_attr(get_theme().COLOR_INFORMATION_BAR)) - except: # end of line - break - (y, x) = self._win.getyx() - self.addstr(y, x-1, '] ', to_curses_attr(get_theme().COLOR_INFORMATION_BAR)) - (y, x) = self._win.getyx() - remaining_size = self.width - x - self.addnstr(' '*remaining_size, remaining_size, - to_curses_attr(get_theme().COLOR_INFORMATION_BAR)) - self._refresh() - -class VerticalGlobalInfoBar(Win): - def __init__(self, scr): - Win.__init__(self) - self._win = scr - - def refresh(self): - height, width = self._win.getmaxyx() - self._win.erase() - sorted_tabs = [tab for tab in self.core.tabs if tab] - if not config.get('show_inactive_tabs'): - sorted_tabs = [tab for tab in sorted_tabs if\ - tab.vertical_color != get_theme().COLOR_VERTICAL_TAB_NORMAL] - nb_tabs = len(sorted_tabs) - use_nicks = config.get('use_tab_nicks') - if nb_tabs >= height: - for y, tab in enumerate(sorted_tabs): - if tab.vertical_color == get_theme().COLOR_VERTICAL_TAB_CURRENT: - pos = y - break - # center the current tab as much as possible - if pos < height//2: - sorted_tabs = sorted_tabs[:height] - elif nb_tabs - pos <= height//2: - sorted_tabs = sorted_tabs[-height:] - else: - sorted_tabs = sorted_tabs[pos-height//2 : pos+height//2] - asc_sort = (config.get('vertical_tab_list_sort') == 'asc') - for y, tab in enumerate(sorted_tabs): - color = tab.vertical_color - if asc_sort: - y = height - y - 1 - self.addstr(y, 0, "%2d" % tab.nb, - to_curses_attr(get_theme().COLOR_VERTICAL_TAB_NUMBER)) - self.addstr('.') - if use_nicks: - self.addnstr("%s" % tab.get_nick(), width - 4, to_curses_attr(color)) - else: - self.addnstr("%s" % tab.name, width - 4, to_curses_attr(color)) - separator = to_curses_attr(get_theme().COLOR_VERTICAL_SEPARATOR) - self._win.attron(separator) - self._win.vline(0, width-1, curses.ACS_VLINE, height) - self._win.attroff(separator) - self._refresh() |