[powerdebug,09/17] split header and footer display

Message ID 1308610705-23281-9-git-send-email-daniel.lezcano@linaro.org
State Accepted
Headers show

Commit Message

Daniel Lezcano June 20, 2011, 10:58 p.m.
Splitting the header and the footer will help to display a new footer
like the search string.

Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
---
 display.c |   28 +++++++++++++++++++++-------
 1 files changed, 21 insertions(+), 7 deletions(-)

Patch

diff --git a/display.c b/display.c
index 758d17e..43f3797 100644
--- a/display.c
+++ b/display.c
@@ -41,9 +41,6 @@  static int current_win;
 /* Number of lines in the virtual window */
 static const int maxrows = 1024;
 
-#define footer_label " Q (Quit)  R (Refresh) Other Keys: 'Left', " \
-	"'Right' , 'Up', 'Down', 'enter', , 'Esc'"
-
 struct rowdata {
 	int attr;
 	void *data;
@@ -71,7 +68,7 @@  static void display_fini(void)
 	endwin();
 }
 
-static int show_header_footer(int win)
+static int display_show_header(int win)
 {
 	int i;
 	int curr_pointer = 0;
@@ -94,8 +91,16 @@  static int show_header_footer(int win)
 		curr_pointer += strlen(windata[i].name) + 2;
 	}
 	wrefresh(header_win);
-	werase(footer_win);
 
+	return 0;
+}
+
+#define footer_label " Q (Quit)  R (Refresh) Other Keys: 'Left', " \
+	"'Right' , 'Up', 'Down', 'enter', , 'Esc'"
+
+static int display_show_footer(int win)
+{
+	werase(footer_win);
 	wattron(footer_win, A_REVERSE);
 	mvwprintw(footer_win, 0, 0, "%s", footer_label);
 	wattroff(footer_win, A_REVERSE);
@@ -415,7 +420,10 @@  int display_init(int wdefault)
 	if (!footer_win)
 		return -1;
 
-	if (show_header_footer(wdefault))
+	if (display_show_header(wdefault))
+		return -1;
+
+	if (display_show_footer(wdefault))
 		return -1;
 
 	return display_refresh(wdefault);
@@ -423,13 +431,19 @@  int display_init(int wdefault)
 
 int display_header_footer(int win, const char *line)
 {
+	int ret;
+
 	werase(main_win);
 	wattron(main_win, A_BOLD);
 	mvwprintw(main_win, 0, 0, "%s", line);
 	wattroff(main_win, A_BOLD);
 	wrefresh(main_win);
 
-	return show_header_footer(win);
+	ret = display_show_header(win);
+	if (ret)
+		return ret;
+
+	return display_show_footer(win);
 }
 
 int display_register(int win, struct display_ops *ops)