]> git.llucax.com Git - z.facultad/75.42/figuras.git/blobdiff - linea.cpp
Se hace que el botón Agregar no redibuje.
[z.facultad/75.42/figuras.git] / linea.cpp
index af5f32951c420c1ec873f24b5d78f8fbbbd1d10d..924bf9fcb97dac34b54abe849f02e5848a54bc00 100644 (file)
--- a/linea.cpp
+++ b/linea.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 <llucare@fi.uba.ar>
  * Puede copiar, modificar y distribuir este programa bajo los términos de
@@ -34,13 +34,23 @@ Linea::~Linea(void) {
 #endif
 }
 
-void Linea::dibujar(std::ostream& out) const {
-    out << "Linea(";
-    Figura::dibujar(out);
-    out << ", ini(";
-    ini.dibujar(out);
-    out << "), fin(";
-    fin.dibujar(out);
-    out << "))";
+void Linea::dibujar(GtkWidget* widget) const {
+#ifdef DEBUG
+    std::cerr << "En dibujar de Línea." << 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);
+    // Dibujo la línea.
+    gdk_draw_line(
+            // Área dibujable.
+            GDK_DRAWABLE(widget->window),
+            // Contexto gráfico.
+            gc,
+            // Inicio y fin de la línea.
+            ini.x, ini.y, fin.x, fin.y);
+    // Libero la copia del contexto gráfico.
+    g_object_unref(G_OBJECT(gc));
 }