]> git.llucax.com Git - z.facultad/75.42/figuras.git/blobdiff - figura.h
Se agregan links útiles.
[z.facultad/75.42/figuras.git] / figura.h
index 672c800a4538a094c2077d088e7c99e29ca324ae..36579b4c2a79eae95649a90197fbd3cb586b0f4b 100644 (file)
--- a/figura.h
+++ b/figura.h
@@ -2,8 +2,8 @@
  *
  * Taller de Programación (75.42).
  *
- * Ejercicio Número 3:
- * Lista de figuras.
+ * Ejercicio Número 5:
+ * Graficador de figuras.
  *
  * Copyleft 2003 - Leandro Lucarella <llucare@fi.uba.ar>
  * Puede copiar, modificar y distribuir este programa bajo los términos de
@@ -19,7 +19,7 @@
 
 #include "punto.h"
 #include <cstdlib>
-#include <ostream>
+#include <gtk/gtk.h>
 
 /**
  * Figura dibujable.
@@ -40,6 +40,26 @@ class Figura {
         /// Nombre.
         char nombre[30];
 
+        /**
+         * Modifica el contexto gráfico.
+         * Modifica el contexto gráfico según las propiedades de la figura
+         * (color y grosor).
+         *
+         * \param gc Contexto gráfico a modificar.
+         */
+        virtual void set_gc(GdkGC* gc) const;
+
+        /**
+         * Traduce los 4 bits de colores en 24 bits de colores.
+         * La traducción es simple. Los 3 bits menos significativos son
+         * usados como indicador del pigmento. El bit menos significativo
+         * indica la presencia de pigmento azul, el siguiente verde
+         * y el siguiente rojo. El bit más significativo representa
+         * la saturación del color, si está activado, el color será
+         * más saturado.
+         */
+        GdkColor* traducir_color(GdkColor* c) const;
+
     public:
 
         /**
@@ -55,10 +75,12 @@ class Figura {
 
         /**
          * Dibuja.
+         * Modifica el contexto gráfico según las propiedades de la figura
+         * (color y grosor).
          *
-         * \param out Stream de salida en donde dibujar.
+         * \param gc Contexto gráfico a modificar.
          */
-        virtual void dibujar(std::ostream& out) const;
+        virtual void dibujar(GtkWidget* widget) const = 0;
 
 };