]> git.llucax.com Git - z.facultad/75.42/figuras.git/blobdiff - figura.h
Se agrega documentacion.
[z.facultad/75.42/figuras.git] / figura.h
index d7c027a14b44967ba16aa809cdc209ef62b120a5..c79d65fd227bae1cf5c811a2bd8bdfcbda0fd3d0 100644 (file)
--- a/figura.h
+++ b/figura.h
@@ -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,27 @@ class Figura {
         Punto centro;
 
         /// Nombre.
-        char nombre[30];
+        char nombre[MAX_NOMBRE];
+
+        /**
+         * 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 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 +78,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(GtkWidget* widget) const;
+        virtual void dibujar(GtkWidget* widget) const = 0;
 
 };