]> git.llucax.com Git - z.facultad/75.52/treemulator.git/blobdiff - nviewer/window.cpp
Cambio SetHeader por ShowHeader.
[z.facultad/75.52/treemulator.git] / nviewer / window.cpp
index a3f3993bb7ce22c05b23dca6ee3b82381f328371..c0806ac27db804b594b040063c267efded3da93e 100644 (file)
@@ -3,25 +3,45 @@
 
 Window::Window (const std::string &s, int w, int h, int x, int y, bool use_box)
 {
+       parent = NULL;
+       if (!w) w = COLS;
+       if (!h) h = LINES;
+
+       width = w;
+       height = h;
+       win = newwin (h, w, y, x);
+
        if (use_box == true) {
-               if (w) w +=2;
-               if (h) h +=2;
+               wattron (win, COLOR_PAIR (6));
+               box(win, ACS_VLINE, ACS_HLINE);
+               wattroff (win, COLOR_PAIR (6));
        }
-       if (h) h++;
+
+       title = s;
+       wattron (win, COLOR_PAIR (1));
+       mvwaddstr(win, 0, 1, title.c_str ());   
+       wattroff (win, COLOR_PAIR (1));
+}
+
+Window::Window (Window *p, const std::string &s, int w, int h, int x, int y, bool use_box)
+{
+       parent = p;
+       if (!w) w = COLS;
+       if (!h) h = LINES;
 
        width = w;
        height = h;
-       win = newwin (h, w, y, x);
+       win = derwin (parent->win, h, w, y, x);
 
        if (use_box == true) {
-               wattron (win, COLOR_PAIR (4));
+               wattron (win, COLOR_PAIR (6));
                box(win, ACS_VLINE, ACS_HLINE);
-               wattroff (win, COLOR_PAIR (4));
+               wattroff (win, COLOR_PAIR (6));
        }
 
        title = s;
        wattron (win, COLOR_PAIR (1));
-       mvwaddstr(win, 1, 1, title.c_str ());   
+       mvwaddstr(win, 0, 1, title.c_str ());   
        wattroff (win, COLOR_PAIR (1));
 }
 
@@ -32,7 +52,7 @@ Window::~Window ()
 
 void Window::SetText (int x, int y, const std::string &s)
 {
-       mvwaddstr (win, y+1, x+1, s.c_str ());
+       mvwaddstr (win, y, x, s.c_str ());
        wrefresh (win);
 }
 
@@ -53,8 +73,16 @@ void Window::SetText (int x, int y, uint i)
        ss >> s;
        SetText (x, y, s);
 }
+
 void Window::Show ()
 {
+       if (parent)
+               touchwin (parent->win);
        wrefresh (win);
 }
 
+int Window::GetChar ()
+{
+       return wgetch (win);
+}
+