]> git.llucax.com Git - z.facultad/75.52/treemulator.git/commitdiff
Permito ventanas anidadas.
authorRicardo Markiewicz <rmarkie@fi.uba.ar>
Mon, 17 Oct 2005 04:45:59 +0000 (04:45 +0000)
committerRicardo Markiewicz <rmarkie@fi.uba.ar>
Mon, 17 Oct 2005 04:45:59 +0000 (04:45 +0000)
nviewer/window.cpp
nviewer/window.h

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)
 {
 
 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 (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;
 
        width = w;
        height = h;
-       win = newwin (h, w, y, x);
+       win = derwin (parent->win, h, w, y, x);
 
        if (use_box == true) {
 
        if (use_box == true) {
-               wattron (win, COLOR_PAIR (4));
+               wattron (win, COLOR_PAIR (6));
                box(win, ACS_VLINE, ACS_HLINE);
                box(win, ACS_VLINE, ACS_HLINE);
-               wattroff (win, COLOR_PAIR (4));
+               wattroff (win, COLOR_PAIR (6));
        }
 
        title = s;
        wattron (win, COLOR_PAIR (1));
        }
 
        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));
 }
 
        wattroff (win, COLOR_PAIR (1));
 }
 
@@ -32,7 +52,7 @@ Window::~Window ()
 
 void Window::SetText (int x, int y, const std::string &s)
 {
 
 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);
 }
 
        wrefresh (win);
 }
 
@@ -53,8 +73,16 @@ void Window::SetText (int x, int y, uint i)
        ss >> s;
        SetText (x, y, s);
 }
        ss >> s;
        SetText (x, y, s);
 }
+
 void Window::Show ()
 {
 void Window::Show ()
 {
+       if (parent)
+               touchwin (parent->win);
        wrefresh (win);
 }
 
        wrefresh (win);
 }
 
+int Window::GetChar ()
+{
+       return wgetch (win);
+}
+
index d80871b3adfdb7c7095a7d5806ad9c5b50558df9..ba749abf2d82510f67ed80c6e088bedfcfc65628 100644 (file)
@@ -9,17 +9,23 @@
 class Window {
        public:
                Window (const std::string &s, int w, int h, int x=0, int y=0, bool box=true);
 class Window {
        public:
                Window (const std::string &s, int w, int h, int x=0, int y=0, bool box=true);
-               ~Window ();
+               Window (Window *parent, const std::string &s, int w, int h, int x=0, int y=0, bool box=true);
+               virtual ~Window ();
 
                void SetText (int x, int y, const std::string &s);
                void SetText (int x, int y, int i);
                void SetText (int x, int y, uint i);
 
                void SetText (int x, int y, const std::string &s);
                void SetText (int x, int y, int i);
                void SetText (int x, int y, uint i);
-               void Show ();
+               virtual void Show ();
+               int GetChar ();
+
+               int Width () { return width; }
+               int Height () { return height; }
        protected:
                int width;
                int height;
                WINDOW *win;
                std::string title;
        protected:
                int width;
                int height;
                WINDOW *win;
                std::string title;
+               Window *parent;
 };
 
 #endif
 };
 
 #endif