]> git.llucax.com Git - z.facultad/75.42/figuras.git/commitdiff
Se agrega mas doc.
authorLeandro Lucarella <llucax@gmail.com>
Tue, 7 Oct 2003 04:10:57 +0000 (04:10 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Tue, 7 Oct 2003 04:10:57 +0000 (04:10 +0000)
documentacion.h

index 514753bab234955c8818a51344ad96428c96f5e9..effcacd7677ba8e93fb09f509cda84656cdb51ec 100644 (file)
@@ -68,6 +68,7 @@ Tambi
     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.
+    TODO
 
 
 \section desarrollo Desarrollo.
@@ -99,6 +100,11 @@ Tambi
 
 
 \section resolucion Resolución.
+    \note Sólo se comentan los cambios realizados al Trabajo Práctico 3 para
+        cumplir los objetivos del actual. Por lo tanto no se hará referencia
+        a componentes como la lista interna de Dibujo y otros aspectos que ya
+        fueron evaluados en el trabajo anterior.
+
     \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
@@ -112,10 +118,10 @@ Tambi
         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
+        \note Para crear la ventana principal se utilizó una herramienta
               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
+              eliminaron llamadas a funciones inecesarias. 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
@@ -128,15 +134,48 @@ Tambi
         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 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_borrar_clicked(),
+            on_button_graficar_clicked(), on_button_agregar_clicked(),
+            on_button_salir_clicked().
+        - \c toggled:
+            Este evento lo \e dispara un GtkToggleButton cuando es seleccionado
+            o deseleccionado. Se usa para activar y desactivar campos para la
+            entrada de usuario al seleccionar un tipo de figura y es manejado
+            por las siguientes funciones \e callbacks:
+            on_radiobutton_linea_toggled(), on_radiobutton_cuadrado_toggled(),
+            on_radiobutton_rectangulo_toggled(),
+            on_radiobutton_circulo_toggled().
         - \c expose_event:
-            Evento \e disparado cuando se debe redibujar un área de la
+            Este Evento es \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
+        - \c delete_event:
+            Este evento se \e dispara cuando se solicita \e borrar una ventana.
+            Esto pasa cuando se le pide a un manejador de ventanas que \e borre
+            o \cierre esa ventana (ya sea por la típica X en la decoración de la
+            ventana o un menú contextual, por ejemplo).
+
+        Una clara diferencia entre estos es que los dos primeros son \e internos
+        del programa, es decir, \e disparados por el mismo programa, mientras
+        que los dos últimos son eventos \e externos, generados ya sea por el
+        manejador de ventanas o por el mismo sistema gráfico (X Window o el
+        sistema operativo, dependiendo de la plataforma).
+
+    \subsection dibujando Dibujando.
+        El dibujo de las figuras comienza en la \e callback que maneja el \c
+        expose_event del área de dibujo. En ella se invoca al método
+        Dibujar::dibujar() quien a su vez llama al método Figura::dibujar() que
+        corresponda para cada dibujo en su lista interna.
+        Figura::dibujar() en sí es un método abstracto, pero hay otro método,
+        Figura::get_gc() que es utilizado por todos los métodos dibujar()
+        sobreescritos que cambia el contexto gráfico, asignando los
+        valores apropiedos al grueso y color del trazo utilizado para dibujar.
+        En cada método dibujar() sobreescrito se dibuja la figura en sí, con las
+        propiedades del contexto gráfico obtenidas de Figura::get_gc().
 
 
 \section requerimientos Requerimientos y modo de uso.