From b004e49297244d2d3ebdd4c9adb91031cf045e10 Mon Sep 17 00:00:00 2001 From: Ricardo Markiewicz Date: Sun, 18 Apr 2004 03:29:22 +0000 Subject: [PATCH] * Agrego mas documentacion de las API's --- emufs_gui/articulos.c | 2 +- emufs_gui/facturas.c | 6 ++++++ emufs_gui/facturas.h | 19 +++++++++++++++---- emufs_gui/form.h | 11 +++++++++++ emufs_gui/gui.h | 19 ++++++++++++++++++- emufs_gui/menu.h | 21 +++++++++++++++++++++ emufs_gui/viewer.h | 21 +++++++++++++++++++++ 7 files changed, 93 insertions(+), 6 deletions(-) diff --git a/emufs_gui/articulos.c b/emufs_gui/articulos.c index 4d78133..598a888 100644 --- a/emufs_gui/articulos.c +++ b/emufs_gui/articulos.c @@ -162,9 +162,9 @@ t_LstArticulos *art_cargar(const char *filename, int tipo, int tam_bloque) int art_liberar(t_LstArticulos *l) { + t_Reg_Articulo *del; if (l == NULL) l = lst_articulos; if (l == NULL) return 1; - t_Reg_Articulo *del; emufs_destruir(l->fp); while (l->primero) { diff --git a/emufs_gui/facturas.c b/emufs_gui/facturas.c index b9b798a..00b5276 100644 --- a/emufs_gui/facturas.c +++ b/emufs_gui/facturas.c @@ -281,10 +281,16 @@ t_LstFacturas *fact_cargar(const char *filename, int tipo, int tam_bloque) int fact_liberar(t_LstFacturas *l) { + t_Reg_Factura *del; if (l == NULL) l = lst_facturas; if (l == NULL) return 1; emufs_destruir(l->fp); + while (l->primero) { + del = l->primero; + l->primero = l->primero->sig; + free(del); + } free(l); lst_facturas = NULL; diff --git a/emufs_gui/facturas.h b/emufs_gui/facturas.h index 1afce41..4de2ac8 100644 --- a/emufs_gui/facturas.h +++ b/emufs_gui/facturas.h @@ -19,9 +19,7 @@ typedef struct _t_item_ { } t_Item; typedef struct _facturas_ { - /* Dejo los campos numericos al principio para mayor facilidad - * de parseo. - */ + /* Dejo los campos numericos al principio para mayor facilidad de parseo. */ int numero; float procdoi; int numero_remito; @@ -49,14 +47,27 @@ typedef struct _lista_facturas_ { EMUFS *fp; /* Filepointer al archivo donde estan los datos */ EMUFS *fp_texto; /* Filepointer al archivo donde estan los textos */ } t_LstFacturas; - + + +/** Crea la lista de facturas desde un archivo nuevo o existente + * + * \param filename Si es NULL trata de abrir un archivo existente, si no cargar el XML pasado + */ t_LstFacturas *fact_cargar(const char *filename, int tipo, int tam_bloque); + +/** Elimina toda la memoria utilizada por las facturas */ int fact_liberar(t_LstFacturas *l); +/** Agregar una factura */ void fact_agregar(char *s); + +/** Modificar una factura */ void fact_modificar(char *s); + +/** Eliminar una factura */ void fact_eliminar(char *s); +/** Obtiene la list de facturas */ t_LstFacturas *fact_get_lst(); #endif diff --git a/emufs_gui/form.h b/emufs_gui/form.h index 3b8c531..d78d2e0 100644 --- a/emufs_gui/form.h +++ b/emufs_gui/form.h @@ -62,6 +62,7 @@ t_Form *form_crear(WINDOW *win); /** Libera un formulario */ int form_destruir(t_Form *); + /** Agrega un nuevo campo * * Significado de max según tipo: @@ -101,6 +102,16 @@ void form_ejecutar(t_Form *f, int x, int y); */ void form_es_modificable(t_Form *f, const char *widget, int b); +/** Setea el valor de un widget + * + * Para campos de texto solamente!. + * + * Pone en el campo valor el texto pasado por parametro. + * + * \param f Formulario. + * \param widget Nombre del widget. + * \param s Texto a poner. + */ void form_set_valor(t_Form *f, const char *widget, const char *s); /** Obtiene el valor asociado a un campo como char * diff --git a/emufs_gui/gui.h b/emufs_gui/gui.h index 7c97a6f..351f2c4 100644 --- a/emufs_gui/gui.h +++ b/emufs_gui/gui.h @@ -2,8 +2,25 @@ #ifndef _GUI_H_ #define _GUI_H_ -/* cuadro de msg. w y h son de la ventana padre */ +/** Crea un cuadro de mensaje + * + * Se puede utilizar para dar avisos o dejar un mensaje mientras + * se va a procesar un tarea larga, por ejemplo : + * \code + * WINDOW *w = msg_box(padre, 10, 10, "Se van a eliminar %d elementos. Aguarde", n); + * do_delete(); + * msg_box_free(w); + * \endcode + * + * \param win Ventana padre + * \param w Ancho de la ventana padre + * \param h Alto de la ventana padre + * \param format Formato compatible con printf + * \return Una ventana creada. + */ WINDOW *msg_box(WINDOW *win, int w, int h, const char *format, ...); + +/** Libera un dialogo creado */ void msg_box_free(WINDOW *padre, WINDOW *win); #endif diff --git a/emufs_gui/menu.h b/emufs_gui/menu.h index 7c364d2..4c468e7 100644 --- a/emufs_gui/menu.h +++ b/emufs_gui/menu.h @@ -8,6 +8,20 @@ #include #include +/** Estructura de Menu + * + * Para crear un menu puede utilizar las macros que se dan, de la siguiente forma : + * \code + * MENU(mi_menu) { + * MENU_OPCION("Valor 1", "Descripcion 1"), + * MENU_OPCION("Valor 2", "Descripcion 2"), + * MENU_OPCION("Valor 3", "Descripcion 3"), + * MENU_OPCION("Valor 4", "Descripcion 4") + * }; + * \endcode + * Tenga en cuenta que la última opción no debe llevar una coma + * al final de la expresión. + */ typedef struct _menu_o_t_ { char *opt; char *desc; @@ -18,6 +32,13 @@ typedef struct _menu_o_t_ { #define MENU_OPCION(a,b) {a, b} +/** Ejecuta un menu en pantalla + * + * \param menu Menú a mostrar + * \param cant Cantidad de opciones del menu + * \param title Título a mostrar + * \return valor de 0 a (n-1) de la opción seleccionada + */ int menu_ejecutar(t_Menu menu[], int cant, char *title); #endif diff --git a/emufs_gui/viewer.h b/emufs_gui/viewer.h index 681c5f1..e433720 100644 --- a/emufs_gui/viewer.h +++ b/emufs_gui/viewer.h @@ -7,7 +7,28 @@ #include "emufs.h" +/** Permite ver en pantalla los registros fisicos + * + * + * Permite ver los registros en su contexto actual (bloques + * u otros registros), resaltando el registro actual. + * + * Tambien permite realizar altas, bajas, modificaciones, etc. + * + * \param padre Ventana sobre la cual dibujar + * \param w Ancho de la ventana padre + * \param h Alto de la ventana padre + * \param cual Que archivo a ver (0==articulos, 1==facturas, 2==notas) + */ void ver_registros(WINDOW *padre, int w, int h, int cual); + +/** Permite ver en pantalla los registros fisicos + * + * \param padre Ventana sobre la cual dibujar + * \param w Ancho de la ventana padre + * \param h Alto de la ventana padre + * \param cual Que archivo a ver (0==articulos, 1==facturas, 2==notas) + */ void ver_bloques(WINDOW *padre, int w, int h, int cual); #endif -- 2.43.0