]> git.llucax.com Git - z.facultad/75.42/figuras.git/commitdiff
Se implementan los dibujar().
authorLeandro Lucarella <llucax@gmail.com>
Fri, 3 Oct 2003 02:28:45 +0000 (02:28 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Fri, 3 Oct 2003 02:28:45 +0000 (02:28 +0000)
callbacks.cpp
circulo.cpp
linea.cpp
rectangulo.cpp

index 9b9172d2fd176b4648528fb9e991feae9daa654e..89c17a50d8eea9ae6a135ce95f165de2d52a7052 100644 (file)
@@ -54,7 +54,9 @@ void on_button_salir_clicked(GtkButton *button, gpointer user_data) {
 
 void on_button_agregar_clicked(GtkButton *button, gpointer user_data) {
     std::cerr << "En agregar event." << std::endl;
-    // FIXME
+    // FIXME: hacer una estructura para guardar todos los punteros a los datos
+    // que necesito: radio buttons, y todas las entradas, más la lista enlazada,
+    // más, tal vez, el drawingarea.
     Figura* figura = new Circulo(1, 1, Punto(50, 50), "Lala", 50);
     static_cast<Dibujo*>(user_data)->agregar_figura(figura);
 }
index d0f2b975528c9f9a552f987580917252ef89bb9f..5ce7d785e63d97195038ee6087458d79cbe650a4 100644 (file)
@@ -39,14 +39,19 @@ void Circulo::dibujar(GtkWidget* widget) const {
 #ifdef DEBUG
     std::cerr << "En dibujar de Círculo." << std::endl;
 #endif
-    gdk_draw_arc(widget->window,
+    Figura::dibujar(widget);
+    gdk_draw_arc(
+            // Área dibujable.
+            widget->window,
+            // Graphic Context a usar.
             widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
+            // No lo rellena.
             FALSE,
-            5, 5,
-            widget->allocation.width - 10,
-            widget->allocation.height - 10,
+            // X, Y de la esquina superior izquierda.
+            centro.x - radio, centro.y - radio,
+            // X, Y de la esquina inferior derecha.
+            centro.x + radio, centro.y + radio,
+            // de 0 a 360 grados.
             0, 64 * 360);
-
-    //Figura::dibujar(out);
 }
 
index 2a933bd5802162ca41b8c7cf1dac61e3eedb2b4c..9c091c3c2faa5b9abb883a357f9fbce02bcd369f 100644 (file)
--- a/linea.cpp
+++ b/linea.cpp
@@ -35,9 +35,15 @@ Linea::~Linea(void) {
 }
 
 void Linea::dibujar(GtkWidget* widget) const {
-    gdk_draw_line(widget->window,
+#ifdef DEBUG
+    std::cerr << "En dibujar de Línea." << std::endl;
+#endif
+    Figura::dibujar(widget);
+    gdk_draw_line(
+            // Área dibujable.
+            widget->window,
+            // Graphic Context.
             widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
             ini.x, ini.y, fin.x, fin.y);
-    //Figura::dibujar(out);
 }
 
index 3b1112a20e52636da8d681fb872fd140bfa385cb..c4e9e56f12416f498d2e72e332b234948f6517a0 100644 (file)
@@ -35,6 +35,40 @@ Rectangulo::~Rectangulo(void) {
 }
 
 void Rectangulo::dibujar(GtkWidget* widget) const {
-    //Figura::dibujar(out);
+#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);
 }