]> git.llucax.com Git - z.facultad/75.42/figuras.git/blobdiff - callbacks.cpp
Se arregla typo.
[z.facultad/75.42/figuras.git] / callbacks.cpp
index b0524cae038439ceaf8b91a45e2988f8513c60d1..1dedd963d8054434b7d3c7fa523663661c5047fa 100644 (file)
@@ -70,62 +70,69 @@ void on_button_agregar_clicked(GtkButton* button, gpointer user_data) {
 #ifdef DEBUG
     std::cerr << "Color: " << win->get_color() << std::endl;
 #endif
-    Figura* figura = new Circulo(1, 1, Punto(50, 50), "Lala", 50);
-    if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(win->radiobutton_linea))) {
+    Figura* figura;
+    // Si se agrega una línea.
+    if (gtk_toggle_button_get_active(
+                GTK_TOGGLE_BUTTON(win->radiobutton_linea))) {
+        // Creo la nueva línea con los parámetros ingresados por el usuario.
         figura = new Linea(
-            win->get_color(),
+            win->get_color(),                                 // Color
             gtk_spin_button_get_value_as_int(
-                GTK_SPIN_BUTTON(win->spinbutton_grosor)),
-            Punto(GTK_SPIN_BUTTON(win->spinbutton_centro_x),
-                GTK_SPIN_BUTTON(win->spinbutton_centro_y)),
-            gtk_entry_get_text(GTK_ENTRY(win->entry_nombre)),
-            Punto(GTK_SPIN_BUTTON(win->spinbutton_inicio_x),
-                GTK_SPIN_BUTTON(win->spinbutton_inicio_y)),
-            Punto(GTK_SPIN_BUTTON(win->spinbutton_fin_x),
-                GTK_SPIN_BUTTON(win->spinbutton_fin_y))
+                GTK_SPIN_BUTTON(win->spinbutton_grosor)),     // Grosor
+            Punto(GTK_SPIN_BUTTON(win->spinbutton_centro_x),  // Centro X
+                GTK_SPIN_BUTTON(win->spinbutton_centro_y)),   // Centro Y
+            gtk_entry_get_text(GTK_ENTRY(win->entry_nombre)), // Nombre
+            Punto(GTK_SPIN_BUTTON(win->spinbutton_inicio_x),  // Inicio X
+                GTK_SPIN_BUTTON(win->spinbutton_inicio_y)),   // Inicio Y
+            Punto(GTK_SPIN_BUTTON(win->spinbutton_fin_x),     // Fin X
+                GTK_SPIN_BUTTON(win->spinbutton_fin_y))       // Fin Y
         );
+    // Si se agrega un cuadrado.
     } else if (gtk_toggle_button_get_active(
                 GTK_TOGGLE_BUTTON(win->radiobutton_cuadrado))) {
+        // Creo la figura con los párametros ingresados por el usuario.
         figura = new Cuadrado(
-            win->get_color(),
+            win->get_color(),                                 // Color   
+            gtk_spin_button_get_value_as_int(                            
+                GTK_SPIN_BUTTON(win->spinbutton_grosor)),     // Grosor  
+            Punto(GTK_SPIN_BUTTON(win->spinbutton_centro_x),  // Centro X
+                GTK_SPIN_BUTTON(win->spinbutton_centro_y)),   // Centro Y
+            gtk_entry_get_text(GTK_ENTRY(win->entry_nombre)), // Nombre  
             gtk_spin_button_get_value_as_int(
-                GTK_SPIN_BUTTON(win->spinbutton_grosor)),
-            Punto(GTK_SPIN_BUTTON(win->spinbutton_centro_x),
-                GTK_SPIN_BUTTON(win->spinbutton_centro_y)),
-            gtk_entry_get_text(GTK_ENTRY(win->entry_nombre)),
-            gtk_spin_button_get_value_as_int(
-                GTK_SPIN_BUTTON(win->spinbutton_alto))
+                GTK_SPIN_BUTTON(win->spinbutton_alto))        // Lado.
         );
+    // Si se agrega un rectángulo.
     } else if (gtk_toggle_button_get_active(
                 GTK_TOGGLE_BUTTON(win->radiobutton_rectangulo))) {
+        // Creo la figura con los párametros ingresados por el usuario.
         figura = new Rectangulo(
-            win->get_color(),
-            gtk_spin_button_get_value_as_int(
-                GTK_SPIN_BUTTON(win->spinbutton_grosor)),
-            Punto(GTK_SPIN_BUTTON(win->spinbutton_centro_x),
-                GTK_SPIN_BUTTON(win->spinbutton_centro_y)),
-            gtk_entry_get_text(GTK_ENTRY(win->entry_nombre)),
+            win->get_color(),                                 // Color   
+            gtk_spin_button_get_value_as_int(                            
+                GTK_SPIN_BUTTON(win->spinbutton_grosor)),     // Grosor  
+            Punto(GTK_SPIN_BUTTON(win->spinbutton_centro_x),  // Centro X
+                GTK_SPIN_BUTTON(win->spinbutton_centro_y)),   // Centro Y
+            gtk_entry_get_text(GTK_ENTRY(win->entry_nombre)), // Nombre  
             gtk_spin_button_get_value_as_int(
-                GTK_SPIN_BUTTON(win->spinbutton_alto)),
+                GTK_SPIN_BUTTON(win->spinbutton_alto)),       // Alto.
             gtk_spin_button_get_value_as_int(
-                GTK_SPIN_BUTTON(win->spinbutton_ancho))
+                GTK_SPIN_BUTTON(win->spinbutton_ancho))       // Ancho.
         );
+    // Si no, se agrega un círculo.
     } else {
+        // Creo la figura con los párametros ingresados por el usuario.
         figura = new Circulo(
-            win->get_color(),
-            gtk_spin_button_get_value_as_int(
-                GTK_SPIN_BUTTON(win->spinbutton_grosor)),
-            Punto(GTK_SPIN_BUTTON(win->spinbutton_centro_x),
-                GTK_SPIN_BUTTON(win->spinbutton_centro_y)),
-            gtk_entry_get_text(GTK_ENTRY(win->entry_nombre)),
+            win->get_color(),                                 // Color   
+            gtk_spin_button_get_value_as_int(                            
+                GTK_SPIN_BUTTON(win->spinbutton_grosor)),     // Grosor  
+            Punto(GTK_SPIN_BUTTON(win->spinbutton_centro_x),  // Centro X
+                GTK_SPIN_BUTTON(win->spinbutton_centro_y)),   // Centro Y
+            gtk_entry_get_text(GTK_ENTRY(win->entry_nombre)), // Nombre  
             gtk_spin_button_get_value_as_int(
-                GTK_SPIN_BUTTON(win->spinbutton_radio))
+                GTK_SPIN_BUTTON(win->spinbutton_radio))       // Radio
         );
     }
     // Agrego la figura nueva al dibujo.
     win->dibujo.agregar_figura(figura);
-    // Indico que se debe redibujar para que se vean los cambios.
-    gtk_widget_queue_draw(GTK_WIDGET(win->drawingarea));
 }
 
 gboolean on_window_delete_event(GtkWidget* widget, GdkEvent* event,
@@ -144,15 +151,15 @@ void on_radiobutton_linea_toggled(GtkToggleButton* togglebutton,
 #ifdef DEBUG
     std::cerr << "En linea event." << std::endl;
 #endif
-    // TODO
+    // Activo y desactivos los campos necesarios.
     TP5Window* win = static_cast<TP5Window*>(user_data);
-    gtk_widget_set_sensitive(win->spinbutton_inicio_x, true);
-    gtk_widget_set_sensitive(win->spinbutton_inicio_y, true);
-    gtk_widget_set_sensitive(win->spinbutton_fin_x, true);
-    gtk_widget_set_sensitive(win->spinbutton_fin_y, true);
-    gtk_widget_set_sensitive(win->spinbutton_alto, false);
-    gtk_widget_set_sensitive(win->spinbutton_ancho, false);
-    gtk_widget_set_sensitive(win->spinbutton_radio, false);
+    gtk_widget_set_sensitive(win->spinbutton_inicio_x, TRUE);
+    gtk_widget_set_sensitive(win->spinbutton_inicio_y, TRUE);
+    gtk_widget_set_sensitive(win->spinbutton_fin_x, TRUE);
+    gtk_widget_set_sensitive(win->spinbutton_fin_y, TRUE);
+    gtk_widget_set_sensitive(win->spinbutton_alto, FALSE);
+    gtk_widget_set_sensitive(win->spinbutton_ancho, FALSE);
+    gtk_widget_set_sensitive(win->spinbutton_radio, FALSE);
 }
 
 void on_radiobutton_cuadrado_toggled(GtkToggleButton* togglebutton,
@@ -160,15 +167,15 @@ void on_radiobutton_cuadrado_toggled(GtkToggleButton* togglebutton,
 #ifdef DEBUG
     std::cerr << "En cuadrado event." << std::endl;
 #endif
-    // TODO
+    // Activo y desactivos los campos necesarios.
     TP5Window* win = static_cast<TP5Window*>(user_data);
-    gtk_widget_set_sensitive(win->spinbutton_inicio_x, false);
-    gtk_widget_set_sensitive(win->spinbutton_inicio_y, false);
-    gtk_widget_set_sensitive(win->spinbutton_fin_x, false);
-    gtk_widget_set_sensitive(win->spinbutton_fin_y, false);
-    gtk_widget_set_sensitive(win->spinbutton_alto, true);
-    gtk_widget_set_sensitive(win->spinbutton_ancho, false);
-    gtk_widget_set_sensitive(win->spinbutton_radio, false);
+    gtk_widget_set_sensitive(win->spinbutton_inicio_x, FALSE);
+    gtk_widget_set_sensitive(win->spinbutton_inicio_y, FALSE);
+    gtk_widget_set_sensitive(win->spinbutton_fin_x, FALSE);
+    gtk_widget_set_sensitive(win->spinbutton_fin_y, FALSE);
+    gtk_widget_set_sensitive(win->spinbutton_alto, TRUE);
+    gtk_widget_set_sensitive(win->spinbutton_ancho, FALSE);
+    gtk_widget_set_sensitive(win->spinbutton_radio, FALSE);
 }
 
 void on_radiobutton_rectangulo_toggled(GtkToggleButton* togglebutton,
@@ -176,15 +183,15 @@ void on_radiobutton_rectangulo_toggled(GtkToggleButton* togglebutton,
 #ifdef DEBUG
     std::cerr << "En rectangulo event." << std::endl;
 #endif
-    // TODO
+    // Activo y desactivos los campos necesarios.
     TP5Window* win = static_cast<TP5Window*>(user_data);
-    gtk_widget_set_sensitive(win->spinbutton_inicio_x, false);
-    gtk_widget_set_sensitive(win->spinbutton_inicio_y, false);
-    gtk_widget_set_sensitive(win->spinbutton_fin_x, false);
-    gtk_widget_set_sensitive(win->spinbutton_fin_y, false);
-    gtk_widget_set_sensitive(win->spinbutton_alto, true);
-    gtk_widget_set_sensitive(win->spinbutton_ancho, true);
-    gtk_widget_set_sensitive(win->spinbutton_radio, false);
+    gtk_widget_set_sensitive(win->spinbutton_inicio_x, FALSE);
+    gtk_widget_set_sensitive(win->spinbutton_inicio_y, FALSE);
+    gtk_widget_set_sensitive(win->spinbutton_fin_x, FALSE);
+    gtk_widget_set_sensitive(win->spinbutton_fin_y, FALSE);
+    gtk_widget_set_sensitive(win->spinbutton_alto, TRUE);
+    gtk_widget_set_sensitive(win->spinbutton_ancho, TRUE);
+    gtk_widget_set_sensitive(win->spinbutton_radio, FALSE);
 }
 
 void on_radiobutton_circulo_toggled(GtkToggleButton* togglebutton,
@@ -192,14 +199,14 @@ void on_radiobutton_circulo_toggled(GtkToggleButton* togglebutton,
 #ifdef DEBUG
     std::cerr << "En circulo event." << std::endl;
 #endif
-    // TODO
+    // Activo y desactivos los campos necesarios.
     TP5Window* win = static_cast<TP5Window*>(user_data);
-    gtk_widget_set_sensitive(win->spinbutton_inicio_x, false);
-    gtk_widget_set_sensitive(win->spinbutton_inicio_y, false);
-    gtk_widget_set_sensitive(win->spinbutton_fin_x, false);
-    gtk_widget_set_sensitive(win->spinbutton_fin_y, false);
-    gtk_widget_set_sensitive(win->spinbutton_alto, false);
-    gtk_widget_set_sensitive(win->spinbutton_ancho, false);
-    gtk_widget_set_sensitive(win->spinbutton_radio, true);
+    gtk_widget_set_sensitive(win->spinbutton_inicio_x, FALSE);
+    gtk_widget_set_sensitive(win->spinbutton_inicio_y, FALSE);
+    gtk_widget_set_sensitive(win->spinbutton_fin_x, FALSE);
+    gtk_widget_set_sensitive(win->spinbutton_fin_y, FALSE);
+    gtk_widget_set_sensitive(win->spinbutton_alto, FALSE);
+    gtk_widget_set_sensitive(win->spinbutton_ancho, FALSE);
+    gtk_widget_set_sensitive(win->spinbutton_radio, TRUE);
 }