X-Git-Url: https://git.llucax.com/z.facultad/75.42/figuras.git/blobdiff_plain/09eee1993f5b3310f6695639433fdf2d9e319db2..f03dc6326f2929be57f5f4bca675b6b556546022:/rectangulo.cpp diff --git a/rectangulo.cpp b/rectangulo.cpp index 3b1112a..da7e087 100644 --- a/rectangulo.cpp +++ b/rectangulo.cpp @@ -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; @@ -35,6 +35,42 @@ Rectangulo::~Rectangulo(void) { } void Rectangulo::dibujar(GtkWidget* widget) const { - //Figura::dibujar(out); +#ifdef DEBUG + std::cerr << "En dibujar de Rectángulo." << std::endl; +#endif + // 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. + 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(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(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(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)); }