]> git.llucax.com Git - z.facultad/75.42/figuras.git/blobdiff - rectangulo.cpp
Se agrega un limite mas claro al nombre y se corrige falta de un include.
[z.facultad/75.42/figuras.git] / rectangulo.cpp
index c4e9e56f12416f498d2e72e332b234948f6517a0..da7e087d01784172909e768dbf3ec815e7a2ca3e 100644 (file)
@@ -21,7 +21,7 @@
 #endif
 
 Rectangulo::Rectangulo(size_t color, size_t grosor, const Punto& centro,
-        const char* nombre, float ancho, float alto):
+        const char* nombre, int ancho, int alto):
         Figura(color, grosor, centro, nombre), ancho(ancho), alto(alto) {
 #ifdef DEBUG
     std::cerr << "En constructor de Rectángulo." << std::endl;
@@ -38,37 +38,39 @@ void Rectangulo::dibujar(GtkWidget* widget) const {
 #ifdef DEBUG
     std::cerr << "En dibujar de Rectángulo." << 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);
     // Lado de la izquierda.
     gdk_draw_line(
             // Área dibujable.
-            widget->window,
-            // Graphic Context.
-            widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
+            GDK_DRAWABLE(widget->window),
+            // Contexto gráfico.
+            gc,
             // X, Y del vértice superior.
             centro.x - ancho / 2, centro.y - alto / 2,
             // X, Y del vértice inferior.
             centro.x - ancho / 2, centro.y + alto / 2);
     // Lado de la derecha.
-    gdk_draw_line(widget->window,
-            widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
+    gdk_draw_line(GDK_DRAWABLE(widget->window), gc,
             // X, Y del vértice superior.
             centro.x + ancho / 2, centro.y - alto / 2,
             // X, Y del vértice inferior.
             centro.x + ancho / 2, centro.y + alto / 2);
     // Lado superior.
-    gdk_draw_line(widget->window,
-            widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
+    gdk_draw_line(GDK_DRAWABLE(widget->window), gc,
             // X, Y del vértice de la izquierda.
             centro.x - ancho / 2, centro.y - alto / 2,
             // X, Y del vértice de la derecha.
             centro.x + ancho / 2, centro.y - alto / 2);
     // Lado inferior.
-    gdk_draw_line(widget->window,
-            widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
+    gdk_draw_line(GDK_DRAWABLE(widget->window), gc,
             // X, Y del vértice de la izquierda.
             centro.x - ancho / 2, centro.y + alto / 2,
             // X, Y del vértice de la derecha.
             centro.x + ancho / 2, centro.y + alto / 2);
+    // Libero la copia del contexto gráfico.
+    g_object_unref(G_OBJECT(gc));
 }