display buffer name in buffer status pane

This commit is contained in:
Josh Holtrop 2016-12-27 20:26:10 -05:00
parent 64ed3174ac
commit c059cd8c09
2 changed files with 13 additions and 0 deletions

View File

@ -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> buffer() const { return m_buffer; }
protected:
enum class CursorMovement : uint8_t

View File

@ -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();
}
}