X-Git-Url: https://git.llucax.com/z.facultad/75.42/figuras.git/blobdiff_plain/09eee1993f5b3310f6695639433fdf2d9e319db2..34078d9855550bda8415c600931decd2dc50bcc6:/figura.h diff --git a/figura.h b/figura.h index d7c027a..7e1b9f7 100644 --- 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,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(GtkWidget* widget) const; + virtual void dibujar(GtkWidget* widget) const = 0; };