]> git.llucax.com Git - z.facultad/75.42/figuras.git/blobdiff - circulo.cpp
Se arregla typo.
[z.facultad/75.42/figuras.git] / circulo.cpp
index 5ce7d785e63d97195038ee6087458d79cbe650a4..2d2968eb127f627982bcb022f917645cecb6d01e 100644 (file)
@@ -21,7 +21,7 @@
 #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;
@@ -35,23 +35,26 @@ Circulo::~Circulo(void) {
 }
 
 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));
 }