#include "punto.h"
#include <cstdlib>
-#include <ostream>
+#include <gtk/gtk.h>
/**
* Figura dibujable.
protected:
+ /// Máxima cantidad de caracteres del nombre.
+ static const size_t MAX_NOMBRE = 50;
+
/// Color.
size_t color;
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:
/**
* 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;
};