Position indicator like in vi
This commit is contained in:
parent
2c847fb4a3
commit
bf38e4e9ea
17
sdn.cpp
17
sdn.cpp
|
@ -665,7 +665,8 @@ fun update () {
|
|||
erase ();
|
||||
|
||||
int available = visible_lines ();
|
||||
int used = min (available, int (g.entries.size ()) - g.offset);
|
||||
int all = g.entries.size ();
|
||||
int used = min (available, all - g.offset);
|
||||
for (int i = 0; i < used; i++) {
|
||||
auto index = g.offset + i;
|
||||
bool selected = index == g.cursor;
|
||||
|
@ -693,7 +694,19 @@ fun update () {
|
|||
|
||||
move (LINES - 2, 0);
|
||||
attrset (g.attrs[g.AT_BAR]);
|
||||
hline (' ', COLS - print (bar, COLS));
|
||||
int unused = COLS - print (bar, COLS);
|
||||
hline (' ', unused);
|
||||
|
||||
auto pos = to_wstring (int (double (g.offset) / all * 100)) + L"%";
|
||||
if (used == all)
|
||||
pos = L"All";
|
||||
else if (g.offset == 0)
|
||||
pos = L"Top";
|
||||
else if (g.offset + used == all)
|
||||
pos = L"Bot";
|
||||
|
||||
if (int (pos.size ()) < unused)
|
||||
mvaddwstr (LINES - 2, COLS - pos.size (), pos.c_str ());
|
||||
|
||||
attrset (g.attrs[g.AT_INPUT]);
|
||||
curs_set (0);
|
||||
|
|
Loading…
Reference in New Issue