X-Git-Url: https://git.llucax.com/z.facultad/75.42/figuras.git/blobdiff_plain/09eee1993f5b3310f6695639433fdf2d9e319db2..43e773511104114803dd613392345345ef13deba:/callbacks.cpp?ds=sidebyside diff --git a/callbacks.cpp b/callbacks.cpp index 9b9172d..3f498e0 100644 --- a/callbacks.cpp +++ b/callbacks.cpp @@ -23,45 +23,67 @@ #include "interface.h" #include -#include +#ifdef DEBUG +# include +#endif gboolean on_drawingarea_expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer user_data) { +#ifdef DEBUG std::cerr << "En expose_event." << std::endl; +#endif // Dibujo. static_cast(user_data)->dibujar(widget); return FALSE; } void on_button_borrar_clicked(GtkButton *button, gpointer user_data) { +#ifdef DEBUG std::cerr << "En borrar event." << std::endl; +#endif // Borro dibujo. static_cast(user_data)->borrar_todo(); } void on_button_graficar_clicked(GtkButton *button, gpointer user_data) { +#ifdef DEBUG std::cerr << "En graficar event." << std::endl; +#endif // Indica que hay que redibujar el widget user_data, que será el área de // dibujo. gtk_widget_queue_draw(GTK_WIDGET(user_data)); } void on_button_salir_clicked(GtkButton *button, gpointer user_data) { +#ifdef DEBUG std::cerr << "En salir event." << std::endl; +#endif // Termina el loop principal. gtk_main_quit(); } void on_button_agregar_clicked(GtkButton *button, gpointer user_data) { +#ifdef DEBUG std::cerr << "En agregar event." << std::endl; - // FIXME +#endif + // 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(user_data)->agregar_figura(figura); + static_cast(user_data)->agregar_figura( + new Linea(1, 2, Punto(50, 50), "", Punto(0, 0), Punto(100, 50))); + static_cast(user_data)->agregar_figura( + new Rectangulo(2, 1, Punto(100, 100), "", 20, 80)); + static_cast(user_data)->agregar_figura( + new Cuadrado(5, 5, Punto(150, 120), "", 100)); } gboolean on_window_delete_event(GtkWidget *widget, GdkEvent *event, gpointer user_data) { +#ifdef DEBUG std::cerr << "En delete_event." << std::endl; +#endif // Termina el loop principal. gtk_main_quit(); // Al devolver FALSE se indica que se debe ocultar la ventana FIXME.