X-Git-Url: https://git.llucax.com/z.facultad/75.42/figuras.git/blobdiff_plain/4941bea9d00a9664fe6cd6f971bc7a02e12d4c47..bd0e2cd7c30b11d5b52263c4fb8f8a33d8a1f336:/rectangulo.cpp?ds=inline diff --git a/rectangulo.cpp b/rectangulo.cpp index 450e670..26510d6 100644 --- a/rectangulo.cpp +++ b/rectangulo.cpp @@ -2,8 +2,8 @@ * * Taller de Programación (75.42). * - * Ejercicio Número 3: - * Lista de figuras. + * Ejercicio Número 5: + * Graficador de figuras. * * Copyleft 2003 - Leandro Lucarella * Puede copiar, modificar y distribuir este programa bajo los términos de @@ -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; @@ -34,9 +34,41 @@ Rectangulo::~Rectangulo(void) { #endif } -void Rectangulo::dibujar(std::ostream& out) const { - out << "Rectangulo("; - Figura::dibujar(out); - out << ", ancho(" << ancho << "), alto(" << alto << "))"; +void Rectangulo::dibujar(GtkWidget* widget) const { +#ifdef DEBUG + std::cerr << "En dibujar de Rectángulo." << std::endl; +#endif + Figura::dibujar(widget); + // Lado de la izquierda. + gdk_draw_line( + // Área dibujable. + widget->window, + // Graphic Context. + widget->style->fg_gc[GTK_WIDGET_STATE (widget)], + // 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)], + // 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)], + // 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)], + // 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); }