X-Git-Url: https://git.llucax.com/z.facultad/75.42/figuras.git/blobdiff_plain/acb106a7e3b4bc6b05e6c4c1ab2ff50ff10fac78..22d59b32c46e38bfd1937377a470a3ef45c9fc5c:/figura.h diff --git a/figura.h b/figura.h index e5eeb2f..c79d65f 100644 --- a/figura.h +++ b/figura.h @@ -19,7 +19,7 @@ #include "punto.h" #include -#include +#include /** * 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,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(std::ostream& out) const; + virtual void dibujar(GtkWidget* widget) const = 0; };