summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2011-10-04 18:49:41 +0000
committerMaxime Coste <frrrwww@gmail.com>2011-10-04 18:49:41 +0000
commitc8cf7bbaa9c6ee1ef312ddebb407f8bb13683210 (patch)
tree466f070c42a9be2edabefdefb7f65f4167601797 /src
parent4f771b084a20758df20d36aea4e62c964f8fc6a0 (diff)
Window: add a basic status line
Diffstat (limited to 'src')
-rw-r--r--src/main.cc10
-rw-r--r--src/window.cc21
-rw-r--r--src/window.hh2
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;