diff options
| author | Přemysl Janouch <p.janouch@gmail.com> | 2017-06-29 21:13:51 +0200 | 
|---|---|---|
| committer | Přemysl Janouch <p.janouch@gmail.com> | 2017-06-29 21:13:51 +0200 | 
| commit | c8498c9165f5bbbf0cc3e5bd941b2d2d1bb6c17d (patch) | |
| tree | 972447b34dd9f623b0bdc8aa8a485c7ddadff636 /sdn.cpp | |
| parent | a55fc17f31c19361c8cd014068c3753b0c28853f (diff) | |
| download | sdn-c8498c9165f5bbbf0cc3e5bd941b2d2d1bb6c17d.tar.gz sdn-c8498c9165f5bbbf0cc3e5bd941b2d2d1bb6c17d.tar.xz sdn-c8498c9165f5bbbf0cc3e5bd941b2d2d1bb6c17d.zip | |
Move contents to the bottom of the screen
Maybe this should have a switch.
Diffstat (limited to 'sdn.cpp')
| -rw-r--r-- | sdn.cpp | 27 | 
1 files changed, 13 insertions, 14 deletions
| @@ -135,27 +135,21 @@ static struct {  	wstring editor_line;  } g; -static inline int visible_lines () { return LINES - 2; } +static inline int visible_lines () { return max (0, LINES - 2); }  static void  update () {  	erase (); -	attrset (A_BOLD); -	mvprintw (0, 0, "%s", g.cwd.c_str ()); -	if (g.out_of_date) -		addstr (" [+]"); - -	for (int i = 0; i < visible_lines (); i++) { -		int index = g.offset + i; -		if (index >= int (g.entries.size ())) -			break; - +	int available = visible_lines (); +	int used = min (available, int (g.entries.size ()) - g.offset); +	for (int i = 0; i < used; i++) {  		attrset (0); +		int index = g.offset + i;  		if (index == g.cursor)  			attron (A_REVERSE); -		move (2 + i, 0); +		move (available - used + i, 0);  		auto &entry = g.entries[index];  		// TODO display more information from "info" @@ -174,12 +168,17 @@ update () {  		hline (' ', width - print (to_wide (entry.filename), width));  	} +	attrset (A_BOLD); +	mvprintw (LINES - 2, 0, "%s", g.cwd.c_str ()); +	if (g.out_of_date) +		addstr (" [+]"); +  	attrset (0);  	if (g.editor) { -		move (1, 0); +		move (LINES - 1, 0);  		wchar_t prefix[] = { g.editor, L' ', L'\0' };  		addwstr (prefix); -		move (1, print (g.editor_line, COLS - 3) + 2); +		move (LINES - 1, print (g.editor_line, COLS - 3) + 2);  		curs_set (1);  	} else  		curs_set (0); | 
