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 ();
|
erase ();
|
||||||
|
|
||||||
int available = visible_lines ();
|
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++) {
|
for (int i = 0; i < used; i++) {
|
||||||
auto index = g.offset + i;
|
auto index = g.offset + i;
|
||||||
bool selected = index == g.cursor;
|
bool selected = index == g.cursor;
|
||||||
|
@ -693,7 +694,19 @@ fun update () {
|
||||||
|
|
||||||
move (LINES - 2, 0);
|
move (LINES - 2, 0);
|
||||||
attrset (g.attrs[g.AT_BAR]);
|
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]);
|
attrset (g.attrs[g.AT_INPUT]);
|
||||||
curs_set (0);
|
curs_set (0);
|
||||||
|
|
Loading…
Reference in New Issue