From c059cd8c095533eb05d8ca30d810350de9d09dbd Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Tue, 27 Dec 2016 20:26:10 -0500 Subject: [PATCH] display buffer name in buffer status pane --- src/gui/BufferPane.h | 1 + src/gui/BufferStatusPane.cc | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/src/gui/BufferPane.h b/src/gui/BufferPane.h index 83388cc..de7ae95 100644 --- a/src/gui/BufferPane.h +++ b/src/gui/BufferPane.h @@ -17,6 +17,7 @@ public: void handle_key(uint32_t keyval); size_t display_line() const { return m_iterator->line() + 1u; } size_t display_column() const; + std::shared_ptr buffer() const { return m_buffer; } protected: enum class CursorMovement : uint8_t diff --git a/src/gui/BufferStatusPane.cc b/src/gui/BufferStatusPane.cc index 84294d4..1270a7d 100644 --- a/src/gui/BufferStatusPane.cc +++ b/src/gui/BufferStatusPane.cc @@ -8,9 +8,21 @@ void BufferStatusPane::draw() sprintf(cursor_position, "%zu, %zu", m_buffer_pane->display_line(), m_buffer_pane->display_column()); int cursor_position_length = strlen(cursor_position); int x = m_width - m_font->get_advance() * cursor_position_length; + m_gl->draw_rect(win_x(x - 2), win_y(0), 1, m_height, 0.5, 0.5, 0.5, 1.0); + std::string filename = m_buffer_pane->buffer()->filename(); + if (filename == "") + { + filename = "[No Name]"; + } + int filename_x = std::min(0, x - 3 - (int)filename.size() * m_font->get_advance()); for (int i = 0; i < cursor_position_length; i++) { m_gl->draw_character(win_x(x), win_y(0), cursor_position[i], *m_font); x += m_font->get_advance(); } + for (size_t i = 0; i < filename.size(); i++) + { + m_gl->draw_character(win_x(filename_x), win_y(0), filename[i], *m_font); + filename_x += m_font->get_advance(); + } }