libpayload: implement wborder function
authorJordan Crouse <jordan.crouse@amd.com>
Wed, 14 May 2008 20:10:02 +0000 (20:10 +0000)
committerJordan Crouse <jordan.crouse@amd.com>
Wed, 14 May 2008 20:10:02 +0000 (20:10 +0000)
Implement the wborder function for curses to draw a box around a window.

Signed-off-by: Jordan Crouse <jordan.crouse@amd.com>
Acked-by: Myles Watson <mylesgw@gmail.com>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3317 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

payloads/libpayload/curses/tinycurses.c

index 8fc9bde2687c07674fe2e848b1f0f1f1ee9f13bb..08b858e3c01f12ed319abad72b42e144ed88c704 100644 (file)
@@ -464,7 +464,39 @@ int wattr_off(WINDOW *win, attr_t at, void *opts GCC_UNUSED)
 }
 // int wbkgd (WINDOW *, chtype) {}
 void wbkgdset(WINDOW *win, chtype ch) { /* TODO */ }
-// int wborder (WINDOW *,chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype) {}
+
+int wborder(WINDOW *win, chtype ls, chtype rs, chtype ts, chtype bs,
+               chtype tl, chtype tr, chtype bl, chtype br)
+{
+       int x, y;
+
+       for(y = 0; y <= win->_maxy; y++) {
+
+               if (y == 0) {
+                        mvwaddch(win, y, 0, tl);
+
+                       for(x = 1; x < win->_maxx; x++)
+                               mvwaddch(win, y, x, ts);
+
+                       mvwaddch(win, y, win->_maxx, tr);
+               }
+               else if (y == win->_maxy) {
+                       mvwaddch(win, y, 0, bl);
+
+                       for(x = 1; x < win->_maxx; x++)
+                               mvwaddch(win, y, x, bs);
+
+                       mvwaddch(win, y, win->_maxx, br);
+               }
+               else {
+                       mvwaddch(win, y, 0, ls);
+                       mvwaddch(win, y, win->_maxx, rs);
+               }
+       }
+
+       return OK;
+}
+
 // int wchgat (WINDOW *, int, attr_t, short, const void *) {}
 /* D */ int wclear(WINDOW *win)
 {