]> git.llucax.com Git - z.facultad/75.42/figuras.git/blobdiff - rectangulo.cpp
Se corrigen caracteres raros con UTF-8.
[z.facultad/75.42/figuras.git] / rectangulo.cpp
index 450e670baec91a29b0b106051557aa984535a9ba..26510d61a7ec06f23b8fbb1166626b761974d789 100644 (file)
@@ -2,8 +2,8 @@
  *
  * Taller de Programación (75.42).
  *
  *
  * Taller de Programación (75.42).
  *
- * Ejercicio Número 3:
- * Lista de figuras.
+ * Ejercicio Número 5:
+ * Graficador de figuras.
  *
  * Copyleft 2003 - Leandro Lucarella <llucare@fi.uba.ar>
  * Puede copiar, modificar y distribuir este programa bajo los términos de
  *
  * Copyleft 2003 - Leandro Lucarella <llucare@fi.uba.ar>
  * 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,
 #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;
         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
 }
 
 #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);
 }
 
 }