diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2011-10-04 18:49:41 +0000 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2011-10-04 18:49:41 +0000 |
| commit | c8cf7bbaa9c6ee1ef312ddebb407f8bb13683210 (patch) | |
| tree | 466f070c42a9be2edabefdefb7f65f4167601797 /src | |
| parent | 4f771b084a20758df20d36aea4e62c964f8fc6a0 (diff) | |
Window: add a basic status line
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.cc | 10 | ||||
| -rw-r--r-- | src/window.cc | 21 | ||||
| -rw-r--r-- | src/window.hh | 2 |
3 files changed, 33 insertions, 0 deletions
diff --git a/src/main.cc b/src/main.cc index f7165702..19ff9e0f 100644 --- a/src/main.cc +++ b/src/main.cc @@ -123,6 +123,16 @@ void draw_window(Window& window) clrtoeol(); addch('~'); } + move(max_y, 0); + + set_attribute(A_UNDERLINE, 0); + set_attribute(A_REVERSE, 0); + set_attribute(A_BLINK, 0); + set_attribute(A_BOLD, 0); + set_color(Color::Cyan, Color::Black); + + clrtoeol(); + addstr(window.status_line().c_str()); const WindowCoord& cursor_position = window.cursor_position(); move(cursor_position.line, cursor_position.column); diff --git a/src/window.cc b/src/window.cc index 86be7d18..f75c08b1 100644 --- a/src/window.cc +++ b/src/window.cc @@ -4,6 +4,7 @@ #include "filters.hh" #include <algorithm> +#include <sstream> namespace Kakoune { @@ -327,6 +328,26 @@ void Window::scroll_to_keep_cursor_visible_ifn() } } +std::string Window::status_line() const +{ + BufferCoord cursor = window_to_buffer(cursor_position()); + std::ostringstream oss; + oss << m_buffer.name() << " -- " << cursor.line << "," << cursor.column + << " -- " << m_selections.size() << " sel -- "; + switch (m_select_mode) + { + case SelectMode::Normal: + oss << "[Normal]"; + break; + case SelectMode::Append: + oss << "[Append]"; + break; + default: + assert(false); + } + return oss.str(); +} + IncrementalInserter::IncrementalInserter(Window& window, Mode mode) : m_window(window) { diff --git a/src/window.hh b/src/window.hh index cba50167..a5ea7a08 100644 --- a/src/window.hh +++ b/src/window.hh @@ -86,6 +86,8 @@ public: SelectMode select_mode() const { return m_select_mode; } void set_select_mode(SelectMode select_mode) { m_select_mode = select_mode; } + std::string status_line() const; + private: friend class Buffer; |
