X-Git-Url: https://git.llucax.com/z.facultad/75.42/figuras.git/blobdiff_plain/e3908a19f8ddc8d37cb2d93e8fae1e61af8487de..f5088550a4245865592cb5fd781da3862ef1bef1:/circulo.cpp diff --git a/circulo.cpp b/circulo.cpp index 55774b0..2db9581 100644 --- a/circulo.cpp +++ b/circulo.cpp @@ -39,19 +39,25 @@ void Circulo::dibujar(GtkWidget* widget) const { #ifdef DEBUG std::cerr << "En dibujar de Círculo." << std::endl; #endif - Figura::dibujar(widget); + // Copio el contexto gráfico del área de dibujo. + GdkGC* gc = gdk_gc_new(GDK_DRAWABLE(widget->window)); + // Le doy los nuevos valores. + set_gc(gc); + // 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 el 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)); }