X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/2f11b196bec87977b7af6087fab42e986d24b743..27dcebf2414a7fe37fa130561d14d8bf29e9b12d:/emufs_gui/registros.c?ds=inline diff --git a/emufs_gui/registros.c b/emufs_gui/registros.c index ab6b5bc..4877b88 100644 --- a/emufs_gui/registros.c +++ b/emufs_gui/registros.c @@ -21,7 +21,7 @@ void ver_registros(WINDOW *padre, int w, int h) char *data; /* Registros a mostrar en pantalla */ char codigo[50]; /* Variable para guardar el codigo actual para mandar a modificar */ EMUFS *fp; - int pos_actual, ancho_registro; + int pos_actual, ancho_registro, offset, pos; fp = emufs_abrir("articulos"); total_indice = emufs_idx_get_count(fp); @@ -32,7 +32,7 @@ void ver_registros(WINDOW *padre, int w, int h) ancho_registro = sizeof(t_Articulo)-sizeof(unsigned int)*2+20; - max_scroll = size / (w/3-2) - (h-8); + max_scroll = size / (w-4) - (h-8); if (max_scroll < 0) max_scroll = 0; actual[0] = derwin(padre, h-6, w-2, 1, 1); @@ -101,6 +101,7 @@ void ver_registros(WINDOW *padre, int w, int h) case 'z': /* Scroll */ scroll++; if (scroll > max_scroll) scroll = max_scroll; + break; case 'l': if (ant_indice < total_indice) { ant_indice++; @@ -125,11 +126,15 @@ void ver_registros(WINDOW *padre, int w, int h) /* Imprimo los registros */ if (data) { - mvwaddnstr(actual[1], 0, 0, data, pos_actual); + offset = scroll*actual_ancho; + pos = pos_actual - offset; + mvwaddnstr(actual[1], 0, 0, data+offset, pos); + offset += pos; wattron(actual[1], A_BOLD); - waddnstr(actual[1], data+pos_actual, ancho_registro); + waddnstr(actual[1], data+offset, ancho_registro); wattroff(actual[1], A_BOLD); - waddnstr(actual[1], data+pos_actual+ancho_registro, size-(pos_actual+ancho_registro)); + offset += ancho_registro; + waddnstr(actual[1], data+offset, size-offset); } wrefresh(actual[1]);