From 79bdca04e2cc9e13bbfa1cac7619d5e4a56ff0bd Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Mon, 17 Apr 2023 15:05:20 +0200 Subject: Remove SBo differ experiment --- src/component.cpp | 76 ------------------------------------------------------- 1 file changed, 76 deletions(-) delete mode 100644 src/component.cpp (limited to 'src/component.cpp') diff --git a/src/component.cpp b/src/component.cpp deleted file mode 100644 index 9247a1d..0000000 --- a/src/component.cpp +++ /dev/null @@ -1,76 +0,0 @@ -#include -#include "component.h" - -namespace katja -{ - PackageList::PackageList(const std::vector& header, const std::vector>& data) - : m_data(data), m_header(header) - { - } - - ftxui::Element PackageList::Render() - { - std::vector> data{ m_header }; - - std::size_t dimy = ftxui::ScreenInteractive::Active()->dimy(); - if (dimy == 0) - { - dimy = ftxui::Terminal::Size().dimy; - } - if (dimy > 4) // 4 = headers and borders. - { - std::size_t row_count = std::min(m_data.size() - top_line, dimy - 4 + top_line); - - std::copy(m_data.cbegin() + top_line, m_data.cbegin() + row_count, std::back_inserter(data)); - } - ftxui::Table table{ data }; - table.SelectAll().Border(ftxui::LIGHT); - - // Add border around the first column. - table.SelectColumn(0).Border(ftxui::LIGHT); - - // Make first row bold with a double border. - table.SelectRow(0).Decorate(ftxui::bold); - table.SelectRow(0).SeparatorVertical(ftxui::LIGHT); - table.SelectRow(0).Border(ftxui::DOUBLE); - - // Align right the "Release date" column. - table.SelectColumn(2).DecorateCells(ftxui::align_right); - - // Select row from the second to the last. - auto content = table.SelectRows(1, -1); - // Alternate in between 3 colors. - content.DecorateCellsAlternateRow(color(ftxui::Color::Blue), 3, 0); - content.DecorateCellsAlternateRow(color(ftxui::Color::Cyan), 3, 1); - content.DecorateCellsAlternateRow(color(ftxui::Color::White), 3, 2); - - return table.Render(); - } - - bool PackageList::OnEvent(ftxui::Event event) - { - if (event == ftxui::Event::Character('q') || event == ftxui::Event::Escape) - { - event.screen_->ExitLoopClosure()(); - } - else if (event == ftxui::Event::Character('j') || event == ftxui::Event::ArrowDown) - { - if (m_data.size() > 0 && top_line < (m_data.size() - 1)) - { - ++top_line; - } - } - else if (event == ftxui::Event::Character('k') || event == ftxui::Event::ArrowUp) - { - if (top_line > 0) - { - --top_line; - } - } - else - { - return false; - } - return true; - } -} -- cgit v1.2.3