]> git.llucax.com Git - z.facultad/75.42/figuras.git/blobdiff - figura.h
Se arregla typo.
[z.facultad/75.42/figuras.git] / figura.h
index 672c800a4538a094c2077d088e7c99e29ca324ae..7e1b9f7656a27200f56e2bc421f1e2c4ea91b4b2 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.
@@ -28,6 +28,9 @@ class Figura {
 
     protected:
 
+        /// Máxima cantidad de caracteres del nombre.
+        static const size_t MAX_NOMBRE = 50;
+
         /// Color.
         size_t color;
 
@@ -38,7 +41,29 @@ class Figura {
         Punto centro;
 
         /// Nombre.
-        char nombre[30];
+        char nombre[MAX_NOMBRE];
+
+        /**
+         * Crea un nuevo contexto gráfico.
+         * Crea un nuevo contexto gráfico con las propiedades de la figura
+         * (color y grosor) partiendo del contexto gráfico de un widget.
+         *
+         * \param widget Widget de donde copiar el GC inicial.
+         *
+         * \return Contexto gráfico a modificar.
+         */
+        virtual GdkGC* get_gc(GtkWidget* widget) const;
+
+        /**
+         * Traduce los 16 colores (de 4 bits) en colores de 24 bits.
+         * 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 +80,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 widget Widget donde dibujar.
          */
-        virtual void dibujar(std::ostream& out) const;
+        virtual void dibujar(GtkWidget* widget) const = 0;
 
 };