From 22d59b32c46e38bfd1937377a470a3ef45c9fc5c Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Tue, 7 Oct 2003 02:49:51 +0000 Subject: [PATCH] Se agrega documentacion. --- documentacion.h | 64 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 55 insertions(+), 9 deletions(-) diff --git a/documentacion.h b/documentacion.h index 2782a1c..514753b 100644 --- a/documentacion.h +++ b/documentacion.h @@ -51,13 +51,23 @@ Tambi \section gdk_gtk Descripción de API GDK/GTK y comparación con GDI de Windows. - GTK significa GIMP ToolKit ya que originalmente fue programa sólamente para - hacer el programa GIMP (GNU Image Manipulation Program, una especie de - Photoshop libre). Actualmente ha crecido mucho, hasta superando en - importancia ese proyecto inicial. Creció tanto que incluso en la actualidad - se compone a su vez de 2 capas más, cada una siendo de más bajo nivel que la - original. - \subsection gdk GDK. + GTK significa GIMP ToolKit ya que originalmente fue creada sólamente para + hacer el programa GIMP (GNU Image + Manipulation Program, una especie de Photoshop libre). Actualmente ha + crecido mucho, hasta superando en importancia ese proyecto inicial. + Creció tanto que incluso en la actualidad se compone a su vez de 2 capas + más, cada una siendo de más bajo nivel que la original. La capa de más bajo + nivel es la GLib, que implementa funciones básicas y tipos de datos comunes, + sirviendo de capa base para hacer aplicaciones multiplataforma. Sobre ésta, + está construida la biblioteca GDK (GTK+ Drawing Kit), que serviría de base + para hacer aplicaciones gráficas multiplataforma (aunque fuertemente + influída por la forma de funcionar de X Window, plataforma para la cual fue + creada inicialmente). GDK es entoncess de relativo bajo nivel (un nivel + cercano a Xlib, biblioteca de X Window, que sólo permite dibujar en pantalla + y manejar eventos, como el movimiento de un mouse el presionar una tecla o + un requerimiento para redibujar una porción de la pantalla). Sobre GDK se + crean una serie de \e widgets (componentes como botones, etiquetas, barras + de menú, etc) y a este conjunto de widgets se los llama GTK. \section desarrollo Desarrollo. @@ -89,8 +99,44 @@ Tambi \section resolucion Resolución. - \subsection res_ascii Clase Ascii. - TODO + \subsection ventana Ventana principal. + Todos los componentes de la ventana principal (y la ventana en sí) se + encapsularon en un objeto TP5Window. Al inicializar el objeto se + inicializan todos los componentes de la ventana, inclusive el Dibujo que + contiene los objetos de tipo Figura que se van agregando. Dentro de + estos componentes se encuentran varios widgets GTK que se van agregando + a la ventana principal, guardandose un puntero como atributo de + TP5Window de solo aquellos widgets que se necesitarán a la hora de + obtener la entrada del usuario. Del resto de los widgets no es necesario + guardar un puntero ya que se liberan automáticamente al llamar a la + función gtk_main_quit(). + TP5Window también tiene métodos para convertir o facilitar la conversión + de los datos que ingresa el usuario. + \note Para crear la ventana principal se utilizó una herramienta que + gráfica que luego genera código automáticamente llamada Glade. + Sobre el código generado se cambiaron varias cosas y se + eliminaron llamadas a funciones inecesarias, por ejemplo. Con este + programa también puede generarse un archivo XML con la disposición + gráfica de todos los elementos y luego cargarlo en tiempo de + ejecución mediante la biblioteca libglade, pero se dibujó toda la + interfaz con código para mostrar bien por dentro el proceso + realizado por dicha biblioteca. + + \subsection callbacks Funciones callbacks. + Cada evento recibido por un widget GTK (y en general cualquier señal que + pueda manejar la GLib) de ser \conectado a una función callback que se + encargue de menejarlo. Todas las funciones callback se agruparon en el + archivo callbacks.h y callbacks.cpp. Se implementaron callbacks para los + siguientes eventos: + - \c expose_event: + Evento \e disparado cuando se debe redibujar un área de la + pantalla, en este caso sólo se conecta el evento para el área de + dibujo para dibujar todas las figuras en la pantalla. La función que + maneja este evento es on_drawingarea_expose_event(). + - \c clicked: + Este evento se \e dispara cuando un GtkButton es presionado. Se usa + para borrar el dibujo, actualizarlo, agregar figuras y salir del + programa y es manejado por las funciones on_button__clicked() TODO \section requerimientos Requerimientos y modo de uso. -- 2.43.0