#endif
Circulo::Circulo(size_t color, size_t grosor, const Punto& centro,
- const char* nombre, float radio):
+ const char* nombre, int radio):
Figura(color, grosor, centro, nombre), radio(radio) {
#ifdef DEBUG
std::cerr << "En constructor de Círculo." << std::endl;
}
void Circulo::dibujar(GtkWidget* widget) const {
-//void Circulo::dibujar(GdkGC* gc, GdkDrawable *window) const {
#ifdef DEBUG
std::cerr << "En dibujar de Círculo." << std::endl;
#endif
- Figura::dibujar(widget);
+ // Obtengo un contexto gráfico con el grosor y color de la figura.
+ GdkGC* gc = get_gc(widget);
+ // Dibujo el círculo.
gdk_draw_arc(
// Área dibujable.
- widget->window,
- // Graphic Context a usar.
- widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
+ GDK_DRAWABLE(widget->window),
+ // Contexto gráfico,
+ gc,
// No lo rellena.
FALSE,
// X, Y de la esquina superior izquierda.
centro.x - radio, centro.y - radio,
- // X, Y de la esquina inferior derecha.
- centro.x + radio, centro.y + radio,
+ // ancho y alto del cuadrado que circunscribe al círculo.
+ radio * 2, radio * 2,
// de 0 a 360 grados.
0, 64 * 360);
+ // Libero la copia del contexto gráfico.
+ g_object_unref(G_OBJECT(gc));
}