]> git.llucax.com Git - z.facultad/75.06/emufs.git/blob - emufs_gui/tree_viewer.c
* FIXED : Pedir Clave a Izquierda andando
[z.facultad/75.06/emufs.git] / emufs_gui / tree_viewer.c
1
2 #include "tree_viewer.h"
3
4 int emufs_indice_b_ver(INDICE *idx, WINDOW *win, int w, int h, int id)
5 {
6         int y=0;
7         B_NodoHeader header;
8         B_NodoEntry *claves;
9         t_Form *form;
10         char *nodo;
11         char tmp[100];
12         int i;
13         int proximo;
14
15         if (id == -1) return 0;
16
17         do {
18                 y = 0;
19                 mvwaddstr(win, y++, 0, "Nombre : ");
20                 waddstr(win, idx->nombre);
21         
22                 /* Muestro la raiz */
23                 nodo = b_leer_nodo(idx, id);
24                 b_leer_header(nodo, &header);
25                 claves = b_leer_claves(nodo, &header);
26         
27                 mvwaddstr(win, y++, 0, "Nodo Nro ");
28                 sprintf(tmp, "%d", id);
29                 waddstr(win, tmp);
30                 mvwaddstr(win, y++, 0, "Nivel =  ");
31                 sprintf(tmp, "%d", header.nivel);
32                 waddstr(win, tmp);
33                 mvwaddstr(win, y++, 0, "Cantidad de hijo = ");
34                 sprintf(tmp, "%d", header.cant);
35                 waddstr(win, tmp);
36                 mvwaddstr(win, y++, 0, "Padre = ");
37                 sprintf(tmp, "%d", header.padre);
38                 waddstr(win, tmp);
39         
40                 /* Muestro las claves */
41                 mvwaddstr(win, y++, 0, "Claves");
42                 wmove(win, y, 0);
43                 sprintf(tmp, "%d", header.hijo_izquierdo);
44                 waddstr(win, tmp);
45                 for(i=0; i<header.cant; i++) {
46                         sprintf(tmp, "(%d)%d",
47                                         claves[i].clave.i_clave,
48         /*                              claves[i].dato.id,
49                                         claves[i].dato.bloque,*/
50                                         claves[i].hijo_derecho
51                         );
52                         waddstr(win, tmp);
53                 }
54                 free(nodo);
55                 wrefresh(win);
56         
57                 form = form_crear(win);
58                 form_agregar_widget(form, INPUT, "Ver (-1 para volver)", 4, "");
59                 form_ejecutar(form, 0, h-2);
60                 proximo = form_obtener_valor_int(form, "Ver (-1 para volver)");
61                 werase(win);
62                 wrefresh(win);
63                 emufs_indice_b_ver(idx, win, w, h, proximo);
64         } while (proximo != -1);
65
66         werase(win);
67         wrefresh(win);
68 }
69