]> git.llucax.com Git - z.facultad/75.42/figuras.git/blobdiff - circulo.cpp
Se agregan mas tests y se mejora la salida de error.
[z.facultad/75.42/figuras.git] / circulo.cpp
index e0ae2125914f3e31834d7608be02ecb0a95d76ad..55774b0a8d5d17f66cdf07cff3e1a1ac55148073 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;
@@ -34,17 +34,24 @@ Circulo::~Circulo(void) {
 #endif
 }
 
-void Circulo::dibujar(std::ostream& out) const {
+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
-    // Valores a cambiar del graphic context.
-    //GdkGCValues values;
-    //values.foreground
-    //gdk_gc_set_line_attributes(
-    out << "Circulo(";
-    Figura::dibujar(out);
-    out << ", radio(" << radio << "))";
+    Figura::dibujar(widget);
+    gdk_draw_arc(
+            // Área dibujable.
+            widget->window,
+            // Graphic Context a usar.
+            widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
+            // 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,
+            // de 0 a 360 grados.
+            0, 64 * 360);
 }