]> git.llucax.com Git - z.facultad/75.52/treemulator.git/blobdiff - nviewer/w_btree.cpp
Wordwrap dentro de la ventana.
[z.facultad/75.52/treemulator.git] / nviewer / w_btree.cpp
index a5a819b04e288aa7f5e133851738735585aeb20e..2dbee00fce218e50dbe9f4b0c1239c17608655e7 100644 (file)
@@ -2,7 +2,7 @@
 #include <curses.h>
 #include "w_btree.h"
 
-wBTree::wBTree (Window *p):Window (p, "", p->Width()-2, p->Height ()-2, 1, 1, true)
+wBTree::wBTree (Window *p):Window (p, "", p->Width()-2, p->Height ()-5, 1, 1, true)
 {
        last_length = 0;
        wnode = new wNodeHeader (this, p->Width () - 30, 2);
@@ -27,17 +27,8 @@ void wBTree::ShowNode (uint node_num)
        node_keys = tree->ReadKeys (node, node_header);
 
        int y, x;
-       y = 5;
-       x = 5;
-       /* Dibujo el bloque de color rojo */
-       /*wattron (win, COLOR_PAIR (1));
-       for (uint i=0; i < tree->header.block_size + 2; i++)
-               mvwaddstr (win, y+1, i+x-1, ".");
-       for (uint i=0; i < tree->header.block_size + 2; i++)
-               mvwaddstr (win, y-1, i+x-1, ".");
-       mvwaddstr (win, y, x-1, ".");
-       mvwaddstr (win, y, tree->header.block_size + x, ".");
-       wattroff (win, COLOR_PAIR (1));*/
+       y = 8;
+       x = 2;
 
        for (uint o=0; o<last_length; o++)
                mvwaddstr (win, y, x+o, " ");
@@ -46,7 +37,12 @@ void wBTree::ShowNode (uint node_num)
        int n = 0;
        while (it != node_keys.end ()) {
                std::string s = *(*it);
-       
+
+               if ((x+s.length ()) > (width-4)) {
+                       y++;
+                       x = 2;
+               }
+
                if (n%2)
                        wattron (win, COLOR_PAIR (2));
                else
@@ -64,6 +60,8 @@ void wBTree::ShowNode (uint node_num)
        }
        last_length = x;
        wnode->ShowHeader (node_num, node_header);
+
+       Show ();
 }
 
 void wBTree::Show ()